知识图谱实战:构建方法与行业应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 知识抽取概述

知识抽取可以帮助我们从非结构化及半结构化数据中获取有用的信息,找出数据之间的实体及其关系。图2-1给出知识抽取在知识图谱技术架构中的位置。接下来,我们从知识抽取的定义及任务开启知识抽取的学习之路。

图2-1 知识图谱技术架构中的知识抽取

2.1.1 知识抽取的定义

知识图谱的信息资源通常由清楚的、事实性的信息组成。在2019年发表的《知识图谱标准化白皮书》(以下简称标准化白皮书)中对知识抽取的定义是:从不同来源、不同结构的信息资源中进行知识提取,形成结构化的知识并存储到知识图谱中。

一般来说,知识抽取主要面向链接开放数据,通过一系列自动化或半自动化的技术手段,从半结构化、非结构化的数据中提取出实体、关系及属性等知识要素,并以此为基础,形成一系列高质量的事实表达,为上层模式层的构建奠定基础。知识抽取不仅需要抽取实体及属性,还要基于语句和语境抽取出实体间的关系以及实体所描述的事件。

目前,面向互联网爆炸式增长的海量文本数据的知识抽取,是关于知识图谱构建研究的主流方向之一,已有很多知识抽取的方法被提出来应对文本数据量巨大的问题。

虽然我们经常说知识抽取是知识图谱构建的第一步,但是严格意义上,知识抽取是建立在获取到的各类数据上的。获取方法多种多样,通常有众包法、爬虫法、机器学习法和专家法4种,标准化白皮书中具体介绍了这4种方法。数据获取更像是数据搜集的过程,其过程、原理等内容不是知识图谱构建的重点,因此不做过多讲解。

我们要继续深入知识抽取的任务中,以了解知识抽取在实际场景中的不断发展和进步,这会帮助我们充分掌握知识抽取的概念。

2.1.2 知识抽取的任务

在日常的生产生活中,绝大多数情况下获取的都是非结构化的数据,尤以文本数据居多。为了更透彻地学习知识抽取的内容,接下来以文本数据为例,介绍知识抽取的任务。

面向互联网海量文本数据的知识抽取,通常也叫作信息抽取。信息抽取最受关注的子任务包括:实体抽取、实体链接、关系抽取、属性抽取和事件抽取。其中实体链接(Entity Linking, EL)与知识融合中的实体链接不同。知识抽取中的实体链接只涉及抽取内容的链接,不涉及知识库内部实体之间的链接,后续内容将会体现这一点。

1.实体抽取

实体抽取也称为命名实体识别(Named Entity Recognition, NER),是指从文本语料库中自动识别出专有名词(如机构名、地名、人名等),以及有意义的时间或名词性短语。经过实体抽取之后得到的命名实体、普通名词短语以及代词等称为实体指称,实体指称是实体的文本表现形式。实体抽取的准确性将直接影响知识抽取的质量和效率,因此实体抽取也是知识图谱构建和知识抽取的基础与关键。

早期实体抽取方法主要面向单一领域,关注如何识别出文本中的机构名、人名、地名等专有名词的实体信息。这一期间产生了基于规则的方法,但这类方法具有明显的缺点和局限性,可扩展性差以至于难以适应数据的变化,还需要耗费大量人力。

为了解决这些问题,相继提出了基于规则和监督学习相结合的方法、半监督方法、远程监督方法以及海量数据自学习方法等。随着命名实体识别技术不断取得进展,学术界不再限定特定的知识领域,而是面向开放的互联网,研究和解决全网知识抽取问题。为了研究开放域知识抽取的问题,需要先建立一个可以指导算法研究的完整的科学命名实体分类体系,同时该分类体系要便于对抽取得到的实体指称数据进行管理。实体分类体系的基本思想是采用统计机器学习的方法,对任意给定的实体,从目标数据集中抽取出与之具有相似上下文特征的实体指称,实现实体指称的分类和聚类。

