1. MAP
Precision(P):
准确率(精确度)是指检索得到的文档中相关文档所占的比例,公式如下:
prcision@10表示检索10个文档中包含相关所占的比例,即:|{retrieved documents}| = 10。Recall(R):
召回率是指所有相关文档中被检索到的比例,公式如下:
Average precision(AP):
由前面可知,准确率和召回率都只能衡量检索性能的一个方面,最理想的情况肯定是准确率和召回率都比较高。当我们想提高召回率的时候,肯定会影响准确率,所以可以把准确率看做是召回率的函数,即:P=f(R),也就是随着召回率从0到1,准确率的变化情况。那么就可以对函数P=f(R)在R上进行积分,可以求PP的期望均值。公式如下:
其中rel(k)rel(k)表示第k个文档是否相关,若相关则为1,否则为0,P(k)表示前k个文档的准确率。 AvePAveP的计算方式可以简单的认为是:
其中R表示相关文档的总个数,position(r)表示,结果列表从前往后看,第r个相关文档在列表中的位置。比如,有三个相关文档,位置分别为1、3、6,那么。在编程的时候需要注意,位置和第i个相关文档,都是从1开始的,不是从0开始的。
AP意义是在召回率从0到1逐步提高的同时,对每个R位置上的P进行相加,也即要保证准确率比较高,才能使最后的AP比较大。Mean average precision(MAP):
通常会用多个查询语句来衡量检索系统的性能,所以应该对多个查询语句的AP求均值(the mean of average precision scores),即公式:
2. nDCG
在MAP计算公式中,文档只有相关不相关两种,而在nDCG中,文档的相关度可以分多个等级进行打分。
Cumulative Gain(CG):
表示前p个位置累计得到的效益,公式如下:
其中表示第i个文档的相关度等级,如:2表示非常相关,1表示相关,0表示无关,-1表示垃圾文件。Discounted cumulative gain(DCG):
由于在的计算中对位置信息不敏感,比如检索到了三个文档相关度依次是{3,-1,1}和{-1,1,3},显然前面的排序更优,但是它们的CG相同,所以要引入对位置信息的度量计算,既要考虑文档的相关度等级,也要考虑它所在的位置信息。假设每个位置按照从小到大的排序,它们的价值依次递减,如:可以假设第i个位置的价值是,那么排在第i个位置的文档所产生的效益就是。公式如下:
另一种比较常用的,用来增加相关度影响比重的DCG计算方式是:
- Ideal DCG(IDCG):
IDCG是理想情况下的DCG,即对于一个查询语句和p来说,DCG的最大值。公式如下:
其中|REL|表示,文档按照相关性从大到小的顺序排序,取前p个文档组成的集合。也就是按照最优的方式对文档进行排序。
- Normalize DCG(nDCG):
由于每个查询语句所能检索到的结果文档集合长度不一,p值的不同会对DCG的计算有较大的影响。所以不能对不同查询语句的DCG进行求平均,需要进行归一化处理。nDCG就是用IDCG进行归一化处理,表示当前DCG比IDCG还差多大的距离。公式如下:
这样每个查询语句的就是从0到1,不同查询语句之间就可以做比较,就可以求多个查询语句的平均。
NDCG@10、NDCG@20分别表示求p为10和20的时候的nDCG。
参考: