信息检索(IR)—评价指标(二)
接上一篇文章:
信息检索(IR)—评价指标(一)
1. 单值概括
1.1 搜索集合的平均准确率(MAP)
对于每一个搜索而言,其平均准确率是指每一篇相关文档检索出来之后准确率的平均值。而搜索集合的平均准确率(MAP)是每一个搜索的平均准确率的平均值。
为了理解上面的概念,我们举一个例子来说明一下:
首先来计算一下对于搜索1的平均准确率,根据搜索1的Rank情况有:
- 当检索出来1篇相关文档的时候,此时一共检索出来1篇文章。准确率为1/1=1。
- 当检索出来2篇相关文档的时候,此时一共检索出来2篇文章,准确率为2/2=1。
- 当检索出来3篇相关文档的时候,此时一共检索出来4篇文章,准确率为3/4=0.75
- 当检索出来第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的平均值。
这里举一个例子来说明一下:
第一个搜索上的R-Precision的值为:17/50=0.34
第二个搜索上的R-Precision的值为:7/10=0.7
则搜索集合的R-Precision为(17/50+7/10)/2=0.52
1.3 P@N
单个搜索的P@N是系统对于该主题返回的前N个结果的准确率。例如,对单次搜索的结果中前5篇,如果有4篇为相关文档,则P@5=4/5=0.8。搜索集合的P@N是每个搜索主题的P@N的算术平均值。
2. RR排序倒数和MRR平均排序倒数
2.1 RR排序倒数
RR是第一个相关文档出现位置的倒数,经常用于评价只找到一个相关文档的情况,RR值具体为1/r,其中r为第一个相关文档在结果中的排序数。如果检索结果中没有相关文档,那么RR的值为0。
2.2 MRR(评价排序倒数)
MRR是在RR的基础上对于多个查询的RR的结果取平均值。即对一个检索系统输入多个查询,分别得到每个查询的排序倒数,取平均即为MRR,计算公式如下:
M
R
R
=
∑
q
=
1
n
1
r
a
n
k
q
n
MRR=\frac{∑_{q=1}^n\frac{1}{rankq}}{n}
MRR=n∑q=1nrankq1
例如MRR=0.25就意味着检索系统平均在返回结果的第4个位置上找到相关文档。
2.3 局限性
无论是RR还是MRR,两者都是基于2元的相关性判断,即相关文档的位置信息,因此RR与MRR都不能区分一个高相关性的文档和低相关性的文档之间的区别。
3. NDCG评测
3.1 NDCG介绍
两个假设:
首先,NDCG是基于以下两个假设的:
- 高相关性的文档比边缘相关的文档要有用的多。
- 一个相关文档的排序位置越靠后对于用户的价值就越低。
三个步骤:
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\}
G′={3,2,3,0,0,1,2,2,3,0}
排序列表中的第i个累积权值CG由G’按照如下的规则来计算:
C
G
[
i
]
=
{
G
[
1
]
如
果
i
=
1
C
G
[
i
−
1
]
+
G
[
i
]
其
他
CG[i]=\begin{cases}G[1]&如果i=1\\ CG[i-1]+G[i]&其他\end{cases}
CG[i]={G[1]CG[i−1]+G[i]如果i=1其他
则上面的例子可以计算出来:
C
G
′
=
{
3
,
5
,
8
,
8
,
8
,
9
,
11
,
13
,
16
,
16
}
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,代表了对用户在检索结果时耐心的一个模拟:
D
C
G
[
i
]
=
{
C
G
[
i
]
,
当
i
<
b
时
D
C
G
[
i
−
1
]
+
G
[
i
]
l
o
g
b
(
i
)
,
当
i
≥
b
时
DCG[i]=\begin{cases}CG[i],&当i<b时\\ DCG[i-1]+\frac{G[i]}{log_b(i)},&当i≥b时\end{cases}
DCG[i]={CG[i],DCG[i−1]+logb(i)G[i],当i<b时当i≥b时
对数b的选取的不同,折扣函数的曲线斜率就不同,因此对累积权值的影响也不同。例如,对于上例而言,我们取b=2,则有:
D
C
G
′
=
{
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\}
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\}
I′={3,3,3,2,2,2,1,0,0,0}
根据理想情况,可以计算出来理想情况下的CG和DCG(这里b还是取2)
C
G
′
I
=
{
3
,
6
,
9
,
11
,
13
,
15
,
16
,
16
,
16
,
16
}
CG'I=\{3,6,9,11,13,15,16,16,16,16\}
CG′I={3,6,9,11,13,15,16,16,16,16}
D
C
G
′
I
=
{
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\}
DCG′I={3,6,7.89,8.89,9.75,10.52,10.88,10.88,10.88,10.88}
用理想化的结果对信息检索系统返回的结果做归一化的方法:
n
o
r
m
−
v
e
c
t
(
V
,
I
)
=
{
v
1
/
i
1
,
v
2
/
i
2
,
.
.
.
,
v
k
/
i
k
}
norm-vect(V,I)=\{v1/i1,v2/i2,...,vk/ik\}
norm−vect(V,I)={v1/i1,v2/i2,...,vk/ik}
那上面的例子来说:
n
C
G
′
=
n
o
r
m
−
v
e
c
t
(
C
G
′
,
C
G
′
I
)
=
{
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\}
nCG′=norm−vect(CG′,CG′I)={1,0.83,0.89,0.73,0.62,0.6,0.69,0.81,1,1}
n
D
C
G
′
=
n
o
r
m
−
v
e
c
t
(
D
C
G
′
,
D
C
G
′
I
)
=
{
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\}
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. 其他评价指标
5. 参考
- 哈工大——信息检索