知识图谱简介

1. 什么是知识图谱     

知识图谱的概念是由谷歌公司于2012年5月17日首次提出,旨在描述客观世界的概念、实体、事件及其之间的关系,并作为构建下一代智能化搜索引擎的核心基础。通俗地讲,知识图谱就是把所有不同种类的信息连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。一个简单的知识图谱如下图所示。

                        知识图谱简介_第1张图片

                                                                       图 1 简单知识图谱示例图

知识图谱是一种比较通用的语义知识的形式化描述框架,他用节点表示语义符号,用边表示符号之间的语义关系。如下图所示:

                            知识图谱简介_第2张图片

通俗的来讲,知识图谱要解决的是这样一个问题:如何能够更好的描述复杂、多样和海量的互联网数据?

2. 知识图谱技术研究内容

当前世界范围内知名的高质量大规模开放知识图谱,除了Google自己的知识图谱外,还包括DBpedia、Wikidata、ConceptNet以及Microsoft Concept Graph等各类包含多语言广领域的知识图谱,另外还有中文开放知识图谱平台OpenKG。

知识图谱技术包括知识表示、知识图谱构建和知识图谱应用三方面的研究内容。                    

     知识表示技术可以分成符号主义联结主义。具体的表示方法可以分为三类。

    (1)基于符号逻辑的知识表示。主要包括逻辑表示法、产生式表示法和框架表示等。在目前大规模数据时代,已经不能很好地解决知识表示的问题。

    (2)万维网内容的知识表示。主要包括XML语言、RDF描述框架和OWL语言等。当前在工业界大规模应用的是基于RDF三元组的表示方法。

    (3)表示学习。表示学习的目标是通过机器学习或深度学习,将研究对象的语义信息表示为稠密低维的实值向量。相比传统方法,可显著提升计算效率,有效缓解数据稀疏性,更容易实现不同来源的异质信息融合。

3. 知识图谱类型

对于知识,到目前为止,学术界其实并没有一个明确的界定。通常来讲,知识可以被认为是人类对于对自然界和人类自身探索的结果的总和。

听起来可能有点抽象,通常我们可以把知识分为领域知识,百科知识,场景知识,语言知识以及常识知识等。根据所存储的知识的类型,可以对知识图谱的类型进行划分,包括:

  • 领域知识图谱;

  • 通用知识图谱。

领域知识图谱的知识集中于某一个特定的领域,利于保险,医疗,法律等,构建起来相对难度没有那么高。通用知识图谱,顾名思义,其知识覆盖面广,包罗万象,构建难度较大。

2. 知识图谱构建

知识图谱的构建是一件困难的事情,是目前人工智能领域研究的热点和难点,特别是知识图谱的自动化构建,这里先做一个大概的介绍。

2.1 知识建模 / 知识体系的构建

知识体系的构建,也叫知识建模,是指采用什么样的方式表达知识,其核心就是构建一个本体对目标知识进行描述。

所谓的本体,就是一个知识描述框架,它定义了知识的类别体系,每个类别下所属的概念和实体、某类概念和实体所具有的属性以及概念之间、实体之间的语义关系。感兴趣的同学,可以看一看中文通用知识体系的一个例子:cnschema。

知识体系的构建有两种方法:

  • 一种是自顶向下:即先构建一个完善的知识体系,再将知识填充到这个知识体系中;
  • 另外一种是自底向上:即在知识抽取的过程中,自动的扩充和构建知识体系。目前比较流行的自底向上的方法。

目前,知识图谱中的数据采用RDF数据模型进行描述,也就是大家熟悉的三元组的模式,即“实体1”-“关系”-“实体2”。例如三元组,“董事长(马明哲,中国平安)”,“董事长”表示关系,“马明哲”是头实体,“中国平安”是尾实体。

目前大多数知识图谱都是采用自底向上的方式进行构建,知识图谱大致的构建流程是个不断迭代更新的过程。

2.2 知识获取

知识获取是从海量的文本数据中获取结构化知识的过程,数据来源不同,知识获取的难度和手段也不同。假如有大量的结构化数据半结构化数据,知识获取的过程就相对容易。可惜的是,往往在大部分时候,在知识图谱的构建过程中,面对的都是非结构化的数据。面对非结构化的数据,就需要用各种信息抽取的手段去获得文本中隐藏的三元组。

通常,信息抽取包括如下的基本任务:实体识别,实体消歧,关系抽取以及事件抽取等。这些都是知识图谱介绍的重点,我们在后面的专题文章中再做详细的介绍。

信息抽取:从各种类型的数据源中提取出实体(概念)、属性以及实体间的相互关系,在此基础上形成本体化的知识表达。

2.3 知识融合

在获得新知识之后,需要对其进行整合,以消除矛盾和歧义,比如某些实体可能有多种表达,某个特定称谓也许对应于多个不同的实体等。 

很多情况下,数据来源都不单一。当知识来源于多系统时,就需要进行知识融合。例如,原本构建了一个知识图谱,现需要用一批补充的知识来更新它,就需要进行更新和去重。

