APP下载

一种新型高效的文库知识图谱实体关系抽取算法

2021-02-21胡代旺焦一源李雁妮

西安电子科技大学学报 2021年6期
关键词:图谱语句语义

胡代旺,焦一源,李雁妮

(西安电子科技大学 计算机科学与技术学院,陕西 西安 710071)

实体关系抽取旨在检测/抽取给定语句中两个实体间的语义关系。从非结构化的文本中进行实体关系的抽取以自动构建知识图谱,是信息抽取的一个重要任务,也是自然语言处理中很多下游应用的重要基础组件,例如智能问答和知识库构建等。

随着深度学习迅猛发展,近年来已产生了一些较好的深度实体关系抽取算法。ZENG等[1]采用卷积神经网络通过捕获每个单词周围的文本信息进行实体关系抽取,但是这种方法受限于卷积核的大小,难以获取远距离文本的信息。XU等与ZHOU等[2-3]借助长短记忆网络(LSTM)来获取句子语义信息,以实现实体关系的抽取。该算法在一定程度上缓解了卷积神经网络的缺陷,但是仍然难以获取长句子的全局文本语义信息。近些年,预训练语言模型在自然语言处理的各个领域都取得了非凡的表现,例如:机器翻译、语音处理、实体关系抽取等。DEVLIN等[4]提出的预训练语言模型BERT在许多自然语言处理的任务中取得了不错的结果。WU等[5]提出一种基于BERT新的实体关系抽取方法。该算法首先通过在语句中两个实体前后插入不同的标志来标注实体的位置,然后使用BERT计算句子中两个实体的上下文重表示,并使用两个实体上下文重表示的拼接作为关系的隐状态输入到分类层。SOARES等[6]同样采用BERT模型,在此基础上测试了多种实体标注方式与输出方式,进一步提出了一种使用大量无标签数据训练模型的方式。然而,BERT中参数数量过于庞大,训练缓慢,且难以扩展,将上述基于BERT的上述方法称为基于序列的方法。这类方法受到无结构文本的限制,且只能提取单个句子的局部语义信息,因此,其实体关系抽取的精度受限。

图神经网络[23]依据图的邻接关系提取信息,打破了无结构文本的限制,因此被广泛地应用于实体关系抽取。其中最为常见的是基于语法依赖树的实体关系抽取模型。MIWA等[7]提出了基于依赖关系树的实体关系抽取模型,通过长短期记忆网络依据依赖关系获取更可靠的上下文表示。之后,ZHANG等[8]提出了一种剪枝策略,依据两个实体之间的最短依赖路径删除依赖树中不相干内容并筛选有效信息,同时采用了一种扩展的图卷积神经网络以提升计算效率。GUO等[9]和SUN等[10]都采用了软剪枝策略,让模型自动学习如何有选择地关注对关系提取任务有用的相关子结构。为了避免域外解析器的错误传播影响关系提取性能,JIN等[12]设计了一种完全依赖树林,对所有可能的树进行编码。VEYSEH等[13]、GUO等[14]和VEYSEH等[15]通过隐含构建模拟语法依赖树的方式,摆脱实体关系抽取模型对语法解析器的依赖。上述这些方法都针对于单个语句中仅包含一对实体的情况,没有考虑同一个句子中多个实体或不同句子中实体之间的联系。ZHU等[16]和CHRISTOPOULOU等[17]考虑了一个语句中包含多个实体的情况,分别设计了以句中实体为顶点的实体关系图。考虑到一个实体在多个语句中出现的情况,ZHAO等[19]考虑整个文库中所有实体对之间的联系,建立了实体对图。NAN等[18]针对文档级别实体关系抽取问题,将文档中出现的所有实体作为顶点建图,在文档的多个句子之内和之间进行信息整合。然而,上述方法没有考虑关联句子的相关程度,因此,不能对相关有关联的句子中的信息进行筛选/提取,一定程度上阻碍了实体关系抽取的精度提升。

