
DeepFM是一个集成了FM和DNN的神经网络框架,思路和Google的Wide&Deep相似,都包括wide和deep两部分。W&D模型的wide部分是广义线性模型,DeepFM的wide部分则是FM模型,两者的deep部分都是深度神经网络。DeepFM神经网络部分,隐含层的激活函数用ReLu和tanh做信号非线性映射,sigmoid函数做CTR预估的输出函数。
FM部分是一层线性模型(作用于raw feature)串联一层product layer(作用于embedding)。需要训练的参数即是FM的两个权重矩阵。
当数据尤其稀疏的时候(如在ctr场景下),二阶的ineraction feature能更有效的利用信息。


深度部分

两个主要的特点,一个是每个field的embedding保持相同的size,第二个是FM中的隐向量v被用作embedding 权重压缩数据,如下图。

对比:
FNN:embedding参数被FM影响;pre-training阶段效率低;FNN只捕获high-order特征组合(low-order特征对ctr很重要,DeepFM中的low-order特征由FM部分负责)
PNN:引入product层来捕获high-order特征组合,根据不同的product操作有三种变体IPNN(inner product)、OPNN(outer product)、PNN*(inner & outer)。缺陷:PNN和FNN一样忽视low-order特征组合。
W&D:对于Wide部分需要人工特征工程。

评估:

总结:
采用了general的wide&deep框架,在wide部分采用fm提取low-order特征,deep部分共享embedding权重(相当于分享了interaction feature),提取high-order的特征。总的来说,算是融合了当前几个比较流行的ctr框架。
网友评论