在《深入FFM原理与实践》中提到:“所有二次项参数
w
i
j
w_{ij}
wij 可以组成一个对称阵
W
W
W,那么这个矩阵就可以分解为
W
=
V
T
V
W=V^TV
W=VTV,
V
V
V 的第
j
j
j 列便是第
j
j
j 维特征的隐向量。换句话说,每个参数
w
i
j
=
⟨
v
i
,
v
j
⟩
w_{ij}=\left \langle v_i,v_j \right \rangle
wij=⟨vi,vj⟩,这就是FM的核心思想。”
在POLY2模型中等式为:
y
^
(
x
)
=
w
0
+
∑
i
=
1
n
w
i
x
i
+
∑
i
=
1
n
∑
j
=
i
+
1
n
w
i
,
j
x
i
x
j
\hat{y}(x)=w_0+\sum_{i=1}^nw_ix_i+\sum_{i=1}^n{\sum_{j=i+1}^n{w_{i,j}x_ix_j}}
y^(x)=w0+i=1∑nwixi+i=1∑nj=i+1∑nwi,jxixj 在梯度下降时,偏导求解结果如下:
∂
∂
θ
y
^
(
x
)
=
{
1
i
f
θ
i
s
w
0
x
i
i
f
θ
i
s
w
i
x
i
y
i
i
f
θ
i
s
w
i
j
\frac{\partial }{\partial \theta}\hat{y}(x)=\begin{cases} 1 &{if\;\theta\;is\;w_0} \\ x_i &{if\;\theta\;is\;w_i} \\ x_iy_i &{if\;\theta\;is\;w_{ij}}\\ \end{cases}
∂θ∂y^(x)=⎩⎪⎨⎪⎧1xixiyiifθisw0ifθiswiifθiswij 而在FM模型中等式为:
y
^
(
x
)
=
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}(x)=w_0+\sum_{i=1}^nw_ix_i+\sum_{i=1}^n{\sum_{j=i+1}^n{{\left \langle v_i,v_j \right \rangle}x_ix_j}}
y^(x)=w0+i=1∑nwixi+i=1∑nj=i+1∑n⟨vi,vj⟩xixj 偏导结果为:
∂
∂
θ
y
^
(
x
)
=
{
1
i
f
θ
i
s
w
0
x
i
i
f
θ
i
s
w
i
x
i
∑
j
=
1
n
v
j
,
f
x
j
−
v
i
,
f
x
i
2
i
f
θ
i
s
v
i
,
f
\frac{\partial }{\partial \theta}\hat{y}(x)=\begin{cases} 1 &{if\;\theta\;is\;w_0} \\ x_i &{if\;\theta\;is\;w_i} \\ x_i\sum_{j=1}^nv_{j,f}x_j-v_{i,f}x_i^2 &{if\;\theta\;is\;v_{i,f}}\\ \end{cases}
∂θ∂y^(x)=⎩⎪⎨⎪⎧1xixi∑j=1nvj,fxj−vi,fxi2ifθisw0ifθiswiifθisvi,f 于是便会发现在POLY2模型中,如果训练数据过于稀疏,导致
x
i
y
i
=
0
x_iy_i=0
xiyi=0 的情况大量出现,那么在求解的时候
w
i
j
w_{ij}
wij 也会大量出现0,也就是虽然引进两两组合的特征,但是训练效果不好;但是在FM模型中则不会出现这个问题,FM能够抓住变量间的相互作用,并且时间复杂度为
O
(
k
n
)
O(kn)
O(kn)。
模型理解--对FM模型核心思想的理解
最新推荐文章于 2024-07-17 23:24:38 发布