DeepFM: A Factorization-Machine based Neural Network for CTR Prediction 2017
Last updated
Was this helpful?
Last updated
Was this helpful?
PDF: DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
类似于Wide&Deep,华为诺亚方舟实验室提出了DeepFM模型,它的特点是:
不需要预训练,直接端到端训练
同时学习低阶和高阶的特征交叉
Wide部分和Deep部分共享特征的Embedding
显然,Wide侧是FM,Deep侧就是一个多层神经网络。而且Wide侧和Deep侧共享了底层的特征Embedding。
DeepFM同时考虑了低阶(FM)和高阶(Deep)特征交叉,和单独各自作为模型相比,这样做会带来额外的收益。
Wide侧采用FM避免了特征工程,因为它能自动进行特征交叉。
设训练数据为n个样本,其中,,。
CTR预测模型为。
就和FM一样,对于每一个特征,都会有一个一阶权值和一个二阶特征交叉的隐向量(Embedding),而且还会被Deep模型共享用来进行高阶特征交叉。
所有的参数,包括,,和深度网络参数,会按照如下的模型进行训练:
其中,为FM部分的输出值,为Deep部分的输出值。
模型为:
Deep部分就是一个简单的前馈神经网络,用于高阶特征交叉。
FM部分和Deep部分共享了特征的Embedding层,该层具体结构如下:
特征的Embedding其实就是OneHot对应的神经网络权重,这一点和Word2Vec一样。
DeepFM的结构只适合用于排序,那怎么用于召回呢?
其实,我们联想到FM用于召回的方法,即分别将User和Item各自所有特征的Embedding相加,得到表征User和Item的两个向量,即
则FM的预测值为
当然上述只取了FM原始公式中的User和Item的二阶交叉项,是原始FM的一种近似。
然后我们发现,如果把DeepFM中的FM部分改为上述形式,就可以使用双塔架构来构建用于召回的DeepFM了。
为什么要用双塔架构呢,除了这样可以使用Deep外,另一个原因是,其负采样方式特别适合召回。
具体的架构如下所示:
===