信息检索(IR)—评价指标(二)

信息检索(IR)—评价指标(二)

接上一篇文章:
信息检索(IR)—评价指标(一)

1. 单值概括

1.1 搜索集合的平均准确率(MAP)

对于每一个搜索而言,其平均准确率是指每一篇相关文档检索出来之后准确率的平均值。而搜索集合的平均准确率(MAP)是每一个搜索的平均准确率的平均值。

为了理解上面的概念,我们举一个例子来说明一下:

信息检索(IR)—评价指标(二)
首先来计算一下对于搜索1的平均准确率,根据搜索1的Rank情况有:

  1. 当检索出来1篇相关文档的时候,此时一共检索出来1篇文章。准确率为1/1=1。
  2. 当检索出来2篇相关文档的时候,此时一共检索出来2篇文章,准确率为2/2=1。
  3. 当检索出来3篇相关文档的时候,此时一共检索出来4篇文章,准确率为3/4=0.75
  4. 当检索出来第4篇相关文档的时候,此时一共检索出来7篇文章,准确率为4/7。
    最终,搜索1的平均准确率为 (1/1+2/2+3/4+4/7)/4=0.83。

同理,对于搜索2,也可以计算其平均准确率为:
(1/1+2/3+3/5+0+0)/5 = 0.45
在计算的时候需要注意的是,最后的平均准确率的分母是所有相关文档的数量,即使没有被检索出来,也应该考虑在内。

则搜索集合的平均准确率为MAP为:(0.83+0.45)/2=0.64。

1.2 R-Precision

单个搜索的R-Precision是检索出来R篇文档时的准确率。其中,R是测试集中与搜索相关的文档数量。进一步,搜索集合的R-Precision是每个搜索的R-Precision的平均值。

这里举一个例子来说明一下:

信息检索(IR)—评价指标(二)
第一个搜索上的R-Precision的值为:17/50=0.34
第二个搜索上的R-Precision的值为:7/10=0.7
则搜索集合的R-Precision为(17/50+7/10)/2=0.52

1.3 [email protected]

单个搜索的[email protected]是系统对于该主题返回的前N个结果的准确率。例如,对单次搜索的结果中前5篇,如果有4篇为相关文档,则[email protected]=4/5=0.8。搜索集合的[email protected]是每个搜索主题的[email protected]的算术平均值。

2. RR排序倒数和MRR平均排序倒数

2.1 RR排序倒数

RR是第一个相关文档出现位置的倒数,经常用于评价只找到一个相关文档的情况,RR值具体为1/r,其中r为第一个相关文档在结果中的排序数。如果检索结果中没有相关文档,那么RR的值为0。

2.2 MRR(评价排序倒数)

MRR是在RR的基础上对于多个查询的RR的结果取平均值。即对一个检索系统输入多个查询,分别得到每个查询的排序倒数,取平均即为MRR,计算公式如下:
MRR=q=1n1rankqnMRR=\frac{∑_{q=1}^n\frac{1}{rankq}}{n}
例如MRR=0.25就意味着检索系统平均在返回结果的第4个位置上找到相关文档。

2.3 局限性

无论是RR还是MRR,两者都是基于2元的相关性判断,即相关文档的位置信息,因此RR与MRR都不能区分一个高相关性的文档和低相关性的文档之间的区别。

3. NDCG评测

3.1 NDCG介绍

两个假设:

首先,NDCG是基于以下两个假设的:

  1. 高相关性的文档比边缘相关的文档要有用的多。
  2. 一个相关文档的排序位置越靠后对于用户的价值就越低。

三个步骤:

NDCG的方法在计算的过程中分为三个步骤:
a. CG
b. DCG
c. NDCG

3.2 CG计算

在搜索返回的文档集合G中,D1、D3、D9的相关度权值为3,D2、D7、D8的相关度权值为2,D6的相关度权值为1,D4、D5、D10的相关度权值为0。则可将G改写成一个相关度值排序G‘:
G={3,2,3,0,0,1,2,2,3,0}G'=\{3,2,3,0,0,1,2,2,3,0\}
排序列表中的第i个累积权值CG由G’按照如下的规则来计算:
CG[i]={G[1]i=1CG[i1]+G[i]CG[i]=\begin{cases}G[1]&如果i=1\\ CG[i-1]+G[i]&其他\end{cases}
则上面的例子可以计算出来:
CG={3,5,8,8,8,9,11,13,16,16}CG'=\{3,5,8,8,8,9,11,13,16,16\}

3.3 DCG计算

DCG值的计算中引入了一个排序位置相关的折扣因子b,代表了对用户在检索结果时耐心的一个模拟:
DCG[i]={CG[i],ibDCG[i1]+G[i]logb(i),ibDCG[i]=\begin{cases}CG[i],&当i<b时\\ DCG[i-1]+\frac{G[i]}{log_b(i)},&当i≥b时\end{cases}

对数b的选取的不同,折扣函数的曲线斜率就不同,因此对累积权值的影响也不同。例如,对于上例而言,我们取b=2,则有:
DCG={3,5,6.89,6.89,7.28,7.99,8.66,9.61,9.61}DCG'=\{3,5,6.89,6.89,7.28,7.99,8.66,9.61,9.61\}

NDCG计算

实际上用CG和DCG方法来衡量一个信息检索系统的时候,还需要和最理想的情况比较一下,例如上面的例子的最理想的排序结果为:
I={3,3,3,2,2,2,1,0,0,0}I'=\{3,3,3,2,2,2,1,0,0,0\}
根据理想情况,可以计算出来理想情况下的CG和DCG(这里b还是取2)
CGI={3,6,9,11,13,15,16,16,16,16}CG'I=\{3,6,9,11,13,15,16,16,16,16\}
DCGI={3,6,7.89,8.89,9.75,10.52,10.88,10.88,10.88,10.88}DCG'I=\{3,6,7.89,8.89,9.75,10.52,10.88,10.88,10.88,10.88\}
用理想化的结果对信息检索系统返回的结果做归一化的方法:
normvect(V,I)={v1/i1,v2/i2,...,vk/ik}norm-vect(V,I)=\{v1/i1,v2/i2,...,vk/ik\}
那上面的例子来说:
nCG=normvect(CG,CGI)={1,0.83,0.89,0.73,0.62,0.6,0.69,0.81,1,1}nCG'=norm-vect(CG',CG'I)=\{1,0.83,0.89,0.73,0.62,0.6,0.69,0.81,1,1\}
nDCG=normvect(DCG,DCGI)={1,0.83,0.87,0.78,0.71,0.69,0.73,0.80,0.88,0.88}nDCG'=norm-vect(DCG',DCG'I)=\{1,0.83,0.87,0.78,0.71,0.69,0.73,0.80,0.88,0.88\}

4. 其他评价指标

信息检索(IR)—评价指标(二)
信息检索(IR)—评价指标(二)

5. 参考

  1. 哈工大——信息检索