CG(Cumulative Gain)表示累积增益,rel_i 表示查询结果列表中第 i 个位置的相关性值(相关程度可以理解为权重),即该结果和查询有多大联系,可以看出CG不会考虑查询结果的顺序,即如果随机打乱查询结果, CG 的值也不会变。比如有一个查询:『abc』
排序指标CG,DCG,NDCG
CGp=i=1preli \mathrm { CG } _ { \mathrm { p } } = \sum _ { i = 1 } ^ { p } r e l _ { i }

上图输出5条结果,每条结果的相关程度即增益为“Gain”所在的列,累积增益为“Cumulative Gain”所在的列,可以看到第二条查询结果和查询的相关程度最低,为3,如果将第2条结果和第5条结果交换位置,那么计算所得的 CG_5完全不变,也就是说 CG 在整体上考虑了查询结果的好坏,并不在意结果的顺序。

DCG_P中的 p 代表第 p 个位置的折扣累积增益,rel_i 表示第 i 个位置相关程度,其分子代表第 i 个位置结果的相关程度,分母是位置 i 的对数表示。如果将相关程度高的结果排序在列表的后面,会导致 DCG 的值变低,即惩罚了这种情况,所以以 DCG 作为目标的排序会使最相关的结果排列在最靠前的位置。

DCGp=i=1p2reli1log2(i+1) \mathrm { DCG } _ { \mathrm { p } } = \sum _ { i = 1 } ^ { p } \frac { 2 ^ { r e l _ { i } } - 1 } { \log _ { 2 } ( i + 1 ) }

nDCG_p=DCG_P / IDCG ,其值在0-1之间,为什么要这么做呢?举个例子:可以比较两个不同长度的查询结果列表,哪个结果更好一些;也可以比较不同的系统给出结果的好坏。但是,其有一个缺点: IDCG 通常难以全部获得,因为相关程度需要用户的反馈信息,而一个列表完整的反馈信息通常难以获得。

nDCGp=DCGpIDCGp\mathrm { nDCG } _ { \mathrm { p } } = \frac { D C G _ { p } } { I D C G _ { p } }

可以看到 其中 IDCG为理想化的 DCG ,其值计算方式如下,|REL| 代表按相关程度排序后的查询结果列表,也就是这个列表最大的 DCG 值。

相关文章:

  • 2021-10-24
  • 2021-09-09
  • 2021-08-30
  • 2022-12-23
  • 2021-10-22
  • 2021-07-18
  • 2021-09-19
  • 2022-12-23
猜你喜欢
  • 2021-11-29
  • 2022-12-23
  • 2021-07-24
  • 2021-05-27
  • 2021-10-09
  • 2021-08-12
  • 2021-07-12
相关资源
相似解决方案