转载自: http://www.yongfeiyan.cn/post/md/3
P@n
前 n 个结果的准确度, P指的是Precision. 如果用
y
i
=
0
,
1
y_i=0,1
yi=0,1分别表示第 i 个结果相关、不相关, 则
P
@
n
=
1
n
∑
i
=
1
n
y
i
P@n = \frac{1}{n} \sum_{i=1}^ny_i
P@n=n1i=1∑nyi
在评测系统的 P@n 时, 对每个查询的结果计算P@n, 取这些值的平均值作为系统的P@n.
参考:
MAP
Average Precision(AP): P@n的一个平均, 计算方式如下:
A
P
=
1
R
∑
r
=
1
R
P
@
r
AP = \frac{1}{R} \sum_{r=1}^RP@r
AP=R1r=1∑RP@r
其中R是预定义的. 在评测系统的AP时, 对每个查询的结果计算AP, 取这些值的平均值作为系统的AP.
Mean Average Precision (MAP): 在评价一个系统的性能, 有时会用不同主题的查询进行检索, 评价系统的整体性能. 在第t类查询, 系统的AP记作
A
P
i
AP_i
APi的话, MAP计算方式如下:
M
A
P
=
1
T
∑
t
=
1
A
P
i
MAP = \frac{1}{T} \sum_{t=1}^AP_i
MAP=T1t=1∑APi
参考
MRR
Mean Reciprocal Rank (MRR). 对每个查询
q
i
q_i
qi, 记它第一个相关的结果排在位置
k
i
k_i
ki, 即rank为
k
i
k_i
ki, 则Reciprocal Rank(RR)得分计作
1
/
k
i
1 / k_i
1/ki.
对所有query的RR取平均, 即为MRR:
M
R
R
=
1
N
∑
i
1
/
k
i
MRR = \frac{1}{N}\sum_i 1/ k_i
MRR=N1i∑1/ki
DCG和NDCG
Discounted Cumulative Gain (DCG): 指的, Cumulative为将所有的结果累加起来, Discounted指给排在后面的结果加一个折扣系数, 排序位置越考后, 折扣系数越小.
DCG@N的计算方式如下
D
C
G
@
N
=
∑
i
=
1
N
r
i
∗
D
i
DCG@N = \sum_{i=1}^N r_i * D_i
DCG@N=i=1∑Nri∗Di
其中
r
i
r_i
ri指每条结果的收益(Gain),
D
i
D_i
Di指折扣系数, 排序位置越考后, 折扣系数越小, 常用的是
1
/
l
o
g
(
1
+
i
)
1 / log(1 + i)
1/log(1+i).
一种常用的形式如下:
D
C
G
@
N
=
∑
i
=
1
N
2
r
e
l
i
−
1
log
(
i
+
1
)
DCG@N = \sum_{i=1}^N \frac{2^{rel_i} - 1} {\log (i + 1)}
DCG@N=i=1∑Nlog(i+1)2reli−1
Normalized Discounted Cumulative Gain (NDCG): 对于不同query, DCG的量级可能不同, 比如一个query对应的文档相关性都较差, 另一个query对应的文档都很好, 这样评价指标就会偏向第二个query. Normalized指将一个query对应的文档所有排序中最大的DCG求出来, 不妨计作
I
D
C
G
@
N
IDCG@N
IDCG@N, 则
N
D
C
G
@
N
=
D
C
G
@
N
/
I
D
C
G
@
N
NDCG@N = DCG@N / IDCG@N
NDCG@N=DCG@N/IDCG@N
举例来说, query下有4个文档, 相关性分别为1 2 3 0
. 则最好的排序是 3 2 1 0
, 在这种排序情况下计算出来的DCG就是IDCG.