1. FM模型
对于训练集 。给定一个样本 ,即对于特征向量 ,有如下模型:
1.1 线性回归模型
- 代表样本的特征数量, 是第 个特征的值, 是模型参数
- 和 之间是相互独立的,即 中仅考虑单个特征,而没有考虑特征之间的组合(interaction)。
1.2 多项式模型
- 代表样本的特征数量 , 是第 个特征的值, 是模型参数
- :特征 和 的组合,当 和 都非零时,组合特征 才有意义
- 一共有 个,任意两个参数都是独立的
- 缺陷
在数据稀疏性普遍存在的实际应用场景中,每个 参数的训练需要大量 和 都非零的样本;由于样本数据本来就比较稀疏,满足“ 和 都非零”的样本将会非常少。训练样本的不足,很容易导致参数 不准确,最终将严重影响模型的性能。
1.3 因子分解机(FM)
为了解决稀疏
数据下的特征组合问题,Konstanz大学Steffen Rendle(现任职于Google)于2010年提出了FM(Factorization Machine)。即
- :全局偏置项
- :第 个特征变量的权重,
-
,
是第 维特征的隐向量
,隐向量的长度为 (k<<nk<<n),包含 个描述特征的因子。
⟨⋅,⋅⟩ 代表向量点积, - 模型复杂度
1.3.1 公式推导
在数据非常稀疏的场景下,由于大部分特征 的值为0,因此很难直接求解出 ,因此,通过引入辅助变量 ,即
因此,
从而,特征组合项
即 是这个对称矩阵的上三角部分求和(不包含对角线),所以 等于 减去对角线 再除以2。
因此,
使用随机梯度下降
(Stochastic Gradient Descent)法学习模型参数。那么,模型各个参数的梯度如下:
其中, 是隐向量 的第 个元素。由于 只与 有关,而与 无关,在每次迭代过程中,只需计算一次所有 的 ,就能够方便地得到所有 的梯度。显然,计算所有 的 的复杂度是 O(kn);已知 时,计算每个参数梯度的复杂度是 ;得到梯度后,更新每个参数的复杂度是 ;模型参数一共有 个。因此,FM参数训练的复杂度也是 。综上可知,FM可以在线性时间训练和预测,是一种非常高效的模型。
1.3.2 论文中的示例
假设有一个电影评分系统,该系统记录了用户 在特定时间 对电影 的评分 数据。
对于用户 (users) 和电影 (items) ,可以假设
系统记录的数据 为
需要根据这些数据来预测用户对电影的评分。Steffen Rendle 在文中给了一个创建特征的例子,如下图所示。
- User (蓝色方框):表示用户 ID (One-Hot编码),维度为
- Movie (红色方框):表示电影 ID (One-Hot编码),维度为
- Other Movies rated (黄色方框):表示用户评分过的所有电影,假设为电影集合 ,则特征分量
- Time (绿色方框):表示用户评价电影的时间,如(记录中最早的日期) 2009年1月作为基数1,则2009年5月为5
- Last Movie rated (棕色方框):表示用户最近评分过的一部电影,若当前用户评价当前电影之前还评价过其他电影,则用户评价的上一部电影位置取1,其余为0;若当前用户评价当前电影之前没有评价过其他电影,则所有分量为0
- :表示第 个样本的第 个特征分量
2. 总结、对比
2.1 FMs vs SVMs
- SVM的二元特征交叉参数 是相互独立的,而FM的二元特征交叉参数是两个 维向量的乘积,即
- 多项式 SVM 每个 参数的训练需要大量 和 都非零的样本,在数据稀疏场景中,由于样本数据稀疏,满足条件的训练样本将会非常少,容易导致参数 不准确,最终将严重影响模型的性能。而 FM 能够在稀疏严重的情况下估计参数,即使某个交叉特征在训练集中从未出现过,但仍然可以通过对应的两个特征的内积来估计其参数。
- FM可以在原始形式下进行优化学习,而基于kernel的非线性SVM通常需要在对偶形式下进行
- FM的模型预测是与训练样本独立,而SVM则与部分训练样本有关,即支持向量。
2.2 FMs vs MFs
分解模型包括 Matrix factorization (MF)、SVD++、PITF for Tag Recommendation、Factorized Personalized Markov Chains (FPMC),这些模型都只在特定场景下使用,输入形式也比较单一(比如MF只适用于categorical variables),而 FM通过对输入特征进行转换,同样可可以实现以上模型的功能,而且FM的输入可以是任意实数域
的数据,因此FM是一个更为泛化和通用的模型。
参考链接
- [1] libfm官网
- [2] FM Slice
- [3] Factorization Machines (Rendle2010FM)
- [4] 第09章:深入浅出ML之Factorization家族
- [5] CTR预估 论文精读(三)--Factorization Machines
- [6] 美团技术-深入FFM原理与实践
- [7] FM 论文笔记
- [8] Factorization Machines 学习笔记(一)预测任务
- [9] Factorization Machines 学习笔记(二)模型方程
- [10] FM算法(一):算法理论