本站内容由 AI 生成,可能存在错误。如发现问题,欢迎到 GitHub Issues 反馈。

MF 与 FM:协同过滤的矩阵分解视角

MF 与 FM:协同过滤的矩阵分解视角

更新于 2026-04-23

上一篇 NMF 展示了非负约束如何将分解从”全局叠加”变为”局部部件”。本篇换一个约束条件:矩阵大部分元素缺失,而我们的目标不是重建整个矩阵,而是预测缺失位置的值。这正是推荐系统中协同过滤的核心问题,也是 Matrix Factorization(MF)和 Factorization Machines(FM)的数学根基。

本文聚焦矩阵分解视角——MF 和 FM 的数学结构如何从 SVD 自然生长出来。关于 FM 的完整理论推导(方程解剖、O(kn)O(kn) 计算技巧、稀疏推断机制)和在 LLM 路由中的应用,请参阅 因子分解机与 LLM 路由

协同过滤 = 评分矩阵的分解

问题设定

mm 个用户对 nn 个物品的评分构成一个矩阵 RRm×nR \in \mathbb{R}^{m \times n}。现实中,绝大多数元素缺失——Netflix 数据集仅 1.2% 的元素被观测。设 Ω{1,,m}×{1,,n}\Omega \subset \{1,\ldots,m\} \times \{1,\ldots,n\} 为已观测位置的集合。

协同过滤(collaborative filtering)的假设是:评分矩阵近似低秩。即用户的偏好由少数潜在因素(genre, quality, mood…)驱动,评分矩阵的内在秩 kmin(m,n)k \ll \min(m, n)

Art. 8 矩阵补全 中,我们从凸优化角度(nuclear 范数松弛)研究了这个问题的理论保证。MF 走了另一条路——直接参数化低秩结构,用梯度下降求解。

从 SVD 出发

回忆 Art. 3 SVD 的 Eckart-Young 定理:对完整矩阵 RR,最优秩-kk 近似是截断 SVD:

Rk=UkΣkVkTR_k = U_k \Sigma_k V_k^T

如果 RR 是完整的,故事到此结束。但评分矩阵 98% 以上是缺失值——直接做 SVD 没有意义,因为你不知道缺失位置该填什么。

MF 模型:有约束的 SVD

核心模型

MF 的思路是:既然截断 SVD 把 RR 写成 UkΣkVkTU_k \Sigma_k V_k^T,不如直接参数化两个低秩因子矩阵,只在已观测位置拟合:

r^ui=puTqi\hat{r}_{ui} = \mathbf{p}_u^T \mathbf{q}_i

其中 puRk\mathbf{p}_u \in \mathbb{R}^k 是用户 uu 的隐因子向量(latent factor vector),qiRk\mathbf{q}_i \in \mathbb{R}^k 是物品 ii 的隐因子向量。向量 pu\mathbf{p}_u 编码用户偏好,qi\mathbf{q}_i 编码物品属性,内积衡量匹配程度。

用矩阵语言表达:R^=PQT\hat{R} = PQ^T,其中 PRm×kP \in \mathbb{R}^{m \times k}QRn×kQ \in \mathbb{R}^{n \times k}。这和截断 SVD 的形式 UkΣkVkTU_k \Sigma_k V_k^T 完全对应——Σk\Sigma_k 被吸收进了 PPQQ

下图展示了 MF 模型的矩阵结构:稀疏的评分矩阵 RR 被近似为两个”瘦高”因子矩阵的乘积,损失只在已观测位置(蓝色格子)计算。

MF:稀疏观测下的低秩参数化
只在已观测位置(蓝色格子)拟合,缺失位置(灰色)由低秩结构预测
R (评分矩阵)m=6 用户, n=8 物品55225552442324????Pm × ku1u2u3u4u5u6×const qtX = qX + 12;QTk × nr̂ᵤᵢ = μ + bᵤ + bᵢ + pᵤᵀqᵢ (只在 Ω 上计算损失)

带偏置的完整模型

实践中,评分受系统性偏差影响:有的用户天生慷慨(平均给 4 分),有的电影天生高分。Koren, Bell & Volinsky(2009)的标准模型加入偏置项:

r^ui=μ+bu+bi+puTqi\hat{r}_{ui} = \mu + b_u + b_i + \mathbf{p}_u^T \mathbf{q}_i

