[转载] 信息检索常用的评价指标(MAP,NDCG,ERR)

一、MAP

Precision(p):

准确率(精确度)是指检索得到的文档中相关文档所占的比例,公式如下:

precision=|{relevant documents}{retrieved documents}||{retrieved documents}| p r e c i s i o n = | { r e l e v a n t   d o c u m e n t s } ∩ { r e t r i e v e d   d o c u m e n t s } | | { r e t r i e v e d   d o c u m e n t s } |

precision@10 p r e c i s i o n @ 10 表示检索10个文档中包含相关所占的比例,即: |{retrieved documents}|=10 | { r e t r i e v e d   d o c u m e n t s } | = 10

Recall(R):

召回率是指所有相关文档中被检索到的比例,公式如下:

recall=|{relevant documents}{retrieved documents}||{relevant documents}| r e c a l l = | { r e l e v a n t   d o c u m e n t s } ∩ { r e t r i e v e d   d o c u m e n t s } | | { r e l e v a n t   d o c u m e n t s } |

Average precision(AveP):

由前面可知,准确率和召回率都只能衡量检索性能的一个方面,最理想的情况肯定是准确率和召回率都比较高。当我们想提高召回率的时候,肯定会影响准确率,所以可以把准确率看做是召回率的函数,即: P=f(R) P = f ( R ) ,也就是随着召回率从0到1,准确率的变化情况。那么就可以对函数 P=f(R) P = f ( R ) R R 上进行积分,可以求P的期望均值。公式如下:

AveP=10P(r)dr=k=1nP(k)Δ(k)=nk=1(P(k)×rel(k))number of relevant documents A v e P = ∫ 0 1 P ( r ) d r = ∑ k = 1 n P ( k ) Δ ( k ) = ∑ k = 1 n ( P ( k ) × r e l ( k ) ) n u m b e r   o f   r e l e v a n t   d o c u m e n t s

其中 rel(k) r e l ( k ) 表示第 k k 个文档是否相关,若相关则为1,否则为0,P(k)表示前 k k 个文档的准确率。 AveP的计算方式可以简单的认为是:

AveP=1R×r=1Rrposition(r) A v e P = 1 R × ∑ r = 1 R r p o s i t i o n ( r )

其中 R R 表示相关文档的总个数,position(r)表示,结果列表从前往后看,第 r r 个相关文档在列表中的位置。比如,有三个相关文档,位置分别为1、3、6,那么AveP=13×(11+23+36)。在编程的时候需要注意,位置和第i个相关文档,都是从1开始的,不是从0开始的。

AveP A v e P 意义是在召回率从0到1逐步提高的同时,对每个 R R 位置上的P进行相加,也即要保证准确率比较高,才能使最后的 AveP A v e P 比较大。

Mean average precision(MAP):

通常会用多个查询语句来衡量检索系统的性能,所以应该对多个查询语句的AveP求均值(the mean of average precision scores),即公式:

MAP=Qq=1AveP(q)Q M A P = ∑ q = 1 Q A v e P ( q ) Q

二、NDCG

在MAP计算公式中,文档只有相关不相关两种,而在nDCG中,文档的相关度可以分多个等级进行打分。

Cumulative Gain(CG):

表示前p个位置累计得到的效益,公式如下:

CGn=i=1preli C G n = ∑ i = 1 p r e l i

其中 reli r e l i 表示第 i i 个文档的相关度等级,如:2表示非常相关,1表示相关,0表示无关,-1表示垃圾文件。

Discounted cumulative gain(DCG):

由于在CGp的计算中对位置信息不敏感,比如检索到了三个文档相关度依次是{3,-1,1}和{-1,1,3},显然前面的排序更优,但是它们的 CG C G 相同,所以要引入对位置信息的度量计算,既要考虑文档的相关度等级,也要考虑它所在的位置信息。假设每个位置按照从小到大的排序,它们的价值依次递减,如:可以假设第i个位置的价值是 1log2(i+1) 1 l o g 2 ( i + 1 ) ,那么排在第i个位置的文档所产生的效益就是 reli×1log2(i+1)=relilog2(i+1) r e l i × 1 l o g 2 ( i + 1 ) = r e l i l o g 2 ( i + 1 ) 。公式如下:

DCGp=i=1prelilog2(i+1)=rel1+i=2prelilog2(i+1) D C G p = ∑ i = 1 p r e l i l o g 2 ( i + 1 ) = r e l 1 + ∑ i = 2 p r e l i l o g 2 ( i + 1 )

另一种比较常用的,用来增加相关度影响比重的 DCG D C G 计算方式是:

DCGp=i=1p2reli1log2(i+1) D C G p = ∑ i = 1 p 2 r e l i − 1 l o g 2 ( i + 1 )

Ideal DCG(IDCG):

