2.2 基于Agent技术的智能数据挖掘系统模型的总体结构
2.2.1 Multi-Agent技术的特性
Agent思想出现于20世纪60年代,80年代后期才逐渐发展起来,它起源于社会学、经济学与生态学等学科。对于Agent至今还没有一个统一的能为大多数人所接受的定义,研究者们依据其研究的角度和对Agent的理解给出了各种不同的定义,从这些定义中可以看出Agent的特性。
Minsky首先提出Agent,他认为社会中的某些个体经过协商之后可求得问题的解,这个个体就是Agent。
Russell认为“Agent是任何能通过传感器感知环境并通过执行器对环境进行操作的东西”。此定义中强调了感知和操作,任何一个东西只要能从环境中获取信息并对环境进行操作均可被认为是Agent。
P.Maes认为“Agent是在复杂动态环境中能自治地感知环境并能自治地通过操作作用于环境,从而实现其被赋予的任务或目标的计算系统”。此定义在Russell的定义的基础上又增加了两个限定词:自治的和面向目标的。
M.Coen认为“Agent是可以进行对话、协商的软件”。对话即指Agent与环境(包括其他Agent)的交互,其实质也是感知和操作,协商的目的是使各方达成共识,协商必然要进行通信。
Hayes-Roth认为,智能Agent除了能对环境进行感知和操作,还应当能够进行推理以解释感知信息或决定执行什么操作,即Agent应当是可推理的。
Wooldridge和Jennings的定义可以说是上述说法的总结,他们认为Agent应当是一个硬件或软件系统(后者更常见),即一个特定环境中的计算机系统,该系统在此环境中靠自主行为完成设计目标。该系统具有如下特征。
(1)自治性:Agent的运行不受人或其他Agent的直接干涉,Agent对自己的内部状态和动作有一定的控制权。
(2)社交能力:Agent可以通过某种Agent语言(如Knowledge Query and Manipulation Language,KQML)与其他Agent或人进行交互。
(3)反应性:Agent能够感知环境,并能及时做出反应。
(4)预动性:Agent能够展现出一种导向目标的行为。
事实上,Agent的社交能力即通信能力,反应性即感知和操作,预动性即面向目标的能力。
White认为运行在Internet中的Agent应当是可移动的。
C.Byrne认为运行于复杂环境中的Agent还应当能够根据以前的经验校正其行为,即具有学习或自适应能力。
L.Foner着重于从人机交互方面探讨Agent的特性,提出了用户的期望、人机对话及用户接口的类人化等问题,而且还从风险、信任及协作等方面研究了Agent的特性。
除上述各种特性外,Agent还有持续性或时间连续性、自启动性、自利性等特性。文献[11]指出Agent最基本的特性应当包括反应性、自治性、面向目标性和针对环境性,并且把只具有这四个特性的Agent称为最小Agent,由此给出了Agent的如下定义:Agent是一类在特定环境中能感知环境,并能自治地运行以代表其设计者或使用者实现一系列目标的计算实体或程序。
多智能体(Multi-Agent)系统是由多个Agent组成的分布的、合作的系统,它具有上述基本特性。把多智能体技术引入数据挖掘,用Agent来描述数据挖掘过程的各阶段,整个知识发现的过程即为一个多智能体系统,利用Agent本身具有的知识(领域知识、通信知识、控制知识)、目标和推理、决策、规划、控制等能力,以及自治性、社会性、反应性、预动性等特性,可以实现整个挖掘过程的智能化[12][13]。
2.2.2 智能数据挖掘系统模型的总体结构
融合多智能体技术和软计算技术,本书给出了一个基于Agent技术的智能数据挖掘系统模型,它属于基于知识的KDD模型,其总体逻辑结构如图2.4所示。
图2.4 智能数据挖掘系统模型的总体逻辑结构
基于Agent技术的智能数据挖掘系统模型由四部分组成:数据预处理Agent、数据挖掘Agent、决策Agent及人机界面Agent。
数据预处理Agent的功能是完成任务确定、模型设计、数据分析及数据抽取、数据处理、数据变换。其中,数据分析及数据抽取包括OLAP分析、数据可视分析、聚类分析等常用数据分析方法和DTS(Data Transform Server)等数据抽取方法;数据处理一般包括消除“脏”数据、推导缺值数据、消除重复记录等数据清洗操作,还包括连续属性离散化等降维操作;数据变换一般包括特征选择过程和与具体实现有关的数据格式变换过程。
数据挖掘Agent的功能是完成数据模式的识别,即发现新的模式或规则。挖掘任务主要分为分类、聚类、关联规则发现、回归及预测、过滤。分类算法包括决策树、神经网络、K-最近邻、Naive-Bayes等。聚类算法包括聚类分析中的典型算法,主要采用距离进行聚类,还有神经网络法中的自组织特征映射法、基于随机搜索的聚类法、聚类特征树法等。关联规则发现算法包括Apriori的经典算法和AprioriBest的改进算法。
人机界面Agent的功能是发挥人这个智能体的作用,人为地参与数据挖掘过程,调整和加速数据挖掘进程,而且强调人机之间的双向友好交互,不只是人告诉机器去做什么,还要求机器与人通信,告诉人们它知道什么,帮助人们更好地决策。当数据挖掘Agent发现新的知识时,人机界面Agent就会以可视化或自然语言的方式来通知用户,这不仅要有概念来支持,而且要有丰富的语法和语义来支持。
决策Agent的功能是对数据挖掘Agent所给出的结果进行评价和解释,并与人机界面Agent、数据挖掘Agent及数据预处理Agent协调。若发现的模式中存在冗余或无关内容,需要将其删除。若某个模式不满足用户要求或条件,则需要重新进行整个数据挖掘过程或重复执行某个环节,诸如重新选取数据、采用新的数据变换方法、设定新的数据挖掘参数或选用不同的挖掘算法等。对于发现模式的解释主要是指把结果输出给用户,并使用户理解,如用逻辑语言、自然语言或用户能够与机器交互的语言等输出结果。
数据源主要是指数据库,目前存在的数据库可以分为关系数据库和非关系数据库,亦可分为多媒体数据库和非多媒体数据库。事实上真正意义上的多媒体数据库还不存在,在这样的数据库中每个数据属性域中存放的是多媒体对象。数据库根据其应用背景不同采用不同结构,常见的有关系数据库、面向对象数据库、空间数据库、时间数据库、文本数据库、WWW网上资源等。数据库的异构性及数据类型的表示不一致性对数据挖掘来说应该是透明的,只有很好地解决了此问题,才能获得真正通用的数据挖掘系统。在本节所述的系统中暂且假设此问题已经得到解决[14]。
2.2.3 数据挖掘Agent功能描述
数据挖掘Agent由感知器、通信机制、信息处理器、数据挖掘处理器、知识库、模型库、推理机、目标库等模块组成,其逻辑结构如图2.5所示。
图2.5 数据挖掘Agent逻辑结构
由感知器感知外部刺激,把相应的信息传递到信息处理器,信息处理器采用文献[18]中的结构,如图2.6所示,它由信息过滤器、控制器、推理机制、类比匹配机制、内部执行机制及知识库等组成。信息处理器在接收到信号/信息后,先对其进行过滤、抽象、聚合,使其形成可能与客观世界的对象联系起来的有意义的符号,然后由类比匹配机制将这些符号及特征与知识库中的知识块进行模糊匹配。如果能查找到高度匹配的知识块,则相应的知识块被用来处理信息并产生决策;如果只能部分匹配,则控制器驱动内部执行器将被匹配的部分知识作为符号,然后运用推理机制及知识库中的规则处理信息。
图2.6 信息处理器结构
通信机制主要负责与其他Agent的联系,它把其他Agent的请求或应答信息传给数据挖掘模块,或把数据挖掘模块生成的协作信息传给其他Agent。
数据挖掘处理器除了要完成各模块间的协调工作,还要完成数据挖掘任务,首先对数据挖掘任务进行分析,然后在专家和用户及知识库和模型库的交互过程中把任务进行分解,分别送到相应的处理器进行求解,如分类、聚类、关联规则发现、预测、过滤等。
知识库和模型库在数据挖掘的过程中随着新模型和新知识的出现而不断地更新,对一些重复、冗余及矛盾的模型和知识要进行整理,形成新的知识库和模型库。
2.2.4 数据预处理Agent功能描述
数据预处理Agent由感知器、通信机制、信息处理器、数据预处理器、知识库、模型库、推理机、目标库等模块组成,其逻辑结构如图2.7所示。
由感知器感知外部刺激,把相应的信息传递到信息处理器,信息处理器采用图2.6所示的结构,除数据预处理器外,其他模块的功能见2.2.3节。数据预处理器对数据源的数据进行预处理,包括对结构化和非结构化数据的处理。处理过程包括数据分析及数据抽取、数据处理、数据变换。数据分析及数据抽取包括OLAP分析、数据可视分析、聚类分析等常用的数据分析方法和DTS等数据抽取方法;对于非结构化数据(如文本),采用向量空间方法进行结构化处理,并采用统计的方法进行特征提取及关键字提取。数据处理包括消除“噪声”、推导缺值数据、消除重复记录、文本中的常用词及禁用词去除、属性缩减及相似度匹配等,在此过程中要不断地与人机界面Agent进行交互,对于人这个智能体在数据预处理阶段的重要性应该予以重视,有时要人为地利用人的常识或经验来过滤掉不必要的数据或属性。数据变换包括特征选择和数据格式转换,它们为数据挖掘提供了必要的条件。
图2.7 数据预处理Agent逻辑结构
2.2.5 人机界面Agent功能描述
人机界面Agent由感知器、通信机制、信息处理器、交互处理器、知识库、模型库、推理机、I/O、目标库等模块组成,其逻辑结构如图2.8所示。
图2.8 人机界面Agent逻辑结构
当数据挖掘Agent获得新的知识或用户有新的需求时,由触发器激活人机界面Agent,交互处理器完成用户与系统的双向交互的处理。通常用户对系统做出指示,便于系统操作;反过来,系统把其挖掘出来的知识或发现以积极的方式告诉用户,便于用户理解和决策。交互处理器的逻辑结构如图2.9所示。
图2.9 交互处理器逻辑结构
交互中重要的是理解,而理解又靠语言来实现。每当提到计算机系统时,语言常指用户对系统的语言,即编程语言,而在交互系统中系统对用户的语言(知识表示语言)是系统表达其拥有的知识且让用户理解的语言。当系统发现新的知识及模式时主动与用户交互,而用户可以再向系统提出与新的知识或模式相关的查询。
知识模型应该拥有多种数据结构及与其相关的语义来表达丰富的知识。例如,输出的知识模型的结构有影响图(Influence Graph)、解释树(Explanation Tree)、立方体层次结构(Cube-hierarchy)等。数据挖掘中发现的知识模型有许多种,如影响模型、贡献模型、亲和模型、趋势模型、变化模型、比较模型、事件序列模型等。
模型和语言有许多种,但易于理解和使用的并不多,实际上,仅有少数几种,将这几种关键模型参数化地组合到一起可表达大量的信息[20]。
2.2.6 决策Agent功能描述
决策Agent实现对数据挖掘Agent所给出的结果进行评价和解释,并与人机界面Agent、数据挖掘Agent及数据预处理Agent协调,其逻辑结构如图2.10所示。
图2.10 决策Agent逻辑结构