其他分享
首页 > 其他分享> > nDCG——搜索评价指标

nDCG——搜索评价指标

作者:互联网

nDCG - 搜索评价指标

原文地址: https://en.wikipedia.org/wiki/Discounted_cumulative_gain

Discounted cumulative gain(DCG, 累计折损增益)是一种排序质量的衡量标准。
在信息检索中,通常用来测量网页搜索引擎算法的有效性。
DCG对搜索结果集中的每个文档指定一个分级的相关性刻度(例如:好/中等/坏),
然后根据文档的相关性刻度和它在结果集中的位置来计算它的增益。
结果集中所有文档的增益都被累加,但是排序靠后的文档增益在累加时会有折扣。

DCG的2个假设:

  1. 对于高相关度的文档,出现越靠前则越有用(指标的值越大)
  2. 高相关度的文档比中等相关度的文档更有用,而中等相关度的文档比不相关的文档更有用。

CG - 累计增益

CG只考虑文档的相关性,不考虑文档所处的位置,计算公式为:
CG
其中 reli 为位置i上的文档的相关度。

从CG的计算公式可以看出,前p个文档的位置如果发生了变化,CG的值并不会改变。

DCG - 累计折损增益

DCG在CG的基础上增加了对文档位置的考虑。计算公式为:
DCG

位置越靠后的文档,增益的折损越大。

Normalized DCG - 归一化累计折损增益

对于不同的query,搜索结果集的长度可能不同。因此,
使用DCG来比较不同Query的排序质量并不合适,需要进行归一化。

归一化过程:
将结果集中的所有文档按相关度降序排列,取相关度最高的p个文档,计算出DCG,
也叫位置p上的 理想化的DCG (IDCG)

nDCG计算公式:
nDCG

IDCG计算公式:
IDCG

|REL|表示结果集中相关度最高的p个文档(按相关度降序排列)

对所有query的nDCG值计算一个平均值,可以得到一个排序算法的平均排序质量。

对于一个完美的排序算法, DCGp会等于IDCGp,这样计算出来的
nDCG值为1。所有的nDCG值落在[0,1]区间内,这样就可以对不同query的排序质量进行比较。

计算nDCG时最困难的地方在于:当只能获取结果集中的部分文档时,无法得到理想化的排序结果。

一个简单的例子

假设对于一个query,搜索结果的前6个为 (D1, D2, D3, D4, D5, D6)。
让一个经验丰富的人来判断每个文档的相关度并打分:

打分的结果如下:
D1 : 3
D2 : 2
D3 : 3
D4 : 0
D5 : 1
D6 : 2

计算CG

CG6 = 3 + 2 +3 + 0 + 1 + 2 = 11, 任意调换2个文档的位置都不会影响CG的值。

计算DCG

i reli log2(i+1) reli / log2(i+1)
1 3 1 3
2 2 1.585 1.262
3 3 2 1.5
4 0 2.322 0
5 1 2.585 0.387
6 2 2.807 0.712

DCG6 = 3 + 1.262 + 1.5 + 0 + 0.387 + 0.712 = 6.861

此时,如果交换D3和D4的位置,会导致DCG值的减少。

计算nDCG

假设结果集中还有2个文档:
D7 : 3
D8 : 2

则理想化的排序结果如下:

3, 3, 3, 2, 2, 2, 1, 0 

IDCG6 = 8.740

nDCG6 = DCG6 ÷ IDCG6 = 6.861 ÷ 8.740 = 0.785

标签:搜索,相关度,DCG,CG,增益,文档,nDCG,评价
来源: https://blog.csdn.net/zx2011302580235/article/details/89714466