王 红,吴燕婷
(中国民航大学 计算机科学与技术学院,天津 300300)
知识图谱(knowledge graph)是一种揭示实体之间关系的大规模语义网络,能够对现实事物之间的关系进行形式化的描述[1],被广泛应用于智能推荐、问答系统等领域。实体关系抽取是构建知识图谱的主要任务之一,早期人们采用流水线方法(piplined method)实现实体和关系的抽取,即先进行命名实体识别(named entity recognition,NER)[2-3],然后将识别出的实体两两组合再进行关系分类(relation classification,RC)[4-5],该方法使得每个模块比较灵活并容易设计,但存在错误级联、冗余信息等问题。而后发展到联合抽取方法(joint extraction method),实体关系联合抽取是指将命名实体识别和关系抽取融合成一个任务,进行联合学习[6]。
目前实体关系联合抽取方法主要分为两大类:基于特征工程的方法[7-10]和基于深度学习的方法。其中基于特征工程的方法依赖人工定义特征模板,资源消耗巨大且效率低下。为了减少人为的参与,基于深度学习的实体关系联合抽取方法成为研究热点。基于深度学习的联合抽取方法是从联合编码分别解码的共享参数方式[11-12],到共同编解码的序列标注方式[13]。陈佳沣等[14]则是在共同编解码的联合抽取模型中引入强化学习来对数据集进行降噪。然而均无法解决重叠关系三元组抽取问题,而重叠关系三元组大量存在于文本数据之中,导致前述方法对三元组的抽取效果不佳。针对重叠关系三元组抽取问题,近年来有采用图结构的方式[15-16]或是采用基于复制机制的序列到序列方法[17]均取得了一定进展,但都是将关系视为实体对上的离散标签,导致抽取效率不高且模型开销大。近年WEI et al[18]提出的CasRel模型将关系建模为头实体映射到尾实体的函数,建立多关系的标注器,为解决重叠关系三元组抽取问题提供了新的模式。但该模型对头实体信息只是简单的计算平均值后与编码特征结合,没有深层的挖掘头实体的位置和语义信息。综上,现有的实体关系联合抽取方法大多致力于抽取实体之间显性的关系,这类方法虽然取得了显著的效果,但忽略了实体之间潜在的隐性关系三元组的挖掘,在文献[18]的启发下,本文提出了头实体增强的多跳简单推理并结合注意力的权重决定最终跳数的模型Multi-Air,挖掘出实体间潜在的关系三元组,提升三元组抽取效率。
在民航突发事件知识图谱构建中,王红等[19]采用文本多分类方式实现民航突发事件领域本体关系的分类,主要研究了关系分类问题。之后,王红等[20]采用双向长短期记忆网络(bidirectional long-short term memory,Bi-LSTM)结合条件随机场(condition random fields,CRF)的方法实现自动化民航突发事件实体识别,主要研究实体抽取问题,没有考虑实体关系的联合抽取。这种先实体识别后关系分类的流水线模型存在实体识别的错误会传递到关系分类任务中,且在关系分类任务中一个实体对只能对应一种关系,无法解决民航突发事件数据集中重叠关系三元组问题和实体间多跳隐性关系三元组挖掘问题。故将提出的Multi-Air模型应用于民航突发事件数据集,解决该数据集中重叠三元组抽取难的问题,为构建领域知识图谱提供更丰富的三元组知识。
门控循环单元(gated recurrent unit,GRU)由CHO et al[21]提出,是一种循环神经网络,具有处理不定长度序列的优势,双向门控循环单元(bidirectional gated recurrent unit,Bi-GRU)能够获取序列上下文信息。为此,本文在实体关系联合抽取模型的基础上,提出了基于Bi-GRU的头实体特征增强的多跳注意力隐性关系联合挖掘模型Multi-Air,具体的贡献包括:
1) 基于Bi-GRU的头实体信息增强的实体关系联合抽取模块BG_CasRel,旨在多关系尾实体识别时充分利用头实体信息。
2) 将抽取出的尾实体作为下一跳的头实体进行下一跳尾实体预测,利用注意力机制动态进行多跳实体及关系预测,从而实现隐性关系三元组挖掘。
3) 将提出的模型Multi-Air应用于民航突发事件数据集中,解决数据集中重叠三元组和多跳隐性三元组抽取难的问题。
实体关系联合抽取任务被定义为:给定输入句子,预测出句子中存在的关系三元组(头实体,关系,尾实体)。Multi-Air模型主要包括两部分:
1) BG-CasRel模块。首先使用BERT(bidirectional encoder representations from transformers)[22]模型对输入句子进行特征编码并通过Sigmoid函数预测出头实体的位置,然后通过Bi-GRU对头实体进行特征增强。在充分利用头实体的深层信息后输出多关系尾实体可能的位置。
2) 多跳注意力模块。将上一跳的尾实体当作下一跳的头实体进行2跳的实体及关系预测,通过循环迭代这一2跳过程,Multi-Air可以容易的将2跳扩展至多跳。具体地,通过多跳注意力模块学习各跳的实体重要性权重,然后选择权重最大的多跳尾实体及相应路径关系表征作为关系三元组的最终抽取结果。如图1所示。
图1 多跳注意力隐式关系挖掘模型图Fig.1 Multi-hop attention implicit relations joint mining model
BG-CasRel模块是由文献[18]中传统CasRel模型改进而来,其目标是识别出输入句子所包含的三元组,如图2中输入的句子,得到3个头实体[梅帕蒂航空公司,DHC6飞机,撞山]。[DHC6飞机]头实体存在对应“所属航司”这个关系的尾实体[梅帕蒂航空公司]和关系“事件结果”的尾实体[撞山],而[梅帕蒂航空公司]和[撞山]这两个头实体则没有对应任一关系的尾实体,最后得到的结果是两个三元组{DHC6飞机,所属航司,梅帕蒂航空公司}和{DHC6飞机,事件结果,撞山}。模型总体结构如图2所示,主要包括四个部分:
图2 BG-CasRel实体关系联合抽取模块Fig.2 BG-CasRel joint entity and relation extraction model
1) 编码层。采用BERT,一种利用大量外部资源获取浅层特征的预训练语言模型对输入句子进行编码,提取句子特征信息。
2) 头实体标注层。根据上层编码信息,输出句子中所有头实体的开始和结束位置。
3) 头实体特征增强层。将经过BERT编码后的头实体通过Bi-GRU层进行深层特征提取,并将其与BERT编码特征融合。
4) 尾实体迭代标注层。利用上层交互信息,采用Sigmoid函数输出头实体对应的多关系的尾实体开始和结束位置。
1.1.1编码层
采用BERT模型将输入的句子X进行编码,获取句子的特征信息H,并将此输入头实体标注层模块。该编码模块获取到的句子隐藏特征信息与头实体识别、多关系尾实体识别息息相关。如式(1)所示:
hi=Bert(xi) .
(1)
式中:xi代表句子中第i个字符的输入向量,hi为xi经过BERT编码后的特征向量。{x1,x2,…,xn}∈X,{h1,h2,…,hn}∈H.
1.1.2头实体标注层
将编码层的输出特征信息H作为头实体标注层的输入,利用两个相同的二进制分类器去为句子中的每个单词分配一个二进制(0/1)标志,该标记代表当前标记是否对应于头实体的开始或结束位置。当句子中存在多个头实体时会有多个二进制标注,同时输出多个头实体对应的开始和结束位置,采用的是最近首尾标志匹配原则来获得头实体跨度范围。头实体分类器如计算公式(2)和(3)所示:
(2)
(3)
1.1.3头实体特征增强层
在头实体涉及重叠关系三元组的情况下,由于上层头实体标注模块识别出的头实体信息与下层不同关系尾实体的识别之间存在较强的关联,因此,充分利用头实体信息去进行不同关系的尾实体识别,可以挖掘出更多更准确的关于此头实体的重叠关系三元组。
GRU相对于其他的循环神经网络来说具有计算量较小、收敛速度较快的优势,对处理实体类别多样、可能存在复合实体或混合实体所导致的实体长度不一的情况非常友好,因此GRU循环神经网络能够对不同长度的头实体进行深层信息提取。GRU单元结构如图3所示。
图3 GRU内部单元结构Fig.3 Internal structure of GRU
GRU由更新门zt和重置门rt构成,zt决定上一状态信息的多少能够参与到当前状态,rt决定丢弃上一状态信息的多少。计算公式见式(4)-式(7):
(4)
(5)
(6)
(7)
由于GRU只能捕获正向语义信息,忽视了反向信息的获取,为了弥补GRU的不足,进而采用Bi-GRU对头实体进行特征增强,Bi-GRU网络结构如图4所示。
图4 Bi-GRU模型框架Fig.4 Framework of Bi-GRU model
(8)
1.1.4尾实体迭代标注层
尾实体迭代标注层和头实体标注层采用相同结构的二进制分类器,但由于头实体可能存在多个对应关系的尾实体,所以对任一关系都有相应的尾实体分类器去分别识别这一关系中头实体对应的尾实体的开始和结束位置。故将上层提取头实体的上下文语义信息与BERT特征层信息进行加和,使解码时更加关注到头实体特征信息,从而更好地指引不同关系尾实体的识别。若句中含有多个头实体,则将每个头实体迭代进行多关系尾实体的解码。计算公式见式(9)和式(10):
(9)
(10)
注意力机制(attention)最早应用于图像领域,注意力权重大小可以理解为所关注点对任务的重要程度,在自然语言处理领域中使用注意力对单词或是字符计算权重大小也代表着其对任务的影响程度。通过BG_CasRel模块得到上一跳的尾实体后,将其作为下一跳的头实体迭代进行多跳实体预测,Multi-Air模型采用注意力机制对多跳尾实体的重要性进行学习。具体地,首先计算每一跳尾实体与最终尾实体之间的相似度分数,然后通过Softmax函数计算各个多跳尾实体的相似度权重,具体计算如式(11)-式(12)所示:
(11)
(12)
模型选择最大的注意力权重对应的尾实体作为最终预测的多跳尾实体,选择头实体到该多跳尾实体之间的关系路径表征作为最终预测的多跳关系。
将头实体标注层的损失与多跳尾实体的损失相加作为总体模型的损失,具体采用交叉熵损失函数,如式(13)所示。
(13)
1.4.1实验数据与参数设置
为验证模型的有效性,采用远程监督学习生成的公共数据集NYT(New York times)[23]进行实验。NYT数据集一共包含24种不同预定义关系类型,采用56 195条句子进行训练,5 000条句子进行验证和5 000条句子用于测试。数据集中包含不同重叠程度三元组划分的句子,具体统计情况见表1所示。
表1 NYT不同类型重叠三元组统计情况Table 1 Statistics of different types of overlapping triple in NYT
模型运行在Ubuntu16.04版本的操作系统上,基于python3.7版编码语言,训练过程中采用早停机制防止模型过拟合,并用Adam优化器加快模型收敛速度。设置Batch size大小为6,学习率为1×10-5,输入句子最大序列长度为300,隐藏层向量维度为768,设置最大的Epoch为100,丢失率为0.5,迭代跳数hop取2,此时实验结果得到最优。
1.4.2评价指标与实验结果
采用准确率(P)、召回率(R)、F1值作为实验结果的评价指标,如式(14)-式(16)所示:
(14)
(15)
(16)
式中:PT代表预测正确的三元组数量,PF为预测错的三元组数量,NF代表实际存在但没能预测出的三元组数。P代表预测正确的三元组在预测总的三元组的占比,R代表预测正确的三元组在实际存在三元组的占比,F1是衡量两者的综合效果。基于实体粒度划分不一的原因,故采用部分匹配的方式定义预测正确三元组,预测出三元组中正确的关系和头尾实体的开始位置即视为预测正确三元组。
在对比模型的选取上,采用近几年在重叠关系三元组抽取中4个较具有代表性的模型,分别是NovelTagging[13]、GraphRel[16]、CopyR-RL[17]、CasRel[18],实验结果对比如表2所示。
表2 NYT数据集各模型实验结果Table 2 Experimental results of different models in NYT dataset %
从实验结果可以看到Multi-Air模型相较于其他模型在3个指标上都有不同程度的提升,说明引入头实体的深层特征信息和采用多跳注意力挖掘隐性关系能够提高对三元组的抽取效率。基于准确率与召回率提升的幅度不一致的情况,为了进一步验证头实体特征增强模块与多跳注意力模块对模型总体性能的影响,进行了模块对比实验,如表3所示。
表3 Multi-air在NYT数据集的消融实验Table 3 Multi-air ablation experiment in NYT
通过分析表3可以发现采用头实体特征增强模块能够进一步提升三元组抽取的准确率,而采用多跳注意力模块能够对模型的召回率有帮助,能够挖掘出更多潜在的三元组。综上,将两者结合能够使模型的抽取三元组效果达到最优。
数据来源于中国民用航空安全信息系统[24]在国际事故调查跟踪一栏中发布的事故调查报告文本,将1 000多个事件文本进行清洗并整合到一起,根据数据特点构建小型数据词典后对数据进行句子级别划分并分词。自行标注2 036条数据,涉及23种不同类型关系,其中1 628条用于训练,408条用于测试。通过对数据的标注,发现数据中含有不同类型的重叠关系三元组,表4给出了民航突发事件重叠关系三元组示例(加粗字体为涉及多关系单实体或实体对)和2跳关系三元组示例(若是n跳则n个三元组迭代进行)。
表4 民航突发事件中三元组类型Table 4 Types of triples in civil aviation emergency
进一步对所含不同重叠类型三元组的标注句子进行统计,由于多跳类型三元组包含在重叠类别中,故不单独统计(见表5),发现该数据集仅涉及少量的正常三元组和实体对重叠关系三元组,反而存在大量的单实体重叠关系三元组。该数据集重叠关系三元组的分布特点是由于事故报告的描述是针对航空器来展开的,相对于正常三元组占比较大的数据集更加适合用来验证提出的联合抽取模型对重叠三元组的抽取效果,而具有多跳关系的三元组通常包含在重叠三元组中,故模型对重叠三元组抽取效果也适用于验证多跳关系三元组的挖掘效果。
表5 民航突发事件数据重叠三元组统计Table 5 Statistics on overlapping triples of civil aviation emergency data
选取目前实体关系联合抽取主流模型CasRel与提出的Multi-Air模型进行对比,实验结果如表6所示。实验还对比了头实体增强模块与多跳注意力模块对民航突发事件数据集抽取效果,进而说明提出的Multi-Air模型的有效性。从表6可知Multi-Air模型较CasRel模型在民航突发事件数据集的不同评价指标上均有显著提升,其中召回率和F1值分别提升了7.6%和5.2%.该模型与基线模型分别在两种数据集上效果提升差别较大,主要原因是两种数据集中重叠关系三元组的数量占比不同,NYT数据集大部分是正常三元组而民航突发事件数据集中多半是单实体重叠关系三元组。故在民航突发事件数据集的表现也证明了采用Bi-GRU对先识别的头实体进一步的特征提取能更加有效地指导重叠关系三元组中不同关系尾实体的识别,采用多跳注意力迭代方式能够挖掘出更多的潜在关系三元组。
表6 民航突发事件数据集实验结果Table 6 Experimental results of civil aviation emergency data set %
为了进一步说明两种模型在民航突发事件数据集上表现的不同,选取部分抽取结果进行分析,抽取示例如表7所示。表7中两种模型在抽取唯一结果的三元组时表现都很好,例如“所属航司”对应的尾实体是明确的。但对于一些在不同场景下对应不同关系的三元组表现略有差异,如“事件原因”、“事件结果”这类型关系对应的尾实体往往因场景而定。正如示例1给出的[发动机停车]是事件的结束,后续没有进一步事故的发生,故“事件结果”关系确实应为[发动机停车],该情况两种模型表现都很好。但对于示例2中的[双发失效]并不是事件的最终结果,飞机[坠毁]才是整个事件的结果。在此情况下CasRel模型表现欠佳,识别出错误的三元组(表7中加粗三元组标识),导致漏识别{图154,事件原因,双发失效}、{图154,事件结果,坠毁}这两个三元组,而Multi-Air模型由于加强了对头实体特征的提取,并且使用多跳尾实体的识别方式,对潜在的事件“原因”导致事件“结果”进行挖掘,抽取出所对应的正确三元组,整体抽取效果更佳。
表7 不同模型在民航突发事件中的抽取结果Table 7 Extraction results of different models in civil aviation emergency
本文提出了一种多跳注意力隐性关系挖掘模型Multi-Air,通过在公共数据集上的实验结果表明,对头实体深层信息的充分利用和基于多跳注意力的简单关系推理方式能够进一步提升重叠三元组的抽取效率。将Multi-Air应用于民航突发事件数据集,实验结果证明该模型较好地解决了民航突发事件数据集中重叠关系三元组抽取难和忽略实体间隐式关系特别是多跳关系的挖掘问题,为构建高质量民航突发事件知识图谱提供方法支撑,进而对未来民航突发事件推断和预警预测提供帮助。但该模型在复合实体识别方面还存在粒度划分不够细的问题,未来的工作将进一步深入研究。