与这些仅利用大量数据进行训练的方式不同,目前出现了一些工作开始在集成先验知识辅助实体关系抽取的方向上进行探索。例如,ZHANG等[24]和PETERS等[25]提出了一种通用方法,将多个知识图谱嵌入到大型模型中,利用大型文本语料库和知识图谱来训练增强的语言表示模型,使得模型可以同时充分利用词汇,句法和知识信息,然而知识表示过程与语言表示的预训练过程完全不同,会出现异构信息融合的问题。ZHANG等[11]设计了一种二部图记录统计的实体对类型与关系类型之间的概率分布,然后将先验概率分布作为知识与语句特征信息结合。但上述方法依赖预先标注的实体类型这一信息,这一条件通常在实际中难以满足,因此,该类方法存在一定的局限性,难以实用。

综上所述,现有实体关系抽取模型大多仅从包含一对实体的单个语句中挖掘信息,存在很大局限性;少数跨语句间获取信息的工作并未对跨语句获取信息进行筛选,会引入不相关信息;在引入外部知识方向进行探索的工作受困于异构信息融合的问题。此外,通过对实体关系抽取问题常用数据集观察发现,数据集中混杂大量负样本(类别标签为无具体意义的”other”或者”no_relation”)。这些负样本杂乱无章地分布在特征空间,严重影响实体关系抽取问题的精度。现有实体关系抽取模型都未对这些负样本做特殊处理,而是将其直接作为一个新类别。这种方式忽视了负样本散布在空间中,无法聚簇的特征,不能有效避免负样本的干扰,导致模型精度受限。

为了克服已有算法的缺陷,笔者首先设计了一种基于整个训练文库的语义关系图,建立了文中所有语句中实体之间的关联关系,在此基础上,基于图神经网络及负样本训练,提出了一种新型高效的文库知识图谱的实体关系抽取算法(Entity Relation Extraction with Corpus Knowledge Graph,ERECKG)。主要工作可概括如下:

(1)基于训练语料库,构建了所有语句中相关实体间的语义关系图,以此作为实体关系抽取的知识图谱。提出了一种基于实体关系相似度的图神经网络结构,它可以从知识图谱中挖掘与待抽取关系语句相关的知识。

(2)采用待抽取关系语句本身信息和与之相关的知识相结合的方式组成特征,同时引入了一种负样本学习方法,以此拉开不同实体关系类样本特征间的距离,并保持同类实体关系样本特征紧凑。

(3)在此基础上,提出了一种新的高效深度实体关系抽取算法ERECKG。并将该算法与当前最具代表性的深度实体关系算法在标准数据集上进行了广泛的实验,验证了该算法的正确性与高效性。

1 新型高效的文库知识图谱的实体关系抽取算法——ERECKG

1.1 ERECKG模型概述

显而易见,对一对实体语义关系的深入挖掘,会使得对这对实体之间的语义关系预测更加准确。现有方法大多从包含实体对的单个句子中挖掘信息。对于给定的语料库S中每个句子中的信息都只是该句子局部的信息,不利于精确的关系提取。为此,笔者设计了一种表示不同句子中实体之间关联的语义实体图作为知识图谱积累从文库中学习到的知识,然后将从知识图谱中挖掘的相关知识与待抽取关系语句本身信息相结合组成特征,同时引入了一种负样本学习方式,提高对负样本的利用程度。笔者提出的模型由3部分组成:文本特征提取模块、知识图谱模块和基于负样本的分类器模块。其网络结构图如图1所示。

图1 ERECKG深度网络结构图

1.2 ERECKG算法

1.2.1 文本特征提取模块

众所周知,高质量句子的深度重/隐表示对于实体关系抽取至关重要。研究发现:在诸多应用领域已取得巨大成功的预训练语言模型ALBERT[20],由于其具有嵌入层参数分解和跨层参数共享两种策略,当参数量较小时,可获取强大的上下文语义表达能力,因此引入ALBERT作为文中算法的语句特征提取器。

