搜素引擎构建于对真实测试案例标准集的使用,该标准集允许开发人员度量其它替代方法的相对有效性。这篇文章讨论了NIST的文本检索会议(TREC)项目,该项目创建了用于度量查询结果质量的基础架构。
我们总是认为以母语进行的文本文件查询是有保障的,但是像Yahoo、Google和Bing这样的网页搜索引擎并非一天构成,而且网页内容也不是我们需要查询的唯一领域。随着数据变得越来越无处不在,搜索需求也相应地扩大了。人们为了不同的目的(比如:重新定位已知数据项、回答特定问题、学习特定问题、监测数据流、及浏览)在不同媒体(比如:文本、网页、Tweet、语音录音、静态图像和视频)中搜索所需内容。大多数情况下,用于支持这些不同搜索类型的技术还在不断完善中。可搜索技术是如何发展的?搜索引擎开发人员怎么知道哪些可行,又为什么可行呢?
来自大型、多元化搜索社区的参与者对标准的、真实测试中的搜索引擎性能的仔细度量已被证实是至关重要的;通过文本检索会议(TREC)项目,美国国家标准及技术研究所(NIST)在过去四分之一个世纪以来一直通过收集社区评估促进着搜索和与搜索相关技术的发展。
TREC的来源
搜索算法通常通过测试集,即在基准任务上对比各个替代方法而发展起来的。第一个测试集是20世纪60年代从Cranfield学院的一系列关于航空索引语言的实验中获取而来的1。Cranfield测试集包含一组航空杂志文章摘要、一组针对这些摘要的查询以及每个查询的正确答案要点。从今天的标准看,它可能微不足道,但Cranfield集打破了当时的记录,为信息检索系统创建了第一个共享的度量工具。研究人员可以自己编写搜索引擎来查询所要的摘要,其返回值可以通过对比答案要点来度量。
其它研究组开始遵循由Cranfield测试提出的实验型研究法,生成了其它多个用于70和80年代的测试集。但到了90年代,大家开始对该方法越来越不满意。尽管有些研究组使用了相同的测试集,但在以下几方面却各持己见:是否使用相同数据,是否使用相同评估度量,是否跨查询系统对比结果。商业搜索引擎公司并未将从查询系统中取得的研究结果整合到他们的产品中,因为在当时他们觉得研究界所用的测试集太小了,并不值得借用。
面对这一不满,NIST被要求构建一个大型的用于评估文本检索技术的测试集,在当时该技术已发展为美国国防部高级研究计划局(DARPA)Tipster项目2的一部分。NIST同意以研讨会形式来构建大型测试集,同时也支持关于测试集使用方面等更大问题的检测。该研讨会就是1992年举行的第一次TREC会议,此后每年都举办一次TREC会议。TREC在早期就完成了构建大型测试集的最初目标;事实上到目前为止,TREC已经构建了几十个正被整个国际研究界使用的测试集。TREC更大的成就是对研究范例的建立和验证,并在此后的每年都继续将其拓展到新任务和应用程序的具体内容中去。
社区评估
该研究范例以基于社区的评估为中心,称为“合作竞争(coopetitions)”,这一新词强调了竞争者间的合作,从而创造出更大的利益。
该范式的主要元素是评估任务,通常情况下,它是一个用户任务抽象,明确定义了我们对系统的期望。与评估项目相关联的是一或多个度量,它们在反映了系统的响应质量的同时,也是所有基础架构用来计算可构建度量标准的手段。其评估方法揽括了任务、度量、以及对度量分数有效解释的声明。一个标准的评估方法允许横跨不同系统间进行结果比较,这就是检索竞赛无获奖者为什么这么重要了;相对于其他研究组所能解决的,它促进了更广泛类型研究成果的整合。
谈到范式的具体实例,我们可以考虑第一个TREC中的主要ad hoc项目,该项目拓展了当时的Cranfield方法。该ad hoc评估项目还检索了相关文档(更确切地说,创建了一个文档列表将所有相关文档罗列于无关文档之前),然后给出一个文档集和称为话题的对信息需求自然语言的声明。该检索输出以准确率(检索出的相关文档数与检索出的文档总数的比率)和召回率(检索出的相关文档数和文档库中所有相关文档数的比率)为指标,为每个已知话题(换句话说,就是答案要点)提供相关文档集。TREC的创新在于利用pooling3为大型文档集构建相关集合。
该pool是所有参与系统对给定话题的检索而查询出来的前X个文档的集合。只有来自话题pool中的文件才会被人工评审员采用并鉴定其相关性,其它的文档则与有效性评分的计算无关。尽管只参照了整个测试集中的一小部分,但是随后的测试证明在TREC中执行的pooling在文档集中所发现的文档绝大部分都是相关的。另外,该测试进一步验证了在通常情况下,这些在测试集上获得更高分数、构建于pooling上的检索系统往往比那些分数较低的系统在实际应用中更有效4。同时该测试也暴露了通过计算测试集所得分数只有有限的有效应用。因为分数的绝对值由多种因素决定,而非仅仅是检索系统(比如:使用不同人工评审员通常对分数会有一定的影响)。只有比较其它系统在完全相同测试集上计算出的分数才有效。这就意味着对比不同年度的TREC分数是无效的,因为每个TREC构建的测试集都是新的(不同的)。想让pooling成为有效的策略,在pool中拥有类型广泛的检索方法起着非常必要的作用。因此,TREC的社区因素 — 使用了多种检索方法用于检索不同文档集 — 是创建良好测试集的重要因素。社区因素同时也是TREC在其它方面成功的重要因素。TREC只有在所有检索方法都呈现时,才能检验当前的技术。一年一度的TREC会议不仅促进了不同研究组间,而且还促进不同研究开发组织间的技术交流。该年度会议还为解决方法论方面的问题提供了有效的机制。最后,社区成员往往是新项目数据和用例的来源。
在TREC开始之初,大家还怀疑这个构建于实验室的统计系统(相对于在手动索引集合上使用布尔搜索的操作系统)是否能真正有效地从大型集合中检索出文档来。TREC中的ad hoc项目证明了90年代初的搜索引擎不仅确实拓展到了大型集合范畴,也不断得到了改进。其有效性无论在TREC测试集实验室中,还是在当下集合了该技术的操作系统中都得到了证明。此外,该技术现在所应用的测试集要比当初在1992年设想的大得多。网页搜索引擎是统计技术能力最好的例子。搜索引擎为用户带来他们想要的查询信息的能力已经成为网站成功的基础。正如之前所说的,搜索有效性的改进并不能简单地由每年的TREC分数来判断。然而,SMART搜索系统开发人员会将每八个他们曾经使用过的TREC ad hoc项目冻结起来,并保存系统副本5。每个TREC后,他们会在每个系统上执行所有测试集。针对每个测试集,新版SMART系统总是比旧版的更有效,而且分数也比旧版的大概要高出一倍。尽管该证据只能证实一个系统,但在每个TREC中,SMART系统结果始终追踪其它系统的结果,因此SMART结果完全可以代表当前技术水平。