我在研究推荐系统中的矩阵分解方法时,发现了一个非常不错的教程:http://www.quuxlabs.com/blog/2010/09/matrix-factorization-a-simple-tutorial-and-implementation-in-python/
内容都很不错,但有一段话引起了我的兴趣:
你可能已经想到了一个问题:如果我们找到两个矩阵P和Q,使得PXQ近似于R,那么我们对所有未见评分的预测不都是零吗?实际上,我们并不是真的试图找到能够完全重现R的P和Q。相反,我们只会尝试最小化已观察到的用户-项目对的误差。换句话说,如果我们让T是一个元组集合,每个元组的形式为(u_i, d_j, r_ij),其中T包含所有已观察到的用户-项目对及其相关的评分,我们只试图最小化T中每个(u_i, d_j, r_ij)的e_ij。(换句话说,T是我们的训练数据集。)至于其余未知的部分,一旦用户、项目和特征之间的关联被学习后,我们就能确定它们的数值。
我想问一下,有人能帮我解释一下吗?潜在因素是否有助于我们理解每个用户和项目的行为?
谢谢
回答:
潜在因素是两组数值(一组用于用户,一组用于项目),它们描述了用户和项目。你所尝试做的本质上是找到项目和用户的数值表示。
想象一下,你有一个电影评分系统,并且有3个用户因素和3个电影(项目)因素。用户因素可以是你对喜剧、戏剧或动作电影的喜好程度,而电影因素则是电影是喜剧、戏剧或动作电影的程度。通过这些属性,你可以估计其他用户-项目对的评分。这个模型会为你找到这些抽象的因素。
这意味着你只能为有评分的项目和用户找到合理的表示。因此,当你训练模型时,你使用已知的评分来估计这种表示。从中你可以尝试预测一个用户和项目的未知评分。