DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
目录
- 概
- 主要内容
- 数据
- FM 部分
- Deep 部分
- Joint
- 其它细节
- 代码
Guo H., Tang R., Ye Y., Li Z. and He X. DeepFM: a factorization-machine based neural network for CTR prediction. In International Joint Conference on Artificial Intelligence (IJCAI), 2017.
概
作者认为特征的low-order交叉和high-order交叉对于预测都是同等重要的, 但是之前的工作要么偏向low-order, 要么偏向high-order, 要么依赖特征工程. 本文就提出一种能够自动学习的DeepFM.
主要内容
数据
假设数据形为 \((x, y)\), 其中 \(x\) 包含 \(m\)-fields:
\[x = [x_{field_1}, x_{field_2}, \cdots, x_{field_m}]. \]每一个field就是某一种特征属性, 对于类别型的field, \(x_{field}\)是 one-hot 向量 (如性别等属性), 而对于连续型的 field \(x_{field}\)就是值本身 (比如年龄等属性). 通常 \(x\) 是一个非常稀疏的向量.
标签 \(y \in \{0, 1\}\) 则表示该 item 是否被点击了.
FM 部分
FM 部分实际上就是:
- Addition 模块:
- 交叉模块 (内积):
其中 \(V_i \in \mathbb{R}^k\) 为 \(x_i\) 所对应的 embedding.
- 最后
问: 为什么不 field-aware ?
Deep 部分
- 通过 embedding layer 为每个 field 提取 embedding \(e\), 最后得到:
- 通过 MLP 获得 high-order 的信息:
这里 \(\sigma(\cdot)\) 仅仅代表激活函数.
Joint
最后通过
\[\hat{y} = sigmoid(y_{FM} + y_{DNN}) \]进行预测.
其它细节
- FM, Deep 部分共享 \(V\);
- dropout: 0.5;
- MLP: 400-400-400;
- optimizer: Adam;
- Actication: ReLU
代码
[official]
[PyTorch]
[TensorFlow]