模型理解--对FM模型核心思想的理解

  在《深入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=1nwixi+i=1nj=i+1nwi,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=1nwixi+i=1nj=i+1nvi,vjxixj  偏导结果为:
∂ ∂ θ 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)=1xixij=1nvj,fxjvi,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)

你可能感兴趣的:(推荐系统算法,算法)