FM 的 优点:
- 解决了特征稀疏的问题,能在非常系数数据的情况下进行预估。
- 解决了特征组合的问题,研究了特征与特征之间的向量,不像LR线性回归那样没有组合
- FM使一个通用模型,适用于大部分场景,而其他因式分解模型只能用于一些输入数据比较固定的情况
- 训练速度快,线性复杂度是线性的,优化效果很好
一般的线性回归:

考虑了特征组合:

缺点:复杂度太高,复杂度n^2,wij只能在xi,xj不同时为0的情况下训练,特征稀疏的情况下,大多数情况下xi,xj大多数情况下为0,训练不充分
FM的推导:
引入一个变量Vi,让Vi等于
Vi=(vi1,vi2,vi3,...,vik)T
所以当 i =1或者n时:
V1=(v11,v12,v13,...,v1k)T
Vn=(vn1,vn2,vn3,...,vnk)T
已知wij可以组成一个矩阵:
W=⎣⎢⎢⎢⎡w11w21⋮wn1w12w22⋮wn2......⋱...w1nw2n⋮wnn⎦⎥⎥⎥⎤nn
而Vi组成一个矩阵V:
V=⎣⎢⎢⎢⎡V1TV2T ⋮VnT⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡v11v21⋮vn1v12v22⋮vn2......⋱...v1kv2k⋮vnk⎦⎥⎥⎥⎤nk
所以可以有VVT=W
所以可以得到一个FM的推导公式:

其中,点积可以写成

所以原公式又可以写成


复杂度只n, k有关,所以这个FM的复杂度是nk,是线性复杂度,相对较小
拓展,FFM