知识图谱全面总结

文章目录

1 介绍

1.1 定义

知识图谱:是一种结构化的语义知识库,用来所描述物理世界中的概念和物理关系。

《知识图谱全面总结》

“The world is not made of strings , but is made of things.”

——辛格博士,from Google.

辛格尔博士对知识图谱的介绍很简短:things,not string。这抓住了知识图谱的核心,也点出了知识图谱加入之后搜索发生的变化,以前的搜索,都是将要搜索的内容看作字符串,结果是和字符串进行匹配,将匹配程度高的排在前面,后面按照匹配度依次显示。利用知识图谱之后,将搜索的内容不再看作字符串,而是看作客观世界的事物,也就是一个个的个体,在进行搜索时,不单是显示搜索匹配的内容,还将与个体相关的信息展示出来。

通过对复杂的文本数据进行转化为三元组,并通过有向图结构的形式呈现。而三元组是知识图谱的基本单位也是核心。三元组的主要结构有两种:

  • 实体-关系-实体
  • 实体-属性-值

1.2 发展历史

里程碑式的发展是2012年,谷歌提出了基于知识图谱的搜索引擎产品,如今在搜索,推理,决策、问答、推荐等领域都有所应用。
《知识图谱全面总结》
知识图谱的构建技术主要有自顶向下自底向上两种。

其中自顶向下构建是指借助百科类网站等结构化数据源,从高质量数据中提取本体和模式信息,加入到知识库里。而自底向上构建,则是借助一定的技术手段,从公开采集的数据中提取出资源模式,选择其中置信度较高的信息,加入到知识库中。

