【发布时间】:2016-04-18 15:20:36
【问题描述】:
我在阅读推荐系统中的矩阵分解方法时遇到了这个非常好的教程:http://www.quuxlabs.com/blog/2010/09/matrix-factorization-a-simple-tutorial-and-implementation-in-python/
一切都很好,但这一段让我很感兴趣:
现在您可能已经想到一个问题:如果我们找到两个矩阵 P 和 Q 使得 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