【知识图谱】人工智能技术最重要基础设施之一,知识图谱你该学习的东西
互联网时代,人类在与自然和社会的交互中生产了异常庞大的数据,这些数据中包含了大量描述自然界和人类社会客观规律有用信息。如何将这些信息有效组织起来,进行结构化的存储,就是知识图谱的内容。
作者&编辑 | 小Dream哥
1 什么是知识图谱
什么是知识图谱?其实,在学术界还没有对知识图谱做出一个统一的定义。按照Wikipedia的描述,知识图谱是google用来支持从语义角度组织网络数据,从而提供智能搜素服务的知识库。
从这个意义上来讲,知识图谱是一种比较通用的语义知识的形式化描述框架,他用节点表示语义符号,用边表示符号之间的语义关系。如下图所示:
在计算机世界中,节点和边的符号通过“符号具化”表征物理世界和认知世界中的对象,并作为不同个体对认知世界中信息和知识进行描述和交互的桥梁。这种使用统一形式描述的知识描述框架便于知识的分享与利用。
通俗的来讲,知识图谱要解决的是这样一个问题:如何能够更好的描述复杂、多样和海量的互联网数据?
现存的互联网数据是散乱的分布在数以亿计的网页中,由一个又一个的字符串构成。但是互联网的数据是人类世界的映射,这些数据中包含了大量描述自然界和人类社会客观规律有用信息。很显然的,在人类的认知世界里,知识是由大量的概念、对象以及概念的属性和概念之间的关系构成的。
如上图描述谢霆锋、王菲和张柏芝关系的图谱,在互联网世界,有的是关于谢霆锋、王菲和张柏芝三者的新闻网页。知识图谱的工作就是基于网络上关于三者的新闻,搭建出来上面的图谱,这个图谱描述了“人物”这个概念,“人物”有出生年月,性别和年龄的属性,“人物”之间有“前期”,“情敌”和现任女友这些关系。
因此,所谓的知识图谱,其实就是一种知识的描述框架,通过这个框架,将散乱的知识组织起来,便于搜索、推荐以及NLP等下游任务应用。
2 知识图谱的发展历程
随着互联网的发展,数据量不断增加,对存储和检索技术提出越来越高的要求。需要一种更好的数据存储技术,一方面能够完成存储海量的数据;另一方面,需要能够拥有推理、预测等复杂的搜索功能。
为了解决语义理解的困难,Time Berners-Lee等于2001年提出了语义网络的概念,语义网能够使用能够被计算机理解的方式方式描述事物之间的联系。
维基百科等帮结构化的数据库为语义网络的发展做出了非常大的贡献,最典型的两个大规模通用领域知识图谱Freebase和DBpedia都是以维基百科中的知识为基础构建的。
然而,知识图谱这一领域真正的蓬勃发展,是谷歌在2012年正式提出知识图谱这一概念之后。谷歌试图通过知识图谱,对互联网中海量的网页文本内容,特别是客观类事实性文本内容中的语义信息进行刻画,从这些非结构化的文本内容中提取出实体以及实体关系,将其事实性的文本内容转化为相互连接的图谱结构,使得计算机理解文本和计算机认知变得可能。
从另外一个角度,人工智能技术的研究目标本就是使计算机更智能,让计算机完成一些人才能完成的任务,例如推理、分析、预测等。AI的研究者们期望借助知识库完成这个目标,即把人类的知识用计算机进行表示和组织,并设计相应的算法完成推理和预测等任务。
因此,在知识图谱的发展历程中,不同领域的研究者们的出发点可以分为两种,一种是以语义网络为代表的研究者们,他们尝试进行数据的知识化,即将大量散乱的知识进行结构化处理;另外一种是人工智能的研究者们,他们尝试进行知识的数据化,即尝试将人类的知识通过一种描述框架,系统的组织起来,代表是上个世纪的“专家系统”等。
然而,到现在,随着深度学习的发展,二者在知识图谱领域已经结合。知识图谱被看作是下一代人工智能技术的基础设施之一,无论在产业界还是学术界都备受关注。
3 知识图谱类型
对于知识,到目前为止,学术界其实并没有一个明确的界定。通常来讲,知识可以被认为是人类对于对自然界和人类自身探索的结果的总和。
听起来可能有点抽象,通常我们可以把知识分为领域知识,百科知识,场景知识,语言知识以及常识知识等。根据所存储的知识的类型,可以对知识图谱的类型进行划分,包括领域知识图谱和通用知识图谱。
领域知识图谱的知识集中于某一个特定的领域,利于保险,医疗,法律等,构建起来相对难度没有那么高。通用知识图谱,顾名思义,其知识覆盖面广,包罗万象,构建难度较大。
4 知识图谱的构建
知识图谱的构建是一件困难的事情,是目前人工智能领域研究的热点和难点,特别是知识图谱的自动化构建,这里先做一个大概的介绍。
1)知识体系的构建
知识体系的构建,也叫知识建模,是指采用什么样的方式表达知识,其核心就是构建一个本体对目标知识进行描述。所谓的本体,就是一个知识描述框架,它定义了知识的类别体系,每个类别下所属的概念和实体、某类概念和实体所具有的属性以及概念之间、实体之间的语义关系。感兴趣的同学,可以看一看中文通用知识体系的一个例子:cnschema。
知识体系的构建有两种方法,一种是自顶向下,即先构建一个完善的知识体系,再将知识填充到这个知识体系中;另外一种是自底向上,即在知识抽取的过程中,自动的扩充和构建知识体系。目前比较流行的自底向上的方法。
目前,知识图谱中的数据采用RDF数据模型进行描述,也就是大家熟悉的三元组的模式,即“实体1”-“关系”-“实体2”。例如三元组,“董事长(马明哲,中国平安)”,“董事长”表示关系,“马明哲”是头实体,“中国平安”是尾实体。
2)知识获取
知识获取是从海量的文本数据中获取结构化知识的过程,数据来源不同,知识获取的难度和手段也不同。假如有大量的结构化数据和半结构化数据,知识获取的过程就相对容易。可惜的是,往往在大部分时候,在知识图谱的构建过程中,面对的都是非结构化的数据。面对非结构化的数据,就需要用各种信息抽取的手段去获得文本中隐藏的三元组。
通常,信息抽取包括如下的基本任务:实体识别,实体消歧,关系抽取以及事件抽取等。这些都是知识图谱介绍的重点,我们在后面的专题文章中再做详细的介绍。
3)知识融合
很多情况下,数据来源都不单一。当知识来源于多系统时,就需要进行知识融合。例如,原本构建了一个知识图谱,现需要用一批补充的知识来更新它,就需要进行更新和去重。
知识融合的过程,大致会包括知识体系的融合和实例的融合。知识体系的融合就是两个或多个异构知识体系进行融合,相同的类别、属性、关系进行映射;实例的融合,就是两个图谱中的实例进行融合,包括实体实例和关系实例。
4)知识存储
知识存储就是研究采用何种方式将已有的知识图谱进行存储。目前的知识图谱存储基本都基于图数据库,比较流行的有neo4j。
5)知识推理
通过知识建模、知识获取以及知识融合,基本可以构建一个知识图谱。但是,很多时候,由于知识的不完备性,搭建出来的图谱通常会有很多缺失。由于数据的稀疏性,很难通过抽取和融合的方法去丰富图谱。这时,就需要通过知识推理的方法去补齐图谱中大量的关系缺失和实体缺失。
总结
知识图谱是人工智能技术最重要的基础设施,是计算机能够实现推理、预测等类似人类思考能力的关键。由于知识图谱的信息抽取,知识融合以及知识推理等过程都依赖于NLP技术,因此知识图谱与NLP通常是分不开的。