信息检索导论第八章–-信息检索的评价

#信息检索导论第八章–信息检索的评价

一、信息检索系统的评价

采用常规方式来度量信息检索系统的效果,需要一个测试集,测试集由以下3个部分构成:

  1. 一个文档集。
  2. 一组用于测试的信息需求集合,信息需求可以表示成查询。
  3. 一组相关性判定结果,对每个查询-文档对而言,通常会赋予一个二值判断结果—相关/不相关。

二、无序检索结果集合的评价

文档集合的划分
| 分类 | 相关(relevant) | 不相关(nonrelevant) |
| :—-: | :——————-: | :————————: |
|返回| 真正例(true positives,tp)| 伪正例(false positives,fp)|
|未返回| 伪反例(false negatives,fp) |真反例(true negatives,tn)|

召回率(Recall):$R=tp/(tp+fn)$,返回的相关结果数占实际相关结果总数的比率,也称为查全率,R∈ [0,1]
正确率(Precision):$P=tp/(tp+fp)$,返回的结果中真正相关结果的比率,也称为查准率, P∈ [0,1]
精确率(Accuracy):文档集中所有判断正确的文档所占的比例,计算公式为:$A=(tp+tn)/(tp+fp+fn+tn)$

两个指标分别度量检索效果的某个方面,忽略任何一个方面都有失偏颇。两个极端情况:返回有把握的1篇,P=100%,但R极低;全部文档都返回,R=1,但P极低

正确率和召回率的问题:

  1. 召回率难以计算
    解决方法:Pooling方法,或者不考虑召回率

  2. 两个指标分别衡量了系统的某个方面,但是也为比较带来了难度,究竟哪个系统好?大学最终排名也只有一个指标。
    解决方法:单一指标,将两个指标融成一个指标

  3. 两个指标都是基于(无序)集合进行计算,并没有考虑序的作用
    举例:两个系统,对某个查询,返回的相关文档数目一样都是10,但是第一个系统是前10条结果,后一个系统是最后10条结果。显然,第一个系统优。但是根据上面基于集合的计算,显然两者指标一样。
    解决方法:引入序的作用

正确率与召回率的融合:
F值(F-measure):召回率R和正确率P的调和平均值,if P=0 or R=0, then F=0, else 采用下式计算:
其中,$\alpha\in[0,1]$,$\beta ^{2}=\frac{1-\alpha }{\alpha }$

当β = 1时,F的计算公式可以简化为$$F_{\beta =1}=\frac{2PR}{P+R}$$

$F_{\beta}$表示召回率的重要程度是正确率的$\beta$(>=0)倍, $\beta$>1更重视召回率, $\beta$<1更重视正确率

为什么使用调和平均计算F值?
如果采用算术平均计算F值,那么一个返回全部文档的搜索引擎的F值就不低于50%,这有些过高。
做法:不管是P还是R,如果十分低,那么结果应该表现出来,即这样的情形下最终的F值应该有所惩罚
采用P和R中的最小值可能达到上述目的
但是最小值方法不平滑而且不易加权
基于调和平均计算出的F 值可以看成是平滑的最小值函数

三、有序检索结果的评价方法

正确率召回率曲线( precision-recall curve):将正确率和召回率分别作为纵坐标横坐标,可得到正确率-召回率曲线。

差值正确率(interpolated precision):定义为对于任意不小于r的召回率水平r’所对应的最大正确率

Break Point:P-R曲线上 P=R的那个点,这样可以直接进行单值比较

十一点差值平均正确率:整个正确率—召回率曲线具有非常丰富的信息,但是人们往往期望将这些信息浓缩成几个甚至一个数字。传统的做法是(比如在前八次TREC 的Ad hoc 任务中)定义一个11 点插值平均正确率(eleven-point interpolated average precision)。对每个信息需求,插值的正确率定义在0.0,0.1, 0.2, …, 1.0 等11 个召回率水平上。

AP(平均正确率):对于单个信息需求,返回结果中在每篇相关文档位置上的正确率的平均值。

平均正确率的计算:某个查询Q共有6个相关结果,某系统排序返回了5篇相关文档,其位置分别是第1,第2,第5,第10,第20位,则
AP=(1/1+2/2+3/5+4/10+5/20+0)/6

MAP(平均正确率均值):对所有信息需求的总AP求平均值
其中Q是查询集合

通常,单个系统在不同信息需求集上的MAP值往往相差较大,不同系统在同一信息需求上的MAP差异反而相对要小一些。这意味着:用于测试的信息需求必须足够大,需求之间的差异也要足够大,这样的话系统在不同查询上体现出的效果才具有代表性。

在许多重要应用特别是Web搜索,用户只看重第1页或者前3页中有多少号结果。于是需要在固定的较少数目的结果文档中计算正确率。该正确率为前k个结果的正确率(precision at k,简写为P@k),但是该指标在通常所用的指标中是最不稳定的,因为相关文档的总数会对P@k有非常强的影响。
为了解决这个问题我们引入了R正确率。
R正确率:先知道相关的文档集|Rel|,然后计算前|Rel|结果集的正确率,R正确性是正确率-召回率线上的一个点,而不是对整条曲线求概括值。

ROC:(ROC 是receiver operating characteristics 的缩写,但是知道这个对大多数人来说没什么用)曲线。ROC 曲线是基于假阳率(false positive rate)或1-特异度(specificity)画出真阳率(true positive rate)或者敏感度(sensitivity)而得到的曲线。

CG (cumulative gain,累积增益)基于机器学习的排序方法中的指标,一个具体的指标为NDCG(normalized discounted cumulative gain,归一化折损累积增益)。NDCG是针对非二值相关情况下的指标。

其中,$Z_{j,k}$是归一化因子,用于保证对于查询 j 最完美系统的NDCG at k 得分是1,m是返回文档的位置。

四、相关性判断

缓冲池(Pooling)方法:对多个检索系统的Top N个结果组成的集合进行人工标注,标注出的相关文档集合作为整个相关文档集合。这种做法被验证是可行的(可以比较不同系统的相对效果),在TREC会议中被广泛采用。

人不是机器,他们给出的文档和查询的相关性判定结果并不完全可靠,会存在差异。

用于度量这个一致性的常用指标是 kappa 统计量(kappa statistic)。它用于类别型判断结果(比如相关或不相关两类判断结果),是对随机一致性比率的一个简单校正。
$$kappa=\frac{P(A)-P(E)}{1-P(E)}$$
其中,P(A)是观察到的一致性判断比率,而P(E)是随机情况下所期望的一致性判断比率

五、更广的视角看评价:系统质量及用户效果

系统相关问题
索引速度如何?对长度满足某种分布的文档集构建索引,每小时能对多少篇文档构建索引?
检索速度如何?基于不同索引大小的响应函数如何?
查询语言的表达能力如何?复杂查询的处理速度多快?
文档集有多大?可以基于文档的数目来计算或者基于文档集中所包含的多个话题的分布信息来计算
用户效用:回访率、用户生产驴。民族志式访谈

六、结果片段

结果片段是结果的一个短摘要,能够帮助用户确定结果的相关性。结果片段包括文档的标题,以及一段自动抽取的摘要。
常用的摘要分为两类:静态摘要,基于查询的动态摘要

  1. 静态摘要 永远保持不变,并不随查询变化而变化
  2. 动态摘要或基于查询的摘要 根据查询锁推导出的信息需求来进行个性化生成,并试图解释在给定查询下返回当前文档的原因