信息检索(IR)中的两个指标:NDCG和MAP

信息检索(IR)中的两个指标:NDCG和MAP
[TOC]

来源:

https://blog.csdn.net/simple_the_best/article/details/52296608

https://makarandtapaswi.wordpress.com/2012/07/02/intuition-behind-average-precision-and-map/

NDCG(normalized discounted cumulative gain)

Rvelin K, Kek, Inen J. Cumulated gain-based evaluation of IR techniques[M]. ACM, 2002.

N指的是归一化,D指的是衰减率,C指的累加,G指的是熵,其实这个公式的关键就是就是熵,再多了三个形容词:归一化的,带有衰减函数的,再带有累加的熵即是了 。

我们首先介绍CG(Cummulative Gain), 其思想比较简单, 就是将相关性的分值累加后, 作为某个排序结果的分值。

img

reli r e l i 为处于位置 i i 的推荐结果与query的相关性, p代表我们要考察前 p p 个结果。

CG的一个缺点是CG没有考虑结果处于不同位置对结果的影响,例如我们总是希望相关性高的结果应排在前面,相关性低的结果排在靠前的位置会严重影响用户体验, 所以需要在CG的基础上引入位置影响因素,即DCG(Discounted Cummulative Gain).

img

即相同的相关性rel,排在对整次检索结果的正向影响,相较于放在后边更大。

DCG仍然有其局限之处,即不同的排序之间,很难进行横向的评估。 不同的排序的评估分数就需要进行归一化。 也即NDCG。

img

其中DCG的定义如上, IDCG为特定query返回的最好结果, 即假设返回结果按照相关性排序, 最相关的结果放在最前面, 此序列的DCG为IDCG。因DCG的值介于 (0,IDCG],故NDCG的值介于(0,1] 。

这里写图片描述

MAP(mean average precision)

Hinrich Schutze. 2008. Introduction to information retrieval. In Proceedings of the international communication of association for computing machinery conference.

在了解MAP(Mean Average Precision)之前,先来看一下AP(Average Precision), 即为平均准确率。

对于AP可以用这种方式理解: 假使当我们使用google搜索某个关键词,返回了10个结果。当然最好的情况是这10个结果都是我们想要的相关信息。但是假如只有部分是相关的,比如5个,那么这5个结果如果被显示的比较靠前也是一个相对不错的结果。但是如果这个5个相关信息从第6个返回结果才开始出现,那么这种情况便是比较差的。这便是AP所反映的指标,与recall的概念有些类似,不过是“顺序敏感的recall”。

AP=1ri=1rithepositionofithrelevantdocument A P = 1 r ∑ i = 1 r i t h e p o s i t i o n o f i − t h r e l e v a n t d o c u m e n t

r为相关个数(如查询正样本,这里r是总正样本数)

def AP(ranked_list, ground_truth):
    """Compute the average precision (AP) of a list of ranked items"""

    hits = 0
    sum_precs = 0
    for n in range(len(ranked_list)):
        if ranked_list[n] in ground_truth:
            hits += 1
            sum_precs += hits / (n + 1.0)
    if hits > 0:
        return sum_precs / len(ground_truth)
    else:
        return 0

假设我们正在搜索一朵花的图像,我们为我们的图像检索系统提供一张玫瑰(查询)的样本图片,我们确实得到了一堆排名图像(最可能是最不可能的)。通常并非所有这些都是正确的。因此,我们计算每个正确返回图像的精度,然后取平均值。如果我们返回的结果是
1, 0, 0, 1, 1, 1
1是花的图像,而0不是,那么每个正确点的精度是:到目前为止已经遇到了多少正确的图像(包括当前)除以到达的总图像数这点。
1/1, 0, 0, 2/4, 3/5, 4/6

以上示例的AP为(1+2/4+3/5+4/6)/4=0.6917.

那么对于MAP(Mean Average Precision),就很容易知道即为所有用户 u u 的AP再取均值(mean)而已。那么则有:

MAP=1Ni=1NAPi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值