显式评分 · 低秩分解 · SGD

空白评分这么多,矩阵分解到底在拟合什么?

答案只有一个:已经发生的评分。空白单元格可以被预测,却不会被当成 0 分送进损失。我们用一张小矩阵逐轮跑 SGD,把这条边界直接算给你看。

稀疏矩阵只把已观察项送进损失

训练预设
2
0.05
0.015
80 轮

当前 0 轮 · 训练项 15

原始评分矩阵

实心是训练项,描边是保留验证项

稀疏用户物品评分矩阵;空白单元格未参与训练和验证损失。
训练观察 验证观察 未观察

当前损失求和范围: 训练监控只遍历 15 个训练评分;4 个验证评分只用来检查泛化;11 个空白格既不是 0 分,也不是负例。

一轮 SGD 到底改了什么

训练 MSE 只计 Ωtrain 中的 15 条评分
正则后目标 MSE + λR / |Ωtrain|
验证 RMSE 只计 4 条保留的已观察评分

训练与验证误差轨迹

第 0 轮

训练 RMSE(已观察) 验证 RMSE(已观察)

向量和点积拆解

选一个用户—物品对

当前用户向量、物品向量及各维点积贡献。

补全矩阵之后,仍要看验证误差

当前模型的补全分数

所有格都是模型输出,描边格可对照真实评分

矩阵分解对所有用户物品对的补全预测。
训练格的预测 验证格的预测 其余为未观察格的补全