多年以后,当资深算法专家们看着无缝对接用户需求的广告收入节节攀升时,他们可能会想起自己之前痛苦推导FM与深度学习公式的某个夜晚……——题记点击率(click-throughrate,CTR)是互联网公司进行流量分配的核心依据之一。比如互联网广告平台,为了精细化权衡和保障用户、广告、平台三方的利益,准确的CTR预估是不可或缺的。
为了便于理解,我们简化了数据案例——只考虑离散特征数据的建模,以分析不同神经网络在处理相同业务问题时的不同思路。同时,我们将各典型论文不同风格的神经网络结构图统一按照计算图来绘制,以便于对比不同模型。
其中为特征向量,为权重向量,为sigmoid函数。但是人工进行特征组合通常会存在诸多困难,如特征爆炸、特征难以被识别、组合特征难以设计等。为了让模型自动地考虑特征之间的二阶组合信息,线性模型推广为二阶多项式()模型:
其实就是对特征两两相乘(组合)构成新特征(离散化之后其实就是“且”操作),并对每个新特征分配独立的权重,通过机器学习来自动得到这些权重。将其写成矩阵形式为:
其中W^(2)为二阶特征组合的权重矩阵,是对称矩阵。而这个矩阵参数非常多,为。为了降低该矩阵的维度,可以将其因子分解(Factorization)为两个低维(比如)矩阵的相乘。则此时W矩阵的参数就大幅降低,为。公式如下:
这就是Rendle等在2010年提出因子分解机(FactorizationMachines,FM)的名字的由来。FM的矩阵形式公式如下:
将其写成内积的形式:
利用:
可以将上式进一步改写成求和式的形式:
其中vi向量是矩阵的第i列。为了去除重复项与特征平方项,上式可以进一步改写成更为常见的FM公式:
对比二阶多项式模型,FM模型中特征两两相乘(组合)的权重是相互不独立的,它是一种参数较少但表达力强的模型。此处附上FM的TensorFlow代码实现,完整数据和代码请网盘链接:https://pan.baidu.com/s/1eDwOxweRDPurI2fF51EALQ注意FM通过内积进行无重复项与特征平方项的特征组合过程使用了一个小trick,就是:
我们观察FM公式的矩阵内积形式:
发现部分就是将离散系数特征通过矩阵乘法降维成一个低维稠密向量。这个过程对神经网络来说就叫做嵌入(embedding)。所以用神经网络视角来看:FM首先是对离散特征进行嵌入。之后通过对嵌入后的稠密向量进行内积来进行二阶特征组合。最后再与线性模型的结果求和进而得到预估点击率。
广告点击率预估模型中的特征以分领域的离散特征为主,如:广告类别、用户职业、手机APP列表等。由于连续特征比较好处理,为了简化起见,本文只考虑同时存在不同领域的离散特征的情形。处理离散特征的常见方法是通过one-hot编码转换为一系列二值特征向量。然后将这些高维稀疏特征通过嵌入(embedding)转换为低维连续特征。前面已经说明FM中间的一个核心步骤就是嵌入,但这个嵌入过程没有考虑领域信息。
这样考虑其实是给FM增加了一个正则:考虑了领域内的信息的相似性。而且还有一个附加的好处,这些嵌入后的同领域特征可以拼接起来作为更深的神经网络的输入,达到降维的目的。接下来我们将反复看到这种处理方式。embedding+MLP是对于分领域离散特征进行深度学习CTR预估的通用框架。深度学习在特征组合挖掘(特征学习)方面具有很大的优势。
embedding+MLP的缺点是只学习高阶特征组合,对于低阶或者手动的特征组合不够兼容,而且参数较多,学习较困难。WeinanZhang等在2016年提出的因子分解机神经网络(FactorisationMachinesupportedNeuralNetwork,FNN)将考FM与MLP进行了结合。
通过观察FFN的计算图可以看出其与embedding+MLP确实非常像。不过此处省略了FNN的FM部分的线性模块。这种省略为了更好地进行两个模型的对比。接下来的计算图我们都会省略线性模块。
通过观察DeepFM的计算图可以看出红色虚线以上部分其实就是FM部分,虚线以下就是MLP部分。此处DeepFM的代码实现,完整数据和代码请网盘链接:https://pan.baidu.com/s/1eDwOxweRDPurI2fF51EALQ我们再回到考虑领域信息的FM,它仍有改进的空间。因为以上这些网络的FM部分都是只进行嵌入向量的两两内积后直接求和,没有充分利用二阶特征组合的信息。
NFM的基本特点是:利用二阶交互池化层(Bi-InteractionPooling)对FM嵌入后的向量两两进行元素级别的乘法,形成同维度的向量求和后作为前馈神经网络的输入。计算图中用圈乘表示逐元素乘法运算。NFM与DeepFM的区别是没有单独的FM的浅层网络进行联合训练,而是将其整合后直接输出给前馈神经网络。当MLP的全连接层都是恒等变换且最后一层参数全为1时,NFM就退化成了FM。
AFM的特点是:AFM与NFM都是致力于充分利用二阶特征组合的信息,对嵌入后的向量两两进行逐元素乘法,形成同维度的向量。而且AFM没有MLP部分。AFM通过在逐元素乘法之后形成的向量进行加权求和,而且权重是基于网络自身来产生的。其方法是引入一个注意力子网络(AttentionNet)。当权重都相等时,AFM退化成无全连接层的NFM。
对比之前模型的计算图,我们可以发现PNN的基本特点是:利用二阶向量积层(Pair-wiselyConnectedProductLayer)对FM嵌入后的向量两两进行向量积,形成的结果作为之后MLP的输入。计算图中用圆点表示向量积运算。PNN采用的向量积有内积与外积两种形式。需要说明的是,本计算图中省略了PNN中向量与常数1进行的乘法运算。这部分其实与FNN类似,不是PNN的主要创新点。
DCN的特点如下:Deep部分就是普通的MLP网络,主要是全连接。与DeepFM类似,DCN是由embedding+MLP部分与cross部分进行联合训练的。Cross部分是对FM部分的推广。cross部分的公式如下:
可以证明,cross网络是FM的过程在高阶特征组合的推广。完全的证明需要一些公式推导,感兴趣的同学可以直接参考原论文的附录。而用简单的公式证明可以得到一个很重要的结论:只有两层且第一层与最后一层权重参数相等时的Cross网络与简化版FM等价。
我们将Wide&Deep的计算图与之前的模型进行对比可知:Wide&Deep是前面介绍模型DeepFM与DCN的基础框架。这些模型均采用神经网络联合训练的思路,对神经网络进行并联。DeepFM、DCN与Wide&Deep的Deep部分都是MLP。Wide&Deep的Wide部分是逻辑回归,可以手动设计组合特征。
将DeepCross与之前的模型对比,可以发现其特点是:对embedding+MLP的改进主要是MLP部分增加跳跃连接成为残差网络。DeepCross与传统的残差网络的区别主要是没有采用卷积操作。其中一个原因是在广告点击率预估领域,特征不具备平移不变性。DCN其实是从DeepCross进化出来的版本。DCN相对DeepCross的主要贡献是解耦了Deep与Cross(特征交叉)部分。
此处采用原论文的结构图,表示起来更清晰。DIN考虑对同一领域的历史特征进行加权求和,以加强其感兴趣的特征的影响。用户的每个领域的历史特征权重则由该历史特征及其对应备选广告特征通过一个子网络得到。即用户历史浏览的商户特征与当前浏览商户特征对应,历史浏览的商品特征与当前浏览商品特征对应。权重子网络主要包括特征之间的元素级别的乘法、加法和全连接等操作。AFM也引入了注意力机制。
而深度学习发展,使得信息的融合与应用有了更好的进展,用learning(MTL)的方式可以很漂亮的解决上面提到的问题。我们不直接对样本进行累加和训练,而是像上图所示,把两个场景分为两个task,即分为两个子网络。对单个网络而言,底层的embedding层的表达受限于单场景的数据量,很可能学习不充分。
传统的CVR预估任务通常采用类似于CTR预估的技术进行建模。但是不同于CTR预估任务的是,这个场景面临一些特有的挑战
ESMM模型提出了下述的网络结构进行问题建模
EMMS的特点是:在整个样本空间建模。pCVR可以在先估计出pCTR和pCTCVR之后计算得出,如下述公式。从原理上看,相当于分别单独训练两个模型拟合出pCTR和pCTCVR,进而计算得到pCVR。
注意到pCTR和pCTCVR是在整个样本空间上建模得到的,pCVR只是一个中间变量。因此,ESMM模型是在整个样本空间建模,而不像传统CVR预估模型那样只在点击样本空间建模。特征表示层共享。ESMM模型借鉴迁移学习和multi-tasklearning的思路,在两个子网络的embedding层共享特征表示词典。
领取专属 10元无门槛券
私享最新 技术干货