在常见的文本处理技术中,知识图谱(KNOWLEDGE GRAPH)到底是什么?用简单的例子来理解

知识图谱(Knowledge Graph)

 

历程发展

知识图谱的历程发展,可以追溯到20世纪70年代诞生的专家系统。

专家系统一个有大量的专业知识和经验的程序系统,它会根据某领域一个或多个专家提供的知识和经验,进行推理和判断(比如,医学领域等等)。就是模拟人类专家的决策过程,来解决一些比较专业化的问题。

 

它的大概的发展历程

 

1984年

1984年,Douglas Lenat(道格拉斯·莱纳)设立了Cyc(赛科),是一个当时比较出色的项目。它就是一个本体知识库,目的就是:收集生活中的常识知识,并把它们编码集成到一个全面的本体知识库里面。

 

Cyc和其他专家系统一样,不仅包括知识,而且提供了非常多的推理引擎,归纳推理等等。

目前的Cyc知识库,涉及50万条概念的500万条常识知识。

 

OpenCyc是Cyc开放出来的,免费供大众使用的部分知识,包括24万条概念的约240万条常识知识。

 

 

 

1989年

1989年,Tim Berners-Lee(蒂姆·伯纳斯-李)发明了万维网(World Wide Web)。

更方便的获取知识。

 

 

1998年

1998年,Tim Berners-Lee再次提出语义网(Semantic Web)。

目的:让机器,也能像人类一样,可以很好地获取并使用知识

它可以根据语义进行判断,想要实现人与电脑之间的无障碍沟通。

但是,语义网是一个较为宏观的设想,并且它的设计模型是“自顶向下”的,导致其很难落地。所以,学者们逐渐将焦点转向了数据本身。

 

给大家看一个语义网络,语义网络其实就是一个网络。

下图:

 

有各种不同的概念,比如:

中间的 Mammal 是哺乳动物,猫(cat) 是一种哺乳动物,猫有毛;

熊是哺乳动物,熊也有毛;

鲸是一种哺乳动物,鲸在水里面生活;

鱼也在水里面生活,也是一种动物;

哺乳动物是一种脊椎动物,也是动物的一种。

 

图里,所有的节点和边的总和,就构成了一个网络。每一条边上都有一些标识,用术语来说就是 “ 有类型的边 ”,这种 “ 有类型的边 ” 连在一起的节点叫 “ 语义网络 ”,概念是非常简单的。

 

 

2006年

2006年,Tim Berners-Lee提出链接数据(Linked Data)的概念。

 

鼓励大家把数据公开,并遵循一定的原则(2006年提出4条原则,2009年精简为3条原则)。

目的:数据不仅仅发布在语义网中,而要建立起数据之间的链接,从而形成一张巨大的链接数据网

 

其中,最具代表性的就是:2007年开始运行的DBpedia项目,是目前已知的第一个,大规模开放域链接数据。

 

 

2012年

2012年,Google提出了知识图谱的概念。

简单地说:谷歌知识图里面,充满了关于不同人物、地点和事物的数十亿个事实(通常归类为“实体”)。涵盖了从小众话题,到医学和科学等专业话题的所有内容

总体而言,谷歌有超过 50 亿个实体和超过 5000 亿个事实。

然后,谷歌会根据你的搜索查询,和存储在 Google 知识图谱中的信息相匹配,然后返回给你查询结果。

例如,您可以问 Google “美国的总统是谁?”。

Google 不仅可以回答你提出的问题,还可以为提供所有的「相关信息」。

 

 

谷歌使用了“知识图谱”之后,大幅度提高了Google搜索的最终效果:

1. 找到正确的结果。因为,很多关键词可能代表多重含义,所以知识图谱会把最全面的信息展现出来,让用户找到自己最想要的那种含义。

 

2. 最好的总结。有了知识图谱,Google可以更好的理解用户搜索的信息。比如,当你搜 “玛丽·居里” 时,你不仅可以获得这个关键词的所有相关内容,还能获得居里夫人的详细生平介绍。

 

3. 更深、更广。 “知识图谱”会给出搜索结果的「完整知识体系」。所以,用户往往会发现很多不知道的东西(知识)。比如:当你搜索一个即将去旅行的地方时,可能你会发现一个以此命名的餐馆,甚至还可能发现还有一本小说就叫这个名字,并且已经改编成了同名电影。

 


 

知识图谱相关概念

知识图谱相关概念:本体、知识库、链接数据、语义网络。

(1) 本体

本体:用于描述实体和实体间的关系。

 

举个例子,如果,我们要做图书领域的知识图谱。

首先,要对图书进行分类。这个分类就是本体。

 

比如说,图书分为计算机类和电子类,计算机类有分为网络、人工智能。有了这个分类后,我们就可以把图书都分到每个类别。

 

比如说,《Zero to One》是一本进口原版书。然后,这本书有各种属性-属性值。比如说书的作者是Peter Thiel,这些数据,就构成了一个图书知识图谱。

 

⚠️:这里分类和知识图谱一起,可以看成是一个图书知识库。

也就是说,本体是强调的是:概念关系

知识图谱强调:实体关系和实体属性值

知识库:是所有知识的集合。

 

最常用的本体描述语言: RDF 和 网络本体语言(Ontology Web Language,OWL)

用 RDF举个例子:

RDF本质上是三元组:主语、谓语、宾语就是个三元组。

 

比如 “ 我是Tim ”,“ 我 ” 是主语,“ 是 ” 是谓语,“ Tim” 是宾语。在 RDF 这个框架下,所有的关系,最后都被拆分成三元组。

 

(2) 知识库(Knowledge Base)

本质上:是管理知识的数据库。最早作为专家系统(Expert System)的组成部分,用于实现决策推理。

