CTR深度学习演化——含论文与代码链接
2019-06-17 本文已影响0人
请不要问我是谁
深度学习CTR模型的演化图谱
一、Factorization Machines(2010年)——FM系列开山之作
介绍了分解机器(FM),它是一种新的模型类,它结合了支持向量机(SVM)和分解模型的优点。与SVM一样,FM是使用任何实值特征向量的一般预测器。与SVM相比,FM使用分解参数模拟变量之间的所有交互。因此,即使在SVM失败的巨大稀疏性(如推荐系统)的问题中,他们也能够估计相互作用。我们证明了FM的模型方程可以在线性时间内计算,因此FM可以直接优化。因此,与非线性SVM不同,不需要双重形式的变换,并且可以直接估计模型参数,而无需解决方案中的任何支持向量。我们展示了与SVM的关系以及FM在稀疏设置中进行参数估计的优势。另一方面,有许多不同的因子分解模型,如矩阵分解,并行因子分析或专用模型,如SVD ++,PITF或FPMC。这些模型的缺点是它们不适用于一般预测任务,但仅适用于特殊输入数据。此外,他们的模型方程和优化算法是针对每个任务单独导出的。我们通过指定输入数据(即特征向量)显示FM可以模仿这些模型。这使得即使对于没有分解模型专业知识的用户,FM也很容易适用。
论文:Factorization Machines
代码:libfm
二、FFM(2017年)——对FM按照field改进
FM算法将所有特征归结到一个field,而FFM算法则按照field对不同特征进行区分,主要体现在交叉项中。在FM算法中user这个特征对应的latent vector不论是对price、genre还是movie都是相同的,而FFM算法中则对特征进行归类,latent vector会区分交叉filed,模型参数个数n(n-1)/2。可以看出来FM算法时FFM算法的一个特例,但是随着FFM算法对latent vector的细化,FM算法中交叉简化将不再适用.
论文:Field-aware Factorization Machines for CTR Prediction
代码:CTR_Prediction
三、微软Deep Crossing(2016年)——深度学习CTR模型的base model
微软于2016年提出的Deep Crossing可以说是深度学习CTR模型的最典型和基础性的模型。它涵盖了深度CTR模型最典型的要素,即通过加入embedding层将稀疏特征转化为低维稠密特征,用stacking layer,或者叫做concat layer将分段的特征向量连接起来,再通过多层神经网络完成特征的组合、转换,最终用scoring layer完成CTR的计算。跟经典DNN有所不同的是,Deep crossing采用的multilayer perceptron是由残差网络组成的。
论文:Deep Crossing: Web-Scale Modeling without Manually Crafted Combinatorial Features
四、FNN(2016年)——用FM的隐向量完成Embedding初始化
FNN相比Deep Crossing的创新在于使用FM的隐层向量作为user和item的Embedding,从而避免了完全从随机状态训练Embedding。由于id类特征大量采用one-hot的编码方式,导致其维度极大,向量极稀疏,所以Embedding层与输入层的连接极多,梯度下降的效率很低,这大大增加了模型的训练时间和Embedding的不稳定性,使用pre train的方法完成Embedding层的训练,无疑是降低深度学习模型复杂度和训练不稳定性的有效工程经验。
论文:Deep Learning over Multi-field Categorical Data
代码:dnn_ctr
五、CCPM(2015年)——输入实例中提取本地全局关键特征
提出了一种新的模型,基于卷积神经网络的卷积点击预测模型(CCPM)。CCPM可以从具有不同元素的输入实例中提取本地全局关键特征,这不仅可以实现单个广告展示,还可以实现顺序广告展示。
论文:A Convolutional Click Prediction Model
代码:DeepCTR
六、PNN (2016年)——丰富特征交叉的方式
PNN的全称是Product-based Neural Network,PNN的关键在于在embedding层和全连接层之间加入了Product layer。传统的DNN是直接通过多层全连接层完成特征的交叉和组合的,但这样的方式缺乏一定的“针对性”。首先全连接层并没有针对不同特征域之间进行交叉;其次,全连接层的操作也并不是直接针对特征交叉设计的。但在实际问题中,特征交叉的重要性不言而喻,比如年龄与性别的交叉是非常重要的分组特征,包含了大量高价值的信息,我们急需深度学习网络能够有针对性的结构能够表征这些信息。因此PNN通过加入Product layer完成了针对性的特征交叉,其product操作在不同特征域之间进行特征组合。并定义了inner product,outer product等多种product的操作捕捉不同的交叉信息,增强模型表征不同数据模式的能力 。
论文:Product-based Neural Networks for User Response Prediction
代码:product-nets
七、Google Wide&Deep(2016年)——记忆能力和泛化能力的综合权衡
Google Wide&Deep模型的主要思路正如其名,把单输入层的Wide部分和经过多层感知机的Deep部分连接起来,一起输入最终的输出层。其中Wide部分的主要作用是让模型具有记忆性(Memorization),单层的Wide部分善于处理大量稀疏的id类特征,便于让模型直接“记住”用户的大量历史信息;Deep部分的主要作用是让模型具有“泛化性”(Generalization),利用DNN表达能力强的特点,挖掘藏在特征后面的数据模式。最终利用LR输出层将Wide部分和Deep部分组合起来,形成统一的模型。Wide&Deep对之后模型的影响在于——大量深度学习模型采用了两部分甚至多部分组合的形式,利用不同网络结构挖掘不同的信息后进行组合,充分利用和结合了不同网络结构的特点。
论文:Wide & Deep Learning for Recommender Systems
代码:wide_deep
八、华为 DeepFM (2017年)——用FM代替Wide部分
在Wide&Deep之后,诸多模型延续了双网络组合的结构,DeepFM就是其中之一。DeepFM对Wide&Deep的改进之处在于,它用FM替换掉了原来的Wide部分,加强了浅层网络部分特征组合的能力。事实上,由于FM本身就是由一阶部分和二阶部分组成的,DeepFM相当于同时组合了原Wide部分+二阶特征交叉部分+Deep部分三种结构,无疑进一步增强了模型的表达能力。
论文:A Factorization-Machine based Neural Network for CTR Prediction
代码tensorflow-DeepFM
九、Google Deep&Cross(2017年)——使用Cross网络代替Wide部分
Google 2017年发表的Deep&Cross Network(DCN)同样是对Wide&Deep的进一步改进,主要的思路使用Cross网络替代了原来的Wide部分。其中设计Cross网络的基本动机是为了增加特征之间的交互力度,使用多层cross layer对输入向量进行特征交叉。单层cross layer的基本操作是将cross layer的输入向量xl与原始的输入向量x0进行交叉,并加入bias向量和原始xl输入向量。DCN本质上还是对Wide&Deep Wide部分表达能力不足的问题进行改进,与DeepFM的思路非常类似。
论文:Deep & Cross Network for Ad Click Predictions
代码:Deep-and-Cross-Keras
十、xDeepFM(2018年)——一种新颖的压缩交互网络
提出了一种新颖的压缩交互网络(CIN),其目的是以明确的方式和向量级别生成特征交互。我们证明了CIN与卷积神经网络(CNN)和递归神经网络(RNN)共享一些功能。我们进一步将CIN和经典DNN组合成一个统一的模型,并将这个新模型命名为eXtreme Deep Factorization Machine(xDeepFM)。一方面,xDeepFM能够明确地学习某些有界度特征交互; 另一方面,它可以隐含地学习任意低阶和高阶特征交互。
论文:xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems
代码:xDeepFM
十一、NFM(2017年)——对Deep部分的改进
相对于DeepFM和DCN对于Wide&Deep Wide部分的改进,NFM可以看作是对Deep部分的改进。NFM的全称是Neural Factorization Machines,如果我们从深度学习网络架构的角度看待FM,FM也可以看作是由单层LR与二阶特征交叉组成的Wide&Deep的架构,与经典W&D的不同之处仅在于Deep部分变成了二阶隐向量相乘的形式。再进一步,NFM从修改FM二阶部分的角度出发,用一个带Bi-interaction Pooling层的DNN替换了FM的特征交叉部分,形成了独特的Wide&Deep架构。其中Bi-interaction Pooling可以看作是不同特征embedding的element-wise product的形式。这也是NFM相比Google Wide&Deep的创新之处。
论文:Neural Factorization Machines for Sparse Predictive Analytics
代码:dnn_ctr
十二、AFM(2017年)——引入Attention机制的FM
AFM的全称是Attentional Factorization Machines,通过前面的介绍我们很清楚的知道,FM其实就是经典的Wide&Deep结构,其中Wide部分是FM的一阶部分,Deep部分是FM的二阶部分,而AFM顾名思义,就是引入Attention机制的FM,具体到模型结构上,AFM其实是对FM的二阶部分的每个交叉特征赋予了权重,这个权重控制了交叉特征对最后结果的影响,也就非常类似于NLP领域的注意力机制(Attention Mechanism)。为了训练Attention权重,AFM加入了Attention Net,利用Attention Net训练好Attention权重后,再反向作用于FM二阶交叉特征之上,使FM获得根据样本特点调整特征权重的能力。
论文:Attentional Factorization Machines - Learning the Weight of Feature Interactions via Attention Networks
代码:DeepCTR
十三、阿里DIN(2018年)——加入Attention机制的深度学习网络
AFM在FM中加入了Attention机制,2018年,阿里巴巴正式提出了融合了Attention机制的深度学习模型——Deep Interest Network。与AFM将Attention与FM结合不同的是,DIN将Attention机制作用于深度神经网络,在模型的embedding layer和concatenate layer之间加入了attention unit,使模型能够根据候选商品的不同,调整不同特征的权重。
论文:Deep Interest Network for Click-Through Rate Prediction
代码:DeepCTR
十四、阿里DIEN(2018年)——DIN的“进化”
DIEN的全称为Deep Interest Evolution Network,它不仅是对DIN的进一步“进化”,更重要的是DIEN通过引入序列模型 AUGRU模拟了用户兴趣进化的过程。具体来讲模型的主要特点是在Embedding layer和Concatenate layer之间加入了生成兴趣的Interest Extractor Layer和模拟兴趣演化的Interest Evolving layer。其中Interest Extractor Layer使用了DIN的结构抽取了每一个时间片内用户的兴趣,Interest Evolving layer则利用序列模型AUGRU的结构将不同时间的用户兴趣串联起来,形成兴趣进化的链条。最终再把当前时刻的“兴趣向量”输入上层的多层全连接网络,与其他特征一起进行最终的CTR预估。
论文:Deep Interest Evolution Network for Click-Through Rate Prediction
代码:dien
参考文献
https://zhuanlan.zhihu.com/p/63186101
https://www.jianshu.com/p/df942b145dcf