Press "Enter" to skip to content

推荐系统实践 0x10 Deep Crossing

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

这一篇,我们将介绍微软BING AD团队提出的Deep Crossing模型,用来解决大规模特征组合问题的模型,这些特征可以是稠密的,也可以是稀疏的,从而避免了人工进行特征组合,并使用了当年提出的残差神经网络。这个模型也算是深度学习在推荐系统的完整应用了:完整的解决了特征工程、稀疏向量稠密化、多层神经网络进行优化等一些列深度学习的目标应用。

 

特征

 

微软在广告场景中所使用的特征如下面所示:

查询。
用户在搜索框中输入的文本字符串
关键字
与产品相关的文本字符串,广告主添加的其产品描述词
标题
赞助广告的标题(简称为”广告”,以下简称 “广告”),由广告主指定,以获取关注度
落地页
用户点击了相应的广告之后进入的页面
匹配类型
给广告商的一个选项,包括精准匹配、短语匹配、语义匹配等等
点击
显示是否有一个印象被点击用户的点击。点击通常会与运行时的其他信息一起被记录下来
点击率
广告的历史点击率
点击预测
平台的关键模式,即预测用户点击给定广告的可能性。
广告计划
广告主创造的投放广告的计划、包括预算、定向条件等
曝光样例
一个广告“曝光”的例子,记录了广告在实际曝光场景的相关信息
点击阳历
一个广告“点击”的例子,记录了广告在实际点击场景的相关信息

模型结构

 

网络的主要模型结构如下图所示

可以看出网络结构主要包括4种网络层——Embedding层,Stacking层,Multiple Residual Units层以及Scoring层。所需要的优化目标也是很常见的点击与否的二分类log损失:

 

\[logloss=-\frac{1}{N}\sum_{1}^{N}(y_i\log(p_i))+(1-y_i)\log(1-p_i)) \]

 

Embedding层

 

Embedding层以全连接层为主,主要目的是用来将稀疏的特征类别特征转化成稠密的Embedding向量,一般来说,Embedding向量的维度要远小于原始的洗漱特征向量。数值类型的特征不需要经过Embedding层而直接进入Stacking层。从下面的公式也能看出,所使用的激活函数是ReLU函数。

 

\[X^O_j=\max(0, W_jX_j^I+b_j) \]

 

Stacking层

 

Stacking层比较简单,将所有的Embedding向量与数值类型的特征拼接在一起,从而形成新的特征向量,该层也常被成为连接层(Concatenate)。

 

Multiple Residual Untis层

 

这个层主要大量使用了带有残差的多层感知机,也就是借鉴了ResNet的残差的思想进行优化的网络结构。通过多层残差网络对特征向量的各个维度进行充分的交叉组合,使得模型能够捕捉到更多的非线性特征以及组合特征的信息,同时残差也使得网络变得更深以及更容易优化。下图就是一个残差单元的结构:

将原始的输入和通过网络层的输出进行逐元素相加,也被称为短路(Shortcut)操作。

 

\[X^O=\mathcal{F}(X^I,\{W_0, W_1\},\{b_0,b_1\})+X^I \]

 

Scoring层

 

Scoring层作为输出层,为了拟合优化目标存在的,如CTR预估这种二分类模型,Scoring层往往使用的逻辑回归模型,对于图像分类等多分类模型,Scoring层使用的Softmax模型。

 

小结

 

作为一个“Embedding+多层神经网络”的结构,在历史上是具有革命意义的,没有使用任何的人工特征,并且相对于FM/FFM等模型,做到了通过调整网络层数进行深度特征交叉。这也是Deep Crossing模型的名字由来。

 

参考

 

Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注