推荐系统的排序指标

1.Mean Average Precision (MAP)

AP=nij=1P(j).yi,jnij=1yi,jAP=∑j=1niP(j).yi,j∑j=1niyi,j 
其中, 
yi,jyi,j:排序中第j个元素对于查询i是否是相关的;相关为1,不相关为0。 
P(j)=k:πi(k)πi(j)y(i,k)πi(j)P(j)=∑k:πi(k)≤πi(j)y(i,k)πi(j) 
其中, 
πi(j)πi(j)为j的排序位置。

例如, 
rank_no    是否相关 
1        1 
2        0 
3        1 
4        0 
5        1 
6        0 
则根据AP计算公式: 
AP = (1*1 + (1/2) *0+ (2/3)*1 + (2/4)*0 + (3/5)*0 + (3/6)*0) /3 = …

举例,第一项,P(1) = 它前面的项(包括自己)相关的个数除所在排序的位置(也就是1)。第一位及前面(前面没有)相关的个数就是它本身,所以P()的分子就是1,分母也是1.所以取值为1。同时y值为1.最终的对应AP中的项就是1 
其他以此类推。 
AP的最大值为1(也就是当相关的全部排在不相关的前面的时候) 
MAP就是对所有query的AP求平均。

2.Mean Reciprocal Rank (MRR)

这里写图片描述 
其中|Q|是查询个数,ranki是第i个查询,第一个相关的结果所在的排列位置。 
举例: 
这里写图片描述 
对于三个查询,每个查询的ranki分别为3、2、1。所以, 
MRR=1/3(1/3+1/2+1/1)MRR=1/3∗(1/3+1/2+1/1) 
(参考自Wikipedia)

3.NDCG

首先是DCG的定义: 
这里写图片描述

其中, 
relireli为排在第i个位置的物品实际的评价分值(也就是和查询相关的程度) 
举例: 
这里写图片描述 
所以: 
这里写图片描述

理想的DCG,也就是排序是最理想的情况(3,3,2,2,1,0): 
这里写图片描述

最终的NDCG为: 
这里写图片描述 
(参考自Wikipedia) 
以上是信息检索中常用的nDCG指标。考虑推荐中(二值评分–0,1)的情况。参考文献【1】中,给出了更适合的描述(实际定义都是一样。只是上面描述时,评分是连续的分值;而【1】中的描述考虑的是[0,1]分值): 
这里写图片描述

4.Kendall tau distance

也就是两个排序间,评价存在分歧的对的数量。具体定义如下: 
这里写图片描述 
其中,τ1(i)τ1(i)τ2(i)τ2(i)分别为元素i在两个排序中的序位 
如果两个排序完全一样。则Kendall tau distance位0。否则,如果两个排序完全相反,则为n(n1)/2n(n−1)/2。 
通常 Kendall tau distance都会通过除以n(n1)/2n(n−1)/2来归一化。

举例: 
这里写图片描述

这里写图片描述

从中可以看出有4个元素对在两个排序中存在分歧。所以归一化后的Kendall tau distance为: 
这里写图片描述 
(参考自Wikipedia) 
此外,参考文献【1】中也有这个指标的介绍。略有不同,下面直接截取供大家参考: 
这里写图片描述
5、Spearman’s ρ (斯皮尔曼的ρ)[1][1] 
基本思想类似Kendall tau distance:比较两个排序(通常一个是理想排序)的(排序值的)皮尔逊相关系数。 
比如在推荐中,一个推荐排序列表采用物品实际的评分值(用户实际的偏好程度) 排序。一个是你的模型对物品的实际排序。si,jsi,j∗表示你模型预测中,物品j在用户i的推荐列表上的排序位置;yi,jyi,j∗表示按实际用户i对物品的评分来排序时物品j在i的推荐列表上的排序位置。s¯s¯∗ 表示si,jsi,j∗的平均值;y¯y¯∗ 表示yi,jyi,j∗的平均值.。则: 
这里写图片描述 
其中ΩtestΩtest为测试集

更多参考文献: 
【1】 Statistical Methods for Recommender Systems

猜你喜欢

转载自blog.csdn.net/zhangbaoanhadoop/article/details/79903670
今日推荐