[PML 37] C5S5 推荐系统评估

2022-03-18  本文已影响0人  数科每日

到目前为止,我们一直使用 squared errors 的和作为评价推荐系统的指标。 但是这样做有一定的缺陷。比如:推荐系统每次都会选出一批商品,进行排序后推荐给用户。 只要用户需要的商品被放在了顶部(前几名/首页), 其实排名的先后顺序并没有太大关系。 除此以外, 还有一些其他因素:

这些问题引起了人们的疑问:即均方误差(MSE)的减少是否实际上对应着推荐系统变得更好。有趣的是,(. Collaborative filtering with temporal dynamics, 2009) 报告说,基于 temporally-evolving bias 的精心实现的模型优于 Netflix 之前的基于RMSE的解决方案(Cinematch)。尤其对于没有任何交互信息的推荐系统,推荐的只能是热门商品;对于这种系统,更好的 MSE 未必对应着更好的推荐结果。

基于上述一些问题,有些人建议使用其他回归型指标,例如平均绝对误差(Mean Absolute Error),它(例如)对异常值不太敏感。也有人建议,也许应该把推荐系统按照排名问题进行评估,而不是像回归问题那样评估。也就是说,只要符合用户兴趣排序即可,预测的精确度并不重要。

可以说,对此类问题的研究正在转向依赖隐式反馈(点击、购买等)而不是rating 的均方误差;或者说,这些新的方法可能更可取,因为这样的数据比明确的评分更可用(很少有用户对商品进行评分,但每个用户都会点击它们)。更粗略地说,与预测用户的评价相比,优化点击或购买可能更接近于业务目标。

之前我们也谈到了针对排名进行优化的度量方法,即 AUC。从概念上讲,AUC 反映了我们猜测两个项目中哪一个是“相关的”的能力:AUC 为 1意味着我们总是选择正确的项目,而 0.5 的 AUC 意味着我们的猜测等同于随机。

然而,AUC 只是对排名进行优化的一种选择。当考虑通过UI界面向用户反馈推荐结果时,我们可能对推荐系统在对Top K 的排名表现特别感兴趣,因为这些商品会最终呈现给用户。

下面我们介绍一些评估函数来衡量推荐系统性能,其中大部分都专注于在寻找Top K的项目中实现比较高的精度。

5.4.1 TopK 的 精度与召回率 (Precision & Recall @K)

既然相对 TopK 的推荐进行优化, 最直接的想法就是考察 TopK 商品的 Precision 和 Recall。 为了简单, 我们使用记号 rank_{u}(i) 来代表,商品 i 对用户u 的排名; f(u,i) 是预测用户对商品喜爱度的函数,对于\operatorname{rank}_{u}(i) \in\{1 \ldots N\} 有:

image.png

对于测试集中, 用户u 的交互数据 I_{u}, 定义针对用户u 的 TopK precision: precision@K(u)为:

image.png

那么, 对于所有用户, precision@K为:

image.png

类似的, recall@K 可以定义为:

image.png
5.4.2 Mean Reciprocal Rank (MRR)

MRR 是另外一种基于排序的评价指标, 不同于 recall@K, MRR 不需要预先指定 K 值, 它会自动的对于高排名的商品基于更多的关注。 在搜索问题中, MRR 被定义为, 在返回的列表中, 第一个用户关心的结果的排序(最高排序)。 在推荐问题中, 我们可以让 test set 中只包括 1 个用户关心的结果。 那么 Mean Reciprocal Rank 可以定义为:

image.png

MRR=1 代表用户关注的商品每次都被推荐到了第一位, 而MRR=\frac{1}{n} 代表用户关注的商品平均都被推荐到了第 n 名。

5.4.3 累积增益 (Cumulative Gain) 和 NGCG

\text{Cumulative Gain} 旨在用用户浏览搜索结果时的行为,来评价推荐系统的好坏:用户希望相关的结果能够尽可能的排在前面(Top K)。\text{Cumulative Gain} 其实就是统计再 Top K 的结果中, 有多少记录是用户想要的:

image.png

y_{u,i} 要么是一个二元的标签(是否购买), 或者是一个数值型的评分(rating)。 如果用户想要的商品都排在前面, 那么\text{Cumulative Gain}的分数就会更高。

Discounted Cumulative Gain (DCG) 进一步考虑到, 在用户想要的结果中,也有会优先级(更想要的 vs 一般想要的) , 因此, 可以基于 rank 再进一步的优化:

image.png

为了能够标准化结果, 通常我们会让 DCG 除以一个理想化的结果 (以最理想的结果为尺子,来衡量当前结果), 这样就得到 Normalized Discounted Cumulative Gain (NDCG):

image.png

其中 \text{IDGC@K} 是理想化的 DCG,也就是说,它来源于一个最理想化的排序算法 \operatorname{rank}_{u}^{\mathrm{opt}}(i) (例如,按照答案,对结果进行排序) 。(A theoretical analysis of NDCG type ranking measures, 2013) 介绍了这个方法,并且解释了为什么要用在公式中使用 Log运算。

5.4.4 除了精确度,其他需要考虑的指标

最后,应该注意的是,除了针对用户的直接效用(即预测用户下一个动作)之外,我们可能还希望推荐系统具有其他几个品质。例如,我们可能有兴趣让用户了解不同的观点,确保推荐不会偏向某些群体,用户不会被推向“极端”内容等。当我们考虑个性化机器学习的更广泛后果和伦理时,我们将在第 10 章重新讨论这些问题。其中一些已经得到了研究的支持。

上一篇下一篇

猜你喜欢

热点阅读