diff --git a/models/rank/deepfm/picture/1.jpg b/models/rank/deepfm/picture/1.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..09340a5e3e10abb9ef43926187048b48694f9b45
Binary files /dev/null and b/models/rank/deepfm/picture/1.jpg differ
diff --git a/models/rank/deepfm/picture/2.jpg b/models/rank/deepfm/picture/2.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..c928774b19f77cf578777050b9ec5adbaf2248a1
Binary files /dev/null and b/models/rank/deepfm/picture/2.jpg differ
diff --git a/models/rank/deepfm/picture/3.jpg b/models/rank/deepfm/picture/3.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..162efdb98f65ab421d9366b03bd6e5588b770717
Binary files /dev/null and b/models/rank/deepfm/picture/3.jpg differ
diff --git a/models/rank/deepfm/picture/4.jpg b/models/rank/deepfm/picture/4.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..2c4273eb9ca5d27d29bc43f06e5cd98261fc036a
Binary files /dev/null and b/models/rank/deepfm/picture/4.jpg differ
diff --git a/models/rank/deepfm/readme.md b/models/rank/deepfm/readme.md
index 09101909ec89f99dfb1014d91e4ccb21b6ffa087..98ded483a0a441c1fe7a04c17eb6684de55f81f6 100644
--- a/models/rank/deepfm/readme.md
+++ b/models/rank/deepfm/readme.md
@@ -102,7 +102,7 @@ PaddleRec Finish
deepFM模型的组网本质是一个二分类任务,代码参考`model.py`。模型主要组成是一阶项部分,二阶项部分,dnn部分以及相应的分类任务的loss计算和auc计算。模型的组网可以看做FM部分和dnn部分的结合,其中FM部分主要的工作是通过特征间交叉得到低阶特征,以二阶特征为主。FM的表达式如下,可观察到,只是在线性表达式后面加入了新的交叉项特征及对应的权值。
-$$Out=sigmoid(b + \sum^{N}_{i=1}W_iX_i + \sum^{N-1}_{i=1}\sum^{N}_{j=i+1}W_{ij}X_iX_j)$$
+
### 一阶项部分
一阶项部分类似于我们rank下的logistic_regression模型。主要由embedding层和reduce_sum层组成
@@ -111,12 +111,17 @@ $$Out=sigmoid(b + \sum^{N}_{i=1}W_iX_i + \sum^{N-1}_{i=1}\sum^{N}_{j=i+1}W_{ij}X
将离散数据通过embedding查表得到的值,与连续数据的输入进行相乘再累加的操作,合为一个一阶项的整体。
用公式表示如下:
-$$\sum^{N}_{i=1}W_iX_i$$
+
### 二阶项部分
-二阶项部分主要实现了公式中的交叉项部分,也就是特征的组合部分。Wij求解的思路是通过矩阵分解的方法。所有的二次项参数Wij可以组成一个对称阵W,那么这个矩阵就可以分解为 $W=V^TV$,V 的第 i 列便是第 i 维特征的隐向量。交叉项的展开式如下:
+二阶项部分主要实现了公式中的交叉项部分,也就是特征的组合部分。Wij求解的思路是通过矩阵分解的方法。所有的二次项参数Wij可以组成一个对称阵W,那么这个矩阵就可以如下分解:
-$$\sum^{N-1}_{i=1}\sum^{N}_{j=i+1}W_{ij}X_iX_j =1/2\sum^{k}_{j=1}((\sum^{N}_{i=1}W_iX_i)^2-\sum^{N}_{i=1}W_i^2X_i^2)$$
+
+
+V 的第 i 列便是第 i 维特征的隐向量。特征分量Xi与Xj的交叉项系数就等于Xi对应的隐向量与Xj对应的隐向量的内积,即每个参数 wij=⟨vi,vj⟩
+交叉项的展开式如下:
+
+
### Loss及Auc计算
- 预测的结果将FM的一阶项部分,二阶项部分以及dnn部分相加,再通过激活函数sigmoid给出,为了得到每条样本分属于正负样本的概率,我们将预测结果和`1-predict`合并起来得到predict_2d,以便接下来计算auc。
@@ -130,7 +135,7 @@ $$\sum^{N-1}_{i=1}\sum^{N}_{j=i+1}W_{ij}X_iX_j =1/2\sum^{k}_{j=1}((\sum^{N}_{i=1
在全量数据下模型的指标如下:
| 模型 | auc | batch_size | thread_num| epoch_num| Time of each epoch |
-| :------| :------ | :------| :------ | :------| :------ | :------
+| :------| :------ | :------| :------ | :------| :------ |
| deepFM | 0.8044 | 1024 | 10 | 2 | 约3.5小时 |
1. 确认您当前所在目录为PaddleRec/models/rank/deepfm