IDCG是理想情况下的DCG,即对于一个查询语句和p来说,DCG的最大值。公式如下:

IDCGp=i=1|REL|2reli1log2(i+1) I D C G p = ∑ i = 1 | R E L | 2 r e l i − 1 l o g 2 ( i + 1 )

其中 |REL| | R E L | 表示,文档按照相关性从大到小的顺序排序,取前p个文档组成的集合。也就是按照最优的方式对文档进行排序。

Normalize DCG(NDCG):

由于每个查询语句所能检索到的结果文档集合长度不一, p p 值的不同会对DCG的计算有较大的影响。所以不能对不同查询语句的 DCG D C G 进行求平均,需要进行归一化处理。 NDCG N D C G 就是用 IDCG I D C G 进行归一化处理,表示当前 DCG D C G IDCG I D C G 还差多大的距离。公式如下:

NDCGp=DCGpIDCGp N D C G p = D C G p I D C G p

这样每个查询语句的 NDCGp N D C G p 就是从0到1,不同查询语句之间就可以做比较,就可以求多个查询语句的平均 NDCGp N D C G p
NDCG@10 N D C G @ 10 NDCG@20 N D C G @ 20 分别表示求 p p 为10和20的时候的NDCG

三、ERR

Mean reciprocal rank (MRR) :

reciprocal rank是指,第一个正确答案的排名的倒数。MRR是指多个查询语句的排名倒数的均值。公式如下:

MRR=1|Q|i=1|Q|1rankk M R R = 1 | Q | ∑ i = 1 | Q | 1 r a n k k

其中 rankk r a n k k 表示第 i i 个查询语句的第一个正确答案的排名。

Cascade Models:

之前的评分模型虽然考虑了位置自身的价值信息和位置上文档的相关度信息,但是没有考虑文档之间的相关性信息。一种考虑是,一个文档是否被用户点击和排在它前面的文档有很大的关系,比如排在前面的文档都是不相关文档,那么它被点击的概率就高,如果排它前面的文档都是非常相关的文档,那么它被点击的概率就很低。Cascade Models假设用户从排名由高到底依次查看文档,一旦文档满足了用户的需求,则停止查看后续的文档。用Ri表示用户只看在位置 i i 上的文档后就不在需要查看其它文档的概率,显然文档的相关度越高,Ri越大。那么用户在位置 i i 停止的概率公式如下:

PPr=i=1r1(1Ri)Rr

Expected reciprocal rank (ERR) :

区别 RR R R 是计算第一个相关文档的位置的倒数, ERR E R R 表示用户的需求被满足时停止的位置的倒数的期望。首先是计算用户在位置 r r 停止的概率PPr,如下所示:

PPr=i=1r1(1Ri)Rr P P r = ∏ i = 1 r − 1 ( 1 − R i ) R r

其中 Ri R i 是关于文档相关度等级的函数,可以选取如下的函数:

Ri=R(gi)=2g12gmax,g{0,1,,gmax} R i = R ( g i ) = 2 g − 1 2 g m a x , g ∈ { 0 , 1 , ⋯ , g m a x }

那么 ERR E R R 的计算公式如下:

ERR=r=1nφ(r)PPr=r=1n1rPPr=r=1n1ri=1r1(1Ri)Rr E R R = ∑ r = 1 n φ ( r ) P P r = ∑ r = 1 n 1 r P P r = ∑ r = 1 n 1 r ∏ i = 1 r − 1 ( 1 − R i ) R r

更通用一点, ERR E R R 不一定计算用户需求满足时停止的位置的倒数的期望,可以是其它基于位置的函数 φ(r) φ ( r ) ,只要满足 φ(0)=1 φ ( 0 ) = 1 ,且 φ(r)0 φ ( r ) → 0 随着 r r → ∞ 。比如 DCG D C G 中的 φ(r)=1log2(r+1) φ ( r ) = 1 l o g 2 ( r + 1 )

四、F-score/F-measure

F-score/F-measure :

一种同时考虑准确率和召回率的指标。公式如下:

F=2×precision×recall(precision+recall) F = 2 × p r e c i s i o n × r e c a l l ( p r e c i s i o n + r e c a l l )

可以看出F的取值范围从0到1。另外还有一种F的变体如下所示:

Fβ=(1+β2)×(precision×recall)(β2×precision+recall) F β = ( 1 + β 2 ) × ( p r e c i s i o n × r e c a l l ) ( β 2 × p r e c i s i o n + r e c a l l )

常用的两种设置是 F2 F 2 F0.5 F 0.5 ,前者中 recall r e c a l l 重要程度是 precision p r e c i s i o n 的两倍,后者则相反, precision p r e c i s i o n 重要程度是 recall r e c a l l 的两倍。

转自:https://blog.csdn.net/u010138758/article/details/69936041

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值