FM的理解

本来想写一些Factor Machine(FM)的理解,百度了下,发现有些帖子介绍的很详细,所以只做一些总结。

1、FM可以说是LR的特征组合的升级版本,LR只考虑了单个特征的重要性,而FM考虑了两两特征之间的重要性。

2、FM一般用于数据稀疏场景,比如分类变量0-1编码(one-hot编码)后的高度稀疏数据。

3、FM也是二项式多项式核的SVM版本的改进版本,SVM的多项式需要投影到高维空间,而FM直接在原空间计算。

4、FM可以求解稀疏数据两两特征之间权重的原因:

(1)通过学习变量x_i的因向量v_i,进而学习到x_i和x_j之间w_ij的权重(v_i * v_j的点积求和).

(2)在优化算法求解参数v_i时,v_i的梯度和其他的所有特征都有关联,避免了x_i和x_j因稀疏直接相乘为0的场景。

使用场景:

1、高维稀疏数据

2、变量交叉(组合)探索

时间复杂度:O(kn)

FM的完整函数形式(来自原始paper):

优化算法使用到的梯度形式:

可以使用的软件:

1、fastFM:https://github.com/ibayer/fastFM

2、通过keras/tenforflow等神经网络框架搭建指定优化器的梯度优化算法

(0)

相关推荐