这一篇,我们将介绍微软BING AD团队提出的Deep Crossing模型,用来解决大规模特征组合问题的模型,这些特征可以是稠密的,也可以是稀疏的,从而避免了人工进行特征组合,并使用了当年提出的残差神经网络。这个模型也算是深度学习在推荐系统的完整应用了:完整的解决了特征工程、稀疏向量稠密化、多层神经网络进行优化等一些列深度学习的目标应用。
特征
微软在广告场景中所使用的特征如下面所示:
- 查询。
用户在搜索框中输入的文本字符串 - 关键字
与产品相关的文本字符串,广告主添加的其产品描述词 - 标题
赞助广告的标题(简称为"广告",以下简称 "广告"),由广告主指定,以获取关注度 - 落地页
用户点击了相应的广告之后进入的页面 - 匹配类型
给广告商的一个选项,包括精准匹配、短语匹配、语义匹配等等 - 点击
显示是否有一个印象被点击用户的点击。点击通常会与运行时的其他信息一起被记录下来 - 点击率
广告的历史点击率 - 点击预测
平台的关键模式,即预测用户点击给定广告的可能性。 - 广告计划
广告主创造的投放广告的计划、包括预算、定向条件等 - 曝光样例
一个广告“曝光”的例子,记录了广告在实际曝光场景的相关信息 - 点击阳历
一个广告“点击”的例子,记录了广告在实际点击场景的相关信息
模型结构
网络的主要模型结构如下图所示
可以看出网络结构主要包括4种网络层——Embedding层,Stacking层,Multiple Residual Units层以及Scoring层。所需要的优化目标也是很常见的点击与否的二分类log损失:
Embedding层
Embedding层以全连接层为主,主要目的是用来将稀疏的类别特征转化成稠密的Embedding向量,一般来说,Embedding向量的维度要远小于原始的洗漱特征向量。数值类型的特征不需要经过Embedding层而直接进入Stacking层。从下面的公式也能看出,所使用的激活函数是ReLU函数。
Stacking层
Stacking层比较简单,将所有的Embedding向量与数值类型的特征拼接在一起,从而形成新的特征向量,该层也常被成为连接层(Concatenate)。
Multiple Residual Untis层
这个层主要大量使用了带有残差的多层感知机,也就是借鉴了ResNet的残差的思想进行优化的网络结构。通过多层残差网络对特征向量的各个维度进行充分的交叉组合,使得模型能够捕捉到更多的非线性特征以及组合特征的信息,同时残差也使得网络变得更深以及更容易优化。下图就是一个残差单元的结构:
将原始的输入和通过网络层的输出进行逐元素相加,也被称为短路(Shortcut)操作。
Scoring层
Scoring层作为输出层,为了拟合优化目标存在的,如CTR预估这种二分类模型,Scoring层往往使用的逻辑回归模型,对于图像分类等多分类模型,Scoring层使用的Softmax模型。
小结
作为一个“Embedding+多层神经网络”的结构,在历史上是具有革命意义的,没有使用任何的人工特征,并且相对于FM/FFM等模型,做到了通过调整网络层数进行深度特征交叉。这也是Deep Crossing模型的名字由来。
参考
深度学习推荐系统 王喆编著
Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features