基于排名的推荐系统使用NDCG来评估建议书的准确性。但是,有时使用准确率和召回率来评估前n个推荐值。这是否意味着NDCG高,准确率高?但我运行了ListRankMF算法,movelens 100k数据集的准确率非常低,仅为8%左右。 NDCG与准确率之间的关系是什么?
答案 0 :(得分:0)
当推荐系统的目标是返回一些相关结果时,NDCG最有用,而且顺序很重要。例如,推荐翻译或推荐银行帐户。如果我们错过了相关的结果,那就无害了,但为了获得良好的用户体验,我们希望它们能够以有意义的顺序进行。
当推荐系统的目标是返回所有相关结果时,召回最有用,而且顺序并不重要。例如,潜在的医疗诊断或处方。如果我们错过相关结果是有害的,因为这可能是正确的诊断或治愈。这个命令并不重要,因为我们期望医生阅读所有可能性并使用他们的专业知识做出最终决定。
假设有5种药物我们可以建议医生给患者(A到E),5我们不应该推荐(F到J)。我们的推荐系统输出建议A,B,C,D。这为我们提供了以下评估:
在这种情况下,回忆清楚地表明我们做得不尽可能(因为我们不推荐药物E),而NDCG让我们相信我们提出了完美的建议。
如果我们推荐书籍,那么NDCG会更合适。召回不是那么有用,因为可能有数百本相关书籍,但我们不能指望用户阅读数百本书的列表来挑选一本书。 NDCG会告诉我们,我们是否至少建议了可能的一些有意义的子集。