DeepFM的背景
对于CTR的推荐系统模型,在许多场景中,低阶组合特征和高阶组合特征都会对CTR造成一定的影响。其中高阶组合特征将到来更复杂的计算量,模型的整体表现将会下降。所以在平常的推荐中经常使用低阶组合特征进行计算。
对于高阶组合特征,可以使用DNN模型进行处理,但可能会发生维度爆炸的可能,所以在DNN的基础上加入Field的思想,在中将将特征转换为Dense Vector,再进行连接。然后再加入低阶特征组合。对于DeepFM就是对于低阶特征组合进行建模再添加进入DNN中。
DeepFM的结构
DeepFM结合了低阶特征组合和高阶特征组合的模型,最后的输出为 y ^ = s i g m o d ( y F M + y D N N ) \hat{y}=sigmod(y_{FM}+y_{DNN}) y^=sigmod(yFM+yDNN),其中Sparse Features中的黄色是代表非0的特征,灰色则代表为0的特征。
FM模型
FM模型是结合了一阶特征组合和二阶特征组合进行建模处理的。
其公式为
y
^
=
w
0
+
∑
i
=
1
N
w
i
x
i
+
∑
i
=
1
N
∑
j
=
i
+
1
N
<
v
i
,
v
j
>
x
i
x
j
\hat{y} = w_0+\sum_{i=1}^N w_ix_i + \sum_{i=1}^N \sum_{j=i+1}^N <v_i ,v_j> x_ix_j
y^=w0+i=1∑Nwixi+i=1∑Nj=i+1∑N<vi,vj>xixj
其中
<
v
i
,
v
j
>
=
∑
f
=
1
k
v
i
f
v
j
f
<v_{i},v_{j}>=\sum^{k}_{f=1}v_{if}v_{jf}
<vi,vj>=∑f=1kvifvjf,则有
∑
i
=
1
N
∑
j
=
i
+
1
N
<
v
i
,
v
j
>
=
1
2
∑
f
=
1
k
(
(
∑
i
=
1
n
v
i
f
x
i
)
2
−
∑
i
=
1
n
v
i
f
2
x
i
2
)
\sum_{i=1}^N \sum_{j=i+1}^N <v_i ,v_j> =\frac{1}{2}\sum^{k}_{f=1}((\sum^{n}_{i=1}v_{if}x_{i})^2-\sum^{n}_{i=1}v_{if}^{2}x_{i}^{2})
i=1∑Nj=i+1∑N<vi,vj>=21f=1∑k((i=1∑nvifxi)2−i=1∑nvif2xi2)
最后的公式为
y
^
=
w
0
+
∑
i
=
1
N
w
i
x
i
+
1
2
∑
f
=
1
k
(
(
∑
i
=
1
n
v
i
f
x
i
)
2
−
∑
i
=
1
n
v
i
f
2
x
i
2
)
\hat{y} = w_0+\sum_{i=1}^N w_ix_i +\frac{1}{2}\sum^{k}_{f=1}((\sum^{n}_{i=1}v_{if}x_{i})^2-\sum^{n}_{i=1}v_{if}^{2}x_{i}^{2})
y^=w0+i=1∑Nwixi+21f=1∑k((i=1∑nvifxi)2−i=1∑nvif2xi2)
则FM的时间复杂度为O(kn)
Deep模型
该模型用于解决高阶特征组合,首先将稀疏变量输入Dense Embeddings进行矩阵稠密化,在输入到DNN层中,再用 s i g m o d sigmod sigmod函数激活, y D N N = s i g m o d ( W L a L + b L ) y_{DNN}=sigmod({W_{L}a^L+b^L}) yDNN=sigmod(WLaL+bL)