文本搜索系统的评估

说明:文章内容来源于课程视频和课程ppt。我只学习了课程没有做习题。文章不是翻译,是我对课程的理解。
 这部分本应该继续说反馈(FeedBack)的。但是课程中安排的是评估(Evaluation)。评估是用于衡量搜索引擎质量的。反馈是为了提高搜索引擎质量而进行的操作。所以在讲反馈之前需要先说明评估。

1为什么做评估

 为什么要评估搜索引擎呢?一方面是为了评估搜索引擎是否有用,另一方面用于比较不同算法、不同文本搜索系统的有效性。

2评估什么

 1 准确性accuracy。可以衡量搜索结果的准确程度,是不是把无关数据放在top列表中了。
 2 有效性(efficiency)。系统可以在多长时间内返回搜索结果。一次搜索需要多少资源。主要从space和 time overhead两方面衡量。
 3 有用性usability。搜索系统对用户是有用的吗?通过研究用户行为得出结论。

3评估方法

 Cranfield Evaluation Methodology克兰菲尔德评价方法。主要内容有两点:第一、建立一个可重用的测试集。第二、定义测量标准。

3.1建一个可重用测试集

 建立可重用测试集的步骤:1 从文档中抽样取得部分文档。2 从查询集中抽样得到部分查询。3 (人工)判断文档与查询是否相关,所有相关文档中理想的排序方式是什么(idea ranked list)。
 

3.2评估标准

 准确率与召回率
 a=搜索到的相关文档
 b=搜索到的不相关文档
 c=相关文档但是没有搜索到
  precision=aa+b
  recall=aa+b
 理想结果是:Precision=Recall=1.0。实际中高的recall必定会有一个较低的Precision。
 一般使用中不会定义全局的准确率,而是会设置一个阀值,计算top n的准确率。例如prcision@10。
 recall与precision结合使用得到 Fβ=(β2+1)PRβ2P+R F1=2PRP+R
 提问:为什么不是0.5*P+0.5*R?
 回答:这是一个求和,求和的结果由式子中的大数来决定。就是说,如果有一个P值非常高,即使R值很低,结果页可能很高。而F1的式子,需要P和R都非常高,结果才可能非常大。

4评估排序文档

 评估排序文档 evaluate ranked list

4.1 设置cut off

 评估排序结果的第一步是要确定一个位置,简单的说是每页多少条数据。我们可以认为用户只有很小的可能会翻页。或者说这次引擎需要评估前两页数据的准确率和召回率。根据实际任务来定。这里假设cut off=10。查看前10条文档的情况。

4.2 计算不同位置的准确率和召回率

 在前10条文档中,我们又不知道用户会在哪个位置停下来。我们可以先计算用户在不同位置停止浏览的时候的准确率和召回率。

位置文档准确率召回率
1D1+1/11/10
2D2+2/22/10
3D3-2/32/10
4D4-2/42/10
5D5+3/53/10
6D6-3/63/10
7D7-3/73/10
8D8+4/84/10
9D9-4/94/10
10D10-4/104/10

 
 可以看到随着位置增加,准确率逐渐降低,召回率逐渐增加。所以我们可以假设cut off(例如:10)之后的每个位置的准确率为0。
 
这里写图片描述
 

4.3 比较两种算法

 比较两种算法就是比较两种算法的P-R曲线。
 
 
 如果算法A、B的效果可以用上图表示,毫无疑问算法A要优于算法B。因为在每一个相同召回率的点上,A的准确率>B的准确率。
 
 
 如果算法A、B的效果用上面的图表示,那哪种算法好呢?我们是否应该用算法B替换算法A呢?在最前面的位置,算法B具有较高的准确率;总体来看,算法A具有较高的召回率。如果是今日头条这样的场景,一个用户就想知道今天或者近几个小时发生了什么事情,而且还不一定看几条数据就不停下来了。所以最前面的数据一定要是准确的,要求高的准确率。这时候算法B比较好。如果这是一个科技查新的系统,是一个专利调研项目,想要知道哪类技术是不是已经研究过,或者进行了哪方面的研究,这时候有一些错误数据是可以的,但是一定要保证相关的文献能被查询到。也就是说要有较高的召回率。这时候选择算法A。

4.4 summarize a ranking

 概述排序文档:平均准确率。
 上面例子的平均准确率= 11+22+35+48+0+0+0+0+0+010 ,这里的分母=相关文档的数量。这里有几个问题。
 问题1:相关文档的数量是在cut off范围内,还是在所有数据范围内?我比较偏向于前者。因为这是评价Top k 排序结果的。如果你要评价前10条数据,但在数据集中相关文档只有8,那这个时候分母就应该是8。
 问题2:分母为什么不是4,也就是查询到的相关文档数量?作者的解释,我看得不是很明白。
 “In fact, that you are favoring a system, that would retrieve very few random documents, as in that case, the denominator would be very small. So, this would be, not a good matching. ”
 大意是说:分母很小,我可以从数据中随机选择几个文档,就能提高准确率。(大概是这意思)。
 好处:这样的计算结果同时考虑了准确率和召回率,而且还与相关文档的位置有关系。在上面例子中如果把D5移动到D3,计算结果就会变大(因为分子的 35 变成了 33 )。

