知识图谱系列-1-概述

0. 背景

本文尝试在学习知识图谱过程中将一些零碎的知识进行一次较为系统的梳理,一是为了辅助自己对于该领域知识的体系化,二来是将自己的学习历程以此方式展示方便后来者围观。若是可以进一步助他人避坑,心中自是无限喜悦。本系列将从知识图谱是什么开始介绍,之后稍加考古介绍其发展历程及其当下知识图谱有哪些类型。再往后便是最为核心的部分,整个知识图谱的构建周期及其各个阶段的重难点和现有的解决方案。最后,介绍知识图谱的具体应用,如推理和问答。

1. 知识分类

人类社会中的知识大体可以分为陈述性知识(或称为描述性知识)和过程性知识(或称为程序性知识)这两大类。当然,也可以有其他的划分维度,比如按照知识的效用分类、按照研究对象分类、按照知识研究方法分类等。

陈述性知识主要描述客观事物的性状等静态信息,主要分为事物、概念、命题三个层次。其中事物指特定的事或物;概念是对一类事物本质的抽象,反映的是事物的本质特性;命题是对事物之间关系的陈述,又可以进一步分为非概括性命题和概括性命题。其中非概括性命题表示特定事物之间的关系,而概括性命题描述概念之间普遍关系。

过程性知识描述问题如何求解等动态信息,主要分为规则和控制结构这两种类型。规则是描述事物的因果关系,控制结构描述问题的求解步骤。

2. 发展背景

对各种知识进行收集整理,进行形式化表示,使其按照一定的方式进行存储,即知识进行结构化。再提供相应的知识查询手段,从而使得知识有序化,如此便初步形成了知识共享和应用的基础。

互联网时代数据爆炸式增长,这些数据包含了大量描述自然界和人类社会客观规律的有用信息,数据展现方式是多元化的,有文字、语音、图片、视频等。那么如何从如此海量、繁杂的数据中挖掘出有用的知识,向用户提供精准的知识服务呢?这是构建下一代信息服务的核心目标之一。

互联网中的数据绝大部分是以非结构化的形式进行传播和存储的,为了让计算机能够处理,需要将数据进行结构化。图,是一种能够有效表示数据之间结构的表达形式,所以可以用图将知识进行表示。数据的结构化并和已有的结构化数据进行关联,就构成了知识图谱。这蕴含了两层意思,一来需要对数据结构化,二来还需要和已经的结构化数据进行关联。无关联,不成网络,无网络不成图谱。

知识图谱在学界尚未形成统一的定义。从谷歌基于知识图谱提供智能搜索服务的角度来看,知识图谱是一种通用的语义知识的形式化描述框架,用节点表示语义符号,用表示符号之间的语义关系。使用统一形式描述的知识描述框架便于知识的分享与利用。知识图谱示例:
在这里插入图片描述

3. 知识表示

对结构化数据的表示和存储,有2种典型技术路线,分别是本体和数据库。本体通过对象类型、属性类型和关系类型对领域知识进行形式化描述。本体强调的是抽象的概念表示,例如不同类型人之间具有什么类型的语义关系,并不关注个体,例如具体某个个体是什么类型的人(比如刘德华是什么类型的人,是演员还是歌手),该个体又与其他个人有什么关系(比如刘德华和朱丽倩是什么关系)。这些个体之间的关系,本体是不关心的。因此,本体只对数据定义了描述,没有描述具体的实例数据。数据库则是对数据描述和数据本身的。所谓的数据描述就是数据库的字段和字段类型等,数据就是一条条的数据库记录。

在AI的应用中不仅需要具体的知识实例数据,还需要数据的描述和定义,例如概念的上下位知识(“倭黑猩猩"是黑猩猩"属"的两种动物之一)。、属性之间的关系(“子女” 与 “父母” 是逆关系)、属性的约束(一个人的"父母” 只有 2个)等。知识图谱用三元组形式(二元关系)对知识进行资源描述和存储。比如,<刘德华,是一个实例,人类>、<刘德华,职业,歌手>、<刘德华,职业,演员>表达了具体的实例数据,也用<歌手,是…的子类,艺人>、<出生地,值类型限制,地理对象>、<出生地,是…的子类,地理位置>等三元组对相关知识结构进行描述。实体数据也只有在"框架"的约束下才能够体现为"知识"。一条客观陈述或者一种描述,倘若没有一些关联约束,就失去了共识,也便没了感知和认知的基础。知识以网络或者说图形式构建,才能够成体系。这些图或者网络该有什么样的标准,这就是框架,在知识图谱中叫做Schema或者本体。框架Schema就是对知识的描述和定义,框架+实例数据=知识系统。在实践过程,知识图谱需要将自身框架结构映射到某种数据库系统所支持的框架定义上。综上,知识是认知,图谱是载体,数据库是实现。知识图谱就是在数据库系统上利用图谱这种抽象载体表示知识这种认知内容。

具体在实现过程中,知识图谱以三元组形式存储实体和实体之间的关系。其中一条三元组由头实体、尾实体和关系组成。比如<董卿,国籍,中国>,头实体是"董卿,尾实体是"中国","国籍"是关系名称。另外,有些"关系"也称为"属性",相应的尾实体被称为"属性值"。属性值可以是实体对象,也可以是数字、日期、字符串等文字型对象,甚至可以是音频、视频等对象。比如<董卿,出生年份,1973年>。

虽然目前大部分知识图谱如Wikidata、Freebase、DBpedia、YAG等都是以三元组表示,但是实际上知识图谱的知识表示绝不仅仅体现在以二元关系为基础的三元组上,还体现在实体、类别、属性、关系等多颗粒度、多层次语义单元的关联之中。

从知识工程角度,知识图谱的框架一般包含3个层次的知识:
(1)概念知识,给出知识的最基本的内容
(2)事实知识,建立概念之间的关系
(3)规则知识,建立事实之间的关系

4. 是否包含规则

对于知识图谱是否应该包含推理规则型知识,目前意见不一。有人认为,知识图谱仅仅是AI的重要基础设施,不该包含推理等知识图谱的应用部分。他们认为推理不是知识利用的必要条件。比如判断"小明"的国籍,我们大概率是可以通过"小明"的出生地来得出。这条规则就是"如果X的出生地是Y,那么Y所属的国家就是X的国籍" 和 事实 “A的出生地是北京,北京所属国家是中国"推理出事实"A的国籍是中国”。另一种方式就是在知识图谱中除了存储<A,出生地,北京><北京,属于,中国>之外,多存一条数据"<A,国籍,中国>"。且目前流程的知识图谱都在去规则化,仅仅保留对知识数据的基本描述,这很大程度是因为推理规则确定性更弱,难以管理。W3C的OWL标准之所以没能取得大规模推广和应用的原因之一就是引入了描述逻辑。另一部分专家学者则认为,人类文明发展过程中总结和传承了很多规则,这些抽象的知识不仅可以节省知识存储和搜索空间,还可以发展出联想、推理和决策等更高层的认知能力。所以,他们坚持认为在模拟高层认知能力的AI系统中应该加入这类知识,而知识图谱作为知识表示的基础,应该涵盖推理规则。按照实践是检验真理的唯一标准这个原则来看,我个人是倾向于支持前者。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章