在面向开放域的实体识别和分类研究中,不需要为每个领域或每个实体类别建立单独的语料库作为训练集,而是从给定的少量实体实例中自动发现具有区分力特征的模型。

2.实体链接

前期的知识抽取基本技术,虽然实现了获取实体指称、关系以及实体属性信息的目标,但是还缺少必要的清理和整合环节,因为这些结果中可能包含大量的冗余和错误信息,数据之间的关系也是扁平化的,缺乏层次性和逻辑性。

关于实体链接,很多文献说法都不一样。我们通常把文本中的实体指称对应到知识图谱中的正确实体对象的链接技术叫作实体链接,它将文本中的实体指称映射到给定的知识库。也可以说,实体链接是指将实体指称对象链接到知识库中正确实体对象的操作。实体链接在许多领域起到了关键性作用,例如信息提取、语义搜索和问答匹配等。

实体链接的基本思想是首先准备好包含一系列实体的知识库与经过实体抽取得到的标注好指称项的语料,然后将每一个指称项与知识库进行匹配,从知识库中选出一组候选实体对象,最后通过相似度计算将指称项链接到正确的实体对象,以解决实体名的歧义性和多样性问题。而将文本中的实体名指向其所代表的真实世界的实体,通常被称为实体消歧。

例如,在“北京时间2020年4月15日深夜,苹果发布了最新款iPhone X,3299元起售的iPhone X正式上架。”语句中,实体链接系统需要将文本中的“苹果”与其真实世界所指的“苹果公司”进行对应,iPhone X与“苹果手机”进行对应,而不是我们常吃的“苹果”水果。而将语料中多个指称项指向知识库中的同一实体对象,通常被称为共指消解。

再如:

中国古典名著《西游记》中的唐僧,俗家姓陈,生于河南洛阳,法号“玄奘”,被尊称为三藏法师,也是孙悟空的师傅。

其中,玄奘法师、孙悟空师傅、三藏法师等多个指称项对应的实体对象都是“唐僧”。

在知识抽取中,一般认为实体链接包括实体消歧和共指消解,三者关系的示意图如图2-2所示。

图2-2 实体链接、实体消歧与共指消解关系的示意图

实体链接的一般流程如下。

1)候选实体生成:从文本中通过实体抽取得到实体指称项,即每个实体在知识库中获得的一组引用实体作为候选实体。

2)实体消歧与共指消解:实体消歧与共指消解是判断与知识库中的同名实体的含义是否相同,可通过计算实体和候选实体之间的相似度的排序来选择可能的候选实体。

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

我们将现有的实体链接模型分为两种:本地模型和全局模型。本地模型根据实体的上下文信息来实现实体链接。全局模型利用文档中的所有实体和其目标实体的全局一致性来实现实体链接。而在实体链接的流程中,实体消歧和共指消解是整个实体链接流程的核心,接下来,我们将详细介绍实体消歧和共指消解。

顾名思义,实体消歧是专门用于消除同名实体产生歧义问题的技术。在实际语言环境中,经常会遇到某个实体指称项对应多个命名实体对象的问题。例如在上面的例子中,“苹果”指称项可以对应多个实体对象。实体消歧主要采用聚类法,即将所有指向该指称项的实体对象聚集到此类别下。聚类法消歧的关键是如何定义实体对象与指称项之间的相似度,常用的方法有以下4种。

空间向量模型(词袋模型):通常取当前语料中实体指称项周边的词构成特征向量,然后利用向量的余弦相似度进行比较,之后将该指称项聚类到与之最相近的实体指称项集合中。该方法的缺点是没有考虑上下文语义信息,这种信息损失会导致在某些情况下算法性能大幅下降,如短文本分析。

语义模型:该模型与空间向量模型类似,区别在于特征向量的构造方法不同,语义模型的特征向量不仅包含词袋向量,而且包含一部分语义特征,语义特征与词袋模型相结合,能够得到更精确的相似度计算结果。