对于一个关系陈述三元组Γ=〈s,ei,ej〉,首先在句子s的句首和句尾分别插入两个标志符号“[CLS]”和“[SEP]”。然后在该句子中插入两个标志符〈e1s〉和〈e1e〉以分别标记第一个实体ei开始和结束位置,以同样的方式对语句中的第2个实体ej标记其开始与结束位置〈e2s〉和〈e2e〉。之后将该标记后的句子输入到ALBERT中,以获取该句子中每个单词(token)的上下文重表示向量。

按照预训练语言模型的惯例,用句首标志位”[CLS]”的上下文重表示向量作为句子语义的隐状态向量hs,两个实体提及包含单词的上下文重表示的平均分别作为两个实体的隐状态向量hei和hej。句子语义的隐状态向量和两个实体的隐状态向量都被输入到知识图谱模块,用于构建和更新知识图谱。此外,两个实体的隐状态向量还被用于组成从文本中挖掘的待抽取关系语句本身信息记为C。考虑到关系的有向性,抽取语句s中ei到ej的语义关系与抽取语句s中ej到ei的语义关系不同,即陈述Γ=〈s,ei,ej〉中的语义关系与陈述Γ′=〈s,ej,ei〉中的语义关系不同。文本信息C(Γ)与C(Γ′)如下所示:

C(Γ)=hei⊕hej,C(Γ′)=hej⊕hei。

(1)

1.2.2 知识图谱模块

为了获取更丰富的关于一个句子中包含实体对的信息,采取了在文库中跨语句获取额外信息作为知识的方式,避免了异构信息融合。利用整个文库S中包含的所有实体作为顶点,如果两个实体出现在同一个语句中,则在这两个实体顶点之间增加一条边,考虑到两个实体可能同时出现在多个语句中,两个顶点之间可以有多条边。按照这种方式,构建一张庞大的实体关系图作为知识图谱。对于一个实体顶点,直接利用图神经网络从该实体顶点的所有邻居中公平的获取信息无法筛选有效信息,即与当前待分类的语句相关性较高的信息。

如上所述,该问题面临的主要难点在于如何从知识图谱中挖掘与待抽取关系陈述相关性高的信息。考虑到如果两个句子的语义越相似,则这两个句子讲述的内容越相关,于是引入了语义相似度用来评价两个句子内容的相关性。当抽取一个句子中两个实体之间的语义关系时,这个句子被称为目标语句。对于其中一个实体,通过从文库中其他包含该实体的语句中挖掘相关信息,丰富对该实体的认识。文库中包含该实体的其他语句被称为参考语句。在这个过程中,计算目标语句与每一条参考语句的语义相似度,用来评价参考语句与目标语句讲述内容是否类似。通过将语义相似度作为从参考语句中获取信息的权重,实现了对邻居信息的筛选,防止不相关或相关性较低信息对关系抽取精度的影响。为了实现这一过程,需要记录每一条句子的语义信息,于是笔者提出了一种新的语义关系图——SRG(Semantic Relation Graph)。

不同于其它实体关系抽取方法,对于分类语料库S中的每个关系陈述,仅考虑当前关系陈述中句子的局部信息。SRG将S中的所有关系陈述中的实体作为其顶点,以实体间的关系作为其边。即:给定S中的一个关系陈述Γ=〈s,ei,ej〉,将在深度模型中获得的实体ei和ej的隐状态hei和hej记录在对应顶点处,将句子s在神经网络中获得的语义信息隐状态hs记录在连接ei和ej的边上。SRG示意图如图2所示。

图2 ERECKG从所构建的实体语义关系图(文库知识图谱)中挖掘相关知识示例