知识融合的过程,大致会包括知识体系的融合实例的融合。知识体系的融合就是两个或多个异构知识体系进行融合,相同的类别、属性、关系进行映射;实例的融合,就是两个图谱中的实例进行融合,包括实体实例和关系实例。

2.4 知识加工  ???

对于经过融合的新知识,需要经过质量评估之后(部分需人工参与),将合格的部分加入到知识库中,以确保知识库的质量,新增数据之后,可以进行知识推理、拓展现有知识、得到新知识。

                        知识图谱简介_第3张图片

                                                                        图 2 知识图谱的技术架构

2.4 知识存储

知识存储就是研究采用何种方式将已有的知识图谱进行存储。目前的知识图谱存储基本都基于图数据库,比较流行的有neo4j

2.5 知识推理

通过知识建模、知识获取以及知识融合,基本可以构建一个知识图谱。但是,很多时候,由于知识的不完备性,搭建出来的图谱通常会有很多缺失。由于数据的稀疏性,很难通过抽取和融合的方法去丰富图谱。这时,就需要通过知识推理的方法去补齐图谱中大量的关系缺失和实体缺失。

3. 知识表示:知识图谱如何表示结构化的知识

3.1 什么是知识表示

知识表示是知识图谱中非常重要的概念,知识表示之于知识图谱的重要性,就好比内功心法之于绝世武功的重要性。比如在英雄大会中,杨过一开始只练了打狗棒法的招数,用他小半调子的打狗棒法无法打赢金轮法王的徒弟霍都,当黄蓉跟他透露了打狗棒法的心法之后,瞬间就击退了敌人。

知识图谱中的知识表示也是如此,例如,要对所存储的知识进行应用,其中最关键的就是要能够进行知识的推理,而知识的表示形式和手段决定了知识推理的形式和难度;此外,知识表示的形式也决定了知识获取的形式和难度。可见,一种合适的知识表示方法对知识图谱的构建至关重要。

所以,我们在学习知识图谱这个绝世武功之时,也需要熟悉它的内功心法,知识表示。

那么,什么是知识表示呢?笔者认为可以从如下两个方面理解什么是知识表示:

1.知识表示表示了什么?

知识表示表示的是人类关于外部世界的结论,这些结论应该是无需实践,仅仅通过思考和推理就可以得到。这样说,可能还有一些抽象,简单的理解,知识表示表示的就是人类世界的一些经验、事实、思想等。例如,物理课本上的各种概念和定理;今年中国娱乐圈发生的各种狗血事件;马克思主义中国化的各种具体论述和历史经验等。

2.如何对人类世界的经验进行表示?

也就是知识表示的具体手段和形式。具体的手段和形式,在后面介绍具体知识表示方法大家就会清楚,这里先介绍所有知识表示的方法所应该具有的特点。

知识表示通常由大量的本体论约定的概念和实体组成,通过某一种有效的方式组织起来,使得知识系统能够得以搭建并支持高效的知识推理,方便人们表达和分享对世界的认知。

那么,到底有哪些知识表示的方法呢?现在流行的知识图谱采用的是哪一套知识表示的方法呢?下面来进行介绍。

3.2 知识表示的方法  

知识图谱,或者说知识系统的研究其实由来已久。在很早的时候,不管是人工智能的研究者还是互联网的工程师们,都试图建立完善的知识系统,以便更好的应用人类的知识成果。所以,知识表示的研究也由来已久,包括逻辑表示法、语义网络、框架表示法、脚本表示法、基于语义网的知识描述体系等。

限于篇幅,本文介绍比较重要的语义网络,框架表示法以及基于语义网的知识描述体系。

1)语义网络

语义网络是Quillan M Ross1966年在研究人类联想记忆时提出的一种心理学模型。总的来说,语义网络是一种由有向图表示的知识系统,它将知识表示为相互连接的点和边,节点代表概念,边则代表概念之间的语义关系。

语义网络中最基本的单元称为语义基元,可以用我们熟悉的三元组表示:<节点1,关系,节点2>,例如,通过语义网络,可以把“香港坐落于中国南部”表示为下图中的三元组形式:<香港,坐落于,中国南部>

                                       知识图谱简介_第4张图片

当然,语义网络中的关系可以有很多种,例如实例关系,分类关系,成员关系等。语义网络就是由大量的实体以及他们之间的关系构成,语义网络通过这样一种的简单的方式描述现实世界中所有的知识。他的优点是便于计算机的存储和检索,缺点是推理过程较复杂,也不完善,需要对不同的关系做不同的处理。

此外,需要注意的是在语义网络中,并没有对节点和边进行标准的定义,也就是完全用户自定义的。没有标准,一方面,会增加知识分享的难度;另一方面,知识描述和知识实例难以分隔。

建立于1988年的知网(Hownet)是一个典型的语义网络,它由董振东教授建立,感兴趣的同学可以关注下。董振东教授认为知识库或者知识图谱的构建应该首先由知识工程师设计好完备的知识框架,再由相关领域的专家填充领域知识,是一种典型的自顶向下的构建模式。

