如何通过度量查询质量构建更佳的搜索引擎

搜素引擎构建于对真实测试案例标准集的使用,该标准集允许开发人员度量其它替代方法的相对有效性。这篇文章讨论了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结果完全可以代表当前技术水平。

时间: 2024-09-14 13:45:57

如何通过度量查询质量构建更佳的搜索引擎的相关文章

审时度势:掌握排名“征兆” 适时优化效更佳

SEO优化做的是什么?顺势搜索引擎规则进行优化.然而实际操作中,又有多少人适时针对搜索引擎规则优化呢?大部分站长或SEOer仅仅是"墨守成规"做好该做的事,而进行稳扎稳打的优化.但SEO目的是什么呢?四两拨千斤的优化效果,才是SEOer的本质.在最短时间内,实现最佳排名效果的SEOer才是合格的SEO人才.如何实现如此目标呢?二进制认为,掌握搜索引擎排名征兆,适时优化效果更佳,或使努力进一步达到事半功倍的之效.否随波逐流,网站在发展过程中短期内恐难拔尖,而若长期突入,恐又免不了入不敷出

使用 Oracle XQuery 查询、构建和转换 XML

oracle|xml|转换 在 Oracle 数据库 10g 第 2 版中,Oracle 引入了一个与该数据库集成的全功能自带 XQuery 引擎,该引擎可用于完成与开发支持 XML 的应用程序相关的各种任务.XQuery 是一种用于处理 XML 数据模型的查询语言,它实际上可操作任何类型的可用 XML 表达的数据.尽管 Oracle XQuery 实施使您可以使用数据库数据和外部数据源,但在处理数据库中存储的结构化数据方面,Oracle XML DB 通常可以显著提高性能. 本文提供的示例不仅

《树莓派开发实战(第2版)》——2.5 用Apply和Chain构建更复杂的模型

2.5 用Apply和Chain构建更复杂的模型 Figaro提供两种构建模型的有用工具,称作Apply和Chain.这两种工具都是重要的元素.Apply可以在Figaro中引入Scala,利用其全部能力.Chain可以无限的方式创建元素之间的相互依赖关系.目前为止您所看到的复合元素(如If和复合Flip)可以特定的预定义方式创建依赖关系.Chain可以超越这些预定义依赖关系,创建您所需要的任何依赖. 2.5.1 Apply 我们从Apply开始,这个元素在com.cra.figaro.lang

原创内容给力营销 注重用户效果更佳

中介交易 SEO诊断 淘宝客 云主机 技术大厅 这是一个鼓励创新的时代,但是并没有适宜原创的土壤.其中有诸多法律意识淡薄,也有更多是灰色心态使然.面对善于模仿和山寨的伪创新,有学者甚至一语见地的指出"让中国落后的不是技术壁垒,也不是人力匮乏,而是思想淡薄".所以,我们一方面膜拜iphone一方面取其精华而山寨,却始终拿不出自己可以与之抗衡的产品,这似乎并不足为奇.回归本文正题网站建设与网络营销,真正的原创新就更少的可怜.且不说网站设计从早期的模仿甚至抄袭日韩风格,到现在开始欧风美雨,却

命令行基础工具的更佳替代品

命令行基础工具的更佳替代品 命令行听起来有时候会很吓人,特别是在刚刚接触的时候,你甚至可能做过有关命令行的噩梦.然而渐渐地,我们都会意识到命令行实际上并不是那么吓人,反而是非常有用.实际上,没有命令行正是每次我使用 Windows 时让我感到崩溃的地方.这种感觉上的变化是因为命令行工具实际上是很智能的. 你在任何一个 Linux 终端上所使用的基本工具功能都是很强大的, 但还远说不上是足够强大. 如果你想使你的命令行生涯更加愉悦, 这里有几个程序你可以下载下来替换原来的默认程序, 它还可以给你提

Oracle XQuery查询、构建和转换XML 1

  Oracle XQuery查询.构建和转换XML(1) 在 Oracle 数据库 10g第 2 版中,Oracle 引入了一个与该数据库集成的全功能自带 XQuery 引擎,该引擎可用于完成与开发支持 XML 的应用程序相关的各种任务.XQuery 是一种用于处理 XML 数据模型的查询语言,它实际上可操作任何类型的可用 XML 表达的数据.尽管 Oracle XQuery 实施使您可以使用数据库数据和外部数据源,但在处理数据库中存储的结构化数据方面,Oracle XML DB 通常可以显著

如何才能让网站文本链接效果更佳

文本链接,字面看起来,似乎非常的简单,然而操作起来却常常会犯错误,特别是新手朋友.因为新手所学到的知识常常是网络上的一些理论而不是经过自己实践得来的经验,难免在操作上存在着误差或者理解上的差异. 我们常常会被外链为皇这句话给冲昏了头,导致希望每天用工作或者domain站点所看到的链接越多越好,而忽略了在nofollow标签下建设外链常常是一种白费力.那么我们如何进行文本链接才会让效果更佳呢?笔者认为做好以下三点文本链接,效果会更佳. 一.链接的分散性 我们做外链要跟做友情链接区分,因为友情链接大

c++-对程序的执行计时,有没有更佳的办法?

问题描述 对程序的执行计时,有没有更佳的办法? 我们经常要对程序的执行进行计时,但是一般的做法都是嵌入到需要计时的程序片段, 比如在该程序片段前插入启动计时器,然后在它后面插入终止计时器,最后计算一下时 间间隔.这时候计时器与该程序片段高度耦合.Its so bad.能否将该程序片段的计时 起止指令语句作为触发计时器的计时启止事件,这样它们的依赖关系就倒置了,更符合 现实情况! 解决方案 用aop切入你需要计时的程序就可以了. 你可以用动态代理实现. 解决方案二: aop大概逃不脱用try ca

减少认知过载可以为用户带来更佳体验

本文讲的是减少认知过载可以为用户带来更佳体验, 最棒的用户体验是不会让用户察觉到的.它使得界面流畅易用,但成百上千的重要设计决策都是出于引导(用户),引起(用户)兴趣以及规避风险的目的. 如果用户体验设计完成了它的本职工作,(那么)用户根本不会察觉到它们究竟做了些什么.用户在界面和设计上想得越少,那他们就越能集中精力在你的网站上完成他们的目标. 你作为设计师的任务是通过预先清除障碍来为他们达成目标铺设一条捷径. "急功冒进往往会使结果欠佳.这种方式需要花费很多努力来对如此迅猛的进程作出调整.去他