1. 准确率,召回率,F1值

首先介绍三种最常用的无序的评价指标,它们适用于一种相对简单的情况:在搜索结果中仅考虑返回的文档是否与查询相关,而不考虑这些返回文档在结果列表中的相对位置和顺序。


准确率(Precision)是返回的结果中相关文档所占的比例

召回率(Recall)是返回的相关文档占所有相关文档的比例

具体可以根据混淆矩阵来理解


 

相关

不相关

返回

真正例(tp)

伪正例(fp)

未返回

伪反例(fn)

真反例(tn)



已知上述矩阵,那么准确率和召回率可以按如下方法计算:

深度学习召回率多少才算好 召回率一般多少_NDCG


深度学习召回率多少才算好 召回率一般多少_信息检索_02


举个例子,假设针对某个查询词,某搜索引擎返回10个结果,其中有5个是相关的,那么准确率就等于5/10 = 50%, 如果索引中与该查询词相关的文档共有8个(也就是说还有3个没有返回),那么召回率就等于5/8 = 67.5%.


通常而言,一个好的搜索引擎需要兼顾准确率(P)和召回率(R),因此有了结合两者的指标—— F值,它是准确率和召回率的调和平均值,定义如下:

深度学习召回率多少才算好 召回率一般多少_NDCG_03


其中,

深度学习召回率多少才算好 召回率一般多少_信息检索_04


深度学习召回率多少才算好 召回率一般多少_信息检索_05

 表示强调正确率,而

深度学习召回率多少才算好 召回率一般多少_召回率_06

表示强调召回率。当

深度学习召回率多少才算好 召回率一般多少_召回率_07

时,表示准确率和召回率的权重相等,通常记为

深度学习召回率多少才算好 召回率一般多少_MAP_08

,此时F值的计算公式可以简化为

深度学习召回率多少才算好 召回率一般多少_深度学习召回率多少才算好_09


这里为什么使用调和平均而不是算术平均来计算F值呢?考虑极端的情况,如果搜索结果返回所有的文档,那么此时召回率就是100%,这时的F值至少为50%,这显然是不合理的。而调和平均值小于等于算术平均值和几何平均值,如果两个求平均的数之间差距比较大,那么调和平均值更接近其中较小的值。


2. MAP

准确率,召回率和F值都是利用无序的文当集合进行计算,而搜索引擎返回的结果通常是有序的,因此有必要对这些指标进行扩展以考虑位置信息。

MAP(Mean Average Precision)是近年来比较流行的评价指标, MAP在准确率的基础上考虑了位置的因素。

首先对于单个查询,其平均准确率的具体计算方法如下:

深度学习召回率多少才算好 召回率一般多少_召回率_10

其中r是相关文档的总数,Q是查询总数。

查询集合的平均准确率由所有单个查询的MAP值的平均。

总的来说,系统检索出来的相关文档在列表中越靠前,MAP的值就越高。如果系统没有返回相关文档,则MAP=0.


3.NDCG

NDCG(normalized discounted cumulative gain,归一化折损累计增益)是一种近年来逐渐被采用的指标,尤其是在基于机器学习的排序方法中。NDCG是针对连续值的指标,它基于前k个检索结果进行计算。设R(j,d)是评价人员给出的文档d对查询j的相关性得分(通常是一个概率),那么有:


深度学习召回率多少才算好 召回率一般多少_NDCG_11


其中,用于保证对于查询j最完美系统的NDCG在k的位置得分是1,m是返回文档的位置。

如果某查询返回的文档数

深度学习召回率多少才算好 召回率一般多少_深度学习召回率多少才算好_12

,,那么上述公式只需要计算到k‘为止。