文章目录
1 准确率Mean average precision
1.1 定义
Precision at position k (P@k)是一个衡量排名前k位的方法,使用两个级别(相关的和不相关)的相关性判断。公式:
P
@
k
=
1
k
∑
j
=
1
k
r
j
P@k=\dfrac{1}{k}\sum^{k}_{j=1}r^j
P@k=k1∑j=1krj
k是一个截断位置
r
j
=
1
r_j=1
rj=1,如果第j个位置的文档是相关的。
r
j
=
0
r_j=0
rj=0,否则。
平均准确率 average precision
A P = 1 ∣ D + ∣ ∑ j = 1 N r j P @ j AP = \dfrac{1}{|D_+|}\sum^{N}_{j=1}r_j P@j AP=∣D+∣1∑j=1NrjP@j
∣
D
+
∣
|D_+|
∣D+∣是关于查询的相关文档的数量,也可以认为相当于相当查询的标准答案的相关文档数量。
j是排序后的文档结果。
一般来说会有很多个query参与到训练集中。所以要取平均值: Mean average precision。
这个评价指标是基于二维的:相关、不相关。
1.2 计算
举个例子,现有一个query,与之相关的文档有4——D1,D2,D3,D4,用rank方法检索后,D2,D3,D4的排序分别是1,3,5,D1没有搜索到。也就是说rank后的结果:D2,D5,D3,D6,D4。D5,D6是不相关文档。
那么AP =
1
4
\dfrac{1}{4}
41(P@1+P@3+P@5)
P
@
1
=
1
1
=
1
P@1=\dfrac{1}{1}=1
P@1=11=1
P @ 3 = 2 3 P@3=\dfrac{2}{3} P@3=32,k=3,从1到3,相关文档有2个。
P @ 5 = 3 5 P@5=\dfrac{3}{5} P@5=53,k=5,从1到5,相关文档有3个。
那么AP = (1/1 + 2/3 + 3/5)/ 4=0.57
2 NDCG(Normalized Discounted Cumulative Gain)
2.1定义
NDCG(Normalized Discounted Cumulative Gain) 归一化折损累计增益。
N D C G @ k = D C G @ k I D C G @ k NDCG@k=\dfrac{DCG@k}{IDCG@k} NDCG@k=IDCG@kDCG@k
D
C
G
@
K
=
∑
j
=
1
k
g
(
r
j
)
d
(
j
)
DCG@K=\sum^k_{j=1}g(r_j)d(j)
DCG@K=∑j=1kg(rj)d(j),
g
(
r
j
)
=
2
r
j
−
1
g(r_j)=2^{r_j}-1
g(rj)=2rj−1,
d
(
j
)
=
1
,
2
d(j)=1,2
d(j)=1,2,j=1,2
d
(
j
)
=
1
l
o
g
2
(
j
)
d(j)=\dfrac{1}{log_2(j)}
d(j)=log2(j)1,其他情况
也有一种写法是:
D
C
G
@
K
=
∑
j
=
1
k
2
r
j
−
1
l
o
g
2
(
j
+
1
)
DCG@K=\sum^k_{j=1}\dfrac{2^{r_j}-1}{log_2(j+1)}
DCG@K=∑j=1klog2(j+1)2rj−1
这个计算公式可以针对多种分类级别。例如 r j = 3 , 2 , 1 , 0 r_j=3,2,1,0 rj=3,2,1,0。而且是包含了位置影响因素。相关性高的,排在前面会使得整体NDCG分值变大。
IDCG@k为理想情况下最大的DCG值:
I
D
C
G
@
k
=
∑
j
=
1
k
2
i
d
e
a
l
i
−
1
l
o
g
2
(
j
+
1
)
IDCG@k=\sum^{k}_{j=1}\dfrac{2^{ideal_i}-1}{log_2(j+1)}
IDCG@k=∑j=1klog2(j+1)2ideali−1
2.2 例子
假设对于某一个query,本次搜索召回5个文档,其关联分数分别为 3、2、3、0、1、2。
j | 2 r j − 1 2^{r_j}-1 2rj−1 | l o g 2 ( j + 1 ) log_2(j+1) log2(j+1) | res |
---|---|---|---|
1 | 3 | 1 | 3 |
2 | 2 | 1.58 | 1.26 |
3 | 3 | 2 | 1.5 |
4 | 0 | 2.32 | 0 |
5 | 1 | 2.58 | 0.38 |
6 | 2 | 2.8 | 0.71 |
所以 DCG = 3+1.26+1.5+0+0.38+0.71 = 6.86
接下来计算IDCG。假设这个query的相关文档有6个,相关性分数为:3、3、3、2、2、1。
j | g ( r j ) g(r_j) g(rj) | d(j) | res |
---|---|---|---|
1 | 3 | 1 | 3 |
2 | 3 | 1.58 | 1.89 |
3 | 3 | 2 | 1.5 |
4 | 2 | 2.32 | 0.86 |
5 | 2 | 2.58 | 0.77 |
6 | 1 | 2.8 | 0.35 |
所以IDCG = 3+1.89+1.5+0.86+0.77+0.35 = 8.37
最终 NDCG@6 = 6.86/8.37 = 81.96%
参考链接:https://www.cnblogs.com/by-dream/p/9403984.html https://blog.csdn.net/zimohuakai/article/details/6847453
《LETOR: A benchmark collection for research on learning to rank for information retrieval》