我想比较一下在MovieLens数据集上使用NDCG度量的推荐方法。
在排序问题中,目标是根据项目对用户的相关性对其进行排序。可以根据评分矩阵学习排名模型,其中每个用户对所有项目的小子集进行评级。其他项目的评级是未知的。
协同过滤方法可以用来建立模型,概括训练数据集,预测未评定项目的评分。
让我们考虑一下由5部电影组成的dataset上的示例。用户A级别仅为3部电影:
模型预测以下结果
在这个例子中,NDCG@3应该如何计算?电影2获得第二好的分数,但它还没有被用户评级,虽然它是高度相关的用户A基于其他用户的评级。将电影21、1星级作为地面真实的惩罚模型,因为它预测了与用户无关的高度相关电影。
许多论文使用NDCG来度量MovieLens上的模型性能,但我还没有找到如何计算NDCG的详细信息。解决这个问题的最佳做法是什么?根据电影收视率的中位数或平均值来估计未知的评级值是个好主意吗?
发布于 2020-11-15 00:07:21
电影2获得第二好的分数,但它还没有被用户评级,虽然它是高度相关的用户A基于其他用户的评级。
这方面的问题是,您正在将您的意见注入到与用户A相关的项目中。
在这个例子中,NDCG@3应该如何计算?
无法根据用户未评等的项目评估模型。通常,对于显式反馈数据,您希望忽略缺少的值。推测可能是可能的,但它是更具挑战性而不是常用的。正确的建模管道是首先建立一个培训和测试集。在培训集上对模型进行培训,然后对每个用户对测试集中存在的已知项进行排序(源:p.g.24)。然后,您可以计算各种截止敏感的度量。
在你的例子中,你不应该预测电影2或5的评分。如果你的训练集是电影1&电影3,那么你会对电影4进行预测--很明显,在一个真正的应用程序中,你应该有更多的数据,以便在你的测试集中有多个例子。
https://datascience.stackexchange.com/questions/85423
复制相似问题