GLM(General Linear Model)
y = w 0 + ∑ i = 1 n w i x i y = w_0 + \sum_{i=1}^nw_ix_i y=w0+i=1∑nwixi
FM(Factorization Machine)
y
=
w
0
+
∑
i
=
1
n
w
i
x
i
+
∑
i
=
1
n
∑
j
=
i
+
1
n
w
i
j
x
i
x
j
y = w_0 + \sum_{i=1}^nw_ix_i + \sum_{i=1}^{n}\sum_{j=i+1}^nw_{ij}x_ix_j
y=w0+i=1∑nwixi+i=1∑nj=i+1∑nwijxixj
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
y = w_0 + \sum_{i=1}^nw_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
FFM(Field-aware Factorization Machine)
y = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n < V i , f j , V j , f i > x i x j y = w_0 + \sum_{i=1}^nw_ix_i+\sum_{i=1}^n\sum_{j=i+1}^n<V_{i,f_j},V_{j,f_i}>x_ix_j y=w0+i=1∑nwixi+i=1∑nj=i+1∑n<Vi,fj,Vj,fi>xixj
DeepFM
整体对比
广度模型(GLM、FM、FFM)学习一阶或两阶特征组合。
深度模型(FNN、PNN)学习高阶特征组合。
广度和深度模型(Wide&Deep、DeepFM)同时学习低阶和高阶特征组合。
DeepFM和Wide&Deep相比,无需特征工程,包含低阶和高阶特征组合。
FM对比GLM:
GLM不能组合出以前从来没出现过的特征,FM可以。
GLM学习的是组合特征的权重(
W
i
j
∗
X
i
X
j
W_{ij} * X_iX_j
Wij∗XiXj),对于没有出现的组合特征,权重无法学习。
W
i
j
W_{ij}
Wij和
W
i
k
W_{ik}
Wik是相互独立的。
FM学习的是特征的隐向量(
<
v
i
,
v
j
>
∗
X
i
X
j
<v_i,v_j>*X_iX_j
<vi,vj>∗XiXj),没有出现的特征组合也可以通过隐向量内积得到。FM通过
v
i
v_i
vi,
v
j
v_j
vj去模拟
W
W
W矩阵,
v
i
vi
vi,
v
j
vj
vj相乘也打破了特征之间的独立性。只要与
X
i
X_i
Xi有关的特征,都能够学习到
v
i
v_i
vi,进而影响到
<
v
i
,
v
j
>
<v_i, v_j>
<vi,vj>和
<
v
i
,
v
k
>
<v_i, v_k>
<vi,vk>向量。