如何比较两种排名算法?


12

我想比较两种排名算法。在这些算法中,客户在搜索中指定一些条件。根据客户的要求,这些算法应为数据库中的每个项目分配一个分数,并检索得分最高的项目。

我在该站点上阅读了与我的问题相关的不同主题,并在网上搜索。根据我的搜索,最相关的文章解释了一些用于比较排名算法的指标,这是:Brian McFee和Gert RG Lanckriet,Metric Learning to Rank,ICML 2010https://bmcfee.github.io/papers/mlr .pdf)。我认为prec @ k,MAP,MRR和NDCG是可以使用的良好指标,但是我有一个问题:

我的算法对结果进行排序,因此结果列表中的第一项是得分最高的最佳项,第二项结果是第二高分,依此类推。我将搜索算法限制为例如找到5个最佳结果。结果是最热门的5个项目。因此,精度将为1。当我限制搜索以找到最佳结果时,它将找到最佳结果。同样,精度将为1。但是问题是,看到此结果的人无法接受。

我能做什么?我如何比较这些算法并显示一种算法优于另一种算法?

Answers:


6

折扣累积收益(DCG)是用于评估任何搜索引擎排名的最受欢迎的指标之一。这是排名质量的度量。在信息检索中,它通常用于衡量Web搜索引擎的有效性。

它基于以下假设:

  1. 如果相关性较高的文档出现在搜索结果的前面,则更为有用。
  2. 高度相关的文档比边缘相关的文档要有用,后者比不相关的文档要好。

DCG的公式如下:

(1)DCGp=i=1prelilog2(i+1)=rel1+i=2prelilog2(i+1)

哪里:

  • i是搜索结果中文档的返回位置。
  • reli是文档的分级相关性
  • 因此,对p求和(返回的结果数)的累加累积增益就可以得出返回结果的性能指标。

DCG来自CG(累积增益),由下式给出:

(2)CGp=i=1preli

从(2)可以看出,不会因结果顺序的改变而改变。因此为了克服这个问题,引入了DCG。DCG有另一种形式,因非常重视文档的检索而广受欢迎。DCG的此版本由以下方式提供:CGp

(3)DCGp=i=1p2reli1log2(i+1)

(1)和(3)中提出的DCG方程的一个明显缺点是,不能有效地比较返回不同数量结果的算法。这是因为的值越高,的值将被缩放到越高。pDCGp

为了克服这个问题,提出了标准化的DCG(nDCG)。它是由

nDCGp=DCGpIDCGp

其中是理想,由下式给出:IDCGpDCGp

IDCGp=i=1|REL|2reli1log2(i+1)

| REL | 是根据语料库中相关性排序到位置p的文档列表。

对于完美的排名算法,

DCGp=IDCGp

由于nDCG的值在[0,1]范围内缩放,因此使用这些指标可以进行交叉查询比较。

缺点: 1. nDCG不会惩罚检索结果中的不良文档。这可以通过调整归因于文档的相关性值来解决。2. nDCG不会对丢失的文件进行处罚。可以通过固定检索大小并使用丢失文档的最低分数来解决此问题。

请参阅以查看nDCG的示例计算。

参考


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.