【知识图谱】为什么需要知识图谱?什么是知识图谱?

Ronaldo Luís Nazário de Lima:

围绕罗纳尔多这个例子,我们围绕这个实体进行拓展,可以得到下列知识图

【知识图谱】为什么需要知识图谱?什么是知识图谱?

机器拥有了这样的先验知识,当它再次看到Ronaldo Luís Nazário de Lima,它就会“想”:“这是一个名字叫Ronaldo Luís Nazário de Lima的巴西足球运动员。”这和我们人类在看到熟悉的事物,会做一些联想和推理是很类似的。

 需要说明的是,上面的知识图并不代表知识图谱的实际组织形式,相反,它还会让读者对知识图谱产生一定的误解。

Google为了提升搜索引擎返回的答案质量和用户查询的效率,于2012年5月16日发布了知识图谱(Knowledge Graph)。有知识图谱作为辅助,搜索引擎能够洞察用户查询背后的语义信息,返回更为精准、结构化的信息,更大可能地满足用户的查询需求。

things not strings

知识图谱的前身

其实知识图谱的概念并不新,它背后的思想可以追溯到上个世纪五六十年代所提出的一种知识表示形式——语义网络(Semantic Network)。语义网络由相互连接的节点和边组成,节点表示概念或者对象,边表示他们之间的关系(is-a关系,比如:猫是一种哺乳动物;part-of关系,比如:脊椎是哺乳动物的一部分),如下图。在表现形式上,语义网络和知识图谱相似,但语义网络更侧重于描述概念与概念之间的关系,(有点像生物的层次分类体系——界门纲目科属种),而知识图谱则更偏重于描述实体之间的关联。

【知识图谱】为什么需要知识图谱?什么是知识图谱?

 

除了语义网络,人工智能的分支——专家系统,万维网之父Tim Berners Lee于1998年提出的语义网(Semantic Web)和在2006年提出的关联数据(Linked Data)都和知识图谱有着千丝万缕的关系,可以说它们是知识图谱前身。

知识图谱是由一些相互连接的实体和他们的属性构成的。换句话说,知识图谱是由一条条知识组成,每条知识表示为一个SPO三元组(Subject-Predicate-Object)。

【知识图谱】为什么需要知识图谱?什么是知识图谱?

在知识图谱中,我们用RDF形式化地表示这种三元关系。RDF(Resource Description Framework),即资源描述框架,是W3C制定的,用于描述实体/资源的标准数据模型。RDF图中一共有三种类型,International Resource Identifiers(IRIs),blank nodes 和 literals。下面是SPO每个部分的类型约束:

  1. Subject可以是IRI或blank node。
  2. Predicate是IRI。
  3. Object三种类型都可以。

IRI我们可以看做是URI或者URL的泛化和推广,它在整个网络或者图中唯一定义了一个实体/资源,和我们的身份证号类似。

literal是字面量,我们可以把它看做是带有数据类型的纯文本,比如我们在第一个部分中提到的罗纳尔多原名可以表示为"Ronaldo Luís Nazário de Lima"^^xsd:string。

blank node简单来说就是没有IRI和literal的资源,或者说匿名资源。关于其作用,有兴趣的读者可以参考W3C的文档,这里不再赘述。我个人认为blank node的存在有点多余,不仅会给对RDF的理解带来额外的困难,并且在处理的时候也会引入一些问题。通常我更愿意用带有IRI的node来充当blank node,行使其功能,有点类似freebase中CVT(compound value type)的概念。

 

eg:那么“罗纳尔多的中文名是罗纳尔多·路易斯·纳扎里奥·达·利马”这样一个三元组用RDF形式来表示就是:

【知识图谱】为什么需要知识图谱?什么是知识图谱?

"www.kg.com/person/1"是一个IRI,用来唯一的表示“罗纳尔多”这个实体。"kg:chineseName"也是一个IRI,用来表示“中文名”这样一个属性。"kg:"是RDF文件中所定义的prefix(前缀),如下所示。

@prefix kg: <http://www.kg.com/ontology/>

即,kg:chineseName其实就是"http:// www.kg.com/ontology/chineseName"的缩写。

将上面的知识图用更正式的形式画出来:

【知识图谱】为什么需要知识图谱?什么是知识图谱?

 

我们其实可以认为知识图谱就包含两种节点类型,资源和字面量。借用数据结构中树的概念,字面量类似叶子节点,出度为0。现在读者应该知道为什么我会说之前那幅图不准确,并会误导大家对知识图谱的理解了吧。"罗纳尔多·路易斯·纳萨里奥·德·利马"作为字面量,是不能有指向外部节点的边的,况且之前的图并不能直观地体现知识图谱中资源/实体(用IRI表示)这样一个极其重要的概念。