这篇就简单介绍一下搜索引擎的评价方法。从用户的角度去评价一个搜索引擎的检索效果最好的方法就是计算用户在查到自己满意文档时已经浏览的文档数。但是实际中,查询千变万化,文档也千变万化,所以这种方法不可行。人们便提出了下面的概念,并建立了一个评价标准。
这里面有三个常用的概念:正确率,精确率,召回率。
正确率(Precision,简称为P)定义为:P=返回结果中相关文档个数/返回结果的数目。
精确率(accuracy,简称为A)定义为:A=判断结果正确的文档数目/所有文档数目。
召回率(Recall,简称为R)定义为: R=返回结果中相关文档数目/所有相关文档数目。
实际相关文档数 | 实际不相关文档数 | |
返回文档数(搜索引擎认为相关) | tp | fp |
未返回文档数(搜索引擎认为不相关) | fn | tn |
根据正确率、精确率、召回率的定义可得:
P=tp/(tp+fp)
A=(tp+tn)/(tp+fp+fn+tn)
R=tp/(tp+fn)
大家可千万不要把精确率和正确率混成一谈,这是两个不同的概念。
如果搜索引擎用精确率评价搜索引擎的效果会怎么样?精确率其实用在二类分类器的评价中,对于二类判断评价效果很好,但是用在检索的评价上可不行。二类分类器中用这个概念来衡量分类器分对了多少,而检索的评价上是要衡量用户想要的占多少。由于文档集中与查询不相关的文档基本在99%以上,只要简单的认为所有文档都与查询不相关,就获得了超过99%的精确率,而其中只有1%是用户想要的,所以精确率不能用。
如果只采用召回率评价搜索引擎的效果会怎么样?也不行。因为只要简简单单的把所有文档都返回,我们就得到了100%的召回率,而用户想要的也只有其中的1%。所以实际中,同时采用正确率和召回率两个指标来评价搜索引擎。其中最著名的就是11点-PR曲线。
这个图就是搜索引擎在召回率从0%~100%时结果的正确率,利用这个图来衡量一个搜索引擎。如上图,IR2的效果要比IR1要差。那么这个曲线如何得到的呢?
人们为此建立了一个标准测试集,这个测试集包含一定数量的文档、查询、查询与文档之间的相关性。
TEST-SET=<D,Q, R<q,d>>,TEST-SET代表测试集,D代表样例文档集合,Q代表查询样例集合,R<q,d>是每个查询与每个文档之间的相关性判断,这些必须事前人工都要确定好。
之后系统处理样例查询,系统根据自己的检索模型返回给用户排好序的文档列表。由于事先知道查询与文档时间的相关性,那么就可以从开始顺序查看文档,在不同的召回率处计算正确率,这样就得到了这个曲线。
实际上,衡量搜索引擎不仅仅只有正确率、召回率这些指标,诸如搜索引擎的响应时延、界面友好程度等等也是一些衡量指标。这些指标都是从用户的角度去考虑。还有诸如系统索引构建开销、更新开销等等则是从系统本身性能方面进行评价的指标,这些本文就不介绍了。