因子分解机(Factorization Machines )知识点总结

最近遇到海量稀疏数据,尝试logistic regression之后发现模型效果不理解,尝试LR的非线性版本——因子分解机,下面记录下FM(Factorization Machines)的知识点~

1、目的、优缺点

目的:在特征稀疏情况下,特征如何组合,如何构建非线性超平面。

优缺点:

(1)特征稀疏时,模型仍能参数估计(SVM会失败)

(2)可以基于原始形式进行优化(需要像SVM一样借助支持向量),复杂度为线性

(3)对于实数型特征,FM均可用

 

2.1、模型方程

考虑单独特征的影响,同时也考虑特征之间的相互关系。FM的模型方程如下:

因子分解机(Factorization Machines )知识点总结
因子分解机(Factorization Machines )知识点总结

因子分解机(Factorization Machines )知识点总结

说明:因子分解机(Factorization Machines )知识点总结称为第i和变量和第j个变量的交叉项。FM通过因子分解的方法求解该交叉项。

 

2.2、为何使用因子分解

对于任何正定矩阵(positive definite matrix)W,存在W=V.V^t的矩阵分解形式,其中V的秩为k。

一般来说,是希望k足够大,但是挖掘模型通常来说数据量较少,没有充足的数据来评估W,所以选择较小的k,这时较小的k反而会提升模型的泛化能力(因为模型的容量降低了,学习能力下降了,但对于小样本数据集而言,学习能力足够)。

因子分解机(Factorization Machines )知识点总结

 

2.3、为何FM的因子分解技术对稀疏数据有效

稀疏数据下,由于没有足够的数据取评估变量之间的直接或间接的交叉项。

FM通过借助因子分解技术,打破了交叉项参数之间的独立性!即一个交叉项可以用于评语相关的交叉项参数!

通俗理解:A和P之间没有交集,但是呢,R和P之间有交集,那么<A、P> 和<A、R>之间可以存在交集。

 

2.4 技术复杂度

通常是因子分解机(Factorization Machines )知识点总结

但是重构模型方程之后,将复杂度降低到因子分解机(Factorization Machines )知识点总结

重构模型方程的推导公式:

因子分解机(Factorization Machines )知识点总结

 

3、优化算法

回归:均方误差最小化

分类:预测值的sign返回值,采用hinge或logit 损失

排序:因子分解机(Factorization Machines )知识点总结,pairwise分类loss

 

FM有线性计算时间的解析解。可以使用梯度下降算法SGD求解。

FM模型的梯度计算公式:

因子分解机(Factorization Machines )知识点总结

 

4、拓展到d-way(3个或3个以上变量之间的关系)

因子分解机(Factorization Machines )知识点总结

 

5、源码分析

github源码:

https://github.com/ibayer/fastFM

https://github.com/srendle/libfm

 

6、使用注意点

(1)对于2分类而言,标签需要是-1或1。

 

-- 未完待续 --