互联网时代,人类在与自然和社会的交互中生产了异常庞大的数据,这些数据中包含了大量描述自然界和人类社会客观规律有用信息。如何将这些信息有效组织起来,进行结构化的存储,就是知识图谱的内容。
那么,在知识图谱中以什么样的形式对现实世界中的知识进行表示与存储呢?本编介绍知识图谱中的知识表示,以回答上面的问题。
作者&编辑 | 小Dream哥
1 什么是知识表示
知识表示是知识图谱中非常重要的概念,知识表示之于知识图谱的重要性,就好比内功心法之于绝世武功的重要性。比如在英雄大会中,杨过一开始只练了打狗棒法的招数,用他小半调子的打狗棒法无法打赢金轮法王的徒弟霍都,当黄蓉跟他透露了打狗棒法的心法之后,瞬间就击退了敌人。
知识图谱中的知识表示也是如此,例如,要对所存储的知识进行应用,其中最关键的就是要能够进行知识的推理,而知识的表示形式和手段决定了知识推理的形式和难度;此外,知识表示的形式也决定了知识获取的形式和难度。可见,一种合适的知识表示方法对知识图谱的构建至关重要。
所以,我们在学习知识图谱这个绝世武功之时,也需要熟悉它的内功心法,知识表示。
那么,什么是知识表示呢?笔者认为可以从如下两个方面理解什么是知识表示:
1.知识表示表示了什么?
知识表示表示的是人类关于外部世界的结论,这些结论应该是无需实践,仅仅通过思考和推理就可以得到。这样说,可能还有一些抽象,简单的理解,知识表示表示的就是人类世界的一些经验、事实、思想等。例如,物理课本上的各种概念和定理;今年中国娱乐圈发生的各种狗血事件;马克思主义中国化的各种具体论述和历史经验等。
2.如何对人类世界的经验进行表示?
也就是知识表示的具体手段和形式。具体的手段和形式,在后面介绍具体知识表示方法大家就会清楚,这里先介绍所有知识表示的方法所应该具有的特点。
知识表示通常由大量的本体论约定的概念和实体组成,通过某一种有效的方式组织起来,使得知识系统能够得以搭建并支持高效的知识推理,方便人们表达和分享对世界的认知。
那么,到底有哪些知识表示的方法呢?现在流行的知识图谱采用的是哪一套知识表示的方法呢?下面来进行介绍。
2 知识表示的方法
知识图谱,或者说知识系统的研究其实由来已久。在很早的时候,不管是人工智能的研究者还是互联网的工程师们,都试图建立完善的知识系统,以便更好的应用人类的知识成果。所以,知识表示的研究也由来已久,包括逻辑表示法、语义网络、框架表示法、脚本表示法、基于语义网的知识描述体系等。
限于篇幅,本文介绍比较重要的语义网络,框架表示法以及基于语义网的知识描述体系。
1)语义网络
语义网络是Quillan M Ross1966年在研究人类联想记忆时提出的一种心理学模型。总的来说,语义网络是一种由有向图表示的知识系统,它将知识表示为相互连接的点和边,节点代表概念,边则代表概念之间的语义关系。
语义网络中最基本的单元称为语义基元,可以用我们熟悉的三元组表示:<节点1,关系,节点2>,例如,通过语义网络,可以把“中国香港坐落于中国南部”表示为下图中的三元组形式:<中国香港,坐落于,中国南部>
当然,语义网络中的关系可以有很多种,例如实例关系,分类关系,成员关系等。语义网络就是由大量的实体以及他们之间的关系构成,语义网络通过这样一种的简单的方式描述现实世界中所有的知识。他的优点是便于计算机的存储和检索,缺点是推理过程较复杂,也不完善,需要对不同的关系做不同的处理。
此外,需要注意的是在语义网络中,并没有对节点和边进行标准的定义,也就是完全用户自定义的。没有标准,一方面,会增加知识分享的难度;另一方面,知识描述和知识实例难以分隔。
建立于1988年的知网(Hownet)是一个典型的语义网络,它由董振东教授建立,感兴趣的同学可以关注下。董振东教授认为知识库或者知识图谱的构建应该首先由知识工程师设计好完备的知识框架,再由相关领域的专家填充领域知识,是一种典型的自顶向下的构建模式。
2)知识框架表示法
知识框架表示法是人工智能学者Minsky在1975年提出来的。所谓知识框架法,就是通过模仿人类认识世界的模式,将现实世界中的事物根据具体的情况抽象成一定的框架,框架中定义了这个事物应该或者可能具有属性,也被称为槽(slot)。
举个具体的例子大家就明白了,如下图所示,通过框架表示法来表示“计算机主机”,它总共有6个属性,也就是槽,包括“主机名称”,“生产厂商”等。"联想主机"是“计算机主机”这个概念的一个示例,分别对各个属性的值进行了填充。
有编程经验的同学应该很快就能理解框架表示法。它跟面向对象的编程的思想如出一辙,都是对现实世界的模仿。面向对象的编程里的类就是框架表示法里定义的框架;面向对象的编程里的类属性对应框架表示法里的槽;面向对象的编程里的对象对应框架表示法里的具体实例。
框架表示法的优点在于其强大的结构表达能力和接近人类的思维过程;其缺点在于,面对现实世界的复杂性和多样性,框架体系设计的难度太大;另一方面,不同框架系统之间的框架很难对齐,难以建立一个统一的标准;此外,基于框架体系的思想,很难实现知识体系的自动化构建。
一个比较有名的基于框架的知识库叫FrameNet,感兴趣的同学可以关注了解。
3)语义网中的知识表示法
首先要说的是,这里的语义网与上面的语义网络是完全不同的概念。语义网的概念来源于互联网,人们期望互联网能够更为有效的组织信息,使得互联网内丰富的资源得到充分的利用,而不是像现在这样,互联网中的信息仅仅通过薄弱的结构组织起来。因此,语义网也叫Web3.0。
那么,在语义网中,如何实现知识的表示的呢?目前,语义网中存在三种知识描述体系,包括XML,RDF和OWL,他们定义了互联网中知识表示的形式。
1.XML
全称是可扩展标记语言(eXtensible Markup Language),是最早的语义网络标记语言。XML是从网页标签式语言向语义表达语言的一次飞跃。XML源于HTML,相比于HTML,XML可扩展性更强,结构性更强。因此,在语义网络中得以应用。在语义网络中,XML标签不再仅仅是网页格式的标志,而是含有自身的语义。
如下图所示,是一个用XML表示“影星”这个概念的例子,它定义了“名字”,“出生地”,“民族”等属性,能够完整的表示这个概念。
<影星>
<名字>张国荣</名字>
<出生地>中国香港</出生地>
<民族>汉</民族>
<代表作>霸王别姬</代表作>
</影星>
2.RDF(Resource Description Frame)
资源描述框架(RDF)也是W3C提出的一种语义网描述框架,它假定任何复杂的语义都可以通过若干个三元组的组合来表示,并定义这种三元组的形式为“对象-属性-值”或“主语-谓语-宾语”。怎么样,是不是非常的耳熟?其实他与语义网络并没有本质的差别,差别在于,RDF规范化了所有的属性和概念,避免了语义网络不便于分享和难以区隔知识描述和知识实例的缺点。
因此,RDF可以有一套完整的知识查询语言,叫SPARQL。
3.OWL(Web Ontology Language)
网络本体语言(OWL),是RDF的改进版。OWL在RDF的基础上定义了自己独有的语法,主要包括头部和主体两个部分。
头部:OWL描述一个本体(概念)时,会预先定制一系列的命名空间,并使用命名空间中预定义的标签来形成某个概念的头部,例如电影明星本体的头部可以这样表示:
<owl:Ontology rdf:about="">
<rdfs:comment>一个概念的例子</rdfs:comment>
<rdfs:label>电影明星</rdfs:label>
</owl:Ontology>
其中<owl:Ontology rdf:about="">表示模块当前描述的概念。
主体:OWL的主体是用来描述概念的类别、实例、属性之间相互关联的部分,它是OWL的核心。例如上面电影明显的概念可以有如下的组成部分:
<owl:Ontology rdf:ID="电影明星">
<rdfs:Name rdf:resource="张国荣">
<rdfs:Birthplace rdf:resource="中国香港">
</owl:ObjectProperty>
总的来说,OWL也是基于三元组的方式来描述知识,相比于RDF,OWL更为规范,功能更强。
3 知识图谱中的知识表示
知识图谱中的知识表示方法,总体来是,就是以本体为核心,以RDF的三元组模式为基础框架,但更多的体现实体、类别、属性、关系等多颗粒度多层次的语义关系。
这里正式介绍一下本体的概念,所谓本体,实际上就是知识图谱中的一个概念,它用一些属性或特征,描述了客观世界某一类事物的共性特征;并通过“关系”描述它与其他本体之间的关系。例如,本体“作家”,有“代表作”,“获奖”等属性,与本体“艺术家”属于“从属关系”。
在知识图谱中,知识表示有知识定义(知识体系)与知识实例两个层面。
知识定义(知识体系)描述了本体以及本体之间的关系,是上层建筑。知识实例是本体的一个一个实例,对应的是真实的数据存储层。
此外,因为知识图谱最重要的功能就是实现知识推理,进行语义计算。为此,一些知识的数值化表示方法的研究开始出现。基于数值化的知识表示,有利于知识推理,但目前仅处于研究阶段,感兴趣的同学可以自行搜索学习。
总结
知识图谱是人工智能技术最重要的基础设施,是计算机能够实现推理、预测等类似人类思考能力的关键。在知识图谱中,如何有效表示现实世界中的知识,就是知识表示的内容。知识表示的研究由来已久,在如今的知识图谱领域,基于语义网的框架(三元组)来表示知识。