推荐系统中的矩阵分解方法

我在研究推荐系统中的矩阵分解方法时,发现了一个非常不错的教程:http://www.quuxlabs.com/blog/2010/09/matrix-factorization-a-simple-tutorial-and-implementation-in-python/

内容都很不错,但有一段话引起了我的兴趣:

你可能已经想到了一个问题:如果我们找到两个矩阵PQ,使得PXQ近似于R,那么我们对所有未见评分的预测不都是零吗?实际上,我们并不是真的试图找到能够完全重现RPQ。相反,我们只会尝试最小化已观察到的用户-项目对的误差。换句话说,如果我们让T是一个元组集合,每个元组的形式为(u_i, d_j, r_ij),其中T包含所有已观察到的用户-项目对及其相关的评分,我们只试图最小化T中每个(u_i, d_j, r_ij)e_ij。(换句话说,T是我们的训练数据集。)至于其余未知的部分,一旦用户、项目和特征之间的关联被学习后,我们就能确定它们的数值。

我想问一下,有人能帮我解释一下吗?潜在因素是否有助于我们理解每个用户和项目的行为?

谢谢


回答:

潜在因素是两组数值(一组用于用户,一组用于项目),它们描述了用户和项目。你所尝试做的本质上是找到项目和用户的数值表示。

想象一下,你有一个电影评分系统,并且有3个用户因素和3个电影(项目)因素。用户因素可以是你对喜剧、戏剧或动作电影的喜好程度,而电影因素则是电影是喜剧、戏剧或动作电影的程度。通过这些属性,你可以估计其他用户-项目对的评分。这个模型会为你找到这些抽象的因素。

这意味着你只能为有评分的项目和用户找到合理的表示。因此,当你训练模型时,你使用已知的评分来估计这种表示。从中你可以尝试预测一个用户和项目的未知评分。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注