为了准确预测关系陈述Γ=〈s,ei,ej〉的关系类别标签,基于SRG汇总关于两个实体(ei,ej)的全局信息。为了在汇总信息的过程中有效筛选出相关性较高的信息,降低不相关或相关度较低信息对算法精度的影响,笔者设计了一种基于语义相似度的知识挖掘方法。即分析其他同样包含ei或ej的句子语义,依据这些句子与当前句子s语义相似程度,为这些句子赋予不同的权重,从权重较高的句子中获取更多的信息。具体如下,令N(ei)为ei在SRG中邻居顶点集合;V((ei,ej))=N(ei)∪N(ej)-{ei,ej},为{ei,ej}这一对实体的邻居顶点集合;Sij(ei,ej)为包含实体ei与ej的句子集合,即ei与ej之间的边集;Ψ(ek,(ei,ej))=Sik(ei,ek)∪Sij(ei,ej),为包含实体对(ei,ek)或实体(ej,ek)的句子的集合,即一个实体与一对实体之间边的集合。为了从知识图谱中挖掘和关系陈述Γ=〈s,ei,ej〉相关的知识,考虑到计算复杂度,本文在知识挖掘过程中只涉及实体对(ei,ej)的直接邻居V((ei,ej))。对于ek∈V((ei,ej)),计算ek和实体对(ei,ek)每一条边s′∈Ψ(ek,(ei,ej))与s的语义相似度,作为ek与实体对(ei,ej)的相关度Sk,如下所示:

(2)

然后,加和所有的相似度作为实体ek与实体对(ei,ej)的相关度,即从ek获取信息的权重αk,如下所示:

(3)

之后,笔者设计了一种基于语义相似度的图神经网络,根据式(3)获得的语义相似度在SRG中挖掘与关系陈述Γ=〈s,ei,ej〉相关的知识K(Γ):

(4)

其中,W(·)是可学习的深度网络权重矩阵,b是偏移。

例如,给定一个包含9个句子的文库,其实体集合为{e1,…,e7},语句集合为{s1,…,s9},所构建的SRG如图2右图所示。当要预测一对实体间关系时,通过基于语义相似度的图神经网络从构建好的SRG中获取全局信息。例如,当预测关系陈述Γ=〈s9,e1,e2〉时,文中为e1和e2分别聚集各自的邻居信息。其中,N(e1)={e2,e3,e4,e5},N(e2)={e1,e5,e6,e7},V((e1,e2))={e3,e4,e5,e6,e7}。对于实体对(e1,e2)的邻居集合中的每一个实体e∈V((e1,e2)),先计算其与实体对(e1,e2)的相关度,例如e5和e7,Ψ(e5,(e1,e2))={s3,s4},Ψ(e7,(e1,e2))={s6,s7},计算S5和S7如下所示:

S5=cos(s3,s9)+cos(s4,s9),S7=cos(s6,s9)+cos(s7,s9) 。

(5)

然后,计算获取信息的权重αk如下所示:

(6)

根据αk从SRG中获取相关信息并汇聚,得到关于关系陈述Γ的知识K(Γ):

K(Γ)=α3e3+α4e4+α5e5+α6e6+α7e7。

(7)

上述过程显示,虽然文库中所有实体构建了一张庞大的网络结构图,但当抽取一条语句中实体对之间语义关系时,计算只涉及到这两个实体各自的邻居,是一种局部小体量的计算,这保证了网络模型的效率。此外,考虑到二阶邻居实体顶点包含信息与待分类关系实体对的相关性较低,不能有效提高实体关系抽取精度,甚至会导致无效信息损害精度,所以仅使用一层图神经网络,获取与待分类关系实体对最相关的信息,丰富对待分类实体对的了解,提高关系抽取精度。

将关于关系陈述Γ的文本信息C(Γ)与关于Γ的知识K(Γ)拼接在一起作为关系陈述的Γ特征F(Γ),然后将F(Γ)输入到基于负样本的分类器模块。F(Γ)的计算如下所示:

F(Γ)=C(Γ)⊕K(Γ) 。

