协同过滤推荐系统中矩阵分解
1 背景
在现代工业级推荐系统中,如何从海量信息中精准捕捉用户偏好是核心的研究课题。推荐系统的形式化定义通常聚焦于用户集合 $U = { u_1, u_2, \ldots, u_m }$ 与物品集合 $V = { v_1, v_2, \ldots, v_n }$。二者交互所生成的显式反馈(如评分)或隐式反馈(如点击、购买)共同构成了一个高维的观测矩阵——用户-物品评分矩阵 $R \in \mathbb{R}^{m \times n}$。
早期的推荐系统主要依赖于基于邻域的协同过滤(Collaborative Filtering, CF)算法(包括基于用户 User-CF 和基于物品 Item-CF)。该范式通过在观测空间中直接计算余弦相似度或皮尔逊相关系数来寻找最近邻。然而,随着互联网业务规模的爆发,邻域模型在实际应用中遭遇了严峻的学术与工程瓶颈:
- 高度稀疏性(Data Sparsity):由于用户主动交互的物品数远小于系统的总物品量,矩阵 $R$ 中的已知元素占比通常不足 $1\%$。这种极度稀疏的数据分布导致邻域模型在计算相似度时,因共同交叉项极少而发生严重失真。
- 可扩展性瓶颈(Scalability Bottleneck):随着用户维度 $m$ 与物品维度 $n$ 的指数级增长,维护全局相似度矩阵的空间复杂度达到 $O(m^2)$ 或 $O(n^2)$,引发了严重的“维度灾难”,无法满足在线实时响应的性能要求。
为了打破这种“既存不下,又算不动”的限制,矩阵分解(Matrix Factorization, MF)技术应运而生。作为一种基于低秩近似(Low-Rank Approximation)的方法,它放弃了直接在稀疏的高维观测空间中计算关联,转而将高维稀疏矩阵映射至低维连续的隐向量空间(Latent Space),通过重构用户和物品的隐特征来预测未知的交互行为。这一技术的提出,不仅有效缓解了数据稀疏性问题,也奠定了现代推荐系统表征学习的基础。
2 矩阵分解基本原理
矩阵分解基本原理:将$m \times n$的User-Item矩阵$R$分解为一个$m \times k$用户隐向量矩阵$U$和一个$n \times k$物品隐向量矩阵$V$相乘的形式,即
\[R_{m \times n} \approx U_{m \times k} \times V_{n \times k}^T\]其中,
- $m$为用户的数量
- $n$为物品的数量
- $U \in \mathbb{R}^{m \times k}$ 为用户隐类矩阵,行向量 $U_u \in \mathbb{R}^{1 \times k}$ 表征用户 $u$ 在 $k$ 维隐空间上的兴趣偏好分布
- $V \in \mathbb{R}^{n \times k}$ 为物品隐类矩阵,行向量 $V_i \in \mathbb{R}^{1 \times k}$ 表征物品 $i$ 在 $k$ 维隐空间上的属性映射分布。
- $k$(且 $k \ll \min(m, n)$)为隐因子维度(Latent Dimension),该超参数的设定直接决定了模型对高维数据特征的压缩与泛化能力。
基于该表征,用户 $u$ 对未交互物品 $i$ 的预测评分 $\hat{r}_{u,i}$ 可通过两个隐向量的内积(Inner Product)进行线性组合度量:
\[\hat{r}_{u,i} = U_u \cdot V_i^T = \sum_{f=1}^k U_{uf} V_{if}\]通过这一映射机制,原始矩阵中的缺失值预测问题被优雅地转化为几何空间中的向量内积计算。
那么矩阵分解的推荐算法为:根据User-Item共现矩阵进行矩阵分解得到用户隐向量矩阵和物品隐向量矩阵,计算用户与未交互物品的预测得分,根据预测得分排序给用户推荐物品。

