天天看点

Factorization Machines 因子分解机FM

1 简介

本文是根据2010年 Steffen Rendle的《Factorization Machines》翻译总结的。Factorization Machines简称FM,因子分解机。

FM结合了因子分解的优点和支持向量机SVM的优点。

FM用因子参数构建了所有变量间的交互。这些交互通常是存在很大的稀疏性,FM的优点就是处理这些稀疏性。而且是线性的计算时间。可以直接进行优化计算的。

另外,像其他因子模型,比如matrix factorization、parallel factor analysis,以及一些特定模型,如 SVD++, PITF or FPMC。这些模型的缺点是,他们不通用,都是针对特定的输入数据,特定的任务。而FM只需要改变相应的输入数据就可以模拟这些模型,所以FM更通用,尤其是对因子模型邻域不熟悉的用户。

总之,FM的优点如下:

1)FM可以在非常稀疏的数据下进行参数估计,而SVM不能;

2)FM是线性复杂度,不依赖支持向量。FM可以支持大数据,如Netflix,有1亿个训练实例。

3)FM是一个通用的预测器,可以应用于任何真实的特征向量。而其他的因子模型对输入数据有诸多限制。而FM只需要定义输入数据的特征向量,就可以模拟这些模型。

2 稀疏性

如下图,蓝色的4列代表用户,第一列是1的话,代表用户A;第2列是1的话,代表用户B;接着是红色的5列,代表看了不同的电影,看了TI电影的,在红色第一列标1. 可以看到数据很稀疏。

Factorization Machines 因子分解机FM

3 FM

3.1 模型公式

Factorization Machines 因子分解机FM
Factorization Machines 因子分解机FM

3.2 在稀疏下的参数估计

在稀疏的情况下,通常没有足够的数据评估参数间的交互关系。FM却可以在稀疏下表现的很好,主要是其通过因子他们,打破了交互参数间的独立性。这意味着,一个交互的数据可以用来评估其他相关的交互。

举个例子:用户A和电影Star Trek(ST)之间没交互,但和Star Wars有交互。用户B、C都和电影 Star War(SW)有相似的交互;用户A和C都对电影Titanic、Star War有交互,但不同的交互向量(不同的电影等级评价);用户B和这两个电影Star Trek(ST)、Star War(SW)都有相似的交互,,这样下来,直觉上,我们预测用户A对电影Star Trek(ST)的交互(评价),会和其与Star Wars的交互类似。

3.3 时间计算复杂度

下面公式证明FM的计算复杂度是O(kn)。

Factorization Machines 因子分解机FM

3.4 FM可以预测的类型

1)回归
2)二分类:hinge loss or logit loss.
3)排名ranking: pairwise classification loss
           

3.5 可以采用梯度下降学习

Factorization Machines 因子分解机FM

4 FM vs SVMs

SVM的公式可以重写如下:

Factorization Machines 因子分解机FM
Factorization Machines 因子分解机FM

SVM与FM对比总体如下:

1)SVM的密集参数要求所有交互的直接关系,但这些数据在稀疏情况下经常不存在。而FM可以很好处理稀疏;

2)FM可以直接的被学习,而非线性的SVM通常是对偶式的学习。

3)FM的模型公式是独立于训练数据的,但SVM依赖部分训练数据,如支持向量。

继续阅读