(8)

1.2.3 基于负样本的分类器模块

笔者观察到数据集中混杂大量负样本。为了降低负样本对模型的干扰,提升模型精度,拟引入一种负样本已知的训练方式。近些年,如何在训练过程中使用数据集中的负样本已经成了一个热点的研究问题。HardNet[26]通过最大化批次中最接近的正样本和最接近的负样本之间的距离,提升精度。NAT[27]强制分类器在负样本上为每个类别输出相等的概率,避免将负样本聚簇。FaceNet[28]提出了一种损失函数三元组损失的概念,最小化同类样本特征间距离,最大化不同类样本特征之间的距离。受FaceNet的启发,引入了三元组负样本损失函数。

基于负样本的分类器模块,将Γ特征F(Γ)作为输入送入softmax分类器,输出预测的Γ的标签,其形式化如下所示:

p(y|Γ)=soft max(W(F(Γ))+b) ,

(9)

(10)

之后就可以根据预测结果计算分类损失。分类损失使用交叉熵损失函数如下所示:

(11)

此外,基于以三元组损失用于最小化同类样本特征间的距离,最大化不同类样本特征之间的距离,可以使得特征提取结果类内耦合,类间分散。令Γ为当前待抽取关系陈述,即锚点;Γp为正样本,即与Γ相同类型的其他关系陈述,Γn为负样本,即与Γ不同类型的其他关系陈述。三元组损失计算如下所示:

Ltriplet=max(d(Γ,Γp)-d(Γ,Γn)+m,0) ,

(12)

其中,d为距离函数,采用的是余弦相似度;m是一个参数,笔者取值0.5。

最终的损失函数由这两部分之和组成:

L=Lclassify+Ltriplet。

(13)

式(13)的损失函数一方面直接关注分类精度,另一方面通过利用负样本学习拉开不同类关系陈述特征之间的距离,间接地提升了模型的精度。

2 实验结果及分析

2.1 实验数据集

使用两个标准数据集SemEval-2010 Task 8[21]和TACRED[22]以评价笔者提出的算法及基准算法的性能。

SemEval-2010 Task 8:包含9个语义关系类型和另一种人工关系类型Other。该关系不属于这9个关系类型。9种关系类型分别是Cause-Effect,Component-Whole,Content-Container,Entity-Destination,Entity-Origin,Instrument-Agency,Member-Collection,Message-Topic和Product-Producer。该数据集中有10 717个句子,每个句子包含实体,以及句子中的对应关系类型。关系是有方向的,这意味着Component-Whole(e1,e2)与Component-Whole(e2,e1)不同。对于SemEval-2010 Task 8,使用宏平均F1分数,它被官方用作评估指标。

TACRED:是一个大规模的实体关系抽取数据集,有106 264个例子,来自每年TAC知识库人口(TAC KBP)挑战使用的语料库,通过新闻通讯社和网络文本构建。在TAC KBP挑战中使用的TACRED 包含41关系类型的例子或者如果没有定义的关系被标记为no_relation。这些例子是通过结合TAC KBP挑战提供的人工注释创建的。数据集已经被划分为68 124个训练实例、22 631个开发实例和15 509个测试实例。对于TACRED,使用微平均F1分数,这是在此数据集上使用的主要评估指标。

2.2 实验环境