其中:

  • μ\mu:全局平均评分
  • bub_u:用户偏置(Alice 比平均高 0.3 分)
  • bib_i:物品偏置(Titanic 比平均高 0.8 分)
  • puTqi\mathbf{p}_u^T \mathbf{q}_i:用户-物品交互(Alice 特别喜欢浪漫片)
评分预测的分解:r̂ᵤᵢ = μ + bᵤ + bᵢ + pᵤᵀqᵢr̂ᵤᵢμ全局均值bᵤ用户偏置bᵢ物品偏置pᵤᵀqᵢ用户-物品交互系统性偏差(不依赖交互)个性化交互(低秩内积)例:μ=3.5 bᵤ(Alice)=+0.3 bᵢ(Titanic)=+0.8 pᵤᵀqᵢ=+0.5 → r̂=5.1

优化目标

仅在已观测位置最小化正则化平方误差:

minP,Q,b(u,i)Ω(ruiμbubipuTqi)2+λ(pu2+qi2+bu2+bi2)\min_{P, Q, b} \sum_{(u,i) \in \Omega} \left( r_{ui} - \mu - b_u - b_i - \mathbf{p}_u^T \mathbf{q}_i \right)^2 + \lambda \left( \|\mathbf{p}_u\|^2 + \|\mathbf{q}_i\|^2 + b_u^2 + b_i^2 \right)

正则化项 λ()\lambda(\cdot) 防止过拟合——对仅有少量评分的用户/物品尤为关键。

MF 与 SVD 的精确关系

MF 常被称为 “SVD” 模型(Netflix Prize 时期的惯例),但它与数学上的 SVD 不是同一回事。区别在三个层面:

经典 SVD推荐系统 MF
输入完整矩阵稀疏观测 Ω\Omega
正交约束UTU=IU^TU = IVTV=IV^TV = I无正交约束
求解封闭解(特征分解)迭代优化(SGD / ALS)

联系也是清晰的:如果 Ω\Omega 包含所有元素且 λ=0\lambda = 0,MF 的全局最优解就是截断 SVD。MF 可以理解为”在不完整观测下、带正则化的 SVD”。

求解方法

两种主流算法:

SGD(随机梯度下降):对每个观测 (u,i,rui)(u, i, r_{ui}),计算误差 eui=ruir^uie_{ui} = r_{ui} - \hat{r}_{ui},更新:

pupu+η(euiqiλpu)\mathbf{p}_u \leftarrow \mathbf{p}_u + \eta(e_{ui} \mathbf{q}_i - \lambda \mathbf{p}_u) qiqi+η(euipuλqi)\mathbf{q}_i \leftarrow \mathbf{q}_i + \eta(e_{ui} \mathbf{p}_u - \lambda \mathbf{q}_i)

ALS(交替最小二乘):固定 QQPP(变成线性最小二乘),再固定 PPQQ,交替进行。每步都有封闭解,且天然可并行。

MF 的两种求解算法SGD (随机梯度下降)① 随机选一个 (u, i, rᵤᵢ)② 计算误差 eᵤᵢ = rᵤᵢ − r̂ᵤᵢ③ 更新 pᵤ 和 qᵢ(梯度步)④ 重复直到收敛ALS (交替最小二乘)① 固定 Q,解 P(线性最小二乘)② 固定 P,解 Q(线性最小二乘)③ 每步有封闭解④ 交替重复直到收敛在线更新,适合流数据封闭解,天然可并行

从 MF 到 FM:交互权重矩阵的低秩分解

MF 的局限

MF 的特征空间只有两组:用户 ID 和物品 ID。所有关于用户的额外信息(年龄、历史行为)和物品的额外信息(类型、导演)都无法直接利用。如果要加入新特征,模型结构需要重新设计。

FM 的统一视角

Rendle(2010)提出 Factorization Machines(FM),将 MF 推广为对任意特征向量的交互建模。FM 的二阶模型:

y^(x)=w0+j=1pwjxj+i=1pj=i+1pvi,vjxixj\hat{y}(\mathbf{x}) = w_0 + \sum_{j=1}^{p} w_j x_j + \sum_{i=1}^{p} \sum_{j=i+1}^{p} \langle \mathbf{v}_i, \mathbf{v}_j \rangle x_i x_j

其中 viRk\mathbf{v}_i \in \mathbb{R}^k 是特征 ii 的隐因子向量。

