赞
踩
说明:文章内容来源于课程视频和课程ppt。我只学习了课程没有做习题。文章不是翻译,是我对课程的理解。
这部分本应该继续说反馈(FeedBack)的。但是课程中安排的是评估(Evaluation)。评估是用于衡量搜索引擎质量的。反馈是为了提高搜索引擎质量而进行的操作。所以在讲反馈之前需要先说明评估。
为什么要评估搜索引擎呢?一方面是为了评估搜索引擎是否有用,另一方面用于比较不同算法、不同文本搜索系统的有效性。
1 准确性accuracy。可以衡量搜索结果的准确程度,是不是把无关数据放在top列表中了。
2 有效性(efficiency)。系统可以在多长时间内返回搜索结果。一次搜索需要多少资源。主要从space和 time overhead两方面衡量。
3 有用性usability。搜索系统对用户是有用的吗?通过研究用户行为得出结论。
Cranfield Evaluation Methodology克兰菲尔德评价方法。主要内容有两点:第一、建立一个可重用的测试集。第二、定义测量标准。
建立可重用测试集的步骤:1 从文档中抽样取得部分文档。2 从查询集中抽样得到部分查询。3 (人工)判断文档与查询是否相关,所有相关文档中理想的排序方式是什么(idea ranked list)。
准确率与召回率
a=搜索到的相关文档
b=搜索到的不相关文档
c=相关文档但是没有搜索到
precision=aa+b
recall=aa+b
理想结果是:Precision=Recall=1.0。实际中高的recall必定会有一个较低的Precision。
一般使用中不会定义全局的准确率,而是会设置一个阀值,计算top n的准确率。例如prcision@10。
recall与precision结合使用得到Fβ=(β2+1)P∗Rβ2P+R
提问:为什么不是0.5*P+0.5*R?
回答:这是一个求和,求和的结果由式子中的大数来决定。就是说,如果有一个P值非常高,即使R值很低,结果页可能很高。而F1的式子,需要P和R都非常高,结果才可能非常大。
评估排序文档 evaluate ranked list
评估排序结果的第一步是要确定一个位置,简单的说是每页多少条数据。我们可以认为用户只有很小的可能会翻页。或者说这次引擎需要评估前两页数据的准确率和召回率。根据实际任务来定。这里假设cut off=10。查看前10条文档的情况。
在前10条文档中,我们又不知道用户会在哪个位置停下来。我们可以先计算用户在不同位置停止浏览的时候的准确率和召回率。
位置 | 文档 | 准确率 | 召回率 |
---|---|---|---|
1 | D1+ | 1/1 | 1/10 |
2 | D2+ | 2/2 | 2/10 |
3 | D3- | 2/3 | 2/10 |
4 | D4- | 2/4 | 2/10 |
5 | D5+ | 3/5 | 3/10 |
6 | D6- | 3/6 | 3/10 |
7 | D7- | 3/7 | 3/10 |
8 | D8+ | 4/8 | 4/10 |
9 | D9- | 4/9 | 4/10 |
10 | D10- | 4/10 | 4/10 |
可以看到随着位置增加,准确率逐渐降低,召回率逐渐增加。所以我们可以假设cut off(例如:10)之后的每个位置的准确率为0。
比较两种算法就是比较两种算法的P-R曲线。
如果算法A、B的效果可以用上图表示,毫无疑问算法A要优于算法B。因为在每一个相同召回率的点上,A的准确率>B的准确率。
如果算法A、B的效果用上面的图表示,那哪种算法好呢?我们是否应该用算法B替换算法A呢?在最前面的位置,算法B具有较高的准确率;总体来看,算法A具有较高的召回率。如果是今日头条这样的场景,一个用户就想知道今天或者近几个小时发生了什么事情,而且还不一定看几条数据就不停下来了。所以最前面的数据一定要是准确的,要求高的准确率。这时候算法B比较好。如果这是一个科技查新的系统,是一个专利调研项目,想要知道哪类技术是不是已经研究过,或者进行了哪方面的研究,这时候有一些错误数据是可以的,但是一定要保证相关的文献能被查询到。也就是说要有较高的召回率。这时候选择算法A。
概述排序文档:平均准确率。
上面例子的平均准确率=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)。
平均准确率衡量了一个检索结果列表的好坏。那如果是一个查询(检索表达式)集合呢?之前提到可重用的测试集是由文档集和查询集组成的。
MAP=Mean Average Precision 平均准确率的平均值。可以用来表示一个查询集的检索结果的好坏。
MAP分为算术平均准确率(MAP)和几何平均准确率(gMAP)。
MAP=1n∑ni=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的差别的感觉是不一样的,前者能感觉到更有差距。
上面介绍的都是一个文档要么相关,要么不相关。实际中我们会给文档分成不同级别的相关性。例如r=1:不相关;r=2:有点相关;r=3:非常相关。我们这里假设关心top10结果。
文档 | 相关性 | 相关性累加 | Discounted Cumulative Gain |
---|---|---|---|
D1 | 3 | 3 | 3 |
D2 | 2 | 3+2 | 3+2/log2 |
D3 | 1 | 3+2+1 | 3+2/log2+1/log3 |
D4 | 1 | 3+2+1+1 | 3+2/log2+1/log3+1/log4 |
D5 | 3 | … | … |
D6 | 1 | … | … |
D7 | 1 | … | … |
D8 | 2 | … | … |
D9 | 1 | … | … |
D10 | 1 | …. | .. |
相关性累加(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之间,用于衡量不同级别相关性的搜索。
在评估中我们需要创建一个文档集、查询集以及相关评价集。在实际中这几方面都是很有挑战的。
首先,我们选择的文档和查询语句要具有代表性,能代表了真实的用户需求。
其次,文档和查询的量要大,尽量数据的抽样不均衡(这里可以翻译的更好点)。对于每个查询,要保证有很多的相关文档。
第三,对每个查询的每个文档的相关性需要大量的人工标记。这是一个劳动密集型的事情,所以我们需要尽可能少的使用人力。
第四,在制定相关度级别方面,我们需要认真考虑什么是用户想要的,再考虑定什么样的相关度级别是合适的。
统计显著性测试(statistical significant test)用来解决这样的问题:我们通过试验比较算法A和算法B谁更好,计算得到平均值之后,我们怎么确定较好的算法是不是因为某几个特定的查询引起的.也就是说对于结果较好的算法,是几乎在每个查询上表现都好,还是只在某些查询上表现优异.例如下图。我们得到的试验结果有多少可信度。
首先看一个符号测试Sign Test。如果SystemB比SystemA好,则标记为+,否则标记为-。7个查询中4个位+,3个位-,这和抛7枚硬币得到的结果相同,所以这个结果完全是随机因素影响的,p=1.0。
其次看Wilcoxon检验法。Wilcoxon检验法同时考虑了符号和差值大小。我们需要考虑在一定的置信水平上(例如α=0.95),计算得到的|W|值是否在临界值范围外。详细内容看看统计学课本或者Wikipedia。
如果我们不能对所有文档的相关性做相关性标记,那我们应该选择哪部分文档去标注相关性呢呢?抽样。要尽可能选择多样性的文档;选择Top k文档(多个算法可能会选到重复的文档);把N个算法选出的文档作为测试集,人工标记相关性;其余未被选中的文档被认为是不相关文档。
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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。