在信息检索中,当我们进行完检索评价后就需要对于检索所得的结果进行评价,类似于机器学习中的模型评估那样,因此我们需要一些度量方式来对于信息检索的结果进行评价。
在这篇文章中,我就将介绍一些标准用于度量信息检索的结果。具体将包含Cranfield范式,Precision、Recall、P@n、MAP、MPP、F等许多评价指标。
一、Cranfield范式
Cranfield范式是指一种用于信息检索系统评估的标准方法,它起源于1960年代英国Cranfield大学的一项研究工作。这项工作的目标之一是建立一个基准测试环境,用于比较不同的信息检索技术的有效性。它本身并非一种评价指标,而是一种方法论,描述如何进行信息检索实验的设计与评价。
Cranfield主要由4部分组成,分别为数据集、查询集、相关性判断与检索指标。对于前三者在此不必多言,但对于检索指标我们需要知道:Cranfield范式引入了用于评估检索效果的度量标准,最著名的就是查准率(Precision)和查全率(Recall)。查准率衡量的是检索结果中相关文档的比例,而查全率衡量的是所有相关文档中有多少被检索到了。
二、检索指标
2.1 Precision
Precision可以被翻译为精度,其代表在检出文档中相关文档的比例,表达式为:
其中,R表示相关文档,A表示检出文档。
举个例子:
对于一个查询q有如下的结果:
1.d123 2.d84~ 3.d345 4.d1~ 5.d11
其中有加“~”表示其是相关文档,而R由专家评估可得R={d1,d84,d100}
那么可知R=3,A=5,将之带入式子可得:
2.2 Recall
Recall可以被翻译为召回率,其是指相关文档与检出文档的比例,表达式为:
其中,R与A的含义同上。
同样举个例子:
例子的已知条件同上,则带入表达式得:
对于上述的Precision和Recall在python的sklearn中存在现成的函数去调用,具体代码如下:
from sklearn.metrics import precision_score, recall_score# 假设我们有一组预测的相关文档和真实的文档列表
# 预测的相关文档(预测标签)
predicted_relevant = [1, 0, 1, 1, 0] # 假设1表示相关,0表示不相关# 真实的相关文档(真实标签)
true_relevant = [1, 1, 1, 0, 0] # 同样,1表示相关,0表示不相关# 计算Precision
precision = precision_score(true_relevant, predicted_relevant)
print(f"Precision: {precision:.2f}")# 计算Recall
recall = recall_score(true_relevant, predicted_relevant)
print(f"Recall: {recall:.2f}")
最终输出为:
Precision: 0.67
Recall: 0.67
2.3 P@n
“前n平均精度”(Precision at n,简称 P@n)是一个用于评估信息检索系统性能的指标,特别是在搜索引擎、推荐系统以及分类任务中。它衡量的是检索结果列表中前N个结果的精确度,即在这n个结果中有多少是相关(正确)的结果。
其表达式为:
一般情况下,我们通常选择5或10,即p@5或p@10。
2.4 MAP
平均精度均值(MAP)的主要想法是产生一个关于排序的总结性单一数值,而这个通过对每个新观察到的相关文档计算精度并做平均获得的。
其中,AP 是针对单个查询计算的,而 MAP 则是针对多个查询的 AP 的平均值。AP 考虑了检索结果中相关文档的排列位置,而不仅仅是相关文档的数量。
对于之前的例子我们可以先算出它的AP,AP=0.5,此时如果我们再存在一个查询q2,则可以算对应的AP,然后求和相除即可得到MAP来。
2.5 R精度
R精度的思想是在排序的第R个位置计算精度,从而为该排序生成一个总计欸选哪个的单一值,其中R是当前查询的相关文档总数。
2.6 MRR
平均查询倒数(MRR)是所有排序倒数的均值,即:
举个例子,还是之前的那些已知信息,则有:
我们来看如何计算单个查询的Reciprocal Rank(RR)。在这一组结果中,相关文档出现的位置如下:
d84~ 出现在位置2
d1~ 出现在位置4
由于d100不在检索结果中,我们只考虑出现的两个相关文档。
对于这个查询来说,我们取第一个相关文档的位置来计算RR:
第一个相关文档是d84~,位于第2位,所以RR = 1/2 = 0.5
如果我们只有一个查询,那么MRR就是这个查询的RR值: MRR=RR=0.5
2.7 E值
E值是一种结合了精度和召回率的度量方法,其可以定义为:
其中r(j)是排序中第j个位置的召回率,p(j)是在排序中第j个位置的精度。
此时,如果b=0,那么原式变形为:
如果b->b,那么:
2.8 F值
调和平均(Harmonic Mean)有时也被称为F值,其计算方式如下:
其中,r(j)表示在排序中第j个位置的召回率,P(j)表示在排序中第j个位置的精度。
这些是有关检索评价的一部分指标,除此之外还有许多,我将会在之后的文章中再详细介绍。
此上