所有实验都是在HP ProDesk 480 G1 MT Mini Tower(Intel(R)Xeon(R)Gold 5115 CPU,2.40 GHz,97 GB RAM和NVIDIA Tesla P40上进行的。本文的模型使用Python 3.6 和Pytorch 1.2实现和测试的。为了对特定关系提取任务微调ALBERT模型,并在训练过程中避免过拟合,采用了dropout策略。针对两种数据集SemEval-2010 Task 8和TACRED,在实验中所设置的网络超参分别为:初始权重是ALBERTxxlarge,学习率是2×10-5,语句最大长度是128,训练次数是10次,Dropout率是0.1。

2.3 算法性能评价指标

遵循实体关系抽取这一任务中广泛使用的衡量标准即F1得分,定义如下所示:

(14)

其中,P和R分别是精度和召回率。

2.4 实验结果

为了有效评价文中算法的性能,选择了几个最具代表性的深度实体关系算法作为基准算法。它们是:C-GCN[8],R-BERT[5],BERTEM[6],AGGCN[9],LST-AGCN[10],Student-R[11],FORESTFT-DDCNN[12]和MVC[15];其中,BERTEM[6]和AGGCN[9]分别采用其论文中结果最好的变种MTB+ BERTEM和C-AGGCN。实验中所采用的深度模型分别为CNN[1],Attention Bi-LSTM[3],PA-LSTM[22]。实验结果如表1和表2所示。

表2 在TACRED上的实验结果

表1和表2的实验结果表明:(1)在数据集SemEval-2010 Task 8上,文中算法的F1性能优于现有最好算法MTB+ BERTEM[6],超出1.9%;与现有模型相比,本文最高超出5.7%;平均超出对比模型4.58%。(2)在数据集TACRED上,文中算法的F1性能优于现有最好算法MTB+ BERTEM[6],超出3.2%;与现有模型相比,文中算法最高超出9.6%;平均超出对比模型6.54%。(3)文中算法ERECKG在SemEval-2010 Task 8和TACRED的两个基准测试中均优于所有代表性的基准算法,表明了笔者提出算法的正确性和有效性。

2.5 消融研究

本节验证语义关系图和基于语义相似度的图神经网络对于分类精度的贡献程度。笔者设计了下面实验。在数据集SemEval-2010 Task 8和TACRED上,测试以下4种模型方案的性能。

方案1 取关系陈述Γ的文本信息C(Γ)为特征,仅使用分类损失Lclassify;

方案2 取关系陈述Γ的文本信息C(Γ)与Γ的知识K(Γ)拼接作为Γ的特征,仅使用分类损失Lclassify;

方案3 取关系陈述Γ的文本信息C(Γ)为特征,使用分类损失Lclassify与三元组损失Ltriplet之和作为损失函数;

方案4 取关系陈述Γ的文本信息C(Γ)与关于Γ的知识K(Γ)拼接作为Γ的特征,使用分类损失Lclassify与三元组损失Ltriplet之和作为损失函数。实验结果如表3所示:

表3 消融研究实验结果

观察表3中实验结果可以得出以下结论:(1)相比第1种方案,第2种方案在两个数据集上分别取得了优于第1种方案1.3%和2.1%的结果,这说明本文设计的知识图谱模块可以有效提高算法的分类精度;(2)第3种方案在两个数据集上分别取得了优于第一种方案 0.7% 和1.6%的结果,这说明本文引入的三元组损失同样可以提高算法的分类精度;(3)第4种方案在两个数据集上分别取得了优于第2种方案 0.6% 和0.8%的结果,以及优于第3种方案1.2%和1.3%的结果,这说明笔者设计的知识图谱模块与引入的三元组损失两者并不冲突,同时采用可以得到最高的算法精度。

3 结束语

针对已有深度实体关系抽取不能有效抽取实体间的语义关系,导致其算法精度较低的缺陷,笔者设计了一种新的语义关系图作为知识图谱和一种基于语义相似度的图神经网络;在此基础上,引入负样本学习及ALBERT预训练语言模型,提出了一种新的高效的深度实体关系抽取算法ERECKG。大量的实验结果表明笔者所提出算法的正确性与有效性。

猜你喜欢

图谱语句语义
真实场景水下语义分割方法及数据集
基于图对比注意力网络的知识图谱补全
图表
主动对接你思维的知识图谱
“吃+NP”的语义生成机制研究
汉语依凭介词的语义范畴
基本算法语句
我喜欢
作文语句实录
中国知名官方智库图谱