利用移动Agent技术改进基于概念的信息检索,本文主要内容关键词为:信息检索论文,概念论文,技术论文,Agent论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
Internet上的信息具有内容和形式的多样性、操作和使用的分布性、较高的数据冗余性(即数据量很大但可得信息量较小)等特点,这就给信息的获取以及其后的统一处理带来了极大困难,给如何提供有效的机制帮助用户组织和查找信息带来了挑战。对于用户来说,质量胜于数量,深度胜于广度,用户希望在大量的信息中,快速找到“含金量”高的信息。“基于概念的信息检索模型”(Concept-Based Information Retrieval Model)让信息检索系统能够利用信息的语义知识, 能“理解”用户的检索需要,通过知识学习、分析理解和推理归纳来实现“智能化”的信息检索。
但是,网络环境是比较复杂的,其中不仅有各种不同类型的机器硬件和操作系统平台,而且机器运行状态十分不稳定,Agent (代理)很适合在这样的环境中来帮助用户完成信息检索的任务。一方面, Agent有很好的生存能力和适应能力,而且使用方便;另一方面,Agent 具有一定的智能,能胜任信息检索的任务。而移动Agent 除了具有上述的优点以外,同时还具有移动性的特点,它是一个自包含的软件实体,能够记录自身的状态,对环境变化的反应和对环境的作用,能够通过网络完成自身的移动。
1 移动Agent
1.1 Agent
McCarthy于20世纪50年代首先把Agent的想法引入到计算机科学中,他认为Agent是这样一个系统:每当给定一个目标,Agent就会执行适当的计算机指令,并且可以接收人们给定的命令。它实际上是一个计算机世界中的软件机器人。目前对Agent的研究主要集中在移动Agent和智能Agent两个方面。
1.2 移动Agent
移动代码是一种新的网络计算模式。传统的远程过程调用(RPC)利用底层网络传递消息,包括请求和应答,客户向服务器发送服务请求报文,而服务器处理请求后,向用户发送响应报文。在移动代码方式下,网络上传递的不仅有被动的消息,还有可以运行的代码和其运行所需要的数据。客户直接向服务器发送可以运行的代码,该代码代理用户完成一定的任务,因此有人称它为Agent,又因为代码是可以移动的,所以又被称为移动Agent。
Robert S.Gray在“D'Agents:Security in a multiple-language,mobile-agent system”一文中给出的移动Agent 的概念是:移动Agent是一个程序,该程序可以在网络中的主机上移动,并且在这些主机上执行。由这个定义和以上对Agent及移动代码的介绍,可以推知移动Agent具有以下一些特性:
● 移动性:Agent可以在异构的网络中移动, 可以选择何时向何处移动,可以在执行中暂时停下来,在移动到另一主机后继续执行;
● 自主性:每个Agent都是可独立运行的程序, 一旦用户将其发出,它将自主运行;
● 安全性:Agent 的旅行和执行不应给用户的信息资源造成破坏,同时,其自身也应得到保护;
● 协同性:Agent就像它所代表的用户一样,不是孤立的, 可能要和其他Agent一起协同工作才能完成任务;
● 智能性:Agent应具有内在的推理机制和学习机制, 自动适应复杂多变的网络环境,采取最佳的策略去完成自己的任务;
● 社会性:多个代表人的Agent组成了一个社群, 具有和人相似的社会性。
1.3 移动Agent的优点
由上述移动Agent 的特性介绍可以发现这种基于移动代码的新计算方式和传统的RPC相比,具有以下优点:
● 减轻了网络负载;
● 对网络的延时和抖动不敏感;
● 可以封装专有协议,在不兼容系统之间协调和互操作;
● 异步操作,不需要持续的网络连接;
● 容易支持服务的个性化;
● 更容易适应多变的网络环境。
2 基于概念的信息检索
以往的检索模型以词为中心来建立关联,而忽略了词与词之间的语义联系,为了改变这一缺点,人们提出了基于概念的信息检索模型。它是以包含语义联系的概念为中心,利用概念的关系来进行信息检索。
2.1 什么是概念
在讨论信息检索这一问题时,我们认为概念是一些相近实例的聚集,它必须能够表达这些实例的公共特征。一般来讲,概念包括以下3 种信息:①上层概念(概括性);②下层概念(专门性);③所有实例的公共特征和限制(选择性限制)。
对于概念之间的关系,我们使用层次结构来表示。每一个概念可以细分为几个子概念,从最高层概念逐步细分,就形成了一个树状的层次结构。较低层的概念能自动继承较高层概念的全部特性。
2.2 基于概念的信息检索模型
我们提出的基于概念的信息检索模型如图1所示。其中,概念词典是模型的接口,是从词汇到概念的桥梁,它里面包含了语法和词汇信息,通过它能使词汇迅速被抽象为概念。概念树是一个领域知识的层次或分类结构,其作用主要有二:一是表明了概念之间的关系,二是建立了从概念结点到基于概念的数据库之间的关联。它是整个模型的核心。基于概念的数据库不仅保存文档,还给出了从文档抽取出的概念及频度信息。由Robot从各种Web页面上搜集到的文档首先通过预处理抽出文档中的词汇和短语,然后对文档进行分类,并抽象出文档所包含的概念,同时存入数据库。搜索引擎则通过对用户输入的查询进行分析,转换成概念组合。通过查询所表达的概念与目标文档所包含概念的匹配来返回查询结果。
图1 基于概念的信息检索模型
2.3 概念词典与概念树
上面提出的模型中,概念词典和概念树是其重要的组成部分,也是实现概念检索的关键环节,亦可以算作原型中的核心方法工具,下面分别予以介绍。
Robot获取的Web页面、文档或用户输入的查询子句经过输入并加以适当切分后,会得到一个词汇流。概念词典将建立从词汇到概念的相互映射,即给定一个词语我们能知道它可以表达哪些概念,而给定一个概念,又可以得到描述该概念的所有词语,所以这是一个多对多的映射。
在词典构造上,模型采用的是半手动的构造方法,其构造原则是:首先,它是针对具体领域的,因为很多词在不同领域,它的含义完全不同,因此概念词典中必须包含领域的信息;其次,在某一领域中,基本概念框架将手动给出。由于基本框架很难作到完善,将由半自动抽取而继续补充;在概念词典中,主要考虑实词,包括名词、动词、形容词、副词及其短语。
而概念树的构造将遵循以下规则:①概念树的结构是层次型的,它的框架将由手动给出,它的完善和优化将半自动完成;②父概念比子概念更一般,即父结点概念包含子结点概念;③子结点的概念必须是覆盖父结点概念的某一领域。
由这种方式构成的层次结构,并不严格要求子女仅有一个父母,我们虽然称上述结构为树,但实际上它并不是一棵纯n叉树, 而是一个有向无环图,对于概念树的形式化定义在此不赘述。
3 利用移动Agent技术对基于概念的信息检索的改进
目前基于分布式及超文本的网络信息资源的一些固有特性阻碍了资源的有效利用和共享,出现了所谓的信息迷航、信息拥塞、信息过载和信息干扰等问题,而目前的搜索引擎不能很好地解决以上问题,我们的概念检索方式虽然可以在一定的程度上对信息检索的求准率和求全率有一定改进,但我们基于概念的信息检索原型在现有网络条件和复杂网络情况下的表现也不尽如人意,对此,我们进一步引入移动Agent 的相关技术进行改进。
3.1 Robot与Agent
通过对基于概念的信息检索模型的介绍可以发现,信息检索首先由搜索引擎指派一个或一组Robot,从一个或一组不同类别、 被访问频率高的URL开始,指向该URL,并下载所有的HTML文件。同时Robot 将记录该URL所指HTML文件中所有的超链, 按照深度优先算法或者广度优先算法对WWW进行遍历,直到没有新的超链为止。搜索引擎对取到本地的HTML文件进行预处理,并按一定的策略将其中可用于查询的部分存储到数据库中。
以上是Robot的一个简单功能描述, 在这样的过程中有几个需要改进的地方:①Robot的自主漫游范围问题;②多个Robot的并行工作机制;③网络状况对检索的影响问题。第一和第二个问题我们在后面还要详细论述,针对第三个问题来说,一方面需要考虑到网络堵塞或者网络中断的时候,Robot本身是否还能够存在?即使其本身还存在,其智能性是否足以支持其独立完成相应工作?另一方面,Robot是将其访问的URL所指向的HTML文件全部下载到本地处理,这样网络的传输量很大,这是否合适?
如果我们引入概念检索Agent (一个具有独立检索智能并可以自由移动的Agent),那么上面的问题就会得到比较好的解决。首先移动Agent中的感知模块会依据任务时刻主动地接收网络环境中的信息,并对信息进行过滤、抽象和聚合,及时地反馈网络状况;其通信模块完成任务的发送、传递处理信息及与其他Agent的相互通信,保证外出的Agent和本地服务器之间的交互;其控制模块是移动Agent的核心,它封装了我们有关HTML文档的分类与识别的预处理算法和概念抽取算法,还有概念匹配的算法,通过派出此移动Agent自主地完成文档的预处理、 概念的抽取和概念的匹配,将自适应自学习的结果通过通信机制反馈给概念词典和概念树用来做相应调整,并由Agent带回检索的最终结果。 这样我们发现,由于带回的只是最终结果,大量的工作由移动Agent 在当地节点上完成,网络的传输量大大降低;且在送出此概念检索Agent后,网络的一些时延抖动或者其他异常对检索效果的影响也大大降低了。
3.2 移动Agent的自主漫游
移动Agent 首先是能够在异构网络中从一台主机移动到另外一台主机上继续运行,从而摆脱了传统C/S模式下无法解决的一些信息服务和搜索问题;其次,移动Agent 能将客户端发出的服务请求代码动态地转移到服务器端执行,因此Agent 对服务器的操作就免去了网络传输中间环节,从而降低了系统对网络带宽的要求;再者,移动Agent 所具有的异步计算、并行求解和智能化路由等特性,提高了响应速度,有利于负载均衡,减少了信息浏览或检索时的盲目;最后,还可创建多个移动Agent进行并行工作,从而能够提高网络信息搜索的速度。
基于概念的信息检索可以利用生成概念检索Agent在网络上自主漫游。由前面所述我们知道,概念可以进一步分解为若干子概念, 移动Agent可以对子概念,也就是概念树中的下一层概念进行检索,在一定范围内自主漫游。同时Agent也可以把目录浏览和关键字查询结合起来,通过浏览确定文档所在的子目录,然后在子目录范围内查询。
在一个概念检索的Agent环境中至少包括客户端的用户Agent和服务器端的宿主Agent,一个比较完整的环境还应该包括信息资源系统和Agent转接系统。宿主Agent通常与信息资源系统位于同一服务器上,提供接口和运行环境,并利用传输协议实现Agent在网络主机间的移动;用户Agent位于客户端,用户Agent与宿主Agent之间的关系就像C/S结构,但移动Agent的信息搜索模式却与C/S环境下不同:在信息搜索前,用户对Agent进行有关概念搜索的初始化,Agent根据路由策略转移到某一资源服务器上,即构成宿主Agent,这时宿主Agent对资源的访问就不经过网络而是在同一服务器中进行,当在一个服务器上搜索完毕后,将结果发回用户,并在保存有关状态信息后阻塞自身的工作,接着根据网络及服务器状态以及Agent路由策略等因素转移至下一资源服务器,在下一服务器上恢复断点状态,继续进行搜索,当所有的搜索工作完成时,Agent将返回到客户端。另外Agent转接系统可以在网络拥塞、故障或用户没有启动宿主Agent的情况下, 驻留在服务器上卸载部分或全部Agent,并监视Agent要返回的客户端情况,在网络条件具备的情况下激活,使其返回到目的节点。
3.3 多Agent的并行检索
在实际应用中,一来WWW可以按地域或按子网划分为多个域, 二来基于概念的检索可能会一次涉及多个概念,比如检索意大利艺术品,就可以启动两个概念检索Agent在国别和艺术品两大类概念内分别检索, 然后取其交集即可。
针对这些情况,可以在每个域内设置一台或多台专用采集、索引服务器,并同时启动多个Agent并行地进行文本采集和索引, 然后利用其封装的概念检索机制加以处理后返回结果。在对基于概念的信息检索的改进中还有必要将多个Agent组织起来, 相互协作共同完成信息检索任务,多个松散耦合的Agent之间可以互相通信,合作完成超出单个Agent能力的任务。由于在移动多Agent中,各Agent具有自主性,并没有系统进行全局控制,每个Agent拥有解决问题的不完全信息, 计算是异步的,而数据是分散的,在这样的环境之中Agent 之间必须能够相互找得到,同时能够相互操作。
常见的移动多Agent体系结构有Agent网络、Agent联盟、 黑板结构等。Agent网络中各Agent不论远近都直接一对一地通信,每个Agent 都必须知道有关其它Agent的信息和知识,这种体系结构在开放的分布式环境下会导致效率低下;Agent联盟结构中的Agent不需要知道其它Agent的详细信息,Agent之间信息的传递通过协助者Agent来完成,此网络结构有较大的灵活性;黑板结构与联盟结构相似,不同的是Agent 把信息放在可存取的黑板上,实现局部数据共享,这就要求局部范围内的Agent拥有统一的数据结构或知识表示,开放的分布式系统不宜采用此结构。
考虑到概念检索的特点可以选用Agent联盟策略, 这样通过一个协助者Agent实现各种信息的发送,多个概念检索Agent直接通过协助者Agent进行交互,然后由协助者Agent根据业务逻辑将多个概念检索Agent的结果信息或中间状态进行交互和汇总。这样能为Internet上的概念信息搜索提供比单个Agent更强的功能,使得Internet信息搜索用户能更快速和有效地查找所需信息。移动多Agent所具有的性能使得它在Internet上进行信息搜索、信息过滤、信息评估等方面发挥的作用比现有的搜索引擎更强大。
3.4 利用Agent的检索模型
在概念检索模型上实现的概念Agent 除了可以保证已有的概念检索的查准率和查全率,还充分考虑到了Agent的自主性和智能性。 具体的改进模型如图2所示:
图2 利用Agent的概念检索模型
用户首先将查询请求和相关参数填写完毕, 然后把它们传给Agent系统,Agent系统根据用户的请求生成一个Mobile Agent的实例, 实例通过Agent平台根据一定的概念检索算法开始在网上工作。 针对具体的移动,比如说当Agent请求从主机A移动到主机B时,首先Agent主动向主机A发出移动请求,然后主机A向主机B提出Agent移动请求,主机B 返回确认信息,信息包括了接收端口等参数,主机A在协商好的端口向主机B发送对象流,当对象流完全被接收后,主机B 才将对象流保存到指定位置并发回确认,说明Agent移动成功,可以断开连接。这时主机A将原来的Agent从队列中移去,主机A和主机B之间的联系中断,主机B将新到的Agent实例化,并加入运行队列,到此Agent的移动完成。
当Agent移动到一台远地主机时,远地主机首先把它保存起来, 然后生成它的一个实例,并把它启动起来。根据系统的当前状态把新到移动Agent放入不同的队例。如果可以运行,那么Agent就访问用户当前的共享目录。根据用户提供的概念特征检索文件,并把满足条件的文件的URL保存到Agent中,在适当的时候返回给主机。
另外还可以通过设置Agent检索结果的个数来实现Agent主动回传功能。当检索完一台主机后,Agent查看检索的结果的数目, 如果数目不够则继续移动到别的主机上,如果结果超过了一定数目,Agent 就会主动向被检索主机提出返回请求。设置检索结果的数目是因为搜索过多的主机会使Agent携带的信息量保持不变,造成体积较大, 那样通信的代价就越来越大。
4 结束语
对于Agent的研究,国际国内都处于探索阶段, 没有一个规范的模型和关于Agent的完整的描述。
根据本文的思路,基于概念的信息检索原型系统在利用了移动Agent的技术思路进行改进以后在检索性能上得到了一定的提高,但原型系统只是应用于局域网基础上,对于移植到Internet之上仍有大量的工作要做。