矩阵视角:定义交互权重矩阵 WRp×pW \in \mathbb{R}^{p \times p},其中 WijW_{ij} 表示特征 iijj 的交互强度。如果每个 WijW_{ij} 都是独立参数,需要 O(p2)O(p^2) 个参数——在高维稀疏特征下不可行。FM 的核心约束是交互矩阵低秩

Wij=vi,vjW=VVTW_{ij} = \langle \mathbf{v}_i, \mathbf{v}_j \rangle \quad \Longleftrightarrow \quad W = VV^T

其中 VRp×kV \in \mathbb{R}^{p \times k}。这把 O(p2)O(p^2) 个交互参数压缩到 O(pk)O(pk) 个——正是矩阵分解的思想。交互矩阵 WW 的秩被约束为 k\leq k,与 MF 对评分矩阵施加的秩约束完全同构。

FM:交互权重矩阵的低秩分解
O(p²) 个独立参数 → O(pk) 个参数,k ≪ p
W (交互矩阵)p × p = 8×8 = 64 参数O(p²) 不可行=Vp × kuseritemagegenretimelocdevctx×VTk × pO(pk) 可行!W = VV, W_ij = <v_i, v_j> rank(W) ≤ k

MF 是 FM 的特例

当特征向量 x\mathbf{x} 仅包含用户和物品的 one-hot 编码时,FM 退化为 MF。具体地:设 x=[eu;ei]\mathbf{x} = [\mathbf{e}_u; \mathbf{e}_i](用户 one-hot 拼接物品 one-hot),则:

  • 线性项 wjxjw_j x_j 对应偏置 bub_ubib_i
  • 交互项 vu,vi\langle \mathbf{v}_u, \mathbf{v}_i \rangle 对应 puTqi\mathbf{p}_u^T \mathbf{q}_i

FM 的威力在于特征向量可以包含任意信息:用户属性、物品属性、上下文、时间——所有二阶交互自动被低秩因子化建模,无需手工设计。

MF → FM:从两组特征到多维路由特征向量对比交互项对比RouteLLM MF 路由器仅 2 组特征模型 ID查询嵌入 (1536-d)FMFM 路由器(扩展)N 组特征模型 ID查询嵌入任务类型复杂度Prompt 长度语言...MF: MF 把所有信息压缩进查询嵌入的一次投影FM: FM 让每组特征成为显式的一等公民算法不变,变的只是特征向量

方法谱系中的位置

回到 分解概述 建立的方法谱系,MF/FM 的坐标如下:

方法约束与 SVD 的关系
PCA(Art. 6 PCA正交 + 完整观测SVD 的直接应用
矩阵补全(Art. 8 矩阵补全稀疏观测 + 凸松弛Nuclear 范数 → SVD 奇异值之和
NMF(Art. 9 NMF非负 + 完整观测SVD 去正交加非负
MF稀疏观测 + 正则化不完整观测下的”参数化 SVD”
FM低秩交互 + 任意特征交互权重矩阵的低秩分解

核心脉络:SVD 给出无约束最优解 → 矩阵补全用凸松弛处理缺失值 → MF 用参数化 + SGD 做同一件事但更实用 → FM 把低秩约束从”评分矩阵”推广到”任意特征的交互矩阵”。

方法谱系:SVD → MF → FMSVD无约束最优PCA正交+完整矩阵补全稀疏+凸松弛NMF非负+完整MF稀疏+正则化FM低秩交互+任意特征核心脉络:SVD 给出无约束最优 → 不同约束产生不同方法 → FM 推广到任意特征交互

总结

三个要点:

  1. MF 是不完整观测下的参数化 SVD。如果观测完整且无正则化,MF 的最优解就是截断 SVD。偏置项捕获系统性偏差,正则化防止稀疏数据下的过拟合。

  2. FM 的本质是交互权重矩阵的低秩分解W=VVTW = VV^TO(p2)O(p^2) 个交互参数压缩到 O(pk)O(pk),与 MF 对评分矩阵施加的秩约束是同一数学思想。

  3. MF 是 FM 的特例。当特征仅包含用户/物品 one-hot 时,FM 退化为 MF。FM 的推广在于允许任意特征参与交互——关于 FM 如何在 LLM 路由中发挥作用,见 因子分解机与 LLM 路由

下一篇我们将看到一个惊人的联系:Word2Vec 的 skip-gram 训练,本质上是对一个从未显式构造过的词-上下文 PMI 矩阵做低秩分解——“隐式矩阵分解”这一概念,将矩阵视角推广到看似完全不同的 NLP 领域。