2)知识框架表示法

知识框架表示法是人工智能学者Minsky在1975年提出来的。所谓知识框架法,就是通过模仿人类认识世界的模式,将现实世界中的事物根据具体的情况抽象成一定的框架,框架中定义了这个事物应该或者可能具有属性,也被称为槽(slot)。

举个具体的例子大家就明白了,如下图所示,通过框架表示法来表示“计算机主机”,它总共有6个属性,也就是槽,包括“主机名称”,“生产厂商”等。"联想主机"是“计算机主机”这个概念的一个示例,分别对各个属性的值进行了填充。

                         知识图谱简介_第5张图片

有编程经验的同学应该很快就能理解框架表示法。它跟面向对象的编程的思想如出一辙,都是对现实世界的模仿。面向对象的编程里的类就是框架表示法里定义的框架;面向对象的编程里的类属性对应框架表示法里的槽;面向对象的编程里的对象对应框架表示法里的具体实例。

框架表示法的优点在于其强大的结构表达能力和接近人类的思维过程;其缺点在于,面对现实世界的复杂性和多样性,框架体系设计的难度太大;另一方面,不同框架系统之间的框架很难对齐,难以建立一个统一的标准;此外,基于框架体系的思想,很难实现知识体系的自动化构建。

一个比较有名的基于框架的知识库叫FrameNet,感兴趣的同学可以关注了解。

3)语义网中的知识表示法:XML,RDF和OWL

首先要说的是,这里的语义网与上面的语义网络是完全不同的概念。语义网的概念来源于互联网,人们期望互联网能够更为有效的组织信息,使得互联网内丰富的资源得到充分的利用,而不是像现在这样,互联网中的信息仅仅通过薄弱的结构组织起来。因此,语义网也叫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的主体是用来描述概念的类别、实例、属性之间相互关联的部分,它是OWL的核心。例如上面电影明显的概念可以有如下的组成部分:

总的来说,OWL也是基于三元组的方式来描述知识,相比于RDF,OWL更为规范,功能更强。

    

    

3.3 知识图谱中的知识表示

知识图谱中的知识表示方法,总体来是,就是以本体为核心,以RDF的三元组模式为基础框架但更多的体现实体、类别、属性、关系等多颗粒度多层次的语义关系

这里正式介绍一下本体的概念,所谓本体,实际上就是知识图谱中的一个概念,它用一些属性或特征,描述了客观世界某一类事物的共性特征;并通过“关系”描述它与其他本体之间的关系。例如,本体“作家”,有“代表作”,“获奖”等属性,与本体“艺术家”属于“从属关系”。

在知识图谱中,知识表示有:知识定义(知识体系)知识实例两个层面。

  • 知识定义(知识体系)描述了本体以及本体之间的关系,是上层建筑;
  • 知识实例是本体的一个一个实例,对应的是真实的数据存储层。

此外,因为知识图谱最重要的功能就是实现知识推理,进行语义计算。为此,一些知识的数值化表示方法的研究开始出现。基于数值化的知识表示,有利于知识推理,但目前仅处于研究阶段,感兴趣的同学可以自行搜索学习。

4. 总结

知识图谱是人工智能技术最重要的基础设施,是计算机能够实现推理、预测等类似人类思考能力的关键。由于知识图谱的信息抽取,知识融合以及知识推理等过程都依赖于NLP技术,因此知识图谱与NLP通常是分不开的

在知识图谱中,如何有效表示现实世界中的知识,就是知识表示的内容。知识表示的研究由来已久,在如今的知识图谱领域,基于语义网的框架(三元组)来表示知识。

       知识图谱是一个既充满挑战又非常有趣的领域,它改变了现有的信息检索方式:

       (1)一方面,通过推理实现概念检索

      (2)另一方面,以图形化方式向用户展示经过分类整理的结构化知识,从而使人们从人工过滤网页寻找答案的模式中解脱出来

        基于知识图谱的服务和应用是当前的一大研究热点。按照应用方式可以分为语义搜索、知识问答,以及基于知识的大数据分析与决策等。知识图谱一个很重要的作用是知识的推理,知识推理是人工智能的一个重要技术途径。

       基于知识图谱的信息技术在军事领域也有着广泛的应用需求,蒋锴等人在《基于知识图谱的军事信息搜索技术架构》中提出了基于知识图谱的军事信息搜索技术架构,并结合军事数据库搜索给出了具体步骤,基于知识图谱的军事信息搜索具有广泛的应用场景,能支撑情报保障、作战筹划和辅助决策等多种应用。在航天系统中,对于研究过程中存在着的大量知识和信息,通过以知识图谱为代表的知识工程技术应用,可以充分利用这些信息,实现对知识资源全面和充分的开发以及有效的利用和知识创新。

你可能感兴趣的:(知识图谱,知识图谱,人工智能,1024程序员节)