1. 什么是FM?
FM即Factor Machine,因子分解机。
任意的 N×N 实对称矩阵都有 N 个线性无关的特征向量。并且这些特征向量都可以正交单位化而得到一组正交且模为 1 的向量。故实对称矩阵 A 可被分解成:

其中,Q为正交矩阵,Λ为实对角矩阵。
2. 为什么需要FM?
1、特征组合是许多机器学习建模过程中遇到的问题,如果对特征直接建模,很有可能会忽略掉特征与特征之间的关联信息,因此,可以通过构建新的交叉特征这一特征组合方式提高模型的效果。
2、高维的稀疏矩阵是实际工程中常见的问题,并直接会导致计算量过大,特征权值更新缓慢。试想一个10000100的表,每一列都有8种元素,经过one-hot独热编码之后,会产生一个10000800的表。因此表中每行元素只有100个值为1,700个值为0。
而FM的优势就在于对这两方面问题的处理。首先是特征组合,通过对两两特征组合,引入交叉项特征,提高模型得分;其次是高维灾难,通过引入隐向量(对参数矩阵进行矩阵分解),完成对特征的参数估计。
3. FM用在哪?
我们已经知道了FM可以解决特征组合以及高维稀疏矩阵问题,而实际业务场景中,电商、豆瓣等推荐系统的场景是使用最广的领域,打个比方,小王只在豆瓣上浏览过20部电影,而豆瓣上面有20000部电影,如果构建一个基于小王的电影矩阵,毫无疑问,里面将有199980个元素全为0。而类似于这样的问题就可以通过FM来解决。
FM算法与线性回归相比增加了特征的交叉。自动选择了所有特征的两两组合,并且给出了两两组合的权重。
如果给两两特征的组合都给一个权重的话,需要训练的参数太多了。比如我们有N维的特征,这样的话就需要NN量级的参数。FM算法的一个优点是减少了需要训练的参数。这个也是参考了矩阵分解的想法。有N个特征,特征间的权重,需要一个NN的权重矩阵。把这个NN的矩阵分解成 KN的矩阵V的乘积,权重矩阵W=VT*V。把每个特征用长度为K的向量来表示,此处应该是每个特征也有一个向量,而不是每个特征的值有一个向量。比如有一个长度为K的向量来表示性别这个特征。
此处的K是自己设置的,K<<N。
4. FM长什么样?
在展示FM算法前,我们先回顾一下最常见的线性表达式:

其中w0 为初始权值,或者理解为偏置项,wi 为每个特征xi 对应的权值。可以看到,这种线性表达式只描述了每个特征与输出的关系。
FM的表达式如下,可观察到,只是在线性表达式后面加入了新的交叉项特征及对应的权值。



本文深入解析因子分解机(FM)的工作原理,介绍其如何解决特征组合与高维稀疏矩阵问题,尤其适用于电商和推荐系统场景。文章涵盖FM的数学表达、交叉项展开、权值求解以及与SVM的对比,最后对比FFM算法,详细阐述其在CTR预估中的应用。
最低0.47元/天 解锁文章
5434

被折叠的 条评论
为什么被折叠?