社会网络模型:该模型认为在社会化语境中,实体指称项的意义在很大程度上是由与其相关联的实体所决定的。在建模时,首先利用实体间的关系将与之相关的指称项链接起来构成网络,然后利用社会网络分析技术计算该网络中节点(实体的指称项)之间的拓扑距离,以此来判定指称项之间的相似度。

百科知识模型:百科类网站通常会为每个实体(指称项)分配一个单独页面,其中包括指向其他实体页面的超链接,百科知识模型正是利用这种链接关系来计算实体指称项之间的相似度。这种建立在百科类网站基础上的实体消歧结果目前是最好的,但是由于百科类知识库中的实体数非常有限,此类方法的推广性较差。

顾名思义,共指消解是主要用于解决多个指称项对应于同一实体对象问题的技术。例如在上面的例子中,“玄奘法师”“孙悟空师傅”“三藏法师”等多个指称项对应的实体对象都是“唐僧”。共指消解技术可以将这些指称项关联到正确的实体对象。由于该问题在信息检索和自然语言处理等领域非常重要,吸引了大量学者进行研究,但学术界对该问题有多种不同的表述,在知识库中,实体之间的实体消解也叫对象对齐、实体匹配以及实体同义等

共指消解问题的早期研究成果主要来自自然语言处理领域,近年来统计机器学习领域的学者越来越多地参与到这项工作中。随着统计机器学习方法被引入该领域,共指消解技术进入了快速发展阶段。除了可以将共指消解问题视为分类问题之外,还可以将其作为聚类问题来求解。聚类法的基本思想是以实体指称项为中心,通过实体聚类实现指称项与实体对象的匹配,其关键问题是如何定义实体间的相似性测度。

而基于统计机器学习的共指消解方法通常受限于两个方面:训练数据的(特征)稀疏性和难以在不同的概念上下文中建立实体关联。一种评估术语相似度的实体相似性测度模型被提出,它可以从全局语料中得到所有术语间的统计意义上的相似性,据此完成实体合并,达到共指消解的目的。后来有研究者将网页点击相似性和文档相似性相结合,提出了一种新的查询上下文相似性测度方法,该方法能够有效识别同义词,显著提高了查全率。

3.关系抽取

与实体抽取相比,关系抽取更加复杂,大多数关系都有一定的隐含性(关系表示不明显)和关系自身的复杂性(不同实体之间有多对关系或者同一实体的不同关系)。

统计机器学习方法通过对实体间关系的模式进行建模,替代预定义的语法和语义规则。而大量基于特征向量或核函数的有监督学习方法,也使得关系抽取的准确性不断提高。由于在相似度计算过程中对匹配约束比较严格,基于核函数方法的召回率普遍较低,因此后续主要围绕改进召回率展开研究。

随着语料的增多,以及深度学习在图像和语音领域获得成功,知识抽取也逐渐转向了基于神经模型的研究。有人提出联合抽取模型,利用神经网络模型不需要加入太多特征(一般可用的特征有词向量、位置等)的特点,可以同时抽取实体之间的关系。联合抽取模型的优点是可以避免流水线模型[1]存在的错误累积。但无论是流水线方法还是联合抽取方法,都属于有监督学习,因此需要大量的训练语料,尤其是采用神经网络的方法,需要大量的语料进行模型训练,但这些方法都不适用于构建大规模的知识图谱。近年来关系抽取的研究重点逐渐转向半监督和无监督的学习方式,并已经有一系列的成果。

以上研究都需要预先定义实体关系类型,例如雇佣关系、整体部分关系以及位置关系等。然而在实际应用中,要想定义出一个完美的实体关系分类系统是十分困难的。2007年,华盛顿大学图灵中心的Banko等人提出了OIE(Open Information Extraction,面向开放域的知识抽取方法框架),并发布了基于自监督(Self-supervised)学习方式的开放知识抽取原型系统(TextRunner)。该系统采用少量人工标记数据作为训练集,据此得到一个实体关系分类模型,再依据该模型对开放数据进行分类,依据分类结果训练朴素贝叶斯模型来识别“实体-关系-实体”三元组,经过大规模真实数据测试,取得了显著优于同时期其他方法的结果。

