【问题标题】:Matrix factorization methods in recommendation systems推荐系统中的矩阵分解方法
【发布时间】:2016-04-18 15:20:36
【问题描述】:

我在阅读推荐系统中的矩阵分解方法时遇到了这个非常好的教程:http://www.quuxlabs.com/blog/2010/09/matrix-factorization-a-simple-tutorial-and-implementation-in-python/

一切都很好,但这一段让我很感兴趣:

现在您可能已经想到一个问题:如果我们找到两个矩阵 PQ 使得 PXQ 近似于 R, 是不是我们对所有看不见的收视率的预测都将为零?事实上,我们并没有真正尝试想出 P 和 Q 以便我们可以准确地重现 R。相反,我们只会尽量减少观察到的用户-项目对的错误。换句话说,如果我们让 T 是一组元组,每个元组的形式为 (u_i, d_j, r_ij),使得 T 包含所有观察到的用户-项目对以及相关的评分,我们只是试图最小化 T 中 (u_i, d_j, r_ij) 的每个 e_ij。(换句话说,T 是我们的训练数据集。 ) 至于其余的未知数,一旦了解了用户、物品和特征之间的关联,我们将能够确定它们的值。

我想知道是否有人可以帮助我解决这个问题?潜在因素是否有助于我们了解每个用户和项目的行为?

谢谢

【问题讨论】:

  • 您的问题到底是什么?你能澄清一下吗?
  • 潜在因素如何帮助识别未知量?我可以取出一定数量的用户项目配对,并将其作为测试集。我可以训练其余部分。我的算法如何预测测试集中在训练集中为零的值?
  • 如果我理解正确,我的预测矩阵是从我的训练集中生成的。对于我的训练集中的非零值,它将具有更大的值。我的测试集如何使用相同的预测矩阵?
  • 试图解释一下,如果还有什么你不明白的,请告诉我。
  • 谢谢@JoãoAlmeida。因此,如果我使用来自(每一行)训练集的一个非零值创建我的测试集,并将其他所有值保持为零。我应该能够使用从训练集中创建的预测矩阵来推荐该项目。我说的对吗?

标签: matrix machine-learning recommendation-engine collaborative-filtering


【解决方案1】:

潜在因素是描述用户和项目的两组值(一组用于用户,一组用于项目)。本质上,您要做的是找到您的项目和用户的数字表示。

假设您有电影评分系统,并且有 3 个用户因素和 3 个电影(项目)因素。用户项可以是您喜欢喜剧、戏剧或动作电影的程度,而电影因素可以是喜剧、戏剧或动作电影的程度。根据这些属性,您可以估计其他对的评级。该模型为您找到这些抽象因素。

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

【讨论】:

    猜你喜欢
    • 2017-03-16
    • 1970-01-01
    • 2019-12-13
    • 2018-04-20
    • 2017-03-22
    • 2018-04-15
    • 2012-11-25
    • 1970-01-01
    • 2011-03-18
    相关资源
    最近更新 更多