1.进化路线
- LR:没有较叉项
- ->FM:LR+交叉项,一个特征一个向量
- ->FFM:一个特征对每一个field(属性名)的交互有一个向量,一个特征有一个特征矩阵。
- ->AFM:每个内积都有一个权重,求内积加权和(self-attention)
- ->FNN:预训练好的FM,输入DNN
- ->PNN:embedding layer和first hidden layer之间增加了一个product layer
- ->DeepFM:不预训练,不用人工特征,one-hot->embedding->FM/hidden
2. 公式比较
FM:系列
F
M
(
x
)
=
w
0
+
∑
i
=
1
n
w
i
x
i
+
∑
i
=
1
n
−
1
∑
j
=
i
+
1
n
<
v
i
,
v
j
>
x
i
x
j
,
l
i
n
e
a
r
(
x
)
=
w
0
+
∑
i
=
1
n
w
i
x
i
FM(x)=w_0 + \sum_{i=1}^nw_ix_i+\sum_{i=1}^{n-1}\sum_{j=i+1}^n<v_i,v_j>x_ix_j,linear(x)=w_0 + \sum_{i=1}^nw_ix_i
FM(x)=w0+∑i=1nwixi+∑i=1n−1∑j=i+1n<vi,vj>xixj,linear(x)=w0+∑i=1nwixi
F
F
M
(
x
)
=
w
0
+
∑
i
=
1
n
w
i
x
i
+
∑
i
=
1
n
−
1
∑
j
=
i
+
1
n
<
v
i
,
f
j
,
v
j
,
f
i
>
x
i
x
j
FFM(x)=w_0 + \sum_{i=1}^nw_ix_i+\sum_{i=1}^{n-1}\sum_{j=i+1}^n<v_{i,f_j},v_{j,f_i}>x_ix_j
FFM(x)=w0+∑i=1nwixi+∑i=1n−1∑j=i+1n<vi,fj,vj,fi>xixj
A
F
M
(
x
)
=
w
0
+
∑
i
=
1
n
w
i
x
i
+
P
T
∑
i
=
1
n
−
1
∑
j
=
i
+
1
n
a
i
j
<
v
i
,
v
j
>
x
i
x
j
AFM(x)=w_0 + \sum_{i=1}^nw_ix_i+P^T\sum_{i=1}^{n-1}\sum_{j=i+1}^na_{ij}<v_{i},v_{j}>x_ix_j
AFM(x)=w0+∑i=1nwixi+PT∑i=1n−1∑j=i+1naij<vi,vj>xixj
F
N
N
(
x
)
=
m
l
p
(
l
z
)
,
l
z
=
e
m
b
e
d
(
x
)
,
e
m
b
e
d
使
用
预
训
练
过
FNN(x)=mlp(l_z),l_z=embed(x),embed使用预训练过
FNN(x)=mlp(lz),lz=embed(x),embed使用预训练过
P
N
N
(
x
)
=
m
l
p
(
l
z
+
l
p
)
,
l
z
=
e
m
b
e
d
(
x
)
,
l
p
=
内
积
或
外
积
PNN(x)=mlp(l_z+l_p),l_z=embed(x),l_p=内积或外积
PNN(x)=mlp(lz+lp),lz=embed(x),lp=内积或外积
D
e
e
p
F
M
(
x
)
=
F
M
(
x
)
+
m
l
p
(
e
m
b
e
d
(
x
)
)
DeepFM(x)=FM(x)+mlp(embed(x))
DeepFM(x)=FM(x)+mlp(embed(x))
N
F
M
(
x
)
=
l
i
n
e
a
r
(
x
)
+
m
l
p
(
F
M
(
x
)
)
NFM(x)=linear(x)+mlp(FM(x))
NFM(x)=linear(x)+mlp(FM(x))
D
e
e
p
C
r
o
s
s
(
x
)
=
L
i
n
e
a
r
(
[
C
r
o
s
s
(
l
z
)
,
M
L
P
(
l
z
)
]
)
,
C
r
o
s
s
(
l
z
)
=
l
z
+
l
z
∗
L
i
n
e
a
r
1
(
l
z
)
+
.
.
.
,
l
z
=
E
m
b
e
d
(
x
)
Deep_Cross(x)=Linear([Cross(l_z),MLP(l_z)]),Cross(l_z)=l_z+l_z*Linear_1(l_z)+...,l_z=Embed(x)
DeepCross(x)=Linear([Cross(lz),MLP(lz)]),Cross(lz)=lz+lz∗Linear1(lz)+...,lz=Embed(x)