0

我正在使用 NDCG 评估 top-k 范围查询。给定一个空间区域和一个查询关键字,我的 top-k 范围查询必须返回给定区域中与查询关键字文本相关的 k 个文档。

在我的场景中,范围查询通常只找到一个要返回的文档。但是我必须将此查询与另一个可以使用相同关键字在给定区域中找到更多对象的查询进行比较。这是可能的,因为我正在测试一种改进对象描述的方法。

在这种情况下,我不知道如何使用 NDCG 来比较这两个查询。我想使用 NDCG@5、NDCG@10 比较查询 A 和 B,但查询 A 只找到一个对象。查询 A 将具有较高的 NDCG 值,因为它查找更多对象的能力较低(可能该值将是 1 - 最大值)。查询 B 找到更多对象(在我看来,这是一个更好的解决方案),但 NDCG 值比查询 A 低。

4

1 回答 1

0

如果您不太关心您的应用程序的排名,您可以考虑查看不同的衡量标准,例如 Recall@10。

NDCG 是一种专为网络搜索设计的衡量标准,在这种情况下,您真的想惩罚一个没有在最高结果中返回最佳项目的系统,这就是它具有指数衰减因子的原因。这对于像“stackoverflow”这样的导航查询是有意义的,如果你不先返回这个网站,你会看起来很糟糕。

听起来您正在构建一些更复杂的东西,用户关心许多结果。因此,一个更注重召回的衡量标准(比排名更关心多件事)可能更有意义。

它寻找更多物体的能力较低

我还会仔细检查您对 NDCG 的实施:无论实际返回什么,您总是希望除以理想排名。听起来您的查询 A 返回 1 个正确对象,但查询 B 返回更多正确对象,但排名不高?无论哪种方式,您都希望查询 A 除以完美排名的 DCG —— 这意味着 10、20 或数千个“正确”对象。可能只是你的判断力不够,所以你的“完美排名”太小,所以你对查询A的惩罚不够。

于 2017-12-19T20:48:35.017 回答