Type: entity
Confidence: 0.85
Created: 2026-04-16
Updated: 2026-04-16
Tags: 推荐系统分解模型开源工具CTR预估

libFM

概述

Steffen Rendle 开发的 Factorization Machines 开源 C++ 实现库,支持 SGD、ALS、MCMC 三种优化方法,是 FM 模型在工业界普及的核心工具。

关键内容

  1. 功能特性:完整实现了 Factorization Machines 模型,支持回归、二分类、排序三种任务类型,对应最小二乘损失、logit/hinge 损失、BPR 成对排序损失。
  2. 优化方法:提供三种优化算法——SGD(随机梯度下降,适合大规模在线学习)、ALS(交替最小二乘,回归任务稳定)、MCMC(马尔可夫链蒙特卡洛,贝叶斯推断可自动调节正则化强度)。
  3. 线性复杂度:利用 FM 的代数变换 $\frac{1}{2} \sum_{f=1}^{k} \left( (\sum_i v_{i,f} x_i)^2 - \sum_i v_{i,f}^2 x_i^2 \right)$,实现 $O(kn)$ 时间复杂度的前向计算和梯度更新,在稀疏数据下实际复杂度为 $O(k\bar{n})$。
  4. 工业影响:libFM 的开源发布极大推动了 FM 在推荐系统和 CTR 预估领域的工业应用,美团、阿里巴巴、华为、Twitter 等公司早期推荐/广告系统均基于 libFM 或参考其实现。
  5. 配套论文:Rendle 于 2012 年发表 Factorization Machines with libFM(ACM TIST, 3(3), 57),详细描述了 libFM 的设计原理、实现细节和使用方法。
  6. 后续工具:xLearn 是 libFM 的高性能后继者,进一步扩展了 FFM(Field-aware FM)的支持和分布式训练能力。

来源

相关