2.2 人工智能历史发展长河中的知识表示
在这一节中,简略回顾在人工智能历史发展长河中出现过的知识表示方法。需要特别说明的是,知识表示是一个非常传统、涉及面广、内容深入的领域。本书的重点是讲知识图谱,因此只对传统知识表示方法做简略说明,并主要列举一些与知识图谱有密切关系的方法。例如早期的Semantic Net即是研究怎样用语义网络模仿人脑的记忆。产生式规则主要用于刻画规则逻辑型知识,在专家系统领域有广泛应用。框架系统、描述逻辑等都重在研究怎样描述本体,即关心人是怎么描述客观万物之间的关系,以及关于万物的概念是怎样形成的。
2.2.1 描述逻辑
描述逻辑(Description Logic)是和知识图谱最接近的知识表示方法。描述逻辑是一阶谓词逻辑的可判定子集,主要用于描述本体概念和属性,对于本体知识库的构建提供了便捷的表达形式。它的核心表达要素很简单,包括:概念(Concepts),例如学生、教授等;关系(Relations),例如朋友、爱人等;个体(Individuals),例如小明、小红等。
一个由描述逻辑实现的知识库通常包含两个部分,即:TBox和ABox,TBox包含内涵知识,用于描述概念的一般性质。例如需要声明Mother的概念是“有小孩的人”这个概念的子概念。ABox包含外延知识,描述论域中的特定个题,例如声明张三是一名学生,张三和李四是同学关系等。这也是知识图谱的基本表示单元。
2.2.2 霍恩规则逻辑
霍恩规则逻辑(Horn Logic)也是应用广泛的知识表示方法,也是一阶谓词逻辑的子集,主要特点是表达形式简单、复杂度低,且易于描述规则型知识。著名的Prolog语言就是基于霍恩逻辑设计实现的。
它的核心表达要素包含三个方面:
原子(Atom):由一个谓词陈述构成,例如has_child(Helen, Jack);
规则(Rules):由头部原子和体部原子组成,一条规则描述了多个体部原子与单个头部原子之间的逻辑推导关系;
事实(Facts):是指没有头部且没有变量的规则,例如:hasson_(Helen,Jack):-。
这类以谓词逻辑为基础的知识表示方法的主要优点是接近自然语言,容易被接受,且易于表示精确知识,因为有严格的形式定义和推理规则,易于精确实现。主要缺点是无法表示不确定性知识,难以表示启发性知识及元知识,存在组合爆炸问题,即:经常出现事实、规则等的组合爆炸,导致效率低。
2.2.3 产生式系统
产生式系统(Production System)是一种意义更广泛的规则系统,专家系统多数是基于产生式系统,例如Feigenbaum研制的化学分子结构专家系统DENDRA,Shortliffe研制的诊断感染性疾病的专家系统MYCIN等。
产生式系统的核心表达形式是:IF P THEN Q CF=[0, 1],其中P是产生式的前提,Q是一组结论或操作,CF(Certainty Factor)为确定性因子,也称置信度。例如,可以定义一条产生式规则:IF(本微生物的染色斑是革兰氏阴性、本微生物的形状呈杆状、病人是中间宿主)THEN该微生物是绿脓杆菌,置信度为CF=0.6。
产生式系统的优点包括自然性——它采用了人类常用的表达因果关系的知识表示形式,既直观、自然,又便于进行推理;模块性——产生式系统中的规则形式相同,易于模块化管理;有效性——能表示确定性知识、不确定性知识、启发性知识、过程性知识等;清晰性——产生式有固定的格式,既便于规则设计,又易于对规则库中的知识进行一致性、完整性的检测。但缺点是效率不高,由于产生式系统求解问题的过程是一个反复进行“匹配—冲突消解—执行”的过程。而规则库一般都比较大,匹配又十分费时,因此其工作效率不高。另外一个缺点是不能表达结构性知识,它对具有结构关系的知识无能为力,它不能把具有结构关系的事物间的区别与联系表示出来。
2.2.4 框架系统
框架系统的基本思想认为人们对现实世界中事物的认识都是以一种类似于框架的结构存储在记忆中。当面临一个新事物时,就从记忆中找出一个合适的框架,并根据实际情况对其细节加以修改、补充,从而形成对当前事物的认识。框架系统在很多NLP任务如Dialogue系统中都有广泛的应用。框架系统的基本表达结构是框架,一个框架由若干个“槽”(Slot)结构组成,每个槽又可分为若干个“侧面”,槽用于描述对象某一方面的属性;侧面用于描述相应属性的一个方面;槽和侧面所具有的属性值分别称为槽值和侧面值。如图2-3所示为一个框架系统的举例。可以看到框架系统其实和面向对象的思想相近。
图2-3 框架系统实例
框架系统的优点是对知识的描述比较全面和完整,知识库的质量也比较高,另外框架允许数值计算,这一点是框架系统优于其他方法的一个主要特点。框架系统的缺点是维护成本比较高,质量要求也比较高,框架的表达形式其实并不灵活,很难与其他形式的数据集配合使用。
2.2.5 语义网络
语义网络(Semantic Net)已经在前面多次提及。1968年J.R.Quillian在其博士论文中最先提出语义网络,把它作为人类联想记忆的一个显式心理学模型,并在他设计的可教式语言理解器TLC(Teachable Language Comprehenden)中用作知识表示方法。例如,WordNet就是一个非常典型的语义网络。WordNet由普林斯顿大学认知科学实验室从1985年开始开发,主要定义了名词、动词、形容词和副词之间的语义关系。例如名词之间的上下位关系(如:“猫科动物”是“猫”的上位词),动词之间的蕴含关系(如:“打鼾”蕴含着“睡眠”)等。WordNet3.0已经包含超过15万个词和20万种语义关系。
语义网络的优点是它是一种结构化的知识表示方法,易于把事物的属性以及事物间的各种语义联想显式地表示出来,同时直观地把事物的属性及其语义联系表示出来,便于理解,因此自然语言与语义网络的转换比较容易实现,在自然语言理解系统中应用最为广泛。缺点是语义网络没有公认的形式表示体系。一个给定的语义网络所表达的含义完全依赖于处理程序如何对它进行解释;同时通过推理网络而实现的推理不能保证其正确性,例如支持全称量词和存在量词的语义网络在逻辑上是不充分的,不能保证不存在二义性;语义网络表示知识的手段多种多样,灵活性高,但由于表示形式不一致,使得处理复杂度高,对知识的检索相对复杂。如图2-4所示为语义网络的实例,每个节点代表一个概念,每条边代表词之间的语义关系,例如描述(Fish lives_in Water)等关系。
图2-4 语义网络实例
知识表示与推理在人工智能的发展历史上一直居于核心位置。传统的知识表示方法主要以符号表示为主,与知识图谱有关的典型方法有:描述逻辑、霍恩规则逻辑、产生式系统、框架系统和语义网络等。这些方法各有优缺点,但都有一个共同的缺点是知识的获取过程主要依靠专家和人工,越复杂的知识表示框架,知识获取过程越困难。