OIE技术直接利用语料中的关系词汇对实体关系进行建模,因此不需要预先指定关系的分类。另外,基于联合推理的关系抽取方法还有马尔可夫逻辑网(Markov Logic Network, MLN),它是一种将马尔可夫网络与一阶逻辑相结合的统计关系学习框架,也是在OIE中融入推理的一种重要实体关系抽取模型。此外,有研究人员使用语句级注意力机制的卷积神经网络模型对通过远程监督训练的数据集进行噪声过滤,达到了提高准确率的效果。

4.属性抽取

属性主要是针对实体而言的,以实现对实体的完整描述。由于可以把实体的属性看作实体与属性值之间的一种名词性关系,因此属性抽取任务就可以转化为关系抽取任务。

对属性抽取的任务来说,尽管可以从百科类网站获取大量实体属性数据,但大量的实体属性数据隐藏在非结构化的公开数据中。如何从海量的非结构化数据中抽取实体属性是值得关注的问题。一种方案是基于百科类网站的半结构化数据,通过自动抽取生成训练语料,以此训练实体属性标注模型,然后将其应用于对非结构化数据的实体属性抽取上。另一种方案是直接挖掘文本中实体属性与属性值之间的关系,据此实现对属性名和属性值在文本中的定位。这种方法的基本假设是属性名和属性值之间有位置上的关联关系。事实上,在真实语言环境中,许多实体属性值附近都存在一些限制和界定该属性值含义的关键词(属性名),在自然语言处理技术中将这类属性称为有名属性,因此可以利用这些关键词来定位有名属性的属性值。

5.事件抽取

事件是指发生在某个特定时间点或时间段以及某个特定地域范围内,由一个或者多个角色参与的动作组成的事情/状态的改变。目前已存在的知识资源(如维基百科等)所描述的实体及实体间的关联关系大多是静态的,而一个事件可能会分布在多个句子中,并且要同时考虑多个元素,但事件能够描述粒度更大的、动态的、结构化的知识,它是现有知识资源的重要补充。

通俗地说,事件抽取技术就是从种类众多的非结构化信息中,抽取出实体之间有价值的事件,并以结构化的形式辅助实体的知识图谱构建。事件抽取任务可以进一步分解为4个子任务——触发词识别、事件类型分类、论元(语言学概念,用来表示动作或事件的参与者)识别和角色分类,如图2-3所示。其中,触发词识别和事件类型分类又可以合并称为事件识别任务,而事件识别是判断句子中的每个单词归属的事件类型,是一个基于单词的多分类任务。论元识别和角色分类可以合并称为论元角色分类任务,论元角色分类任务是一个基于词对的多分类任务,判断句子中任意一对触发词和实体之间的角色关系。

另外,事件抽取任务又可以分为两个大类:元事件抽取及主题事件抽取。其中,元事件表示一个动作的发生或状态的变化,往往由动词驱动,也可以由能表示动作的名词等其他词性的词来触发,它包括参与该动作行为的主要成分,如时间、地点、人物等。而主题事件包括事件或活动,它可以由多个元事件片段组成。当前研究主要是面向元事件抽取,而对主题事件抽取的研究较少。

图2-3 事件抽取任务分类

依据事件抽取的手段,可以将其分为模式匹配与统计学两种。在事件抽取发展的早期,一般通过诸如语法树、正则表达式等人工编写的规则模板来判断,但是这种方法极度依赖人工规则的质量,且准确率有限。而后事件抽取可以使用弱监督学习进行匹配。现在主流的事件抽取方法则是使用基于统计学的机器学习与深度学习来实现。例如,利用BERT等预训练模型将事件提取的F值提高了10%以上。