4.5 MAP

 平均准确率衡量了一个检索结果列表的好坏。那如果是一个查询(检索表达式)集合呢?之前提到可重用的测试集是由文档集和查询集组成的。
 MAP=Mean Average Precision 平均准确率的平均值。可以用来表示一个查询集的检索结果的好坏。
 MAP分为算术平均准确率(MAP)和几何平均准确率(gMAP)。
  MAP=1nni=1pi 。它主要由大数控制。如果一个数非常大,而其他值非常小,最后的结果页可能非常大。
  gMAP=(ni=1pi)1n 。它主要由一些较小的数控制。它要求所有数都比较大,结果才能比较大。
 
 如果要衡量搜索引擎的搜索效果,想要提高(几乎)所有查询语句的搜索效果,显然gMAP更合适。如果只需要提高部分查询的检索结果,那MAP可能更合适。
 
 特殊情况:只有一个相关文档。例如:问答系统,只有一个答案正确;或者页面中只有一个位置展示相关文档。这样:
 平均准确率=Reciprocal Rank=1/r。r是相关文档在检索结果中的排序位置。
 MAP=Mean Reciprocal Rank
 r代表了用户想要看到相关文档需要的努力程度。如果r=1,用户看1篇文档就找到了相关文档。如果r=100,用户就需要看100篇文档才能找到相关文档(已然放弃)。为什么不用r表示搜索效果的好坏呢?在多个查询结果中,假设有三个查询结果,相关文档的位置分别是4、5、3。一种表示方式是: 14+15+13 ,另外一种表示方式是:{4+5+3}。在第一种方式中,结果大,就代表效果好;第二种方式结果大,代表效果差,思维不同。人们对于 14 15 的差别,和对4与5的差别的感觉是不一样的,前者能感觉到更有差距。

4.6 多级别相关性排序评价

 上面介绍的都是一个文档要么相关,要么不相关。实际中我们会给文档分成不同级别的相关性。例如r=1:不相关;r=2:有点相关;r=3:非常相关。我们这里假设关心top10结果。

文档相关性相关性累加Discounted Cumulative Gain
D1333
D223+23+2/log2
D313+2+13+2/log2+1/log3
D413+2+1+13+2/log2+1/log3+1/log4
D53
D61
D71
D82
D91
D101…...

 相关性累加(Cumulative Gain)是把结果中每个文档的相关性等级相加。
 带折扣的相关性累加(Discounted Cumulative Gain,DCG)是在相加过程中依据位置因素带了折扣:等级/logr,r=位置。
 最后还要计算正则化的DCG,用于不同查询之间的比较,表示为nDCG= DCG@10IdealDCG@10
  DCG@10=3+2/log2+1/log3+...+1/log10
 IdealDCG@10是对于某个搜素最理想情况下的DCG值。如果对于当前查询,文档集中有9篇非常相关文档(3级),一篇有点相关文档(2级),那么 IdealDCG@10=3+3/log2+3/log3+...+2/log10
 nDCG的范围就是0-1之间,用于衡量不同级别相关性的搜索。
 

5 评估问题实际中的问题

 在评估中我们需要创建一个文档集、查询集以及相关评价集。在实际中这几方面都是很有挑战的。
 首先,我们选择的文档和查询语句要具有代表性,能代表了真实的用户需求。
 其次,文档和查询的量要大,尽量数据的抽样不均衡(这里可以翻译的更好点)。对于每个查询,要保证有很多的相关文档。
 第三,对每个查询的每个文档的相关性需要大量的人工标记。这是一个劳动密集型的事情,所以我们需要尽可能少的使用人力。
 第四,在制定相关度级别方面,我们需要认真考虑什么是用户想要的,再考虑定什么样的相关度级别是合适的。
 
 

5.1 统计显著性检验

 统计显著性测试(statistical significant test)用来解决这样的问题:我们通过试验比较算法A和算法B谁更好,计算得到平均值之后,我们怎么确定较好的算法是不是因为某几个特定的查询引起的.也就是说对于结果较好的算法,是几乎在每个查询上表现都好,还是只在某些查询上表现优异.例如下图。我们得到的试验结果有多少可信度


 首先看一个符号测试Sign Test。如果SystemB比SystemA好,则标记为+,否则标记为-。7个查询中4个位+,3个位-,这和抛7枚硬币得到的结果相同,所以这个结果完全是随机因素影响的,p=1.0。
 其次看Wilcoxon检验法。Wilcoxon检验法同时考虑了符号和差值大小。我们需要考虑在一定的置信水平上(例如 α=0.95 ),计算得到的|W|值是否在临界值范围外。详细内容看看统计学课本或者Wikipedia。

5.2 Judgments

 如果我们不能对所有文档的相关性做相关性标记,那我们应该选择哪部分文档去标注相关性呢呢?抽样。要尽可能选择多样性的文档;选择Top k文档(多个算法可能会选到重复的文档);把N个算法选出的文档作为测试集,人工标记相关性;其余未被选中的文档被认为是不相关文档。

6 未涉及到的相关策略

 A-B Test
 用户学习
 可以参考的资料:
 Donna Harman, Information Retrieval Evaluation. Synthesis Lectures on Information Concepts, Retrieval, and Services, Morgan & Claypool Publishers 2011
 Mark Sanderson, Test Collection Based Evaluation of Information Retrieval Systems. Foundations and Trends in Information Retrieval 4(4): 247-375 (2010)
 Diane Kelly, Methods for Evaluating Interactive Information Retrieval Systems with Users. Foundations and Trends in Information Retrieval 3(1-2): 1-224 (2009)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值