知识图谱

知识图谱(零):理论基础

随着人工智能的发展,第四次工业革命的呼声越来越高,人类正全面迈入以人工智能,清洁能源,无人控制技术,量子信息技术,虚拟现实以及生物技术为主的全新技术革命,在这其中,又以人工智能技术的发展最为激动人心。

当前,人工智能的进展突出体现在以知识图谱为代表的知识工程以及以深度学习为代表的机器学习等相关领域。

进行知识图谱或者知识库的研究,我们首先要弄明白三个基本概念:知识图谱的构建、知识图谱的存储以及知识图谱推理。不过在这之前,我们先要明白什么是知识图谱。

一、知识图谱

知识管理这个领域,有个分支叫语义网,它可以追溯到上个世纪60年代,分别经历了1980年代的专家系统、1990年代的贝叶斯网络、2000年代的OWL和语义WEB。这两年就改了名字叫知识图谱。

那么它是怎么改名的呢?这件事要从2012年谈起。谷歌2012年5月16日正式发布了一个应用,在搜索结果中除了显示其他网站的链接列表,还提供结构化及详细的关于主题的信息。就像下面这样:

google知识图谱

这个现在看起来很平常的东西,在当时可是开启了一个全新的研究方向。

而以Google的尿性,我做出一个如此成功的知识工程的应用出来,怎么还能用OWL或者语义Web这么屌丝的名字呢?于是Google大手一挥,把名字改为了“知识图谱”,听上去就很高端大气上档次。也许名字真的会影响气运,在这之后,关于如何在大数据的环境下进行知识图谱的构建、应用、融合就成为了一个热门的研究方向。

但是说了这么久,你似乎还没讲明白知识图谱到底是什么啊。别急,其实知识图谱的精髓就隐含在Google对知识图谱的宣传语中——"things not strings", 即,不要无意义的字符串,而是获取字符串背后隐含的对象或事物。

所以,知识图谱本质上是一种类似于下图的语义网络。(当然这只是近似表示,并不规范)

其结点代表实体(entity)或者概念(concept),边代表实体/概念之间的各种语义关系。

像上图所示的图是怎么存储在计算机里的呢?下面我们就来聊聊知识图谱的存储。

二、知识图谱的存储

2.1 什么是RDF

对于知识图谱的存储,最基础的就是RDF。RDF 全称为 Resource Description Framework,即资源描述框架。它最初是在语义网背景下设计出来,以三元组形式描述资源的一种数据模型。简单地,可以把 RDF 数据模型与关系数据库中的 Entity-Relationship 模型,或者面向对象语言中的类图等概念进行类比,都是对数据的一种抽象描述。

首先,从 RDF 的命名我们可以清楚的理解 RDF 的内涵:

  • R 代表 Resource,即资源,任何可以被唯一标识的对象,都可以称为资源。例如,网页、地点、人、事件、餐馆等;

  • D 代表 Description,也就是说对资源的描述,包括资源属性的描述和资源间关系的描述;

  • F 则是指 Framework,即 RDF 为资源描述提供了描述的语言和模型。

2.2 RDF的结构

RDF 为描述资源提供的基本元素有 IRI,字面值和空节点 (blank node)。IRI 就是一个符合特定语法的 UINICODE 字符串,如 :http://www.w3.org/1999/02/22-rdf-syntax-ns#HTML ,

跟 URL 的形式比较类似。其实 URL 属于 IRI 的一种。

字面值可以理解为像时间、人名、数字等常量的表示,由字符串和表示数据类型的 IRI 构成。例如数字 1 的字面值可以表示为"1"^^xs:integer,其中 xs:integer 是表示整型数据类型的 IRI。

空节点是指没有 IRI 的匿名节点。一般是 RDF 内部使用的一个特殊结构,不可被引用。

RDF 中对资源的一个描述称为陈述 (statement),一般用 Subject-Predicate-Object(SPO) 三元组 (triple) 表示。

其中,subject 的取值可以为 IRI,blank node; predicate 取值为 IRI,object 的取值则是 IRI,blank node 和 predicate。

例如,“a person named Eric Miller”在 RDF 中基本形式为 (xs1:me, xs2:fullName, “Eric Miller”)。

2.3 RDF的存储方案

RDF 的存储方案主要有两大类:其一是基于 RDBMS 的存储方案,典型的系统有 Bhyper,Graphium RDF;另一个则是原生 (native) 的存储方案,根据 RDF 的数据访问特点而专门设计的存储方法。

第二类方案进一步可以分为以图数据模型为基础的存储方案和自定义数据存储格式的方案。前者的代表系统有 Trinity.RDF,Virtuoso.RDF;后者有 RDF3x,Hexastore,Jena TDB。

2.4 RDFS和OWL

很多人会把RDF和OWL弄混,认为OWL可以替代RDF,这种看法是错误的,我们来看看RDF和OWL在知识图谱技术栈中所处的位置。

看到了吧,其实RDF在整个技术栈中主要负责与底层进行数据交换,而RDFS/OWL则对RDF多了一层描述。即,RDF定义了如何写,而OWL定义了写什么(语义规范)。

RDFS/OWL序列化方式和RDF没什么不同,其实在表现形式上,它们就是RDF。其常用的方式主要是RDF/XML,Turtle。

三、知识图谱的构建

因为知识图谱的构建过程是这一系列博客的重点内容,所以这里不再赘述。

四、知识图谱的推理

截止到目前为止的介绍,我们都会有知识图谱到底有啥用的疑问,上面的那些东西看上去就很鸡肋,那那些互联网巨头们的投入岂不是打水漂了?这里我们就要介绍知识图谱最强大的特性,也是最激动人心的部分——推理。

目前的知识图谱一般规模较大,但是其中绝大多数的知识图谱都是不完备的,因为有大量的知识无法在其中有效地表达。而知识图谱的推理,其实就是一个补全知识图谱的过程,本质上讲是一个知识图谱的链接预测问题,即根据一定的预测机制,由已知的边来预测未知的边,也可以说是给定两个实体及其之间的特性关系,来判断两个实体是否具有这种关系。

目前的推理方法有三类:

  • Embedding-based技术,它是基于低维向量的表示方法;Embedding-based技术是以隐式因子模型为基本思想的方法。它假设存在隐式的向量空间,将知识图谱中的实体和关系在低维的向量空间里进行表达,得到连续的向量、矩阵或者张量,然后在隐式向量空间里计算推理。

  • Path ranking algorithms,它是传统的路径排序算法;路径排序的基本想法是用连接两个实体的路径作为特征,来预测两个实体之间的关系。学习阶段分为特征抽取、特征计算和构造分类器三个部分。预测阶段是使用分类器对任务进行预测。

  • Probabilistic graphical models概率模型,如马尔科夫链等。

五、知识图谱研究的前沿

目前知识图谱中存在很多的坑,但关于知识图谱的研究也有很多。这里介绍一个看起来最具有未来感的落地应用。谷歌在Google Play Store的Google Play Movies & TV应用中添加了一个新的功能,当用户使用安卓系统观看视频时,暂停播放,视频旁边就会自动弹出该屏幕上人物或者配乐的信息,如图所示。这些信息就是来自谷歌知识图谱。谷歌会圈出播放器窗口所有人物的脸部,用户可以点击每一个人物的脸来查看相关信息。此前,Google Books 已经应用此功能。

参考:

  1. 知识图谱研究进展

  2. 大规模知识图谱的构建、推理及应用

  3. What is the difference between RDF and OWL?

  4. 基于大规模知识图谱的推断