隐语义模型(LFM)的随机梯度下降(SGD)优化过程
字数 2116 2025-11-24 14:14:40
隐语义模型(LFM)的随机梯度下降(SGD)优化过程
题目描述
隐语义模型(LFM)是一种用于推荐系统的协同过滤算法,它通过矩阵分解将用户-物品交互矩阵分解为用户隐因子矩阵和物品隐因子矩阵,从而预测用户对未交互物品的评分。我们将详细讲解如何使用随机梯度下降(SGD)优化LFM的参数,包括目标函数定义、梯度推导、更新规则和具体步骤。
解题过程
- 问题定义与目标函数
- 设用户集合为 \(U\),物品集合为 \(I\),观测到的用户-物品评分矩阵为 \(R \in \mathbb{R}^{|U| \times |I|}\)。
- LFM的目标是找到用户隐因子矩阵 \(P \in \mathbb{R}^{|U| \times k}\) 和物品隐因子矩阵 \(Q \in \mathbb{R}^{|I| \times k}\),其中 \(k\) 是隐因子维度,满足 \(R \approx P Q^T\)。
- 定义预测评分: \(\hat{r}_{ui} = p_u \cdot q_i^T = \sum_{f=1}^k p_{uf} q_{if}\),其中 \(p_u\) 是用户 \(u\) 的隐因子向量, \(q_i\) 是物品 \(i\) 的隐因子向量。
- 目标函数为最小化均方误差(MSE)加上L2正则化项:
\[ \min_{P, Q} \sum_{(u, i) \in \mathcal{D}} (r_{ui} - p_u q_i^T)^2 + \lambda (\|p_u\|^2 + \|q_i\|^2) \]
其中 $ \mathcal{D} $ 是训练数据集(观测到的评分对), $ \lambda $ 是正则化系数。
- 梯度计算
- 对每个观测样本 \((u, i, r_{ui})\),定义误差: \(e_{ui} = r_{ui} - \hat{r}_{ui}\)。
- 计算目标函数关于用户隐因子向量 \(p_u\) 的梯度:
\[ \frac{\partial \text{Loss}}{\partial p_u} = -2 e_{ui} \cdot q_i + 2\lambda p_u \]
- 计算目标函数关于物品隐因子向量 \(q_i\) 的梯度:
\[ \frac{\partial \text{Loss}}{\partial q_i} = -2 e_{ui} \cdot p_u + 2\lambda q_i \]
- 梯度推导依据链式法则,对 \(p_{uf}\) 和 \(q_{if}\) 分别求偏导,并合并为向量形式。
- 随机梯度下降更新规则
- 随机采样一个训练样本 \((u, i, r_{ui})\)。
- 计算预测评分 \(\hat{r}_{ui}\) 和误差 \(e_{ui}\)。
- 更新用户隐因子向量 \(p_u\)(学习率 \(\eta\)):
\[ p_u \leftarrow p_u + \eta \cdot (e_{ui} \cdot q_i - \lambda p_u) \]
- 更新物品隐因子向量 \(q_i\):
\[ q_i \leftarrow q_i + \eta \cdot (e_{ui} \cdot p_u - \lambda q_i) \]
- 注意:更新时使用梯度负方向(因最小化目标),并合并常数因子。
-
算法步骤
- 输入:评分矩阵 \(R\)、隐因子维度 \(k\)、学习率 \(\eta\)、正则化系数 \(\lambda\)、迭代次数 \(T\)。
- 初始化:随机初始化 \(P\) 和 \(Q\) 为小值(如均值为0的高斯分布)。
- 循环迭代 \(T\) 次:
- 遍历所有观测评分 \((u, i, r_{ui})\)(随机顺序):
- 计算误差 \(e_{ui} = r_{ui} - p_u q_i^T\)。
- 更新 \(p_u \leftarrow p_u + \eta (e_{ui} q_i - \lambda p_u)\)。
- 更新 \(q_i \leftarrow q_i + \eta (e_{ui} p_u - \lambda q_i)\)。
- 遍历所有观测评分 \((u, i, r_{ui})\)(随机顺序):
- 输出:收敛后的 \(P\) 和 \(Q\),用于预测未观测评分 \(\hat{R} = P Q^T\)。
-
关键细节说明
- 随机性:SGD通过单样本更新,避免全批量计算的高开销,适合大规模数据。
- 正则化:L2正则化防止过拟合,控制隐因子向量的模长。
- 超参数选择:\(k\) 影响模型表达能力,需通过交叉验证调整;\(\eta\) 和 \(\lambda\) 影响收敛性和泛化能力。
- 收敛判断:可监控训练集损失或验证集误差的变化,提前终止训练。
通过以上步骤,LFM能够从稀疏评分数据中学习用户和物品的潜在特征,实现个性化推荐。