知识库中的知识:有本体知识、关联性知识、规则库和案例知识等很多种不同的形式。

 

(3) 链接数据(Linked Data)

前面讲了:2006年,Tim Berners-Lee提出链接数据(Linked Data)的概念。

和语义网络相比,更关注建立数据之间的链接。

 

(4) 语义网络(Semantic Network)

更注重描述概念和他们之间的关系。

⚠️:和语义网不同。

其实是一种有向图:

  • 顶点代表:概念;
  • 边:这些概念之间的语义关系。 

 


 

知识图谱的存储

知识图谱的存储可以分为:

  1. 基于表结构的存储
  2. 基于图结构的存储

 

其中,基于表结构的存储:用二维数据表来存储数据。例如:三元组表、类型表以及关系数据库。

基干图结构的存储:用图数据库。

 

1. 三元组表

SPO三元组。SPO分别是一个句子的主语(subject)、谓语(predicate)、宾语(object)。

优点:存储实现方式简单,易于理解。

缺点:把所有的知识,都存放在同一张表:过于庞大,执行插入、删除、修改、查询等操作时效率低。所以,在大型知识图谱系统中,很少采用这种方式。

 

 

2. 类型表(属性表)

类型表:每一类数据,单独建立一张数据表来存储。

例如:学生表、课程表、班级表等。同一类型的实例,存放在同一张表里面。

 

问题:查询时必须指定属性,没有办法做到不确定属性的查询。

 

 

3. 图结构

图数据库的优点

可以直接表示知识图谱的结构。其中,图中的节点:表示知识图谱的对象;图中的边:表示知识图谱的对象关系。

 

优点:

1. 数据库本身就可以提供完善的图查询语言。

2. 在查询速度上,要优于关系型数据库。

 

缺点:

图数据库的更新比较复杂,数据更新速度慢,大节点的处理开销很高。

所以,一般使用以图数据库为主,结合其他系统的方式来存储知识图谱。

常见图数据库:neo4j。


 

 

知识图谱挖掘与计算

知识图谱的挖掘主要是基于图运算的理论,从海量结点中寻找权威节点(重要节点),与目标节点最近(路径最短)且最权威的节点。

 

1. 最短路径算法

最短路径算法可分为Dijkstra(迪杰斯特拉,读作:dyke - stra)算法和Floyd(弗洛伊德)算法。

 

Dijkstra(迪杰斯特拉)算法

Dijkstra算法:是典型的单源最短路径算法。用于计算:一个顶点,到其他所有顶点的最短路径。

核心思想:以起始点为中心,向外层层扩展,直到扩展到终点为止。

 

Dijkstra计算最短路径时,需要指定起点s(就是从顶点s,开始计算)。

此外,还要有两个集合S和U:

  1. S集合的作用:记录,已求出的最短路径的顶点(和相应的最短路径长度);
  2. 而U集合记录:还未求出最短路径的顶点(以及该顶点到起点s的距离)。

 

步骤:

初始状态时,S集合中只有起点s;U集合中是除s顶点之外的所有的顶点,并且U集合的路径是"起点s到每个顶点的路径"。

然后,从U集合中找出:路径最短的顶点,其加入到S集合中;

接着,更新U集合中的顶点。

然后,再从U集合中找出路径最短的顶点,并将其加入到S集合中。

一直重复这个操作,直到遍历完所有顶点。

 

2. 权威节点分析

权威节点就是重要节点

权威节点分析:主要采用「互投票」方法,它的思想来源 PageRank思想。

PageRank 的核心思想:越多的优质网页所指向的网页,那么它属于优质网页的概率就越高。

PageRank,是斯坦福大学研究项目的一部分。当时,它们做这个项目的目的:“提高网络搜索引擎的质量。”

 

它的大概思路就是:

假设页面 C 有两个链接:一个来自页面 A,一个来自页面 B。

页面 A 比页面 B 强,并且外向链接也更少。

然后,就可以把信息输入到 PageRank 算法中,就可以得到页面 C 的 PageRank。

 

3. 相似节点发现

相似节点发现:常常应用于企业中的客户分群。

比如,一个企业有一些客户,他想找到其他类似的客户,用相似节点发现的算法就可以实现。

也会使用到:改进的k-均值聚类算法。求出最终一个结构。

 


 

知识图谱的构建过程

知识图谱的逻辑结构:数据层和模式层

  1. 数据层:知识图谱的数据存储;
  2. 模式层:在数据层之上,存储的是经过提炼的知识。

 

知识图谱有2种构建方式:

  1. 自顶向下:需要专家,手工编辑形成数据模式
  2. 自底向上:借助一定的技术手段,从公开采集的数据中,提取出资源模式进行映射,经人工审核之后,加入到知识库中。

 

一般,步骤包含三个阶段

(1) 信息抽取:
从多种结构化、半结构化、非结构化数据源中,自动抽取信息,得到知识元。

 

(2) 知识融合:  

对获得的知识,进行整合,消除矛盾和歧义。

 

(3) 知识加工:

对于收集的内容资源,进行融合处理。形成:结构化、系统化的内容。并且经过评估,只有合格的部分才加入到知识库中。

 

例子:电商领域的知识图谱构建

① 确定领域本体。例如,要描述的领域是“电商”。

 

② 列举领域内的术语集合。例如,要描述“电商”这个领域:可以列举出“商品”“卖家”“买家”“厂家”等概念。

 

③ 确认基本术语之间的关系:并列关系、包含关系和关联关系等。比如:“平台”与“卖家”是包含关系。

 

④ 添加约束规则。比如:只有卖家才可以发布商品等。

 

⑤ 定义实例。就是把具体的实例信息,导入到之前建立的结构中,形成知识库。

 

⑥ 检查和验证。进行一致性检查。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值