我正在分析一组新闻文章和用户库。用户库是一个用户共享的一组新闻文章。显然,评分为 1(文章在用户的图书馆中),否则为 0。我假设向每个用户呈现 M 篇文章,这些文章按他们的预测评分排序,并根据这些文章中的哪些实际上在图书馆中进行评估。所以,我唯一的评估指标是
召回@M = 用户在前 M 中分享的文章数 / 用户分享的总文章数
使用精度没有意义,因为零评分是不确定的(用户对文章不感兴趣或只是不知道)。如果我负担不起用户研究(明确的用户对推荐的反馈),我可以使用哪些其他评估指标?
我正在分析一组新闻文章和用户库。用户库是一个用户共享的一组新闻文章。显然,评分为 1(文章在用户的图书馆中),否则为 0。我假设向每个用户呈现 M 篇文章,这些文章按他们的预测评分排序,并根据这些文章中的哪些实际上在图书馆中进行评估。所以,我唯一的评估指标是
召回@M = 用户在前 M 中分享的文章数 / 用户分享的总文章数
使用精度没有意义,因为零评分是不确定的(用户对文章不感兴趣或只是不知道)。如果我负担不起用户研究(明确的用户对推荐的反馈),我可以使用哪些其他评估指标?
我建议使用Expected Utility或R-score。假设您的模型创建了一个有序的推荐列表,其中第一项是用户最有可能的,最后一项是用户最不可能感兴趣的。假设这些推荐由在哪里是列表中的位置。
特定用户 u 的预期效用现在定义为:
在哪里 ...
该指标衡量用户查看推荐项目的可能性,假设向他推荐项目列表。如果感兴趣的项目被放置在非常高的位置,用户不太可能会费心滚动/看那么远,即使它正是他/她想要的。在这个意义上,指定普通用户的耐心程度。
要计算一组用户的 R-score,建议事先对每个用户的 R-score 进行归一化。结果得分是
在哪里是您可以为一位用户获得的最大 R 分数。也就是说,假设用户在他的库中有 k 个要预测的项目,前 k 个位置的项目正是这些项目。
有关更多指标或一般性阅读,我推荐Shani 和 Gunarwadana 的Evaluating Recommendations Systems