分类目录:《知识图谱》总目录
相关文章:
· 知识图谱的知识表示:基础知识
· 知识图谱的知识表示:符号表示方法
· 知识图谱的知识表示:向量表示方法
知识表示是人工智能领域一个较为核心的问题。对于知识表示的准确定义目前仍旧没有一个完美的答案。Davis等人在论文《What is knowledge representation》中给出了知识表示的五种角色:
真实世界中知识的抽象替代本体论的集合不完整的智能推理理论高效计算的媒介知识的中间体
以上内容可以看作是对知识表示的定义较为全面的一种阐述。首先,知识表示可以看作真实世界中知识的一种抽象替代,而且这种替代是按照计算机可以理解的方法来实现的。这种解释来源于,任何希望对于所处环境有所认知的智能体都会遇到一个问题,即需要了解的知识全部属于外部知识。举例来说,当人类还处在婴儿阶段时,需要对外界进行学习和认知。在这种情况下,人类必须将外界的实物(如汽车、苹果等)转化成大脑中一种抽象的表示,才可以真正学习到这个知识。现在如果希望计算机能够学习到真实世界中的知识,就需要在计算机中建立抽象替代。然而,这就会引出一个问题,即对现实世界的知识进行抽象表示无法完全做到无损。为了解决这个问题,引入了知识表示的第二个角色:一组本体论的集合。本体论将真实世界中的概念和实体抽象成类和对象,从某种程度上达到了与知识表示相同的目的。将真实世界抽象成类和对象的优势在于,使用者可以只关注自己想关注的重点并仅对其进行抽象和表示,避免了知识表示作为真实世界抽象替代无法做到无损的问题。关注事物的重点,实际上是人类(包括人工智能)在做出判断和决策时所使用的捷径,这是因为在真实世界中的事物包含的信息量过大,而系统必须关注对其有用的信息。除此之外,知识表示还是一个不完整的智能推理理论,这也是知识表示的第三个角色。这个角色来源于,最初知识的概念和表示的产生都是由于智能体需要进行推理而驱使的。认知能力对判断一个物体是否智能起着至关重要的作用,而拥有认知能力即代表智能体可以储存知识,并使用其进行推理后得到新的知识。但仅仅存在知识的表示理论是不够的,需要配合推理方法等其他理论形成完整的推理理论,所以知识表示可以看作一个不完整的智能推理理论。知识表示的第四个角色:一种高效计算的媒介。这是因为单纯从机器的角度看,计算机中的推理是一种计算过程。如果想要得到推理结果,必须对已有的表示进行高效的计算,而知识表示抽象整合了真实世界当中的知识,在推理时可以对知识进行直接利用,达到高效计算的目的。与之较为类似的,知识表示同样可以看作一种知识的中间体。根据字面意思,知识表示代表了我们对真实世界的描述,人类可以将已有的知识作为中间体来传播和表达知识(向机器或人类)。这种表示可以反映在现实生活中的很多方面,最浅显的如书本就是一种对知识的表示,而书本正是人类传播和描述知识的中间体。
综合以上五种知识表示的角色,我们可以将知识表示理解为对真实世界的一种不完整的抽象描述,只包含人类或计算机想要关注的方面,同时也可以把它作为计算和推理的中间件。在了解了知识表示的概念后,接下来就需要了解知识是如何被表示的。在计算机系统中,知识表示的方法和形式化语言有很多种,不同的表示方法会带来不同的表示效果。这就使得我们需要一种公认的描述方法来对需要表示的知识进行描述,这种方法必须足够简洁并且具有较强的可扩展性以适应现实世界知识的多样性,这就引出了接下来将会介绍的描述逻辑与描述语言。
实际上,人类的自然语言,以及创作的绘画和音乐、数学语言、物理模型、化学公式等都是人类知识的表示形式和传承方式。具有获取、表示和处理知识的能力是人类心智区别于其他物种心智的最本质的特征之一。所以,传统的人工智能领域有一个经典的研究方向叫知识工程和专家系统。这种经常被称为是GOFAI(Good Old Fashioned AI)的基本思想是建立一个系统,能够从专家大脑里获取知识,即知识工程,再通过一个推理引擎为非专家用户提供服务。回到20世纪的人工智能研究。1993年,当时的MIT AI Lab有一篇发表在AI Magazine上的文章,题目叫What is Knowledge Representation。虽然这篇文章探讨的主题和当下的深度学习相去甚远,但对于这篇文章里面所探讨的AI难题,当下的人工智能仍然远远没有解决。
简单而言,KR就是用易于计算机处理的方式来描述人脑知识的方法。KR不是数据格式、不等同于数据结构、也不是编程语言。对于人工智能而言,数据与知识的区别在于KR支持推理。首先客观事物的机器标识。每个客观事物应该有一个统一的机器标示,即事物的命名体系,这就好比我们来到这个世界,首先记住的是万事万物的名字。其次,一组本体约定和概念模型。我们记住了大家的名字,然后会进一步做概念的抽象,这几个人是本科生、那几个人是博士生、他们都是浙大学生,这门课是必修课,上课老师的研究方向是知识图谱等。我们通过对认知的事物进行抽象建立起有关万事万物的抽象概念模型,这就是本体。再进一步,支持推理的表示基础。我们建立了关于万物的概念表示体系,就能进一步开始推理。比如如果知道知识图谱课程的主题分类是人工智能,就可以近似地推断上这门课的老师的研究方向之一是人工智能。第四点,用于高效计算的数据结构。是说这种表示方法还要易于被机器处理,比如自然语言文本也可以表示前面所有的知识内容,但却并不易于被机器处理,所以自然语言不是适合于机器的知识表示方法。最后人可理解的机器语言,这一条是说知识表示同时也是要易于人理解的,这和AI的可解释性要求有关,这也是当前神经网络方法表示知识的最大问题。
传统人工智能领域的知识表示方法主要以符号表示方法为主,例如影响今天知识图谱发展的语义网络、描述逻辑等,影响对话系统的框架系统等。这些方法都尝试用计算机符号表示人脑中的知识逻辑,虽然很多方法已经逐渐不被人提及,但实际上对今天的很多信息系统的建设都或多或少地产生过影响。符号表示方法的主要缺点是不易于刻画隐式的知识,同时因为推理依赖于知识描述的精确性,比如一个字符串表示稍有错误就无法完成推理,因而传统的符号人工智能研究的很多推理机都没有得到大规模的实用。随着深度学习和表示学习的兴起,用参数化的向量来表示实体以及实体之间的关系,并利用神经网络来实现更加鲁棒的推理成为一个重要的发展趋势。基于向量的方法有一个比较大的好处是易于捕获隐式的知识。例如,可以将张三和李四两个实体都投影到向量空间,如果他们都有一个共同的属性,比如就读于浙江大学,尽管知识库并没有明确描述张三和李四是校友关系,但可以通过两个实体在向量空间的位置再叠加校友关系的向量表示,近似地推断出他们之间可能存在校友关系、同学关系,甚至同班关系。这种在向量空间处理隐含知识的能力非常重要,因为我们永远无法显示描述所有的知识。事实上,人脑也并不会记忆所有的知识,而是经常性地基于记得住的知识推断新的知识。向量表示的另外一个好处是将推理过程转化为向量、矩阵或张量之间的计算,这摆脱了传统基于符号搜索的推理计算方式,效率更高。但知识向量化有一个比较大的缺点是丢失了符号表示的可解释性。
更进一步,知识的向量化为有机地融合多种模态的数据提供了便利。向量化的表示已经在人工智能的其他领域非常常见。例如,在自然语言处理中,可以为句子中的每个词学习一个向量表示(Word Embedding)或分布式向量表示(Distributed Vector Representation)。在图像视频中可以为每个视觉对象学习一个向量表示。例如,一个视觉感知的树,怎样和大脑中有关树的概念对应起来;关于树的大段自然语言描述又怎样和知识图谱中的树的概念定义关联起来。深度学习专家Hinton曾经在2015年AAAI Symposium的一个有关知识表示与推理的论坛上做了一个题为Aetherial Symbol的报告。他这样总结:智能的精华是怎样实现推理,推理的关键是形式化逻辑。同时他批评了深度学习至上的观点,指出学习需要清楚地知道要学习的是什么,那些认为任何东西都可以学习出来的想法是愚蠢的。他也反驳了传统符号主义的观点,认为大脑中并没有符号和图像的存储,而是一些向量之间的相互发生作用。因此将符号表示和神经网络方法相互结合是知识表示的重要发展方向,特别是对于知识图谱,这两者的有机融合也是知识图谱的构建和应用非常重要的基本技术路线。
描述逻辑(Description Logic)是和知识图谱最接近的知识表示方法。描述逻辑是一阶谓词逻辑的可判定子集,主要用于描述本体概念和属性,对于本体知识库的构建提供了便捷的表达形式。它的核心表达要素很简单,包括:概念(Concepts),例如学生、教授等;关系(Relations),例如朋友、爱人等;个体(Individuals),例如小明、小红等。一个由描述逻辑实现的知识库通常包含两个部分,即:TBox和ABox,TBox包含内涵知识,用于描述概念的一般性质。例如需要声明Mother的概念是有小孩的人这个概念的子概念。ABox包含外延知识,描述论域中的特定个题,例如声明张三是一名学生,张三和李四是同学关系等。这也是知识图谱的基本表示单元。
霍恩规则逻辑(Horn Logic)也是应用广泛的知识表示方法,也是一阶谓词逻辑的子集,主要特点是表达形式简单、复杂度低,且易于描述规则型知识。著名的Prolog语言就是基于霍恩逻辑设计实现的。它的核心表达要素包含三个方面:
原子(Atom):由一个谓词陈述构成,例如规则(Rules):由头部原子和体部原子组成,一条规则描述了多个体部原子与单个头部原子之间的逻辑推导关系事实(Facts):是指没有头部且没有变量的规则,例如:。
这类以谓词逻辑为基础的知识表示方法的主要优点是接近自然语言,容易被接受,且易于表示精确知识,因为有严格的形式定义和推理规则,易于精确实现。主要缺点是无法表示不确定性知识,难以表示启发性知识及元知识,存在组合爆炸问题,即:经常出现事实、规则等的组合爆炸,导致效率低。
产生式系统(Production System)是一种意义更广泛的规则系统,专家系统多数是基于产生式系统,例如Feigenbaum研制的化学分子结构专家系统DENDRA,Shortliffe研制的诊断感染性疾病的专家系统MYCIN等。产生式系统的核心表达形式是:,其中是产生式的前提,是一组结论或操作,(Certainty Factor)为确定性因子,也称置信度。例如,可以定义一条产生式规则:,置信度为。
产生式系统的优点包括:
自然性:它采用了人类常用的表达因果关系的知识表示形式,既直观、自然,又便于进行推理模块性:产生式系统中的规则形式相同,易于模块化管理有效性:能表示确定性知识、不确定性知识、启发性知识、过程性知识等清晰性:产生式有固定的格式,既便于规则设计,又易于对规则库中的知识进行一致性、完整性的检测。
产生式系统的缺点是效率不高,由于产生式系统求解问题的过程是一个反复进行匹配—冲突消解—执行的过程。而规则库一般都比较大,匹配又十分费时,因此其工作效率不高。另外一个缺点是不能表达结构性知识,它对具有结构关系的知识无能为力,它不能把具有结构关系的事物间的区别与联系表示出来。
框架系统的基本思想认为人们对现实世界中事物的认识都是以一种类似于框架的结构存储在记忆中。当面临一个新事物时,就从记忆中找出一个合适的框架,并根据实际情况对其细节加以修改、补充,从而形成对当前事物的认识。框架系统在很多NLP任务如Dialogue系统中都有广泛的应用。框架系统的基本表达结构是框架,一个框架由若干个槽(Slot)结构组成,每个槽又可分为若干个侧面,槽用于描述对象某一方面的属性;侧面用于描述相应属性的一个方面;槽和侧面所具有的属性值分别称为槽值和侧面值。下图所示为一个框架系统的举例,可以看到框架系统其实和面向对象的思想相近:
框架系统的优点是对知识的描述比较全面和完整,知识库的质量也比较高,另外框架允许数值计算,这一点是框架系统优于其他方法的一个主要特点。框架系统的缺点是维护成本比较高,质量要求也比较高,框架的表达形式其实并不灵活,很难与其他形式的数据集配合使用。
语义网络(Semantic Net)已经在前面的文章中多次提及。1968年J.R.Quillian在其博士论文中最先提出语义网络,把它作为人类联想记忆的一个显式心理学模型,并在他设计的可教式语言理解器TLC(Teachable Language Comprehenden)中用作知识表示方法。例如,WordNet就是一个非常典型的语义网络。WordNet由普林斯顿大学认知科学实验室从1985年开始开发,主要定义了名词、动词、形容词和副词之间的语义关系。例如名词之间的上下位关系(如:猫科动物是猫的上位词),动词之间的蕴含关系(如:打鼾蕴含着睡眠)等。WordNet3.0已经包含超过15万个词和20万种语义关系。
语义网络的优点是它是一种结构化的知识表示方法,易于把事物的属性以及事物间的各种语义联想显式地表示出来,同时直观地把事物的属性及其语义联系表示出来,便于理解,因此自然语言与语义网络的转换比较容易实现,在自然语言理解系统中应用最为广泛。缺点是语义网络没有公认的形式表示体系。一个给定的语义网络所表达的含义完全依赖于处理程序如何对它进行解释;同时通过推理网络而实现的推理不能保证其正确性,例如支持全称量词和存在量词的语义网络在逻辑上是不充分的,不能保证不存在二义性;语义网络表示知识的手段多种多样,灵活性高,但由于表示形式不一致,使得处理复杂度高,对知识的检索相对复杂。如下图所示为语义网络的实例,每个节点代表一个概念,每条边代表词之间的语义关系,例如描述(Fish lives_in Water)等关系:
知识表示与推理在人工智能的发展历史上一直居于核心位置。传统的知识表示方法主要以符号表示为主,与知识图谱有关的典型方法有:描述逻辑、霍恩规则逻辑、产生式系统、框架系统和语义网络等。这些方法各有优缺点,但都有一个共同的缺点是知识的获取过程主要依靠专家和人工,越复杂的知识表示框架,知识获取过程越困难。
知识表示是传统符号人工智能研究的核心。知识表示的方法在早期语义网的发展过程中主要用来为知识图谱的概念建模提供理论基础。现实的知识图谱项目由于规模化构建的需要,常常降低表示的逻辑严格性。目前,较为常见的知识图谱实践包括RDF图模型和属性图模型。尽管很多知识图谱并没有应用复杂的知识表示框架,Schema工程对于知识图谱的构建仍然是基础性和必要性的工作,高质量的知识图谱构建通常从Schema设计开始。在知识图谱的深度利用中,如复杂语义的表达、规则引擎的构建、推理的实现,会对更有丰富表达能力的知识表示方法有更多的需求。图模型是更加接近于人脑认知和自然语言的数据模型,RDF作为一种知识图谱表示框架的参考标准,向上对接OWL等更丰富的语义表示和推理能力,向下对接简化后的属性图数据库以及图计算引擎,仍然是最值得重视的知识图谱表示框架。知识(图谱)的表示学习是符号表示与神经网络相结合比较自然且有前景的方向。知识的向量表示有利于刻画隐含不明确的知识,同时基于神经网络和表示学习实现的推理在一定程度上可以解决传统符号推理所面临的健壮性不高和不容易扩展等众多问题。
知识建模是指建立计算机可解释的知识模型的过程。这些模型可以是一些通用领域的知识模型,也可以是对于某种产品的解释或规范。知识建模的重点在于,需要建立一个计算机可存储并且可解释的知识模型。通常,这些知识模型都使用知识表示方法来存储和表示。知识建模的主要过程分析如下:
知识获取:根据知识系统的要求从多个来源使用不同方法获取知识,然后对获取到的知识进行判别并分类保存。知识结构化:使用不同方法(比如基于本体的建模方法)对非结构化的知识进行表示和存储,以达到建模的目的。然后通过已经建立的知识库,实现知识建模后的标准化和规范化。实际上,在任何情况下,没有一种绝对好的建模方案,只有相对适合的方案。所以根据不同场景进行实践得到的结论,是对知识建模最好的指南。
知识获取是通过多种数据源以及人类专家,为知识库系统获取和组织需要的知识的过程。在知识获取阶段,首先需要明确建立知识模型的目的,根据目的来确定其中的知识所覆盖的领域与范围。当发现需要建立的知识模型覆盖的领域与范围过大时,也可以先从其中一部分入手,如对某个领域的子领域进行建模,再对子领域的模型进行集成,最终达到知识模型所要完成的目标。在选择领域与覆盖范围时,尽可能地选择整体知识结构相对稳定的领域,一个不稳定的领域会造成大量数据的删减和重构,增加知识模型的维护成本,同时降低构建的效率。通常来讲,目前常用的知识来源主要包含两方面:以Web数据为数据源和以专家知识为数据源。根据不同的数据源,可以使用不同的方法来获取数据。
以从Web获取数据为例,这种方法的核心在于使用增量方法针对特定领域不断获取相关数据。在整个过程中,知识的获取是自动进行的,并且直接从整个Web以完全无监督和独立的方式执行。在获取阶段通常希望尽可能多地获取相关知识,而Web环境由于其规模和异构性成为知识获取的最佳选择。同时由于Web环境规模相对较大,在获取时需要轻量级的分析技术才能获得良好的可伸缩性和执行效率。在从Web获取知识的过程中,通常会在不同领域确定关键词,并基于这些关键词对大量网站进行分析,得到需要的知识。在网页分析的过程中,无须专家监督语言模板,也无须特定分析领域的预定义知识(例如领域本体,是知识获取的关键技术之一)。另一方面,知识同样可以通过人类专家来获取,其中主要的方式包括但不限于由知识工程师手动将知识输入计算机中,或对领域专家进行采访等。在获取了足够的知识后,需要判别有效性并尽可能地对知识进行分类保存。
值得注意的是,经过上述步骤,获取到的信息更多是非结构化或半结构化的信息,这样的信息实际上是无法被计算机直接利用的,所以在完成上述步骤后,还需要对已获取到的知识进行结构化。结构化的核心目标是将非结构化的数据结构化,并使用计算机可读的知识表示方法进行表示。该阶段的任务可以分为两部分:知识抽取和知识结构化的表示。知识抽取部分主要负责对非结构化或半结构化的知识(通常为自然语言或接近自然语言)进行抽取,并为后续的知识表示提供便利。根据我们对RDF与OWL等知识表示语言的了解,通常可以将自然语言以三元组的结构重新组织,这样既方便了人的阅读,也降低了后续将知识通过RDF与OWL表示的难度。在知识抽取得到结构化数据后,我们还需要将其转换成计算机可读的形式,一种常见的做法是构建本体,并将知识保存为RDF或OWL文件。在本节中我们将给出一种本体构建的方法,并在后续的文章中介绍如何具体实现本体构建。
前面的文章提到过,本体的概念最早起源于哲学领域,主要研究与哲学意义上的存在直接相关的概念,以及与存在相关的关系。而在计算机和人工智能领域,一种简短的对本体的解释是,本体是一种对于现实世界概念化的规范,即知识的一种抽象模型,抽象了不同实体的特征并将其泛化成不同类和关系。在本体的构建方面,比较经典的方法包括METHONTOLOGY法、七步法等,这些方法的产生通常来源于具体的本体开发项目。
下面我们就以METHONTOLOGY法为例,简要介绍本体构建的流程。整个本体构建过程将从产生非正式的规范开始,随着本体的不断演进最终发展出可被计算机理解的本体模型。在演进过程中,本体的形式化水平逐渐提高,最终可由机器直接理解。建立本体的第一步是确定建立本体的目的,包括本体的预期用户、使用场景及本体涉及的范围等要素。这一步的重要性在于从多个维度确定了构建本体的条件与前提。在第一步完成后,通常会输出一个描述本体规范的文档。在当前阶段,这样的规范可以是任何形式,包括正式的或非正式的,并且可以使用自然语言描述。在规定了本体的目的和范围等要素后,第二步则需要进行知识获取。通常情况下,这些知识可以来源于互联网,也可以来源于专家或其他途径。在大多数情况下,知识获取可以和第一步同时进行,即在设计本体的同时根据设计方案尽可能多地获取数据,当本体规范文档输出后,再根据该文档筛选出对本体构建至关重要的数据。在METHONTOLOGY法的第三步,需要对本体进行概念化。这一步的目的是组织和结构化外部源获取到的知识。根据第一步指定的规范,在这一步需要进一步对获取到的外部知识进行抽象和汇总,提取出概念、类、关系等抽象关系作为知识的中间表示,可以使用基于表格或图形的方法对这些中间表示进行存储和展现。这些中间表示需要同时被领域专家和开发人员理解。第四步,为了使得当前构建的本体与其他本体融合与共享,需要尽可能集成已有本体。在集成过程中,可以借鉴已有本体的某些定义,使新建立的本体与已有本体保持一致。第五步,使用形式化语言实现该本体,即使用形式化语言进行表示。举例来说,可以使用前文提到的RDF与OWL等形式化语言表示本体。在这一步中输出的本体形式化表示应当是可被计算机理解和存储的。当完成本体的形式化表示后,需要对构建好的本体进行评估,这是METHONTOLOGY法构建本体的第六步。这一步的重要性在于识别本体中存在的冗余、不完备与不一致,以便对本体进行优化来提升本体的质量。接下来即可将上述每一步的成果整理成文档并保存,这也是METHONTOLOGY法构建本体的最后一步。通过将构建本体的过程文档化,可以对整个本体构建过程进行反思与复盘,以便在后续需要维护时快速进入本体的下一个生命周期。
参考文献:
[1] 陈华钧.知识图谱导论[M].电子工业出版社, 2021
[2] 邵浩, 张凯, 李方圆, 张云柯, 戴锡强. 从零构建知识图谱[M].机械工业出版社, 2021
发表评论