MAP
平均准确率(MAP)是每个主题的平均准确率的平均值,反映系统在全部相关文档上的性能指标。系统检索出来的相关文档越靠前(rank 越高),MAP就可能越高。如果系统没有返回相关文档,则准确率默认为0。
例如:有两个主题,主题1有4个相关网页,主题2有5个相关网页,系统对于主题1检索出4个相关网页,其rank分别为1, 2, 4, 7;对于主题2检索出3个相关网页,其rank分别为1,3,5。对于主题1,平均准确率(AP)为(1/1+2/2+3/4+4/7)/4=0.83。对于主题2,平均准确率(AP)为(1/1+2/3+3/5+0+0)/5=0.45。则MAP= (0.83+0.45)/2=0.64。
MRR
是把标准答案在被评价系统给出结果中的排序取倒数作为它的准确度,再对所有的问题取平均。相对简单,举个例子:有3个query如下图所示:
系统的MRR值为:(1/3 + 1/2 + 1)/3 = 11/18=0.61。可以看出,这里的correct response只有一项。
MRR@10则指只计算前10的item里面是否存在correct response,若不存在则失效。
NDCG
CG
有k个物品,每个物品i的相关性分数是reli,总的计算方式便是对所有物品的相关性分数累加。
例如:比如豆瓣给用户推荐了五部电影:M1,M2,M3,M4,M5(重要性从左往右递减),该用户对这五部电影的评分分别是:5, 3, 2, 1, 2。那么这个推荐列表的CG等于:5+3+2+1+3=13。
可以看出,CG并没有考虑排序信息,即假如M2比M3重要,那么M2应该为3,M3为2。但是M2的分数是2,M3的分数是3时,结果并不会受到影响。
DCG
考虑了排序信息,即重要的item分数越高越好,不重要的item分数的影响不大。 比如豆瓣给用户推荐了五部电影:M1,M2,M3,M4,M5,该用户对这五部电影的评分分别是:5, 3, 2, 1, 2
那么这个推荐列表的DCG等于:
NDCG
用户真实列表长度不同(K不同),不同用户之间的DCG相比没有意义。所以要对不同用户的指标进行归一化,自然的想法就是计算每个用户真实列表的DCG分数(当前K列表的最大分数),用IDCG表示,然后用每个用户的DCG与IDCG之比作为每个用户归一化后的分值,最后对每个用户取平均得到最终的分值,即NDCG。
比如有七部电影:M1,M2,M3,M4,M5,M6,M7,该用户对他们的评分分别是:5,3,2,1,2,4,0。理想情况下,推荐的其中五部电影刚好是得分前5的电影,即:5,4,3,2,2。所以:
但是实际推荐的五部电影分数是5, 3, 2, 1, 2,所以NDCG是:
NDCG是0到1的数,越接近1说明推荐越准确。
P@K
P@10意思是:返回前10个结果的精确度。P英文为 Precision。直接看下图例子。
准确的说,这里演示的是P@5。一次查询中返回了上图所示的5个答案,其中第1、3、5个答案是正确的,第2、4个答案是错误的,因此这次查询的P@5=0.6。
系统检索到的相关文件 / 系统检索到的文件总数。
Recall
系统检索到的相关文件 / 系统所有相关的文件总数。