2.1 知识表示简介
机器只有掌握大量的知识,特别是常识知识,才能实现真正类人的智能。知识表示将现实世界中的各类知识表达成计算机可存储和计算的结构。知识表示技术的变化大致可以分为三个阶段:1)基于符号逻辑进行知识表示和推理,逻辑表示与人类的自然语言比较接近,是最早使用的一种知识表示方法;2)随着语义网概念的提出,万维网内容的知识表示技术逐渐兴起,当前在工业界大规模应用的多为基于资源描述框架三元组的表示方法;3)随着自然语言处理领域词向量(Word Embedding)[1]等向量表示[2](Embedding)技术手段的出现,采用连续向量方式表示知识的研究正在逐渐兴起,与符号逻辑为基础知识表示方法相融合,成为现阶段知识表示的研究热点[1]。
2.1.1 基于符号逻辑的知识表示方法
1.一阶谓词逻辑
一阶谓词逻辑(First Order Logic)是以数理逻辑为基础,通过命题、逻辑联结词、谓词与量词等组成的知识表示,形式上接近于自然语言且方便存储在计算机中,是一种最早应用于人工智能的表示方法。
一阶谓词逻辑在命题逻辑上引入了量词和谓词的概念。更具体地,基本语法元素是表示对象、关系和函数的符号,其中对象对应常量符号、关系对应谓词符号、函数对应函数符号。表2-1给出了一阶谓词逻辑符号集。
表2-1 一阶谓词逻辑符号集
一阶谓词逻辑可以表示精确的知识、有严格的形式定义和推理规则,但是它无法表示不确定性知识,同时效率也较低,推理的复杂度较高。随着不断的演变,产生式系统对以上缺点做了优化和补充。
2.语义网络
语义网络(Semantic Network)是Quillan M Ross在1966年提出的表达人类知识的模型[2]。语义网络是用于表示互连节点和弧段模式中知识的一种有向图结构,是一种有向图。每一个节点和弧段必须有标志,顶点代表概念,而边则表示这些概念之间的语义关系。在语义网络表示中,最基本的语义单元叫作语义基元,可以用三元组(Triple)表示<节点1,关系,节点2>。一个语义基元对应的部分网络结构是基本网元。因此,三元组<节点1,关系,节点2>的结构可以用一个基本网元表示,图2-1给出了一个基本网元示例。
图2-1 一个基本网元示例
当把多个语义基元用相应的语义联系关联到一起时,就形成了语义网络。语义网络中弧的方向是有意义的,不能随意调换。语义网络表示和谓词逻辑表示有对应的表示能力。从逻辑上看,一个基本网元相当于一组二元谓词。三元组<节点1,关系,节点2>可用谓词逻辑表示为P(节点1,节点2),其中弧的功能由谓词完成。
3.描述逻辑
描述逻辑(Description Logics)[4]是一阶谓词逻辑的一个可判定的子集,能够提供可判定的推理服务,并且具有语义特征。它被认为是以对象为中心的表示语言的最重要的归一形式。本质上,描述逻辑是一种基于对象的知识表示的形式化,其建立在概念和关系上,概念是对象的共同属性集合。
一个描述逻辑系统包含四个部分:1)表示概念和关系的构造集;2)TBox(Terminology Box)定义了知识领域的结构的一系列公理集,可以通过已有概念构成新的概念;3)ABox(Assertional Box)是有关对象实例断言的集合,断言一个对象是某个概念的实例,或者两个对象之间存在某种关系;4)在TBox和ABox上的推理机制。描述逻辑因表示能力、可解释性和可判定性较好而广受关注,但它也存在推理复杂度高、构建难度大、适用领域窄等问题。
4.框架系统
框架系统(Frame System)是由著名人工智能学者Minsky于1975年提出来的知识表示方法[3]。其理论基础是人脑存储了大量情景,当面对新的情景时,会从记忆中找出类似于框架的结构性知识,并根据实际的情景对框架中的具体值进行填充,对细节加工修改和补充。框架一般由框架名、槽名、侧面名和侧面值组成。框架由描述事物的各方面的槽组成,在槽中填入具体值,就可以得到一个描述具体事务的框架,每一个槽都可以有一些附加说明被称为侧面,其作用是指出槽的取值范围和求值方法等。图2-2给出了框架的一般结构。
图2-2 框架的一般结构
框架表示法适用于表达结构性知识,也能用来表示行为(动作),将相关框架连接在一起,形成了框架网络,即可表示一个框架到另一个框架的转换、变化和推理等行为。不同的框架也可以共享同一个槽值,这种方法可以把从不同角度收集的信息较好地协调起来。
2.1.2 面向互联网的知识表示方法
和之前提到的语义网络的概念有所不同,语义网(Semantic Web)是万维网联盟(W3C)的Tim Berners-Lee在1998年提出的一个概念,其最初的目的是对万维网功能进行拓展以提高其智能程度,因此也称为Web 3.0。早期Web的标准语言HTML和XML无法适应语义网对知识表示的要求,所以W3C提出了新的标准语言RDF、RDFS和OWL,来表示语义网的知识体系[5]。
1.RDF
资源描述框架(Resource Description Framework,RDF)是一种用于描述Web资源的标记语言,一般采用三元组表示。
1)Resource:页面、图片和视频等任何具有URI标识符的资源;
2)Description:属性、特征和资源之间的关系;
3)Framework:模型、语言和这些描述的语法。
RDF是一个三元组模型,即每一份知识可以被分解为如下形式:RDF可以用多种形式或语言表示,可以是XML的形式,也可以用Turtle或N-Triples的形式表示。
2.RDFS
RDFS在RDF的基础上提供了一个术语、概念等的定义方式,以及哪些属性可以应用到哪些对象上。换言之,RDFS为RDF模型提供了一个基本的类型系统。RDFS尽管能表达更丰富的语义,但是它也有一些缺陷。例如,它在以下两个方面表达不完整:基数约束,即对某属性值可能或必须的取值范围进行约束的场景,如说明一个人有双亲(包括两个人),一门课至少有一位教师;属性特性描述,即声明属性的某些特性,如传递性、函数性和对称性,以及声明一个属性是另一个属性的逆属性等。由于RDFS有以上缺陷,W3C在2002年7月提出了OWL本体语言(OWL Web Ontology Language)以拓展RDF(S),作为在语义网上表示本体的推荐语言,其目的是更好地开发语义网。
3.OWL
OWL(Web Ontolog Language)是建立在RDF和RDFS基础上的,不仅有类和实例的词汇表示,还增加了更多关系的表示。OWL引入了布尔算子(并、或、补),递归地构建复杂的类,还提供了表示存在值约束、任意值约束和数量值约束等能力。同时,OWL能提供描述属性具有传递性、对称性和函数性等性质。还有两个类等价或者不相交,两个属性等价或者互逆,两个实例相同或者不同,以及枚举类等。OWL提供了三种表达能力递增的子语言,以分别用于特定的实现者和用户团体。表2-2给出了三种子语言的特征和使用限制举例[5]。OWL的子语言与RDF有如下关系:首先,OWL Full可以看成是RDF的拓展;其次,OWL Lite和OWL Full可以看成是一个约束化的RDF拓展;再次,所有的OWL文档(Lite、DL、Full)都是一个RDF文档,所有的RDF文档都是一个OWL Full文档;最后,只有一些RDF文档是一个合法的OWL Lite和OWL DL文档。
表2-2 OWL子语言的特征和使用限制举例[5]
2.1.3 基于连续向量的知识表示
前面提到的表示方式以符号逻辑为基础,通常是三元组的方式组织,但这种符号并不能在计算机中表达自然语言中的语义信息,不能进行语义计算。因此,本节要描述的方法是将图谱中的实体关系映射到低维连续的向量空间,采用连续向量方式表示知识。向量表示技术大致分为两类:平移距离模型和语义匹配模型。前者使用基于距离的评分函数,后者使用基于相似度的评分函数。在此基础上,我们对这些向量表示技术的效率和有效性进行了比较[6]。
1.基于距离平移模型的知识向量表示
平移距离模型主要是将衡量向量化后的知识图谱中的三元组的合理性问题,转化成衡量头实体和尾实体的距离问题,利用了基于距离的评分函数,通过两个实体之间的距离对事实的合理性进行度量。
Bordes等人便是受到词向量空间对于词汇语义与句法关系存在有趣的平移不变现象的启发,提出了TransE模型[7],这一模型将知识库中的关系看作实体间的某种平移向量,在大规模知识图谱上效果明显。例如,如果在一个知识图谱中,某一个三元组(head,relation,tail)成立,则它的实体和关系需要满足关系head+relation ≈tail。不过TransE模型比较简单,很难处理知识库的复杂关系,因此为了突破TransE模型在处理1-N、N-1、N-N复杂关系时的局限性,研究学者相继提出了让一个实体在不同关系下拥有不同表示、认为不同关系拥有不同语义空间的TransH模型和TransR模型,以及针对这两种模型中矩阵参数过多的问题再次改进优化的TransD模型和TranSparse模型。除此之外,研究学者还提出了利用高斯分布表示知识库中的实体和关系,可以在表示过程中考虑实体和关系本身语义上不确定性的TransG模型和KG2E模型。
2.基于语义匹配模型知识向量表示
语义匹配模型是利用基于相似性的评分函数,它们通过匹配实体的潜在语义和向量空间表示中包含的关系度量事实的可信性。该方向的模型主要是REACAL以及它的延展模型。
RESCAL模型(又称双线性模型)通过使用一个向量表示每个实体来获得它的潜在语义。每个关系都表示为一个矩阵,该矩阵对潜在因素之间的成对交互作用进行了建模。它把事实(h,r,t)评分函数定义为一个双线性函数,其中h、t表示头实体和尾实体,Mr表示关系矩阵。
DistMult模型通过将Mr限制为对角矩阵来简化RESCAL。对于每一个关系r,它都引入一个向量表示r,并要求Mr=diag(r)。评分函数只捕获沿同一维度的h和t分量之间的成对交互作用,并将每一个关系的参数数量减少至O(d)。然而,因为对于任意的h和t,hTdiag(r)t=tTdiag(r)h都是成立的,这种过度简化的模型只能处理对称的关系,显然对于一般的图谱是不能完全适用的。因此,研究人员又分别提出ComplEx等模型,增加模型处理更加丰富的语义关系的能力。
3.基于附加信息建模的知识向量表示
以上两种模型只是用了知识图谱的事实信息来建模,其实还有很多附加信息进一步改进任务,例如实体类型、关系路径、文本描述和逻辑规则。
(1)实体类型附加信息。首先考虑的第一类附加信息是实体类型,即实体所属的语义类别。GUO等人[8]提出了语义平滑向量表示(SSE)模型,它要求相同类型的实体在向量表示空间中彼此邻近,例如,Psycho应该更接近Avatar而不是JamesCameron。SSE采用两种流形学习算法,即拉普拉斯特征映射和局部线性向量表示对这种光滑性假设进行建模。
(2)关系路径附加信息。第二类附加信息是关联路径,即实体之间的多跳关系。关系路径通常被定义为一个关联序列r_1,r_2,…,r_l,两个实体通过该序列可以在图上连接。例如,BornIn→LocatedIn是一条通过中间节点Leytonstone连接AlfredHitchcock到England的路径。关联路径包含丰富的语义线索,对于图谱补全非常有用,例如BornIn→LocatedIn表明AlfredHitchcock与England之间的国籍关系。
关联路径长期以来一直对多关系中数据进行研究。例如,路径排序算法直接使用连接两个实体的路径作为特征预测它们之间可能的关联。最近,它们已将其集成到知识图谱向量表示中。然而,主要的挑战是如何在与实体和关系相同的向量空间中表示这样的路径。一个简单的解决方案是将路径表示为关系表示的一部分,因为路径的语义取决于所有这些关系。
(3)文本描述附加信息。实际上,在大多数的图谱中,包含丰富语义信息的实体有简明的描述。如图2-3所示,显示了在FreeBase中对AlfredHitchcock和Psycho的描述信息。此外,实体描述除了存储在图谱,还可以扩展到结合更多的一般文本信息,如发布的新闻和维基百科文章。
(4)逻辑规则附加信息。最后是结合逻辑规则,特别是那些用一阶Hron条款来表示的规则,例如,由关系HasWife连接的任何两个实体也应该由关系HasSpouse连接。这种逻辑规则包含丰富的背景信息,在知识获取和推理中得到了广泛的研究,通常基于马尔可夫逻辑网络。还有一些系统,如WARMR、Aleph和Amie,可以从图谱中自动提取逻辑规则。
图2-3 实体描述示例