FM算法解析

背景

FM算法全称因子分解机,具有以下特点:

  1. 降低了参数量,参数从 n(n+1)2 降到 kn
  2. 表达了特征之间的交叉
  3. 模型复杂度可以从O(kn2) 优化到O(kn)
  4. 提升了泛化能力,即使训练样本中不存在的<a,b>交叉项,也可以通过学习出的隐向量来预估

具体公式

y=w0+ni=1wixi+ni=1nj=i+1<vi,vj>xixj

其中vi vj 是对应xi xj 的隐向量,<vi,vj>表示两个向量的内积(inner product)

优化过程:ab+bc+ca=12(a+b+c)2a2b2c2

ni=1nj=i+1<vi,vj>xixj

=12ni=1nj=1<vi,vj>xixj12ni=1<vi,vi>xixi

=12(ni=1nj=1kf=1vi,fvj,fxixjni=1kf=1vi,fvi,fxixi)

=12kf=1(ni=1vi,fxi)(nj=1vj,fxj)ni=1v2i,fx2i

=12kf=1(ni=1vi,fxi)2ni=1v2i,fx2i

梯度下降

loss=12(y¯y)2

lossw0=1

losswi=xi

lossvi,f=xinj=1vj,fxjvi,fx2i

------ 本文结束 ------
k