01 知识图谱概论
本文是王昊奋老师《知识图谱》系列笔记第1篇。
文章目录
1 知识图谱与语义技术概览
本次课程主要从三个方面来介绍:
- 1.1 知识图谱的概念演化(重点:理解相关概念、做到不混淆)
- 1.2 常见的知识库
- 1.3 知识图谱技术体系(对相关技术有所印象,后面分章讲解)
1.1 知识图谱的概念演化
知识图谱(Knowledge Graph, KG)的概念演化可以用下面这幅图来概括:
1.1.1 语义网络(Semantic Networks)
1.1.2 本体论(Ontology)
1.1.3 万维网 Web
1.1.4 语义网(THe Semantic Web)
1.1.5 链接数据(LInked Data)
1.1.6 知识图谱(Knowledge Graphs)
这几个概念是知识图谱的起源和发展,为了打好更牢固的基础,下面通过时间顺序,分别理解这六个概念。
1.1.1 语义网络(Semantic Networks)
对于初学者来讲,语义网络这个概念很容易和语义网(Semantic Web)相混淆。为了行文一致,除非特别说明,语义网络指Semantic Network,语义网指Semantic Web。
语义网络是由Quillian于上世纪60年代提出的知识表达模式,其用相互连接的节点和边来表示知识。节点表示对象、概念,边表示节点之间的关系。
语义网络的优点:
-
容易理解和展示。
-
相关概念容易聚类。
语义网络的缺点:
-
节点和边的值没有标准,完全是由用户自己定义。
-
多源数据融合比较困难,因为没有标准。
-
无法区分概念节点和对象节点。
-
无法对节点和边的标签(label,我理解是schema层,后面会介绍)进行定义。
简而言之:语义网络可以比较容易地让我们理解语义和语义关系。其表达形式简单直白,符合自然。然而,由于缺少标准,其比较难应用于实践。
1.1.2 本体论(Ontology)
1980s出现了本体论(Ontology),该本体是由哲学概念引入到人工智能领域的,用来刻画知识。
本体、知识库、知识图谱之间的关系?
从抽象层面看,本体最抽象,其次是知识库,最后才是知识图谱。
举个例子,如果我们要做图书领域的知识库或者知识图谱,首先要对图书进行分类,这个分类就是本体,比如说,图书分为计算机类和电子类,计算机类有分为网络、人工智能;
有了这个分类后,我们就可以把图书都分到每个类别,比如说《Zero to One》是一本进口原版书,然后这本书有各种属性-属性值,比如说书的作者是Peter Thiel,这些数据就构成了一个图书知识图谱,而这里分类和知识图谱加在一起可以看成是一个图书知识库。
1.1.3 万维网 Web
在1989年Time Berners-Lee发明了万维网,实现了文本间的链接。
单纯是文本 网页之间的指向连接,没有语义。
在万维网诞生之初,网络上的内容只是人类可读,而计算机无法理解和处理。比如,我们浏览一个网页,我们能够轻松理解网页上面的内容,而计算机只知道这是一个网页。网页里面有图片,有链接,但是计算机并不知道图片是关于什么的,也不清楚链接指向的页面和当前页面有何关系。
1.1.4 语义网(THe Semantic Web)
在万维网诞生之初,计算机只知道这是一链接,但是计算机并不知道链接指向的页面和当前页面有何关系。
语义网正是为了使得网络上的数据变得机器可读而提出的一个通用框架。
1998年语义网(THe Semantic Web)被提出,它从超文本链接到语义链接。
“Semantic”就是用更丰富的方式来表达数据背后的含义,让机器能够理解数据。
“Web”则是希望这些数据相互链接,组成一个庞大的信息网络,正如互联网中相互链接的网页,只不过基本单位变为粒度更小的数据,如下图。
1.1.5 链接数据(LInked Data)
2006年Tim突出强调语义网的本质是要建立开放数据之间的链接,即链接数据(LInked Data)。
链接数据起初是用于定义如何利用语义网技术在网上发布数据,其强调在不同的数据集间创建链接。
链接数据也被当做是语义网技术一个更简洁,简单的描述。
当它指语义网技术时,它更强调“Web”,弱化了“Semantic”的部分。
对应到语义网技术栈,它倾向于使用RDF和SPARQL(RDF查询语言)技术,对于Schema层的技术,RDFS或者OWL,则很少使用。
链接数据应该是最接近知识图谱的一个概念,从某种角度说,知识图谱是对链接数据这个概念的进一步包装。
1.1.6 知识图谱(Knowledge Graphs)
2012年谷歌提出知识图谱(Knowledge Graphs) 重点关注 节点和属性
知识图谱是由一些相互连接的实体和它们的属性构成的。最简单情况下它长这样:
1.2 常见的知识库
- 英文知识库
- CYC常识数据库(鸟会飞,狗会跑)
- wordnet:词典知识库(China 是中国、瓷器)
- conceptnet(常识common sense数据库)三元组形式
- freebase:免费开源的,倒闭了。
- wikidata:众包的、免费的、最大的、谷歌的
- DBPedia:数据库版(规则版)的维基百科
- YAGO:把维基百科与wordnet概念融合,概念设计更好。
- babelnet:多语言的知识库
- nell:卡内每基隆大学的,从web自动抽取的。永不停息,并不断验证自己。
- concept graph:微软的,把一个名词进行扩展,可以用来消除歧义。
- 中文知识库:
- zhishi.me :把百度百科和互动百科和维基百科 进行了融合。
- cnSchema:开方的中文版 Schema.org
我们将知识图谱分成两大类,一类叫 Common Sense Knowledge Graph(常识知识图谱),另外一类叫Encyclopedia Knowledge Graph(百科全书知识图谱)。这两类知识图谱有很明显的区别。
- 针对 Common Sense Knowledge Graph,
- 针对 Common Sense Knowledge Graph,通常而言我们会挖掘这些词之间的 linguistic knowledge;
- 对于 Common Sense Knowledge Graph,一般而言我们比较在乎的 relation 包括 isA relation,isPropertyOf relation。
- 对于Common Sense Knowledge Graph 通常带有一定概率,
- Common Sense Knowledge Graph 比较有代表性的工作包括 WordNet、KnowItAll、NELL,以及 Microsoft Concept Graph。
- 对于 Encyclopedia Knowledge Graph
- 对于 Encyclopedia Knowledge Graph,我们通常会在乎它的 Entities,和这些 Entities 之间的 Facts。
- 对于 Encyclopedia Knowledge Graph,通常我们会预定义一些谓词,比如说DayOfbirth,LocatedIn,SpouseOf。
- Encyclopedia Knowledge Graph 通常非黑即白,那么构建这种知识图谱的时候我们在乎的是 Precision(准确率)。
- 而 Encyclopedia Knowledge Graph 则有 Freepase、Yago、Google Knowledge Graph,以及正在构建中的“美团大脑”。
1.3 知识图谱技术体系
1.3.1 知识表示
知识表示研究怎么利用计算机符号来表示人脑中的知识,以及怎么通过符号之间的运算来模拟人脑的推理过程。
知识表示的演化过程,其中最主要根本的变化是从基于数理逻辑的知识表示过渡到基于向量空间学习的分布式知识表示。
其中最底层的是URI/IRI是网络链接,其上是XML和RDF为资源表示框架。
SPARQL是知识查询语言。
被蓝色部分覆盖的是推理模块,它包含了如RDFS和OWL这样的支持推理的表示框架
。在往上就是trust和interaction部分(推理之类)。
1.3.1.1 RDF
RDF(Resource Description Framework)即资源描述框架,是W3C制定的。用于描述实体/资源的标准数据模型。在知识图谱中,我们用RDF形式化地表示三元关系。(Subject, predicate, object)。例如:
1.3.1.2 RDFs
RDFS(RDF schema)在RDF的基础上定义了一些固定的关键词如:Class,subClassOf,type, Property, subPropertyOf, Domain, Range以及多了Schema层。它的表示为:
1.3.1.3 OWL
OWL(Web Ontology Language), 这个本体就是从哲学那面借鉴来的。OWL在RDF的基础上扩充了Schema层(比如什么是金融企业,什么是企业,什么是公司),使它支持推理等操作。如:
妈妈类是 父母类 与 妇女类 的交集。 祖父是 父亲的父亲
1.3.1.4 SPARQL
SPARQL是RDF的查询语言,它基于RDF数据模型,可以对不同的数据集撰写复杂的连接,由所有主流的图数据库支持,后面专门讲到数据存储的时候会讲到。其操作如:
类似与子图匹配。
1.3.1.5 JSON-LD
JSON for Linking Data: 适用于作为程序之间做数据交换,在网页中嵌入语义数据和Restful Web Service。存储格式如:
1.3.1.6 知识图谱的分布式表示–KG Embedding
其实看到 Embedding这个词我们就知道,它是一个向量嵌入。详细来说就是在保留语义的同时,将知识图谱中的实体和关系映射到连续的稠密的低维向量空间。
1.3.2 知识抽取
知识抽取是一个结合NLP和KR的工作,它的目标是抽取KR用的三元组、多元关系、模态知识等。具体流程如下:
- 首先从网络上获取大量的各种非结构化的文本数据,经过文本预处理后得到干净的文本数据。
- 而后借助机器学习相关程序对文本进行分词、词性标注、词法解析、依存分析等工作,此时词法及句法层次的分析结束,
- 接下来对该文本进行NER和实体链接工作,为关系抽取和时间抽取做准备,
- 最终形成KR用的三元组、多元关系、模态知识等构成知识图谱。
知识抽取的方法:
- 知识工程:
- 正则表达式
- 模版匹配:bootstrap:从种子数据中学习patterns,再利用其去抽取更多的数据。
- 规则约束:POS、NER约束
- 基于本体的抽取:
- 知识挖掘(推理):
- PRA基于图的抽取
- transE基于向量的抽取
- 知识挖掘(推理):
- 基于模型的抽取:SVM、CRF、LSTM
1.3.3 知识存储
主要有两类:(1)基于关系数据库的存储;(2)基于原生图的存储。
1.3.4 知识问答
知识问答(Knowledge-Based Question Answering, KBQA)是基于知识库的问题回答,它以直接而准确的方式回答用户自然语言提问的自动问答系统,它将构成下一代搜索引擎的基本形态。
如搜索姚明的身高,就可以给出226cm的回答。其实现流程为:
1.3.5 知识推理
简单而言,推理就是指基于已知事实推出未知的事实的计算过程。
按照解决方法分类可分为:基于描述逻辑的推理、基于规则挖掘的推理、基于概率逻辑的推理、基于表示学习与神经网络的推理。
按照推理类型分类可分为:缺省推理、连续变化推理、空间推理、因果关系推理等等。
1.3.6 知识融合
实体融合(Knowledge Fusion),也叫数据连接(Data Linking)等,目的是在不同的数据集中找出一个实体的描述记录,主要目的是对不同的数据源中的实体进行整合,形成更加全面的实体信息。典型的工具为Dedupe(一个基于python的工具包)和LIMES(设置阈值之后根据图数据库 合并)。
1.3.7 知识众包
允许各网站基于一定的方式如RDFa、JASON-LD等方式在网页和邮件等数据源中嵌入语义化数据,让个人和企业定制自己的知识图谱信息。
原文链接:https://lookme.blog.csdn.net/article/details/88052076
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
评论前必须登录!
立即登录