深入浅出 Factorization Machines (FM) 算法详解
前言:在计算广告和推荐系统领域,如何处理海量稀疏数据的特征交叉(Feature Interaction)一直是个核心命题。从早期的逻辑回归(LR)到暴力的 Poly2,再到优雅的 FM(因子分解机),每一次进化都是对数据理解的一次飞跃。
本文将带你深入 FM 的底层逻辑,不仅让你看懂公式,更让你理解其背后的工程美学。
一、 起点:为什么 LR 不够用了?
在推荐系统的早期,逻辑回归 (Logistic Regression, LR) 是绝对的主力。它的公式简单直接:
1. LR 的“线性”局限
LR 最大的问题在于它假设特征是相互独立的。
- 它能学到“男性用户(A)的权重”和“化妆品(B)的权重”。
- 但它无法捕捉“男性用户 且 点击化妆品”这种强关联的组合信号。
如果要让 LR 学会组合特征,工程师必须人工做特征交叉(Feature Engineering),这非常耗时且难以穷尽。
2. 暴力美学的失败:Poly2 模型
为了解决这个问题,人们想出了最直接的办法:把所有特征两两相乘,作为新特征扔进模型。这就是 Poly2 模型:
虽然引入了 来表示组合特征的权重,但这种方法在工业界遇到了三大“死穴”:
- 参数爆炸:参数量高达 。亿级特征下,内存直接溢出。
- 稀疏特征难训练:这是最致命的。要训练 ,必须要有样本同时包含特征 和特征 。在稀疏数据中,这种共现样本极少,导致 几乎全是 0。
- 泛化能力差:对于没见过的特征组合,模型束手无策(权重为0)。就像图片中提到的“火锅”例子,模型无法利用“重庆人爱吃辣”的共性去推断新样本。
二、 破局:FM 的“电子词典”哲学
Factorization Machines (FM) 的横空出世,彻底解决了 Poly2 的困境。如果说 LR/Poly2 是只会死记硬背的“复读机”,那么 FM 就是一本具备推理能力的“电子词典”。
1. 核心思想:隐向量 (Latent Vector)
FM 不再直接学习一个独立的权重 ,而是为每个特征 学习一个隐向量 (即 Embedding)。
两个特征 和 交叉时的权重,由它们向量的内积决定:
公式随之进化为:
2. 引入隐向量的两大优势
-
参数量急剧下降:从 降为 。其中 是向量维度(通常仅为几十),对于大规模稀疏数据,这是数量级的优化。
-
解决稀疏性与泛化问题:这是 FM 的灵魂。
- 即便训练集中从未出现过“男性+兰蔻”的组合,但只要“男性”和其他特征出现过(学到了 ),“兰蔻”和其他特征出现过(学到了 ),我们就能通过 计算出一个合理的权重。
- 这利用了向量的传递性,极大避免了数据稀疏带来的影响。
三、 面试硬核:如何在 时间内完成计算?
原始的 FM 公式中包含双重循环 ,理论复杂度看似是 。如果真是这样,FM 根本无法在线上实时推理。
FM 最精彩的地方在于通过数学变换,将复杂度降到了 线性时间 。
1. 数学推导 (The Magic Trick)
我们利用代数恒等式:。
将交叉项展开并重写:
2. 复杂度分析
仔细看公式右边:
- :只需要遍历一次所有非零特征。
- :同样只需要遍历一次。
- 外层还有一个 的循环。
因此,总复杂度为 。这个优化使得 FM 能够轻松应对亿级维度的特征。
四、 进阶:从 FM 到 FFM (Field-aware FM)
FM 虽然强大,但也并非完美。针对 FM 的局限性,后继者 FFM 诞生了。
1. FM 的局限
FM 对每个特征只学习一个隐向量。这导致特征缺乏“语境感”。
- 例子:特征“ESPN”在与“Nike”(广告主)交叉时,应该表现出体育属性;但在与“USA”(地区)交叉时,应该表现出媒体属性。
- FM 无法区分这种细微差别。
2. FFM 的改进:引入“域 (Field)”
FFM 提出:一个特征针对不同的“域”,应该有不同的隐向量。
- 特征 在遇到属于域 的特征 时,使用专用向量 。
3. FFM 的代价 (Trade-off)
天下没有免费的午餐,FFM 虽然精度更高,但付出了巨大的代价:
-
时间复杂度回退:FFM 的复杂度回归到了 。
- 原因:在 FFM 中,当 和不同特征交叉时,前面的系数(向量)是变化的。这导致我们无法像 FM 那样提取公因式,数学优化失效。
-
容易过拟合:参数量扩大了 倍( 为域的数量)。在数据稀疏场景下,过多的参数容易导致模型“学偏”,即对本质的欠拟合。
五、 总结
FM 算法是推荐系统发展史上的一个里程碑。它巧妙地结合了 SVM 的优点(处理稀疏数据)和 Factorization 模型(隐向量)的泛化能力。
- 它通过 Embedding 化 解决了稀疏特征组合难题。
- 它通过 数学技巧 解决了计算性能瓶颈。
即使在深度学习(Deep Learning)横行的今天,FM 的思想依然通过 DeepFM、Wide&Deep 等模型在工业界发光发热。理解 FM,就是理解现代推荐系统的基石。