3 算法实现
求解低秩矩阵 $U$ 和 $V$ 本质上是一个回归优化问题。由于原矩阵 $R$ 存在大量缺失值,经典的奇异值分解(SVD)无法直接应用(SVD 要求矩阵稠密)。因此,现代推荐系统多采用基于观测点填充的优化范式。
3.1 目标函数定义
为了使预测评分 $\hat r_{u,i}$ 最大程度地逼近已知观测评分 $r_{u,i}$,并防止参数由于稀疏拟合而产生过拟合(Overfitting),在目标函数中引入 L2 正则化惩罚项(Tikhonov Regularization)。其经验风险最小化(Empirical Risk Minimization)的目标函数定义如下:
\[\min_{U, V} \mathcal{L} = \sum_{(u,i) \in \mathcal{K}} (r_{u,i} - U_u V_i^T)^2 + \lambda \left( \Vert{}U_u\Vert{}_F^2 + \Vert{}V_i\Vert{}_F^2 \right)\]- $\mathcal{K} = {(u, i) \mid r_{u,i} \neq \text{null}}$ 表示所有已观测到的显式交互样本集合。
- $\lambda$ 为正则化系数超参数,用于平衡训练误差与模型结构复杂度。
- $\Vert{}\cdot\Vert{}_F$ 表示 Frobenius 范数。
3.2 优化求解算法
由于目标函数 $\mathcal{L}$ 中 $U_u$ 和 $V_i$ 相互耦合,导致其关于整体参数集为非凸(Non-convex)。工程上主要采用以下两种经典的一阶优化算法进行数值求解:
A. 随机梯度下降法(Stochastic Gradient Descent, SGD)
SGD 通过逐个或逐批次抽取已知样本,计算当前参数下的预测残差 $e_{ui} = r_{ui} - \hat{r}_{ui}$,并沿着负梯度方向对涉及的隐向量进行动态迭代更新:
\[U_u \leftarrow U_u + \gamma (e_{u,i} V_i - \lambda U_u)\] \[V_i \leftarrow V_i + \gamma (e_{u,i} U_u - \lambda V_i)\]其中 $\gamma$ 为学习率(Learning Rate)。SGD 的优势在于算法逻辑实现简单、收敛速度较快,适用于大多数动态在线更新场景。
B. 交替最小二乘法(Alternating Least Squares, ALS)
尽管目标函数非全局凸,但在固定其中一个矩阵时,它对于另一个矩阵是严谨的二次型凸函数。ALS 的核心机制即在于利用这一特性进行多轮交替迭代:
- 固定 $U$ 优化 $V$:令 $\frac{\partial \mathcal{L}}{\partial U_u} = 0$,通过正规方程组(Normal Equations)直接闭式解(Closed-form Solution)求出 $U_u$。
- 固定 $V$ 优化 $U$:同理求出 $V_i$ 的全局最优解。
ALS 的核心工程价值在于:在各行向量的求解更新过程中,计算逻辑保持完全独立。因此,它具备天然的并行计算特性,能够完美契合分布式计算框架(如 Apache Spark MLlib),适用于处理超大规模离线批处理任务。
4 总结
作为协同过滤发展史上的重要里程碑,矩阵分解技术不仅是对传统邻域模型的革新,更为后续表征学习(Representation Learning)的发展奠定了坚实的理论基石。
4.1 核心贡献与理论优势
- 高效的空间表征:将原有的高维稀疏表示压缩为低维稠密向量(即 Embedding 的原型),使得空间复杂度由 $O(m \times n)$ 降至 $O(k \times (m+n))$,极大地降低了系统存储与检索的压力。
- 优异的泛化性能:隐空间的线性重构机制使模型具备了强大的“捕获潜在语义”的能力,有效解决了协同过滤中因冷门物品交互极少导致的“近邻断裂”问题,提高了长尾商品的推荐覆盖率。
- 高可扩展性:在基本 MF 的基础上,极易融入全局偏置(Bias SVD)、时间动态性(TimeSVD++)以及隐式反馈行为,具有极高的工程改造上限。
4.2 局限性分析
- 弱解释性:学出的隐特征维度(Latent Dimension)通常由数据驱动,不具备显式的、人类可读的物理意义,难以进行精细的可解释性白盒分析。
- 难以捕捉非线性与高阶关联:内积(Dot Product)操作本质上是一种简单的双线性组合,无法有效挖掘用户和物品之间复杂的非线性高阶交互(High-order Interactions)及上下文关联(Context-aware)。
4.3 演进脉络与未来展望
伴随着深度学习的兴起,矩阵分解中“将实体映射为稠密低维嵌入向量(Embedding)”的核心思想,已被深度学习推荐模型(如深度匹配双塔模型、神经协同过滤 NCF、以及图神经网络 GNN)完全继承。
尽管经典矩阵分解在应对多维交叉特征时显露疲态,但它作为向量化召回(Vector Retrieval)和表征学习的根基,在现今的工业级级联推荐架构中依然发挥着不可替代的基础性作用。其从“线性低秩拟合”向“非线性深度表征”的过渡,正昭示了推荐系统算法从浅层统计向高阶认知演进的必然趋势。