YeeKal
recsys

fm模型

YeeKal
"#recsys"

FM 模型

因子分解机(FM, Factorization Machine).线性模型假设特征之间是相互独立的,而FM模型增加了各特征之间的相互组合:

线性回归(Linear Regression)模型的方程式如下:

二阶多项式回归(Polynomial Regression)模型(Poly2 Model):

令$W=[w_{ij}]$,则$W$是一个对称矩阵,根据Cholesky分解:

可得FM模型方程:

其中$V_i$是矩阵$V$的第$i$行,可以看做是第$i$个特征的向量化,其中向量长度为$k(k\ll n)$,这样训练参数从$n^2$降到$nk$.

FM 模型计算

简化过程:

$$$$

  1. 时间复杂度由$O(kn^2)$降到$O(kn)$,时间复杂度降到线性。
  2. 在特征稀疏的场景下,很多特征为0,只需要计算非0特征就行。

梯度计算:

$$$$

FM模型应用

  • 回归任务(regression)
  • 二分类(binary classification)
  • 排序(ranking)

FFM 模型

DeepFM 模型

ref

projects:

blog:

open source:

  • LibFM Earliest library by the author himself for FMs
  • LibFFM: Library exclusively FFMs, code
  • xLearn: Scalable ML package for both FM & FFMs, github-code,doc
  • tffm Tensorflow implementation of arbitrary order FMs