Paper Reading:推荐系统评价指标综述
论文:推荐系统评价指标综述
发表时间:2012
发表作者:朱郁筱,吕琳媛
论文链接:论文链接
本文对现有的推荐系统评价指标进行了系统的回顾,总结了推荐系统评价指标的最新研究进展,从准确度、 多样性、新颖性及覆盖率等方面进行多角度阐述,并对各自的优缺点以及适用环境进行了深入的分析。特别讨论了基于排序加权的指标,强调了推荐列表中商品排序对推荐评价的影响。最后对以用户体验为中心的推荐系统进行了详细的讨论,并指出了一些可能的发展方向。
目前的推荐算法主要包括协同过滤算法、基于内容的推荐算法、谱分析、基于扩散的方法以及混合推荐算法。面对众多的推荐算法,如何有效客观地评价推荐系统的优劣却是颇具挑战的问题。
1.测评方法
推荐系统的评价可分为在线评价和离线评价两种方式。在线评价其实就是设计在线用户实验,根据用户在线实时反馈或事后问卷调查等结果来衡量推荐系统的表现。目前最常用的在线测试方法之一是 A/B测试,所谓A/B测试,简单说来,就是为了同一个目标制定两个方案,让一部分用户使用A方案,另一部分用户使用B方案,记录下用户的使用情况,看哪个方案更符合设计目标。它的核心思想是:1) 多个方案并行测试; 2) 每个方案只有一个变量不同; 3) 以某种规则优胜劣汰。其中第2点暗示了A/B测试的应用范围: A/B测试必须是单变量。待测试方案有非常大的差异时一般不太适合做A/B测试,因为它们的变量太多了,变量之间会有很多的干扰, 所以很难通过A/B测试的方法找出各个变量对结果的影响程度。 显然, A/B测试用于在推荐系统的评价中就对应于唯一的变量——推荐算法。目前的大部分研究都集中于离线测评上。所谓的离线测评也即是根据待评价的推荐系统在实验数据集上的表现,然后再根据下文将要提到的评价指标来衡量推荐系统的质量。相对于在线评价,离线评价方法更方便更经济,一旦数据集选定,只需要将待评测的推荐系统在此数据集上运行即可 。
离线评价也面临着以下问题 :
- 数据集的稀疏性限制了适用范围,例如不能用一个不包含某用户任何历史记录的数据集来评价推荐系统对该用户的推荐结果。
- 评价结果的客观性,由于用户的主观性,不管离线评测的结果如何好,都不能得出用户是否喜欢某推荐系统的结论。
- 难以找到离线评价指标和在线真实反馈(如点击率、转化率、点击深度、购买客单价、购买商品类别等)之间的关联关系。
2.准确度指标
推荐的准确度是评价推荐算法最基本的指标。它衡量的是推荐算法在多大程度上能够准确预测用户对推荐商品的喜欢程度。本文将准确度指标分为4类,即预测评分准确度、预测评分关联性、分类准确度和排序准确度
预测评分的准确度
顾名思义,预测评分的准确度衡量的是算法预测的评分和用户的实际评分的贴近程度。这个指标在需要向用户展示预测评分的系统中尤为重要。
预测评分的准确度指标目前有很多,这类指标的思路大都很简单,就是计算预测评分和真实评分的差异。最经典的是平均绝对误差(mean absolute error, MAE):
\[
|MAE| = \frac{1}{N} \sum |r_{ra}-r_{ra}'|
\]
MAE因其计算简单、通俗易懂得到了广泛的应用。
不过MAE指标也有一定的局限性,因为对MAE指标贡献比较大的往往是那种很难预测准确的低分商品,所以即便推荐系统A的MAE值低于系统B,很可能只是由于系统A更擅长预测这部分低分商品的评分,也即是系统A比系统B能更好的区分用户非常讨厌和一般讨厌的商品罢了,显然这样的区分意义并不大
此外,平均平方误差(mean squared error, MSE)、均方根误差(root mean squared error, RMSE)以及标准平均绝对误差(normalized mean absolute error,NMAE)都是与平均绝对误差类似的指标。它们分别定义为:
\[
MSE = \frac{1}{N} \sum (r_{ra}-r_{ra}')^2 \\
RMSE = \sqrt{\frac{1}{N} \sum (r_{ra}-r_{ra}')^2} \\
NMAE = \frac{MAE}{r_{max}-r_{min}}
\]
式中,\(r_{max}\) 和$ r_{min} $分别为用户评分区间的最大值和最小值。由于MSE和RMSE指标对每个绝对误差首先做了平方,所以这两个指标对比较大的绝对误差有更重的惩罚。 NMAE由于在评分区间上做了归一化,从而可以在不同的数据集上对同一个推荐算法表现进行比较。
预测评分关联
预测评分关联是用来衡量预测评分和用户真实评分之间的相关性的,最常见的3种相关性指标分别是Pearson积距相关、 Spearman相关和Kendall’s Tau。Pearson积距相关系数衡量的是预测评分和真实评分的线性相关程度,定义为:
\[
PCC = \frac{\sum_{\alpha}(r'_{\alpha}-\overline r')(r_{\alpha}-\overline r')}
{\sqrt{\sum_{\alpha}(r'_{\alpha}-\overline r')^2} \sqrt{\sum_{\alpha}(r_{\alpha}-\overline r')^2}}
\]
式中, \(r_{\alpha}\)和 \(r'_{\alpha}\)分别表示商品\(\alpha\)的真实评分和预测评分。 Spearman关联和Pearson关联定义的形式是一样的,唯一不同的是Spearman关联考虑的不是预测评分值,而是根据预测评分值所得到的排序值,即将式中的 \(r_{\alpha}\) 和 \(r'_{\alpha}\)别替换成商品\(\alpha\)的真实排名和预测排名。
与Spearman类似, Kendall’s Tau也是刻画两种排序值的统一程度的,它定义为:
\[
\tau = \frac{C-D}{C+D}
\]
式中, C为正序对的数目; D表示逆序对的数目。显然当所有的商品对都是正序对时\(\tau=1\),当所有的商品对都是逆序对时\(\tau=1\)。
预测评分关联指标尽管计算简单,但是却没有在推荐系统评价中被广泛采纳。因为以上指标都有一定的不足之处。以Kendall’s Tau为例,它对于所有的排名偏差都分配相等的权重,而不管具体的排序值。但是不同的排名偏差显然是不能同等对待的。
另外,在实际系统中可能有某用户对某两个或者两个以上的商品评分一致的情况,也即是所谓的弱关系排序问题。显然以上所提及的预测评分关联指标都不适用于此种情形。当真实排名或预测排名有并列情况出现时,可以用基于Kendall’s Tau改进的一个指标来衡量,定义为:
\[
\tau = \frac{C-D}{\sqrt{(C+D+S_p)(C+D+S_T)}}
\]
式中,$ S_T \(表示真实评分相同的商品对数量;\)S_P$表示预测评分相同的商品对数量。
值得注意的是,这些预测评分关联性指标都是只关注于预测排序值而不关注具体的预测评分值,所以它们都不适用于那些旨在为用户提供精确预测评分值的系统。
分类准确度
分类准确度指标衡量的是推荐系统能够正确预测用户喜欢或者不喜欢某个商品的能力。它特别适用于那些有明确二分喜好的用户系统,即要么喜欢要么就不喜欢。对于有些非二分喜好系统,在使用分类准确度指标进行评价的时候往往需要设定评分阈值来区分用户的喜好。如在5分制系统中,通常将评分大于3的商品认为是用户喜欢,反之认为用户不喜欢。与预测评分准确度不同的是,分类准确度指标并不是直接衡量算法预测具体评分值的能力,只要是没有影响商品分类的评分偏差都是被允许的。
目前最常用的分类准确度指标有准确率(precision)、召回率(recall)、 F1指标和AUC。
在线下测试中,准确率会受评分稀疏性的影响。例如系统对一个只给很少部分的商品打过分的用户的推荐
准确率往往很低。但这并不能说明推荐系统的效果很差,因为很有可能系统推荐的商品中有很多是用户没有打过分但是确实很喜欢的商品。在这种情况下,在线的测试结果,即用户的真实反馈,更能够准确地反应推荐系统的表现。
召回率表示一个用户喜欢的商品被推荐的概率,定义为推荐列表中用户喜欢的商品与系统中用户喜欢的所有商品的比率。召回率很难应用于在线评估。
上述的一系列指标对于没有二分喜好的系统都是不太适用的。 即给定一个推荐列表,当推荐的阀值不确定的时候,上述指标不再适用。在这种情况下,往往采用AUC指标来衡量推荐效果的准确性。由于不受推荐列表长度和喜好阀值的影响, AUC指标被广泛应用于评价推荐系统中。AUC指标表示ROC(receiver operator curve)曲线下的面积,它衡量一个推荐系统能够在多大程度上将用户喜欢的商品与不喜欢的商品区分出来。但是AUC指标没有考虑具体排序位置的影响,导致在ROC曲线面积相同的情况下很难比较算法好坏,所以它的适用范围也受到了一些限制。
排序准确度
对于推荐排序要求严格的推荐系统而言, 如果用评分准确度、评分相关性或者是分类准确度等指标来评价此类系统的好坏显然是不合适的。这类系统需要用排序准确度指标来度量算法得到的有序推荐列表和用户对商品排序的统一程度。排序准确度对于只注重分类准确度的系统来说太敏感了,它更适合于需要给用户提供一个排序列表的系统。
使用平均排序分(average rank score)来度量推荐系统的排序准确度。对于某一用户\(u\)来说,商品\(\alpha\)的排序分定义如下:
\[
RS_{u \alpha}=\frac{l_{u \alpha}}{L_u}
\]
式中,\(L_u\)表示用户\(u\)的待排序商品个数。在离线测试中\(L_u\)等于\(|O-E_u^T |\),也即用户\(u\)在测试集中的商品数目($ |E_u^p | \()加上未选择过的商品数目(\)|O-E_u|\()。\) l_{u \alpha}\(为待预测商品\)\alpha\(在用户\)u\(的推荐列表中的排名(此时荐列表长度为\)L_u\()。离线测试中,\)L_u\(就等于用户\)u\(未选择过的商品数目。 将所有用户的排序分求平均即得到系统的排序分\)RS$。排序分值越小,说明系统越趋向于把用户喜欢的商品排在前面。反之,则说明系统把用户喜欢的商品排在了后面。由于平均排序分不需要额外的参数,而且不需要事先知道用户对商品的具体评分值,因此可以很好的比较不同算法在同一数据集上的表现。值得注意的是,在系统尺度 ( 训练集和测试集 ) 足够大的情况下,有
\[
AUC + RS \approx 1 。
\]
3.基于排序加权的指标
用户体验的满意度往往会受到用户喜欢的商品在推荐列表中位置的影响,这里介绍3个具有代表性的评价指标。
半衰期效用指标(half-life utility) 是在用户浏览商品的概率与该商品在推荐列表中的具体排序值呈指数递减的假设下提出的,它度量的是推荐系统对一个用户的实用性也即是用户真实评分和系统默认评分值的差别。用户$ u $的期望效用定义为:
\[
HL_u=\sum_{\alpha}\frac{max(r_{u \alpha}-d,0)}{2^{(l_{ua}-1)/(h-1)}}
\]
式中,\(r_{u \alpha}\)表示用户\(u\)对商品\(\alpha\)的实际评分; 而\(l_{u \alpha}\)为商品\(\alpha\)在用户\(u\)的推荐列表中的排名;$ d \(为默认评分(如说平均评分值);\) h $为系统的半衰期,也即是有50%的概率用户会浏览的推荐列表的位置。显然,当用户喜欢的商品都被放在推荐列表的前面时,该用户的半衰期效用指标达到最大值。系统的半衰期效用值定义为:
\[
HL=100 \frac{\sum_u HL_u}{\sum_u HL_u^{max}}
\]
式中,\(HL_u^{max}\)为用户\(u\)的期望效用能达到的最大值。目前半衰期效用指标的使用仍然是有很大的局限性。首先参数的选取尚未有统一的标准,不同的学者可能会选择不同的参数,这样难免会造成混乱。另外,用户的浏览概率与商品在推荐列表中的位置呈指数递减这一假设并不是在所有系统中都适用。
折扣累计利润(discounted cumulative gain,DCG) 的主要思想是用户喜欢的商品被排在推荐列表前面比排在后面会更大程度上增加用户体验,定义为:
\[
DCG(b,L)=\sum_{i=1}^b r_i + \sum_{i=b+1}^L \frac{r_i}{log_b i}
\]
式中,$ r_i \(表示排在第\) i \(位的商品是否是用户喜欢的;\)r_i=1\(表示用户喜欢该商品;\)r_i=0$ 表示用户不喜欢该商品;$ b\(是自由参数多设为2;\) L \(为推荐列表长度。 与DCG指标不同,**排序偏差准确率 (rank-biased precision, RBP)** 假设用户往往先浏览排 在推荐列表首位的商品然后依次以固定的概率\)p$浏览下一个,以\(1-p\)的概率不再看此推荐列表。RBP定义为:
\[
RBP(p,L)=(1-p) \sum_{i=1}^L r_i p^{i-1}
\]
RBP和DCG指标的唯一不同点在于RBP把推荐列表中商品的浏览概率按等比数列递减,而DCG则是按照log调和级数形式。
4.覆盖率
覆盖率指标是指算法向用户推荐的商品能覆盖全部商品的比例,如果一个推荐系统的覆盖率比较低,那么这个系统很可能会由于其推荐范围的局限性而降低用户的满意度,因为低的覆盖率意味着用户可选择的商品很少。覆盖率尤其适用于那些需要为用户找出所有感兴趣的商品的系统。覆盖率可以分为预测覆盖率(prediction coverage),推荐覆盖率 (recommendation coverage) 和种类覆盖 (catalog
coverage)3 种:
- 预测覆盖率表示系统可以预测评分的商品占所有商品的比例
- 推荐覆盖率表示系统能够为用户推荐的商品占所有商品的比例,显然这个指标与推荐列表的长度$ L $相关。
- 种类覆盖率( COVC )表示推荐系统为用户推荐的商品种类占全部种类的比例。
5.多样性和新颖性
实际应用中,已经发现即使是准确率比较高的推荐系统也不能保证用户对其推荐结果满意。一个好的推荐系统应该向用户推荐准确率高并且又有用的商品。譬如,系统推荐了非常流行的商品给用户,虽然可能使得推荐准确度非常高,但是对于这些信息或者商品用户很可能早已从其他渠道得到,因此用户不会认为这样的推荐是有价值的。
在推荐系统中,多样性体现在以下两个层次,用户间的多样性(inter-user diversity),衡量推荐系
统对不同用户推荐不同商品的能力;另一个是用户内的多样性(intra-user diversity),衡量推荐系统对一个用户推荐商品的多样性。对于用户$ u \(和\) t $,可以用 汉明距离(hamming distance) 来衡量这两个用户推荐列表的不同程度,具体定义为:
\[
H_{ut}(L)=1-\frac{Q_{ut}(L)}{L}
\]
式中,\(Q_{ut}(L)\)表示用户$ u \(和\) t \(推荐列表中相同商品的个数 。如果两个推荐列表是完全一致的,那么\)H_{ut}(L)=0\(,反之如果两个推荐列表没有任何重叠的商品则\)H_{ut}(L)=1\(。所有的用户对的汉明距离的平均值即是整个系统的汉明距离\)H(L)\(。汉明距离越大,表示推荐的多样性越高。 将系统为用户\) u \(推荐的商品集合记为:\)Q_R''={\alpha,\beta,...}\(, 那么用户\) u $的Intra-user diversity定义为:
\[
I_u (L) = \frac{1}{L(L-1)} \sum_{\alpha \neq \beta} s(\alpha,\beta)
\]
式中,\(s(\alpha,\beta)\)表示商品\(\alpha\)和\(\beta\)的相似度,系统的Intra-user diversity即是所有用户的平均值。
除了多样性以外,新颖性也是影响用户体验的重要指标之一。它指的是向用户推荐非热门非流行商品的能力。前面已经提到推荐流行的商品纵然可可能在一定程度上提高了推荐准确率但是却使得用户体验的满意度降低了。度量推荐新颖性最简单的方法是利用推荐商品的平均度。推荐列表中商品的平均度越小,对于用户来说,其新颖性就越高。
由此得到推荐新颖性指标:
\[
N(L) = \frac{1}{ML} \sum_u \sum_{\alpha \in O_R^U} k_{\alpha}
\]
式中,\(k_{\alpha}\)是商品\(\alpha\)的度; 流行度越低表示推荐的结果越新颖。自信息(self-information)也是可以用来衡量推荐出奇意外程度的指标。对于商品\(\alpha\),一个随机选取的用户选到它的概率是\(\frac{k_{\alpha} L}{MML}=\frac{k_{\alpha}}{M}\),所以该商品的自信息量可以表示为:
\(U_{\alpha}=log_2 \frac{M}{k_\alpha}\)
系统的自信息量\(U(L)\)也是所有用户的推荐列表中商品的自信息量的均值。
以上所述的多样性和新颖性指标虽然计算简单,但是大都比较粗糙有一定的局限性,DRC除了考虑商品间的相似性外,还考虑了 Discovery ( 用户是否知道该商品 ) 、Relevance (推荐系统预测的用户是否喜欢该商品)、Choice (用户是否喜欢该商品)等3个方面,并由此提出了更广义的多样性指标,其定义为:
\[
DRC_u = \frac{1}{\sum_{\alpha}dc(l_{u \alpha})}\sum_{\alpha} dc(l_{u \alpha}) Pr_{u \alpha} f_u(\alpha)
\]
式中,\(dc(l_{u \alpha})\)表示推荐列表排序偏差的折扣函数;\(l_{u \alpha}\)表示商品\(\alpha\)在推荐列表中的排序;\(Pr_{u \alpha}\)表示推荐系统预测的用户\(u\)喜欢商品\(\alpha\)的概率; \(f_u(\alpha)\)则可以是普适的衡量对于用户\(u\)来说商品\(\alpha\)多样性或者新颖性的函数。当令 \(dc(l_{u \alpha})=1\)时相当于不考虑推荐列表排序偏差的影响。当令$ Pr_{u \alpha} =1$时相当于不考虑商品预测排序值的影响,也即是将推荐列表中的所有商品同等看待。在此框架下,我们可以对前面提到的Intra-user Similarity做如下改进:
\[
I_u = \frac{1}{\sum_{\alpha}dc(l_{u \alpha})} \sum_{\alpha} dc(l_{u \alpha}) Pr_{u \alpha} I_u (\alpha,L)
\]
式中,$ I_u (\alpha,L)\(为对于用户\)u\(来说商品\)\alpha$对其Intra-user similarity 的 贡 献
将本文所涉及的评价指标总结如表所示。
6.总结与展望
本文对现有的推荐系统评价指标进行了系统的回顾,总结了推荐系统评价指标的最新研究进展,从准确度、 多样性、 新颖性及覆盖率等方面进行多角度阐述,并对各自的优缺点以及适用环境进行了深入的分析。特别讨论了基于排序加权的指标,强调了推荐列表中商品排序对推荐评价的影响。
设计以用户体验为中心的推荐系统,除了提高推荐精确度、多样性、新颖性以及覆盖率等指标以外,还应该考虑以下几方面:
1) 提高推荐算法效率,加强增量算法研究。
2) 提高推荐算法的鲁棒性,减少推荐的干扰因素,净化系统环境。
3) 提高推荐的可解释性,增强用户对推荐系统的信心。
4) 加强推荐系统用户界面的友好程度。
5) 增强用户与系统的互动,从而更加深入细致的挖掘用户的兴趣。
综上所述,无论是提高推荐算法效率、 鲁棒性或可解释性,加强用户界面的友好程度,还是加强用户与系统的互动,其最终目的都是为了提高用户体验感和满意度。
Paper Reading:推荐系统评价指标综述的更多相关文章
- Paper Reading: Stereo DSO
开篇第一篇就写一个paper reading吧,用markdown+vim写东西切换中英文挺麻烦的,有些就偷懒都用英文写了. Stereo DSO: Large-Scale Direct Sparse ...
- Paper Reading:个性化推荐系统的研究进展
论文:个性化推荐系统的研究进展 发表时间:2009 发表作者:刘建国,周涛,汪秉宏 论文链接:论文链接 本文发表在2009,对经典个性化推荐算法做了基本的介绍,是非常好的一篇中文推荐系统方面的文章. ...
- Paper Reading:Deep Neural Networks for YouTube Recommendations
论文:Deep Neural Networks for YouTube Recommendations 发表时间:2016 发表作者:(Google)Paul Covington, Jay Adams ...
- [Paper Reading]--Exploiting Relevance Feedback in Knowledge Graph
<Exploiting Relevance Feedback in Knowledge Graph> Publication: KDD 2015 Authors: Yu Su, Sheng ...
- Paper Reading: Perceptual Generative Adversarial Networks for Small Object Detection
Perceptual Generative Adversarial Networks for Small Object Detection 2017-07-11 19:47:46 CVPR 20 ...
- Paper Reading: In Defense of the Triplet Loss for Person Re-Identification
In Defense of the Triplet Loss for Person Re-Identification 2017-07-02 14:04:20 This blog comes ...
- Paper Reading - Attention Is All You Need ( NIPS 2017 ) ★
Link of the Paper: https://arxiv.org/abs/1706.03762 Motivation: The inherently sequential nature of ...
- Paper Reading - Convolutional Sequence to Sequence Learning ( CoRR 2017 ) ★
Link of the Paper: https://arxiv.org/abs/1705.03122 Motivation: Compared to recurrent layers, convol ...
- Paper Reading - Deep Captioning with Multimodal Recurrent Neural Networks ( m-RNN ) ( ICLR 2015 ) ★
Link of the Paper: https://arxiv.org/pdf/1412.6632.pdf Main Points: The authors propose a multimodal ...
随机推荐
- 机器学习算法K-NN的一个使用实例:预测一个人是否患有糖尿病 (KNN-Predict whether a person will have diabetes or not )
学习中...不断更新. 在糖尿病人的数据库中有几列是不能为0的 比如葡萄糖 胰岛素 身体指数和皮肤厚度.所以在数据预处理阶段需要对这些列的数据进行替换. remeber we did 12 minus ...
- 最新 创梦天地java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.创梦天地等10家互联网公司的校招Offer,因为某些自身原因最终选择了创梦天地.6.7月主要是做系统复习.项目复盘.Leet ...
- Vue 拖拽组件 vuedraggable 、 vue-dragging 、awe-dnd
参考链接:http://www.ptbird.cn/vue-draggable-dragging.html vue-draggable 学习和使用:https://www.jianshu.com/p/ ...
- sqlite lib导入
依赖 1.System.Data.SQLite 2.SqlKata //https://www.nuget.org/profiles/SQLite //http://system.data.sqlit ...
- vue图片点击放大功能
因项目需求(ui框架element-ui),需要实现图片的点击放大,还要能旋转以及上下切换.当时第一反应,element-ui好像没有这样的组件,就想过自己写,但是那个旋转翻页上下切换感觉有点麻烦,不 ...
- Spring cloud的各类组件
Spring cloud 的各类组件 1.注册中心 eureka 2.ribbon 3.feign 4.hystirx 断路器 5.高速缓存器 redis 6.断路器Dashboard监控仪表盘
- WUST Oracle数据库 实验一实验二
链接:https://pan.baidu.com/s/1hCzvTLzXhyItP2gD_69gzg 提取码:j68f 复制这段内容后打开百度网盘手机App,操作更方便哦
- spring 框架的核心总结
最近在学习Java语言,从而也学习了SpringFramework 这个大名鼎鼎的框架.从而做一些的记录. 题外话: 学习过几种不同的语言,后来知道所有的编程语言里所有的概念翻来覆去都是一样的事物,只 ...
- MySQLdb和pymysql区别
MySQLdb要快点,原因是这个是C写的,速度快 MySQLdb只支持Python2.x,还不支持3.x 可以用PyMySQL代替.安装方法:pip install PyMySQL 然后在需要的项目中 ...
- 画一个秘密花园 | Scratch 3.0 艺术项目
项目类型:艺术 难度指数:3.5颗星 适合年龄:9岁以上 角色个数:1 程序个数:1 学习时长:建议60min——90min 项目内容: 点击绿色旗子,音乐声响起.随后在舞台上点击一下,就出现一朵花, ...