趁今天618剁手节,老shi决定带大家去剁手,哦不,是认识广告CTR预估中非常有名的深度学习模型DeepFM。话不多说,马上进入正题~
DeepFM模型最早是哈工大与华为诺亚方舟实验室论文中提出的,众所周知,在广告CTR预估任务中,最重要的是学习到用户点击行为背后隐含的特征组合。在不同的推荐场景中,低阶组合特征或高阶组合特征都可能会对最终的CTR产生影响。而DeepFM模型有效结合了因子分解机与神经网络在特征学习中的优点,它可以同时提取到低阶组合特征与高阶组合特征,无需像Wide&deep模型那样需要额外做人工特征工程。实验表明DeepFM比大部分CTR预估模型更加有效,并且效率高。
CTR预测学习隐式特征非常重要的一点是学习用户点击行为背后的特征组合。例如,男性青少年喜欢射击游戏和RPG游戏,意味着应用类别、用户性别和年龄的特征组合是影响用户CTR的一个非常重要的因素。通常,用户点击行为背后特征的这种交互可以是高度复杂的,此时低阶和高阶特征交互都发挥着重要作用。
一、DeepFM模型介绍
1、首先看DeepFM模型的结构图:
从上图可以看到,DeepFM包含两部分:因子分解机部分(FM)与神经网络部分(DNN),这两部分共享同样的输入。所以DeepFM的预测结果可以写为:
进一步可以看到DeepFM模型的输入数据x包含m个filed的数据,并且x同时包含连续特征与离散特征。离散特征一般需要进行one-hot编码处理,连续特征可以使用其数值本身或者离散之后的one-hot编码。对应的标签取值为0或者1, 其中0表示没有点击,1表示点击。这样x就可以表示为m维长度的向量[x_field1,x_field2,…,x_fieldj,…,x_fieldm]。一般来说,输入数据x是一个高维稀疏向量,而CTR预估的主要任务就是构建一个预测模型,从而预测在特定的情景下用户点击某个产品的概率。
2、FM部分结构图:
FM部分是一个因子分解机,关于因子分解机可以参阅论文https://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf。FM部分最大的特点是引入了隐变量,针对几乎不出现或者很少出现的隐变量,FM也可以很好地学习。对于给定特征i和j,向量wi,wj用于表征一阶特征的重要性,隐变量Vi,Vj用于表示与其他特征的相互影响,即Vi(Vj)用于表征二阶特征,而神经网络部分则主要用于构建更高阶特征。
由图2可以得到FM的输出公式:
3、DNN部分结构图:
DNN部分是一个全连接的前馈神经网络,与图像或语音类输入不同,图像或语音的输入数据一般是连续而且密集的,而用于CTR的输入一般是极其稀疏的,因此需要特别引入一个嵌入层(embedding layer)来处理。具体实现为:在第一层隐含层之前,引入一个嵌入层来完成将高维的输入向量压缩为低维稠密向量。
嵌入层(embedding layer)的结构如上图所示,它有两个重要特性:
1)尽管不同特征field的输入长度不同,但经过embedding之后向量的长度均为k。
2)在FM部分得到的隐变量将作为嵌入层网络的权重。
需要指出的是,FM部分与DNN部分共享相同的embedding带来了两方面好处:
1、从原始数据中同时学习到了低阶与高阶特征。
2、不再需要人工特征工程,而Wide&Deep需要进行人工特征工程。
二、与其他模型对比
以下主要对比DeepFM模型与其他深度学习模型之间的差异。不同模型的结构如下图所示:
FNN:如图5(左)所示,FNN是FM初始化的前馈神经网络。FM预训练策略存在两个局限性:
1)嵌入参数可能会受到FM的影响;
2)预训练阶段的引入会降低效果。此外,FNN仅捕获高阶特征交互。相比之下,DeepFM不需要预训练就可以学习到高阶和低阶特征交互。
PNN:如图5(中)所示,为了捕捉到高阶特征,PNN在嵌入层与第一层隐含层之间引入了product layer。而根据不同的乘积方式,PNN有三种变种:IPNN,OPNN,PNN*,分别对应内积,外积,内积与外积。在具体使用中,因为外积的近似计算损失了大量的信息,使得外积的结果不如内积可靠。然而尽管如此,考虑到product layer的输出与第一层隐含层的连接为全连接,内积计算的计算复杂度也比较高。不同于PNN,DeepFM的procdut layer只和最终的输出连接,也就是一个神经元。因此与FNN相似,不同类型的PNN都忽略了低阶特征的重要性。
Wide&Deep:如图5(右)所示, Wide&Deep是google提出的可以同时提取低阶和高阶组合特征的模型,但其wide部分的输入需要进行人工特征工程。相应地,DeepFM可以直接处理原始输入特征而不需要人工特征工程。
根据以上,可以总结得出不同模型之间的关系如下表所示:
在DeepFM中,FM部分与DNN部分的feature embedding是共享的。而这种共享的策略又进一步通过反向传播的方式影响了低阶与高阶的特征组合,从而构建出更具有表征能力的特征。
三、总结
在Kaggle比赛中使用的公开数据集Criteo Dataset与私有数据集对LR,FM,FNN,PNN,Wide&Deep与DeepFM模型进行对比实验。在性能评估中,在GPU与CPU两种计算模式下,DeepFM几乎均为最有效的模型。在有效性评估中,AUC与LogLoss两种评价指标下,DeepFM均达到了最优的结果。
参考论文:
https://arxiv.org/pdf/1703.04247.pdf