Factorization Machines介绍

Steffen Rendle2010年提出Factorization Machines[1](下面简称FM),并发布开源工具libFM[2]。凭借这单个模型,他在KDD Cup 2012上,取得Track1的第2名和Track2的第3名。这篇文章简要介绍下这个模型。

与其他模型的对比

SVM相比,FM对特征之间的依赖关系用factorized parameters来表示。对于输入数据是非常稀疏(比如自动推荐系统),FM搞的定,而SVM搞不定,因为训出的SVM模型会面临较高的bias。还有一点,通常对带非线性核函数的SVM,需要在对偶问题上进行求解;而FM可以不用转为对偶问题,直接进行优化。

目前还有很多不同的factorization models,比如matrix factorization和一些特殊的模型SVD++, PITF, FPMC。这些模型的一个缺点是它们只适用于某些特定的输入数据,优化算法也需要根据问题专门设计。而经过一些变换,可以看出FM囊括了这些方法。

模型简介

2-way FM(degree = 2)FM中具有代表性,且比较简单的一种。就以其为例展开介绍。其对输出值是如下建模:

Factorization Machines介绍 - vividfree - 罗维的BLOG

公式说明:

(1) 模型的参数包括:;

(2) n是特征维度;

(3) k是定义factorization维度的超参数,是正整数。

(4) FM中,如何对特征之间的依赖关系建模?首先用k维向量去描述每个维度,然后对2个维度所对应的vi和vj求点积,以此来刻画2个特征之间的特征关系。如果需要刻画x(x>2)个特征之间的关系,可以用x-way FM模型。

(5) 表面上看式子的第3项的计算复杂度为O(kn2),但其实可以经过简单的数学处理,计算复杂度降为O(kn)

 

FM可以用于多种预测问题,包括回归、分类和排序。对不同的预测问题,可以选择合适的loss termregularization term。另外,FM的梯度也很容易求。

资料推荐

[1] FM的开山之作:http://www.inf.uni-konstanz.de/~rendle/pdf/Rendle2010FM.pdf

[2] libFM工具:http://www.libfm.org/

[3] KDD2012toturialhttp://www.inf.uni-konstanz.de/~rendle/pdf/Rendle2012-kddtutorial.pdf

 

转自:

http://luowei828.blog.163.com/blog/static/310312042013101462926555/

发布者

David 9

邮箱:yanchao727@gmail.com 微信: david9ml

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注