搜索引擎技术研究发展.docx
《搜索引擎技术研究发展.docx》由会员分享,可在线阅读,更多相关《搜索引擎技术研究发展.docx(19页珍藏版)》请在冰豆网上搜索。
搜索引擎技术研究发展
搜索引擎技术研究发展*
印鉴1,2 ,陈忆群1,张钢1
(1中山大学计算机科学系广州510275)
(2南京大学计算机软件新技术国家重点实验室南京210093)
摘要:
介绍搜索引擎技术。
首先以工作方式做分类介绍,接着介绍各部分工作原理和技术研究,包括关键技术如:
搜索器策略、检索策略、搜索结果处理、信息检索Agent、多媒体搜索引擎等。
最后展望搜索引擎发展重要方向。
关键词:
搜索引擎多媒体搜索引擎信息检索
Searchenginetechnologyresearchdevelop
YinJian1,2,ChenYiqun1andZhangGang1
1DepartmentofComputerScience,ZhongshanUniversity,Guangzhou,510275
2StateKeyLaboratoryforNovelSoftwareTechnology,NanjingUniversity,Nanjing,210093
Abstract:
introducesearchenginetechnology.Firstcategorizethesystemsaccordingtoitsworkingtype,thenexameachpart’stheoryandtechnology.AnalyzedaretheimportanttechnologyincludingRobotstrategy,searcherstrategy,resultreorganize,InformationRetrievalAgent,Multimediasearchengineandsoon.Finallyweconcludethepaperwithsomefutureworkonresearchfieldofsearchengine.
Keyword:
Searchengine,MultimediaSearchengine,Informationretrieval
1.引言
因特网的发展形成了一个巨大的全球化信息空间,方便了信息的收集和获取。
1999年统计数据[1]表明,Web上大约有2800000台服务器,存储网页超过8亿,并且仍以惊人的速度增长。
Web信息的大容量、异构性、分布性和动态性给信息检索带来了挑战,如何快速获取需要的信息是用户面临的重大问题。
搜索引擎技术可用来解决这一问题。
搜索引擎以一定的策略在互联网中搜集、发现信息,对信息进行理解、提取、组织和处理,并为用户提供检索服务,从而起到信息导航的作用。
搜索引擎提供的导航服务已成为互联网上非常重要的网络服务。
同时,高性能的Web信息检索技术也是充分利用Web资源发展电子商务、远程教学、数字化图书馆等方面应用的重要基础。
目前,搜索引擎技术已成为计算机工业界和学术界争相研究、开发的对象,并逐渐体现其经济价值。
搜索引擎的性能主要取决于:
索引数据库的容量、存放内容、以及更新速度,搜索速度,用户界面的友好程度以及是否易用等。
搜索引擎是以传统信息检索技术为基础,利用其索引模型、匹配策略等方面的技术成果并针对Web资源的特点发展起来的信息检索技术,涉及多领域的理论和技术:
数字图书馆、数据库、信息检索、信息提取、人工智能、机器学习、自然语言处理、计算机语言学、统计数据分析、数据挖掘、计算机网络、分布式处理等,具有综合性和挑战性。
本文对搜索引擎技术进行了系统的介绍和分析,以工作方式对搜索引擎进行分类,介绍搜索引擎各组成部分的相关研究和关键技术(搜索器策略、检索策略、搜索结果处理、信息检索Agent、多媒体搜索引擎等),并对未来搜索引擎的主要发展方向进行了展望。
2.搜索引擎的分类
按照信息搜集方法、服务提供方式和系统结构的不同,搜索引擎系统可以分为不同的类别,下面介绍按照搜索引擎工作机制对其进行分类。
搜索引擎作为用户层和Web信息层之间的中间层,内部结构有所不同。
如图1所示,用户可以直接从机器人搜索引擎或者目录式搜索进行检索,或者通过元搜索引擎进行检索,或者通过信息检索Agent进行检索。
由此搜索引擎系统可以分为以下类别。
图1搜索引擎工作机制分类
(1)机器人搜索引擎:
由一个机器人(Robot)程序以某种策略自动地在互联网中搜集和发现信息,下载到本地文档库对文档内容进行自动分析,由索引器为搜集到的信息建立索引,对用户的查询输入由检索器检索索引库,最后对查询结果进行处理,返回给用户。
其优点是具有庞大的全文索引数据库、信息量大、更新及时、毋需人工干预,适用于检索难以查找的信息或者一些比较模糊的主题,缺点是返回信息过多,有很多无关信息,用户必须从结果中进行筛选。
其代表有:
AltaVista、NorthernLight、Excite、Infoseek、Inktomi、FAST、Lycos、Google;国内代表为:
“天网”、悠游、OpenFind等。
(2)目录式搜索引擎:
由Web站点作者主动提交,也可用人工方式或半自动方式搜集信息,由人工对Web站点进行评价、分类、形成摘要,并将信息置于事先确定的分类框架中,使Web信息资源按照树型作主题分类组织,从树根逐层向下形成从一般到特殊的各级分类,叶节点则包括指向Web信息资源的链接。
因为目录分类的导向作用,用户可通过浏览目录中的分类来缩小、指定搜索范围,有助于逐步缩小主体或者查找某个主题的常见的、质量较高的信息,提高了检索的准确性。
但是由于人工方式限制了这类搜索引擎的更新速度和容量。
其代表是:
Yahoo、LookSmart、OpenDirectory、GoGuide等。
目录式提供的是对分类以及Web信息描述的索引,与机器人搜索引擎提供的对文档内容的全文索引是不同的。
由于机器人搜索引擎和目录式搜索引擎各有所长,因此有的系统融合结合两者的技术优势构成更高性能的搜索引擎如LookSmart,Yahoo等。
通常我们把机器人搜索引擎和目录式搜索引擎统称为搜索引擎。
(3)元搜索引擎:
对用户的查询请求进行预处理,分别转换为底层搜索引擎能够处理的格式,再向多个搜索引擎递交,然后对综合各种搜索引擎的检索结果进行组合、排除重复、重新排序等处理后,作为自己的结果返回给用户。
其优点是返回结果的信息量更大、更全,缺点是不能够充分使用所选用搜索引擎的功能,往往用户需要做更多的筛选。
应用代表有WebCrawler、InfoMarket等。
(4)信息检索Agent:
信息检索Agent是智能化的程序,能够学习用户的需求,并利用搜索引擎等系统提供的现有服务来检索用户所需要的信息推荐给用户,具有智能性、主动性、协作性等特点,我们将在第4节详细介绍。
其代表有CarnegieMelon大学开发的WebWatcher[2],Washington大学开发的ShopBot[3],Stanfor大学开发的Fab[4]等。
搜索引擎的其他分类方法还有:
按照自动化程度分为人工与自动引擎;按照是否有智能分智能与非智能引擎;按照搜索内容分FTP搜索引擎、文本搜索引擎、语音搜索引擎、图形搜索引擎、视频搜索引擎等。
3.搜索引擎技术分析
搜索引擎以Web信息为处理对象,向元搜索引擎和信息检索Agent提供服务。
一般搜索引擎由搜索器(Robot)、分析器、索引器、检索器和用户接口等五个部分组成,如图2所示。
下面我们就各个部分的技术进行分析。
图2搜索引擎组成结构
3.1搜索器
搜索器是一个机器人程序Robot(也称为Spider、crawler或wander),自动地在互联网中搜集和发现信息,对Web进行遍历并下载到本地文档库。
由于Web信息的大容量、分布性和动态性,保持全面而又最新的资料收集是影响搜索引擎性能表现的重要方面。
为提高Robot工作效率,其实现常用分布式、并行计算技术,主要有2个方面的工作重点[5]:
第一是采用较好的搜索策略;第二是设计高性能系统结构以支持每秒下载大量网页同时确保系统具有较好的管理性和健壮性,能够应付各种服务器的突发事故等。
目前对第一方面已进行了较为广泛的研究,相关的工作包括:
优先搜索重要网页的策略[6][7];基于超链接的结构分析[8][9]和机器学习技术[10][11]对特殊题目或特殊类型网页的搜索;与Web页面URL有关的启发式规则研究[12],以寻找个人主页、位置变动的Web页面的新位置、与给定页面集合相关的其它页面等;根据页面更新历史优化网页集合,保持最新页面集的技术[13][14];按照时间表控制搜索活动[15];在网站地图中随机走步进行网页取样搜索的研究[16][17][18];搜索隐藏网页的研究[19]等。
隐藏网页HiddenWeb(也称DeepWeb,FederatedFactsandFigures)是指许多通过Web页获取的、存放于数据库中、只能通过填入正确的查询或者填入相应的网页输入框而获得的信息。
一般来说,主要搜集策略可以分为两种:
(1)系统中维护一个超链队列(或者堆栈),其中包含起始URL集,从起始URL集合开始采用某种搜索顺序遍历并下载相应的页面,同时从中抽取出新的超链接加入到队列中。
上述过程不断重复直到队列为空。
搜索顺序有深度优先搜索,宽度优先搜索、启发式搜索等。
(2)将Web空间按照域名、IP地址或国家域名划分,每个搜索器负责一个子空间的穷尽搜索。
第二方面的研究目的是设计高性能系统结构,以便在有限时间内尽量多的下载网页,侧重于考察系统的I/O和网络性能以及健壮性、可管理性等。
多数系统致力于减少需下载的网页数目或者提高已下载网页的利用率。
DEC/Compaq的Heydon和Najork研发的Mercatorcrawler[20]应用于AltaVista,利用并行计算技术、高速缓冲寄存器和高速硬盘解决I/O问题来提高效率,数据可以直接分析而不需写入硬盘;第一个版本的googlecrawler[21]采用异步I/O进行下载,对索引内容的分析与搜索下载系统绑定在一起,因此下载速度受到建立索引的速度影响;InternetArchivecrawler[22]用强大的过滤器来辨认已经找到的网页,允许在内存中完成组织,但同时导致了一些页面的遗漏。
文献[5]提出一个高效的分布式webcrawler(即引擎蜘蛛)提高I/O和网络性能。
搜索引擎的自动信息搜集功能工作方式分为两种。
一种是定期搜索,即每隔一段时间,搜索引擎主动派出机器人程序进行检索。
另一种是提交网站搜索,网站拥有者主动向搜索引擎提交网址,搜索引擎在一定时间内向此URL网站派出机器人程序,扫描网站并将有关信息存入数据库,以备用户查询。
由于站点的不断更新以及新站点的加入,Robot需要定时更新已下载的信息以保证搜索结果的正确性和完整性。
各个搜索引擎采取的定时更新周期长短各不相同,但都需要平衡Robot工作负担以及搜索引擎搜索性能表现。
搜索器搜集的信息类型多种多样,包括HTML、XML、Newsgroup文章、FTP文件、字处理文档、多媒体信息以及隐藏网页等。
不同的搜索引擎搜索的内容不尽相同:
有的着重站点搜索;而有的搜索可能包括Gropher、新闻组、E-MAIL等。
3.2分析器
分析器对本地文档库进行分析以便用于索引。
文档分析技术包括分词、过滤和转换等。
一般“词”能够表达完整的语义对象,所以通常选用词作为文本特征的元数据。
在分词时,大部分系统从全文中抽取词条,也有部分系统只从文档的某些部分(如标题等)抽取词条。
由于中文的基元是字而不是词,句子中各词语间没有固定的分隔符,汉语语义及结构上的复杂性和多边性给中文分词带来极大困难。
文献[23]给出了汉语分词问题的一般描述。
目前汉语分词主要有2大类方法[24]:
基于词典与规则的方法和基于统计的方法。
前者应用词典匹配、汉语词法或其他汉语语言知识进行分词,如最大匹配法(MaximumMatching)[25]、最小分词方法[26]等,其性能依赖于词典的完备性、规则的一致性。
后者基于字和词的统计信息,如相邻字间互信息、词频及相应的贡献信息等应用于分词。
由于存在很多无用词,分词后通常要使用禁用词表(stoplist)来去除出现频率很高的词条,如过滤掉无义的频繁出现词:
an、the、of、的。
另外需要对词条进行单/复数转换、词缀去除(stemming)、同义词转换(conflation)等工作,如将jumps、jumped、jumper都归结成jump进行索引。
3.3索引器
索引器的功能是理解搜索器所搜索的信息,从中抽取出索引项,将文档表示为一种便于检索的方式并存储在索引数据库中,生成文档库的索引表。
·索引项
索引项有客观索引项和内容索引项两种:
客观项与文档的语意内容无关,如作者名、URL、更新时间、长度、链接流行度(LinkPopularity)等等;内容索引项是用来反映文档内容的,如关键词及其权重、短语、单字等等。
内容索引项又可以分为单索引项和多索引项(或称短语索引项)两种。
单索引项对于英文来讲是英语单词,比较容易提取,因为单词之间有天然的分隔符(空格);对于中文等连续书写的语言,必须进行词语的切分。
·文档表示
基于自然语言处理和统计数据分析的文本特征表示指的是对从文本中抽取出的元数据(特征项)进行量化,以结构化形式描述文档信息。
索引器采用的文档的表示方法有多种,如矢量空间模型(VSM)[27]、布尔模型、概率模型等。
其中VSM是近年来应用较多且效果较好的方法之一。
矢量空间模型的基本思想是以矢量来表示文本,把文档看作是由一组正交词条矢量所组成的矢量空间,将文档信息的匹配问题转化为矢量空间中的矢量匹配问题处理。
布尔模型是一种简单的严格匹配向量模型(ExactMatchModel),定义了一个二值变量集合来表示文档,这些变量对应于文档中的特征项,文本表示的结果是0-1向量。
检索时,根据用户提交的检索条件是否满足文档表示中的逻辑关系将检索文档分为两个集合:
匹配集和非匹配集。
因匹配结果的二值性,所以无法在匹配结果集中进行查询结果的相关性排序,无法区分特征项对文档内容贡献的重要程度,并且逻辑表达式过于严格,往往会因为一个条件未满足而忽略了其他全部特征,造成大量的漏检。
对此,P范数模型克服了简单布尔模型匹配函数过于严格而导致漏检率高的缺陷,它是对布尔模型的扩展。
布尔模型和向量空间模型都将文档表示词条视为相互独立的项,忽略了表示词条间的关联性,而概率模型则考虑了词条、文档间的内在联系,利用其概率相依性进行信息检索。
二值独立检索模型(BIR)、概率推理网络都属于概率检索模型。
·索引表
索引表一般使用某种形式的倒排表(InversionList),由索引项查找相应的文档。
即将Web文档集合排序存储的同时,有另外一个排好序的关键词列表,用于存储“关键词==>文章”的映射关系,索引表也可能要记录索引项在文档中出现的位置,以便检索器计算索引项之间的相邻或接近关系,如这样的映射关系索引:
[关键词==>出现关键词的文章编号,出现次数(甚至包括位置:
起始偏移量,结束偏移量),出现频率]。
对文档的分析索引技术还包括了文档分类技术。
文档分类是指按照预先定义的主题类别,为文档集合中的每个文档确定一个类别,这样可以通过限制搜索范围来提高文档查找的准确率。
文本分类算法很多,常用的有朴素贝叶斯分类算法(NaïveBayesianclassifier)[28]、k-最近邻参照分类算法(k-NearestNeighbor)[29]等。
3.4检索器
检索器的功能是根据用户的查询在索引库中找出相关文档,进行文档与查询的相关度评价,返回相关度符合某一阀值的文档集合。
检索器采用的检索方法有以下几种:
·基于关键词的检索:
不考虑文档的具体内容而仅判断文档中是否包含被检关键词的方法
·基于概念的检索:
由于自然语言中广泛存在同义词和一词多义的现象,用户输入的关键字可能包含多种含义以及有别的同义词,因此引入了基于概念的检索。
其方法是对用户查询进行概念/词条扩展,例如从”robot”扩展到”crawler,spider,wander”等词条,然后转化为关键字检索。
概念/词条扩展方法有两种,一种是手工建立词典来存储概念层次集词条之间的交叉联系;一种是使用语法分析、统计等技术从文档集合中自动学习。
文献[30]给出了几种构成概念空间、计算词间关系权值的算法,文献[31]提出讨论了利用概念关联来推荐网页提高召回率的技术。
·基于内容的检索:
能够根据文档的内容处理类似“检索出属于多媒体类且包含通信内容的文档”等涉及文档内容查询的检索。
文献[32]提出检索查询操作符in,用于检索某个题材在某个范围内讨论的内容,如“机器人in搜索引擎”表示在题材搜索引擎中讨论机器人的相关内容。
3.5用户接口
用户接口的作用是为用户提供可视化的查询输入和结果输出界面、提供用户相关性反馈机制。
用户接口的设计和实现使用人机交互的理论和方法,以充分适应人类的思维习惯。
用户输入接口可以分为简单接口和复杂接口两种。
简单接口只提供用户输入查询串的文本框;复杂接口可以让用户对查询进行限制,如逻辑运算(与、或、非)、相近关系(相邻、NEAR)、域名范围(如.edu、.com)、出现位置(如标题、内容)、信息时间、长度等等。
目前一些公司和机构正在考虑制定查询选项的标准。
在输出界面中,搜索引擎将检索结果展现为一个线性的文档列表,其中包含了文档的标题、摘要、所在URL等信息。
用户需要逐个浏览以寻找出所需的文档。
为了提高检索效率,降低用户浏览列表中文档的工作量,多数搜索引擎对搜索结果列表进行一定的排序,以便使较符合用户查询目标的文档出现在列表的前面。
关于搜索结果处理的相关技术将在3.6小节中介绍。
3.6搜索结果处理
用户在搜索引擎上进行信息查询时,注重结果是否和自己的需求吻合,而不十分关注返回结果的数量。
全文检索已是一个很成熟的技术,它能够解决对网页细节的检索问题。
从理论上说,只要网页上出现了某个关键词,就能够使用全文检索用关键词匹配把该网页查出来,但是这又导致了它的缺陷——返回的信息太多。
搜索引擎通常会对一个查询返回大量的结果列表,混合着相关文档和不相关文档,用户不得不在结果中筛选,增加了用户的工作量。
为解决查询结果过多的现象,多数搜索引擎都对查询结果进行一定的处理,以提高检索结果的准确率。
3.6.1.文档摘要
搜索引擎向用户返回结果时,通常需要给出文档的摘要,这是文档总结技术的应用。
目前,大部分搜索引擎采用的方法是简单的截取文档的前几行,显然有很大缺陷。
有很多种摘要算法,但关键技术都采用词性标注,进行语义分析;用统计方法提取高频词(去除停用词之后),以确定摘要。
有的算法对开始句和结束句中出现的短语给予较高的权重。
有的算法通过寻找关键短语,确定重要句子如结论句等。
文献[33]提出了使用中心文档来代表文档集合,使用中心词汇来表示文档的方法,并给出了求取中心文档和中心词汇的算法
3.6.2.检索结果排序
对海量数据进行检索时,那些被排在一千位之外的信息,被读到的机会几乎为零。
这个问题在情报检索领域已被研究多年,而“按照目标词语出现的次数和频率排序”是该领域多年以来形成的惯性思维,但这种思路不完全适合于网页的排序。
因为互联网检索还有一个更本质的因素:
超链接。
目前的排序方法主要有以下两种。
·基于内容的相关度排序:
考虑用户所查询的词条在文档中的出现情况,包括:
词条频率、逆文档频率、词条位置等因素。
通过使用相关度反馈机制,使用户告诉搜索引擎哪些文档和自己的需求相关(及其相关的程度),通过多次交互逐步求精等方法了解用户的真正意图。
·基于超链的相关度排序:
一个页面被其它站点引用的次数基本上反映了该页面的受欢迎程度(重要性),超链中的标记文本(anchor)对链宿页面也起到了概括作用。
因此基于超链的相关度排序可以作为基于内容方法的补充。
Stanford大学研究的PageRank算法[34],作为核心技术应用于Google中,PageRank不仅仅考虑Web网站上的标题或文本,还考虑了与之相连接的其他网站,通过为Web页面构造引用图,并综合考虑页面的被引用次数,以及链源页面的重要性来判断链宿页面的重要性,将“重要性”的概念引入到搜索中,能够查询于用户请求相关的“权威”页面。
此外,Google通过分析超链中包含的文本内容,可对链宿页面进行非全文索引,而不需下载和分析实际页面,扩大了索引数据库的覆盖度。
3.6.3.检索结果的联机聚类
Hearst等人[35]的研究表明用户查询相关的文档通常会聚类的比较近,而远离与查询无关的文档。
因此可利用聚类技术将结果文档集合分成若干组,同一组的文档内容相似度尽可能地大,组间相似度尽可能的小。
这样用户只需考虑相关的组。
Etzioni[36]等人的实验结果表明这种方法十分有效。
3.6.4推测用户最终目的
通过各种方法获得用户没有在查询语句中表达出来的查询目的,包括使用智能代理跟踪用户检索行为,分析用户模型,通过同类用户的行为记录推荐相关页面;使用相关度反馈机制,通过对查询请求的不断修正以提高系统搜索结果的精确度等。
4.信息检索Agent
Agent是人工智能领域发展起来的一个概念,它是指具有感知能力、问题求解能力和与外界进行通信能力的一个实体。
智能Agent具有代理性和主动性,它能在用户没有明确具体要求的情况下,根据用户需要,代替用户进行各种复杂的工作,引导、代替用户访问资源。
智能Agent可应用于广泛的领域,是人工智能领域近年来研究的一个热点,应用于信息检索领域之后,成为开发智能化、个性化信息检索的重要技术之一,引起了广泛的研究开发兴趣,具有远大的发展前景。
无论是机器人搜索引擎还是目录式搜索引擎以及其结合体,它们的工作方式都是用户驱动的,即系统只能响应用户显示提出的检索请求。
而用户往往难以用简单的关键词或句子表达自己的真正查询需要,一个词在用户的理解中可能暗含很多系统并不知道的其他含义,不同领域和知识背景的用户理解有所不同,对检索结果的要求也不尽相同,这些表达困难问题导致了系统的检索困难。
同时,这些系统缺乏对Web信息进行监控并在出现用户感兴趣的新信息时主动通知用户的能力。
信息检索Agent能较好地解决以上问题,它提供了一种主动的、智能的服务方式,近年来引起学术界和工业界的极大兴趣。
信息检索Agent具有以下特征:
(1)智能性:
信息检索Agent具有丰富的知识和一定的推理能力,能够从用户的检索、浏览等行为学习用户的兴趣,揣测用户的意图,推理用户的需求,并具有从经验中不断学习的能力,适当地进行自我调节,提高处理问题能力,从而为每个用户建立个性化的服务。
(2)主动性:
信息检索Agent能够主动地根据用户的兴趣需求从Web上检索相应的信息,获取最新信息通知用户。
工作的执行不需用户干预,系统利用自身的控制机制、知识等自行安排任务规划、执行。
(3)协作性:
能利用搜索引擎等系统提供的服务来检索用户所需信息,通过各种通信协议和其他智能体进行信息交流,并相互协调共同完成复杂的任务,从而最大限度地扩展应用服务系统间的信息交流,提高资源利用率和工作效率。
(4)移动性:
可以在网络上漫游到任何目标主机如远程服务器上,并在服务器上进行信息处理操作,最后将结果集中返回到起点,这样就可以充分利用服务器大量的资源克服客户机处理能力不够等缺点。
信息检索Agent技术在网络信息检索上的发展潜力是巨大的,要真正充分发挥其各项优势,还有待在机器学习、相关度分析等方面进一步研究和改进。
在知识经济时代,人们越来越需要个性化信息的提供,作为网络信息检索的前沿技术,信息检索Agent技术必将受广大用户的青睐,发展前景是非常广阔的。
5