在知识图谱技术发展初期,多数参与企业和科研机构主要采用自顶向下的方式构建基础知识库,如Freebase。随着自动知识抽取与加工技术的不断成熟,当前的知识图谱大多采用自底向上的方式构建,如Google的Knowledge Vault和微软的Satori知识库。(知识库发展

1.3 知识图谱的应用

  • 通用和领域知识图谱:
    知识图谱最成熟的一个场景,自动给出搜索结果和相关人物,知识图谱分为通用知识图谱与领域知识图谱两类,两类图谱本质相同,其区别主要体现在覆盖范围与使用方式上。通用知识图谱可以形象地看成一个面向通用领域的结构化的百科知识库,其中包含了大量的现实世界中的常识性知识,覆盖面广。领域知识图谱又叫行业知识图谱或垂直知识图谱,通常面向某一特定领域,可看成是一个基于语义技术的行业知识库,因其基于行业数据构建,有着严格而丰富的数据模式,所以对该领域知识的深度、知识准确性有着更高的要求。

  • 语义搜索:
    当前基于关键词的搜索技术在知识图谱的知识支持下可以上升到基于实体和关系的检索,称之为语义搜索。语义搜索利用知识图谱可以准确地捕捉用户搜索意图,借助于知识图谱,直接给出满足用户搜索意图的答案,而不是包含关键词的相关网页的链接。

《知识图谱全面总结》

  • 基于知识图谱的问答:
    基于语义解析的方法大致包含四个部分: 资源映射、逻辑表达式、候选答案生成、排序。问答系统(Question Answering, QA)是指让计算机自动回答用户所提出的问题,是信息服务的一种高级形式。不同于现有的搜索引擎,问答系统返回用户的不再是基于关键词匹配的相关文档排序,而是精准的自然语言形式的答案。

经由:①数据预处理:处理数据库数据,包含索引、数据清理、特征提取等;②问题分析:执行语法分析,同时检测问题的核心特征,如NER、答案类型等;③数据匹配:将问题里的terms 和数据里的实体进行匹配;④查询创建:生成结构查询候选;⑤排序;⑥结果返回与生成:执行查询并从结果里抽取答案。

《知识图谱全面总结》

2 数据存储

对于原始数据,通常有三种格式,格式化、非格式化以及半格式化数据。

  • 结构化数据:关系数据库存储的数据
  • 半结构化:XML,JSON,百科知识
  • 非结构化:文本,图片,音视频数据

对于以上数据通常采用RDF和图数据库进行存储

2.1 资源描述框架(Resource Description Framework,RDF)

大部分开放的知识图谱,都是以RDF形式对外开放。

RDF本质是一个数据模型,它提供了一个统一的标准描述web资源,资源指的是类、属性、实例等。RDF在形式上表示为三元组。RDF以SPO三元组的方式对实体关系三元组知识进行存储,具体是以节点和边的形式进行知识结构建模,如下所示:(更多关于RDF

《知识图谱全面总结》

《知识图谱全面总结》

2.2 图数据库

图数据库是一种非关系数据库(Not only sql,Nosql)(更多关于图数据库),解决了当前关系数据库的局限性,明确的显示了数据节点之间的依赖关系,而其他关系数据库通过隐式连接节点。因此图数据库在设计可以快速的实现检索。以Neo4j为例。
其查询语言采用自设计的cypher,与SQL设计思想上类似,Neo4j教程

《知识图谱全面总结》

2.3 关系型数据库

Oracle,DB2,Mysql等多种数据库都属于关系型数据库。知识图谱在关系数据库能以多种方式进行存储,包括三元组表、属性表、水平存储、垂直分割等。以三元组表存储格式为例,该表有三列。
《知识图谱全面总结》
优点:实现较为简单,也便于理解,具有通用性强,语义表达明确的特点。
缺点:在关系数据库中查询关系时会面临大量的自连接操作,开销较大,使得查询性能降低。

3 知识图谱架构

3.1 逻辑架构

在逻辑上,我们通常将知识图谱划分为两个层次:数据层和模式层。

  • 模式层:实体-关系-实体,实体-属性-性值
  • 数据层:比尔盖茨-妻子-梅琳达·盖茨,比尔盖茨-总裁-微软

3.2 技术架构

自底向上的构建方法流程如下图所示:
从数据源中提取实体、属性和关系加入到知识图谱的数据层
然后将这些知识要素进行归纳组织
逐步往上抽象为概念
最后形成模式层。自顶而下的方法正好相反。

《知识图谱全面总结》《知识图谱全面总结》
大概流程:对于获取的数据,可能是结构化or not。对于结构化数据,由于已经给出了知识要素,所以可以不进行知识抽取,对于非结构化或者半结构化数据,通过信息抽取获取知识要素,即实体关系。

4 构建技术

4.1 数据获取

从多种来源获取数据,比如文本,结构化数据库,多媒体数据,传感器数据或者人工众包数据。

4.2 信息抽取(Information Extraction)

从自然语言文本中抽取指定类型的实体、关系、事件等事实信息,并形成结构化数据输出的文本处理技术,即Making information more machine-readable,换成更方便及其识别的形式,以进行后续的研究。主要包括以下子任务

(1)实体抽取(Entity Extraction)

命名实体识别,是信息抽取任务的基础,识别出待处理文本中七类(人名、 机构名、 地名、 时间、 日期、 货币和百分比) 命名实体,两个子任务:实体边界识别确定实体类别。见这篇文章

(2)关系抽取(Relationship Extraction)

关系抽取是命名实体识别的更进一步。自动识别A怎么了B。
我们来看几个表示关系的具体例子(方括号中的是实体):

  • 个人/社会:[Mary, Queen of Scots](玛丽,苏格兰女王)是[Elizabeth I](伊丽莎白一世)的皇室表亲。
  • 雇佣/所属:[Albert Einstein](阿尔伯特・爱因斯坦)是[Princeton, New Jersey](普林斯顿大学,新泽西州)的[Institute for Advanced Study](高级研究所)最杰出的教师之一。
  • 物理:[Josephine](约瑟芬)把[couch](沙发)从房间的左边角落移到右边角落,这样就在她[aunt’s portrait](姨妈的肖像)旁边了。(※注意这个句子同时隐含了next-to关系)
  • 地理:[India](印度)和[Nepal](尼泊尔)是邻国。

(3)事件抽取(Event Extraction)

事件抽取(EE)是指从文本中识别事件,然后生成详细的结构数据,能够识别出“谁对谁做了什么,在哪里,在什么时候,用什么方式/工具,以及为什么”。比如从袭击新闻的报道中识别出袭击发生的地点、时间、人物、武器等等,EE涉及到多个实体和实体间关系的抽取。

“Masked gunmen armed with assault rifles and grenades attacked a wedding party in mainly Kurdish southeast Turkey, killing at least 44 people.” 。

这里需要识别出:

  • 肇事者:(“masked gunmen”,一群蒙面枪手);
  • 受害者:(“people”,人)
  • 受伤/受害人数:(“at least 44”,至少44人)
  • 武器及方式:(“rifles and grenades”,步枪和手榴弹)
  • 地点:(“southeast Turkey”,土耳其东南部)

4.3 知识融合(Knowledge Fusion)

通过信息抽取,我们就从原始的非结构化和半结构化数据中获取到了实体、关系以及实体的属性信息。这些信息就像碎片一样,无规则的存在数据层中。

将接下来的过程比喻成拼图的话,那么这些信息就是拼图碎片,散乱无章,甚至还有从其他拼图里跑来的碎片、本身就是用来干扰我们拼图的错误碎片。

  • 拼图碎片(信息)之间的关系是扁平化的,缺乏层次性和逻辑性;
  • 拼图(知识)中还存在大量冗杂和错误的拼图碎片(信息)

那么如何解决这一问题,就是在知识融合这一步里我们需要做的了。主要关键技术包含实体链接、知识合并。

(1)实体链接(Entity Linking)

实体链接,就是把文本中的mention链接到KG里的entity的任务。如下图所示:

《知识图谱全面总结》

  • (1)指代消解(Coreference Resolution)
    代词他指的是哪一个实体?

  • (2)实体消岐(Entity Disambiguation)

    有些实体写法不一样,但指向同一个实体,比如“New York”表示纽约,而“NYC”同样也可以表示纽约。这种情况下,实体消歧可以减少实体的种类,降低图谱的稀疏性。

    实体消歧是专门用于解决同名实体产生歧义问题的技术,通过实体消歧,就可以根据当前的语境,准确建立实体链接,实体消歧主要采用聚类法。其实也可以看做基于上下文的分类问题,类似于词性消歧和词义消歧。

  • (3)在确认知识库中对应的正确实体对象之后,将该实体指称项链接到知识库中对应实体。

(2)知识合并(Knowledge Merge)

在构建知识图谱时,可以从第三方知识库产品或已有结构化数据获取知识输入。常见的知识合并需求有两个,一个是合并外部知识库,另一个是合并关系数据库。

将外部知识库融合到本地知识库需要处理两个层面的问题:

  • 1、数据层的融合,包括实体的指称、属性、关系以及所属类别等,主要的问题是如何避免实例以及关系的冲突问题,造成不必要的冗余通过模式层的融合,将新得到的本体融入已有的本体库中。
  • 2、合并关系数据库,在知识图谱构建过程中,一个重要的高质量知识来源是企业或者机构自己的关系数据库。为了将这些结构化的历史数据融入到知识图谱中,可以采用资源描述框架(RDF)作为数据模型。业界和学术界将这一数据转换过程形象地称为RDB2RDF,其实质就是将关系数据库的数据换成RDF的三元组数据。

4.4 知识加工(Knowledge Processing)

海量数据在经信息抽取、知识融合之后得到一系列基本的事实表达,但这并不等同于知识,要想获得结构化,网络化的知识体系,还需要经过质量评估之后(部分需要人工参与甄别),才能将合格的部分纳入知识体系中以确保知识库的质量,这就是知识加工的过程。

知识加工主要包括3方面内容:本体构建、知识推理和质量评估。

(1)本体构建(ontology Extraction)

1、维基百科定义

In computer science and information science, an ontology is a formal naming and definition of the types, properties, and interrelationships of the entities that really or fundamentally exist for a particular domain of discourse.

译:在计算机科学和信息科学中,一个本体就是特定领域或根本存在的实体的类型、属性、相互关系的一个正式的命名和定义

总的概括:本体定义了组成领域的词汇表的基本术语及其关系,以及结合这些术语和关系来定义词汇表外延的规则。以大学教育为例

  • 领域。一个本体描述的是一个特定的领域。比如我们确定这次要描述的领域是「大学」。
  • 术语。指给定领域中的重要概念。例如,确定要描述大学了,对于一个大学来说什么概念是重要的呢?我们可以列举出教职工、学生、课程等等概念。
  • 基本术语之间的关系。包括类的层次结构,包括并列关系、上下位关系等等。比如教职工是老师、行政人员、技术支持人员的父类;学生是本科生、研究生的父类;研究生是硕士、博士的父类等等。
  • 词汇表外延的规则。包括属性、值约束、不相交描述(如教职人员和学生不相交)、对象间逻辑关系的规定(如一个教研室至少有10名教职工)等等。

2、本体 VS 知识图谱 VS 知识地图

Same:本体和知识图谱都通过定义元数据以支持语义服务。
Difference:

  • 知识图谱更灵活, 支持通过添加自定义的标签划分事物的类别。
  • 本体侧重概念模型的说明,能对知识表示进行概括性、抽象性的描述,强调的是概念以及概念之间的关系。
  • 大部分本体不包含过多的实例,本体实例的填充通常是在本体构建完成以后进行的。
  • 知识图谱更侧重描述实体关系,在实体层面对本体进行大量的丰富与扩充。

可以认为,本体是知识图谱的抽象表达,描述知识图谱的上层模式;知识图谱是本体的实例化, 是基于本体的知识库。( refer 黄恒琪,于娟,廖晓,席运江.知识图谱研究综述.计算机系统应用,2019,28(6):1–12.)

3、构建过程

主要包括三个阶段

  • 实体并列相似度计算
  • 上下位关系抽取
  • 本体的生成

举例:
得到“阿里巴巴”、“腾讯”、“手机”这三个实体的时候,可能会认为它们三个之间并没有什么差别,但当它去计算三个实体之间的相似度后,就会发现,阿里巴巴和腾讯之间可能更相似,和手机差别更大一些。

这就是第一步的作用,但这样下来,知识图谱实际上还是没有一个上下层的概念,它还是不知道,阿里巴巴和手机,根本就不隶属于一个类型,无法比较。因此我们在实体上下位关系抽取这一步,就需要去完成这样的工作,从而生成第三步的本体。

当三步结束后,这个知识图谱可能就会明白,“阿里巴巴和腾讯,其实都是公司这样一个实体下的细分实体。它们和手机并不是一类。”
《知识图谱全面总结》

(2) 知识推理(Knowledge Inference)

完成了本体构建这一步之后,一个知识图谱的雏形便已经搭建好了。但可能在这个时候,知识图谱之间大多数关系都是残缺的,缺失值非常严重,那么这个时候,我们就可以使用知识推理技术,去完成进一步的知识发现。

知识推理就是指从知识库中已有的实体关系数据出发,经过计算机推理,建立实体间的新关联,从而扩展和丰富知识网络。

例如康熙是雍正的父亲,雍正是乾隆的父亲,那么尽管康熙和乾隆这两个实体之间通过知识推理,就可以获得他们之间是祖孙关系。

知识推理的对象也并不局限于实体间的关系,也可以是实体的属性值,本体的概念层次关系等。比如:

推理属性值:已知某实体的生日属性,可以通过推理得到该实体的年龄属性;
推理概念:已知(老虎,科,猫科)和(猫科,目,食肉目)可以推出(老虎,目,食肉目)

这一块的算法主要可以分为3大类,基于逻辑的推理、基于图的推理和基于深度学习的推理
《知识图谱全面总结》

(3)质量评估(Quality Evaluation)

质量评估也是知识库构建技术的重要组成部分,这一部分存在的意义在于:可以对知识的可信度进行量化,通过舍弃置信度较低的知识来保障知识库的质量。

4.5 知识更新(Knowledge Update)

知识库的更新包括概念层的更新数据层的更新

  • 概念层的更新是指新增数据后获得了新的概念,需要自动将新的概念添加到知识库的概念层中
  • 数据层的更新主要是新增或更新实体、关系、属性值,对数据层进行更新需要考虑数据源的可靠性、数据的一致性(是否存在矛盾或冗杂等问题)等可靠数据源,并选择在各数据源中出现频率高的事实和属性加入知识库。

(1)全面更新

指以更新后的全部数据为输入,从零开始构建知识图谱。这种方法比较简单,但资源消耗大,而且需要耗费大量人力资源进行系统维护;

(2)增量更新

以当前新增数据为输入,向现有知识图谱中添加新增知识。这种方式资源消耗小,但目前仍需要大量人工干预(定义规则等),因此实施起来十分困难

    原文作者:Weiyaner
    原文地址: https://blog.csdn.net/weixin_42327752/article/details/121338402
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