【问题标题】:Why rank-based recommendation use NDCG?为什么基于排名的推荐使用 NDCG?
【发布时间】:2015-12-13 14:44:28
【问题描述】:

基于等级的推荐系统使用 NDCG 来评估推荐的准确性。然而,有时准确率和召回率被用来评估top-n推荐。这是否意味着当NDCG高时,准确率高?但是我运行一个 ListRankMF 算法,在 movelens 100k 数据集上的准确率非常低,只有 8% 左右。 NDCG和准确率有什么关系?

【问题讨论】:

    标签: algorithm machine-learning recommendation-engine


    【解决方案1】:

    当推荐系统的目标是返回一些相关结果并且顺序很重要时,NDCG 最有帮助。例如,推荐翻译,或推荐银行账户。如果我们错过相关结果并没有什么害处,但为了获得良好的用户体验,我们希望它们以有意义的顺序排列。

    当推荐系统的目标是返回所有相关结果并且顺序不重要时,召回是最有帮助的。例如,潜在的医疗诊断或处方。如果我们错过相关结果是有害的,因为这可能是正确的诊断或治疗。顺序并不重要,因为我们希望医生仔细阅读所有可能性并利用他们的专业知识做出最终决定。

    假设有 5 种药物我们可以推荐给医生给患者(A 到 E),还有 5 种我们不应该推荐(F 到 J)。我们的推荐系统输出推荐 A、B、C、D。这给了我们以下评估:

    • NDCG = 1.0
    • 召回 = 0.8

    在这种情况下,回忆清楚地表明我们做得不够好(因为我们没有推荐药物 E),而 NDCG 让我们相信我们提出了完美的建议。

    如果我们改为推荐书籍,那么 NDCG 会更合适。 Recall 信息量不大,因为可能有数百本相关书籍,但我们不能指望用户阅读数百本书籍的列表来只选择一本阅读。 NDCG 会告诉我们,我们是否至少推荐了一些可能的有意义的子集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-23
      • 2017-11-04
      • 2011-10-22
      • 2011-04-11
      • 2021-10-12
      • 2012-12-07
      • 2012-05-16
      相关资源
      最近更新 更多