「DeepFM:A Factorization-Machine based Neural Network for CTR Prediction」- 论文摘要
DeepFM
由FM component和Deep component组成
- FM提取低阶组合特征,Deep提取高阶组合特征。不需要进行预训练以及人工特征工程。
- 共享feature embedding。FM和Deep共享输入和feature embedding。不但使得训练更快,而且使得训练更加准确。
优点:
- 不需要预训练FM得到隐向量
- 不需要人工特征工程
- 能同时学习低阶和高阶的组合特征
- FM模块和Deep模块共享feature embedding
数据
原始数据 = 种类特征(eg. gender, location) + 连续特征(eg. age) + label
- 种类特征进行one-hot编码
- 连续特征可直接使用,或者先进行离散化在进行one-hot编码
- 特征按照field分组
综上:原始数据-> (x, label)
x = [xfield1,xfield2,xfield3,…,xfieldm]
DeepFM结构图:
计算公式:
y = sigmoid( yFM+ yDNN)
其中yFM为FM component的输出,yDNN为DNN component的输出。y∈{0,1} ,为CTR预测概率。
FM component
\hat{y} = sigmoid(y_{FM} + y_{DNN})
FM component包含了加法单元和内积单元。
加法单元:提取一阶特征,直接从原始特征提取。
内积单元:原始特征先进行embedding,然后由embedding后的输出经过内积单元提取二阶组合特征。
最终维度:fieldsize + embedding_size
embedding_size对应的是:
\sum_{i = 1}^{d}\sum_{j=i+1}^{d} \left \langle V_{i},V^{j} \right \rangle x_{i} \cdot x_{j}
FM component总结:
- 实现了对一阶和二阶组合特征的建模
- 没有使用预训练
- 没有人工特征工程
Deep component
用来提取高阶组合特征。
原始特征首先经过embedding层降维后,然后经过多个全连接隐藏层输出,即yDNN
DeepFM:一阶特征(FM)+二阶特征(FM)+高阶特征(DNN)
在DeepFM之前有其他几个模型:
FNN与PNN的不足之处:
仅能提取高阶组合特征,低阶组合特征无法获取。
Wide&Deep的不足之处:
在Wide部分还需要进行人工特征工程。
本作品采用《CC 协议》,转载必须注明作者和本文链接