评估排名算法的指标


15

我有兴趣查看几种不同的算法排名指标-“学习排名”维基百科页面上列出了一些指标,包括:

•平均平均精度(MAP);

•DCG和NDCG;

•Precision @ n,NDCG @ n,其中“ @n”表示仅对前n个文档评估度量;

•平均倒数排名;

•肯德尔的牛头

•斯皮尔曼的罗

•预期的相互排名

•Yandex的缺点

但是我不清楚每种方法都有哪些优缺点,或者何时可以选择一种方法而不是另一种方法(或者说一种算法在NDGC上的性能优于另一种算法,而在用MAP评估时更糟,这意味着什么)。

我有什么地方可以了解有关这些问题的更多信息?

Answers:


29

我实际上正在寻找相同的答案,但是我应该至少能够部分回答您的问题。

您提到的所有度量标准都有不同的特征,不幸的是,您应该选择的度量标准取决于您实际想要度量的标准。以下是一些需要牢记的事情:

  • Spearman的rho度量标准惩罚列表顶部的错误,其权重与底部的不匹配项相同,因此在大多数情况下,这不是用于评估排名的度量标准
  • DCG&NDCG是考虑到非二进制效用函数的几个指标之一,所以你可以描述如何是非常有用的一个记录,而不是是否是有用的。
  • DCG和NDCG的头寸权重固定,因此给定头寸的文件始终具有相同的收益和折扣,而与上面显示的文件无关
  • 通常,您会更喜欢NDCG而不是DCG,因为它会根据相关文档的数量对值进行归一化
  • MAP被认为是解决此问题的经典指标和“通行”指标,并且似乎是该领域的标准。
  • (N)DCG应该始终针对固定数量的记录(@k)计算,因为它的尾巴很长(排名末尾的许多不相关记录对度量有很大的偏见)。这不适用于MAP
  • 平均互惠等级仅标记第一个相关文档的位置,因此,如果您关心尽可能多的相关文档在列表中排在前列,那么这不应该是您的选择
  • Kendall的tau仅处理二进制效用函数,还应计算@k(类似于NDCG

宝贵的资源:

由于帐户新鲜,因此无法发布更多链接:)如果有人有其他评论或想法,我也很高兴听到他们的声音!


我认为,如果您有更多链接,那么您现在有足够的积分来更新此答案。
Yash Kumar Atri

5

在许多情况下,如果您应用排名算法(例如Google搜索,亚马逊产品推荐),就会获得成千上万的结果。用户只想观看大约20个左右的顶部。因此,其余部分完全无关紧要。

明确地说:只有前元素相关k

如果您的应用程序确实如此,那么这将直接影响度量标准:

  1. 你只需要看看顶部排名物品和顶部地面真相排名的项目。kk
  2. 那些潜在的件物品的顺序可能无关紧要-但可以肯定的是,所有其他物品的顺序都不相关。2k

三个相关指标是top-k准确性,precision @ k和召回率@k。该取决于你的应用。对于所有这些,对于您评估的排名查询,相关项目的总数应大于。kk

排名的前k位分类准确性

对于基本事实,可能很难定义顺序。而且,如果您仅区分相关/不相关,那么您实际上处于分类情况!

Top-n准确性是分类的指标。请参阅Top-n精度的定义是什么?

top-k accuracy=how often was at least one relevant element within the top-k of a ranking query?ranking queries

因此,您可以让排名算法预测元素,并查看它是否至少包含一个相关项。k

我非常喜欢它,因为它很容易解释。来自业务需求(可能是),那么您可以说用户会多久高兴一次。kk[5,20]

缺点:如果您仍然关心项目中的订单,则必须找到另一个指标。k

精度@k

Precision@k=number of relevant items within the top-kk[0,1], higher is better

它告诉你的是:

  • 如果很高->您向用户显示的大部分内容都与他们有关
  • 如果它很低->您会浪费用户的时间。您向他们展示的大部分内容与他们无关

召回@k

Recall@k=number of relevant items within the top-ktotal number of relevant items[0,1], higher is better

这是什么意思:

  • 如果很高:请展示您拥有的!您给他们所有相关项目。
  • 如果较低:与相关项的总数相比,k小/前k个内的相关项小。因此,单凭callback @ k可能没有那么有意义。如果将其与高精度@k结合使用,则增加k可能有意义。

3

最近,我不得不选择一种评估多标签排名算法的指标,从而达到了这一目的,这确实很有帮助。这是stpk答案的一些补充,有助于做出选择。

  • MAP可以适应多标签问题,但需要付出近似的代价
  • 不需要在k处计算MAP,但是当否定类占优势时,可能不适应多标签版本
  • MAP(N)DCG都可以重写为排名相关值的加权平均值

细节

让我们关注平均精度(AP),因为平均平均精度(MAP)只是几个查询上AP的平均值。在二进制数据上将AP正确定义为精度调用曲线下的面积,可以将其重写为每个正项的精度平均值。(参见上MAP维基百科文章)一种可能的近似方法是把它定义为平均在精度的项目。可悲的是,我们失去了很好的属性,即排在列表末尾的负面示例对AP的价值没有影响。(在评估搜索引擎时,这尤其令人难过,因为负面示例要比正面示例要多得多。一种可行的解决方法是对负面示例进行二次抽样,但要付出其他不利因素的代价,例如,包含更多正面项目的查询将变得平等很难通过很少的正面示例来进行查询。)

另一方面,这种近似具有很好的属性,可以很好地推广到多标签的情况。实际上,在二进制情况下,位置k的精度也可以解释为位置k之前的平均相关性,其中正例的相关性为1,而负例的相关性为0。关联程度超过两个的情况。在这种情况下,AP也可以定义为每个位置的相关性平均值的平均值。

此表达式是由stpk在其答案中引用的视频的发言人选择的。他在此视频中显示,可以将AP重写为相关性的加权平均值,排名中第个元素的权重为k

wkAP=1Klog(Kk)

其中是要排名的项目数。现在我们有了这个表达式,可以将其与DCG进行比较。实际上,DCG还是排名相关性的加权平均值,权重为:K

wkDCG=1log(k+1)

从这两个表达式,我们可以推断出-AP对文档的权重从1到0。-DCG对文档的权重独立于文档总数。

在这两种情况下,如果不相关的示例比相关的示例多得多,则阳性的总权重可以忽略不计。对于AP,一种解决方法是对否定样本进行二次抽样,但是我不确定如何选择二次抽样的比例,以及是否使其取决于查询或正向文档数。对于DCG,我们可以将其削减为k,但是也会出现同样的问题。

如果有人在此主题上工作,我很乐意听到更多有关此的信息。

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.