【问题标题】:widely used formula for DCG seems to be wrong?广泛使用的 DCG 公式似乎是错误的?
【发布时间】:2016-01-19 06:37:09
【问题描述】:

有两个广泛使用的公式(在互联网上的大多数信息检索讲座幻灯片中找到,例如at Stanford)用于计算折扣累积增益。其中之一是,对于等级 p 的 DCG:

其实是这样的:

因为log_2(2) = 1。这意味着所谓的“打折”CG其实在三级之前是不打折的!

因此,DCG 使用此公式无法区分以下排名:(10,5,1,2,...) 和 (5,10,1,2,...)。

我猜测公式不正确,应该是:

请注意,另一个非常常见的公式(请参阅wikipedia)有这个分母。

我不会问我是否在我在互联网上找到的几乎所有讲座中,甚至在我自己在伦敦大学学院的讲座中都没有看到过这个公式。难道没有错吗?令人难以置信的是,一个错误从 Wikipedia 传播出来,却没有被教授们发现……那我错了吗?

【问题讨论】:

  • 最好使用另一个函数 \sum (2^rel_i - 1)/log(i+1)... 可以做的另一件事是改变对数的底(比如说 e.. 自然对数).. 然而,在所有实际情况下,原始公式都可以工作,因为两个列表(比如大小为 1000)更有可能在 2 之外的等级上有所不同而不是在 2 之内....
  • 同意,但这不是争论。两个列表(例如大小为 1000)也更有可能在 3 之外的排名不同,而不是在 3 之内,那么为什么不只从排名 3 开始打折呢?
  • 另外,我不知道使用另一个公式是否“更好”,毕竟它们是两个不同的公式,你提出的那个对于 rel 之间的关系很有意义0 和 1。我的 rel 分数介于 0 和无穷大之间,因此操纵 2^rel 真的不切实际。
  • rel 分数不能(实际上)是无限的......它必须是一个有限的数字(而且通常很小,比如从 0 到 4)
  • 我的 rel 分数范围从 0 到 Infinity,这并不意味着它们中的任何一个实际上是 Infinity,而是它们没有上限。在实践中,它们很少超过 1000。但是 2^1024=我的编程语言中的 Inf!

标签: search-engine metrics information-retrieval


【解决方案1】:

我找到了this paper from Microsoft(参见公式 6),这支持了我的说法,即它基本上是一个拼写错误,开始仅在第 3 级打折。想想看,不打折2级是没有意义的!当第一个排名更好时,该度量将无法区分排名 (10, 5, 2) 和 (5, 10, 2)。请注意,所有其他 DCG 公式都会折扣等级 2,因此会有所不同。

所以日志中确实缺少“+1”,这是一个错字,已经在很多论文和讲座中蔓延......

【讨论】:

    猜你喜欢
    • 2021-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 2023-03-29
    • 1970-01-01
    • 2019-03-26
    • 1970-01-01
    相关资源
    最近更新 更多