基于头实体注意力的实体关系联合抽取方法

2021-09-18 06:21刘雅璇
计算机应用 2021年9期
关键词:三元组向量实体

刘雅璇,钟 勇*

(1.中国科学院成都计算机应用研究所,成都 610041;2.中国科学院大学,北京 100049)

(*通信作者电子邮箱zhongyong@casit.com.cn)

0 引言

随着互联网技术的不断发展以及大数据时代的来临,万维网中的各领域数据均呈爆炸式增长,尤其非结构化数据占了其中的75%以上[1],如何从大量的非结构化数据中提取有效知识成为了目前备受关注的问题。传统的方法和数据结构已经不能满足人们对于获取信息的需求,因此,知识图谱技术应运而生。在知识图谱中,知识以三元组的形式表示,每一条知识都可以表示为一条SPO(Subject,Predicate,Object)三元组,从自然语言文本中提取关系三元组是构建大规模知识图谱的关键步骤。

随着深度学习的发展,许多学者将深度学习方法引入到关系抽取模型中,大幅提升了关系抽取的准确度[2-4]。尤其是预训练语言模型BERT(Bidirectional Encoder Representation from Transformers)[5]被提出以来,已被广泛用于包括关系抽取等各种自然语言处理任务[6-8],它为模型提供一种通用的上下文相关的词向量表示,通过使用BERT 作为编码层可在下游模型中利用非常简单的设计达到相较其他模型更好的效果。

目前广泛用于实体及关系抽取的方法有两种:一种是流水线抽取方法,一种是联合抽取方法。流水线抽取方法把实体和关系的抽取分为两个先后独立的任务,分别是命名实体识别和关系分类,这种方法存在冗余实体推断、子任务间错误累积等问题[9];联合抽取方法是近年来深受研究者喜爱的方法,它把三元组抽取看作一个整体任务,对一个模型进行联合训练,达到实体关系抽取相互促进的目的。

在以上工作的基础上,本文以人工智能领域语料库作为数据集,对针对该领域的关系抽取方法作出了相关研究,提出了一种以BERT 作为编码层,基于头实体注意力的实体导向[10]联合抽取模型。该模型分为两个子任务:第一个子任务对头实体的起始结束位置进行标记;第二个子任务针对该样本的一个头实体,结合头实体注意力机制为各个关系类型标记尾实体的起始、结束位置。本文的主要工作有以下几点:

1)基于BERT 在实体关系联合抽取中的研究基础,提出了基于头实体注意力的联合抽取模型JSA(Joint model based on Subject Attention),在尾实体标注任务中赋予头实体与当前位置词相关的权重,使模型自动识别句子中与头实体相关的部分。

2)设计该领域的实体和关系类别,通过远程监督方法构建三元组抽取数据集;同时利用中文中“、”“和”“等”等标点和字符的特点对数据集进行了扩充和过滤,得到了置信度较高的人工智能领域三元组抽取数据集。

1 相关工作

近年来,人们提出了大量的深度神经网络模型来完成有监督的关系抽取任务,这些模型可根据学习流程分为流水线学习方法和联合学习方法。

1.1 流水线学习方法

流水线学习方法一般先获得已标注实体信息的文本,再利用关系分类模型预测每一对候选实体对的关系类型。Socher 等[11]于2012 年首次将循环神经网络(Recurrent Neural Network,RNN)用于关系抽取任务,将句子的依存句法树作为输入,学习树中每个节点的词向量和节点矩阵表示以捕获单词或整个短语的语义,最终得到该句子的向量表示,实现关系分类。Zeng 等[12]于2014 年将卷积神经网络(Convolutional Neural Network,CNN)引入关系抽取任务,该方法将词向量和相对位置特征输入卷积神经网络以获得句子级表示,再将其和实体词级表示拼接,得到最终的表示向量用于关系抽取。Wang 等[13]向基于CNN 的关系抽取模型中引入了多层注意力机制来捕获句子中的实体注意力和关系注意力,使模型能自动获取与实体关系相关的细粒度信息。CNN 和RNN 对长句子建模能力有限,而长短期记忆(Long Short-Term Memory,LSTM)网络尤其是双向LSTM(Bi-LSTM)擅长捕获长句子实体之间的依赖关系。Xu 等[14]将LSTM 用于关系抽取任务,将词向量、词性标注、句法依存、上位词等信息作为四个通道沿着实体对的最短依赖路径输入LSTM 网络,最后对四个通道的隐向量表示进行拼接获得最后的句子向量表示,用于关系分类。Cai等[15]将CNN 和LSTM 进行融合,设计双向循环卷积神经网络同时从正反两个方向学习最短依存路径上的信息。流水线的方法被认为存在冗余实体推断、子任务间错误累积等问题,为了避免这些问题,近几年研究者们倾向于对联合学习方法的研究。

1.2 联合学习方法

常见的三元组联合学习方法分为三种:共享编码层的实体关系抽取方法、基于三元组标记的全局优化方法和实体导向的联合抽取方法。Miwa 等[16]最先提出了共享编码层的联合抽取方法,它简单地共享命名实体识别和关系分类的编码层,使得两个任务在学习的过程中得以相互促进,但它依然采取先提取实体再提取关系的方法,没有解决冗余实体和错误累积的问题,后续工作认为这并不是真正意义上的联合抽取[17],Zhong 等[18]认为在实体识别和关系分类任务之间,采用流水线模型或许比简单地共享编码层的联合抽取模型效果更好。Zheng 等[17]于2017 年提出了基于标记的全局优化模型,他们首先设计了一个三元组标记方法,将文本输入由两个双向LSTM 组成的序列标记模型进行训练,该方法对三元组抽取进行全局优化,解决了冗余实体推断和错误累积问题;但其采用就近匹配原则处理包含多个头实体或尾实体的句子,无法处理三元组间实体重叠的问题。为了解决实体重叠问题,专家们提出了实体导向的联合抽取方法。Dai 等[19]引入一种位置注意力机制,为长为n的句子生成n个不同的句子表示,对每个位置p标记其实体标签,对其他位置标记与位置p实体的关系标签,构建一个实体导向的联合序列标注模型以抽取三元组。Yu等[20]将三元组抽取分为两个子任务,分别是头实体标记及其对应尾实体的标记任务,并将关系抽取和尾实体标记任务结合,对每个关系标记相应尾实体,构建了一个共享编码层的分层标记模型。Wei 等[21]采用BERT 作为联合抽取模型的预训练语言模型,显著提高了实体导向的联合抽取模型的性能,达到了当时的最优水平,但其仅将头实体表示简单地与各词向量表示相加,忽略了头实体和其他单词之间的细粒度语义联系,本文在此基础上提出了头实体注意力机制,在尾实体标注任务中为每个词提供不同权重的头实体表示,使模型自动识别句子中与头实体相关的部分。

2 基于头实体注意力的联合抽取模型

2.1 语料收集与模型设计

三元组抽取领域有许多公开数据集,比如ACE 2005、SemiEval 2010 Task8 Dataset 等有监督数据集,以及通过远程监督方法提取的NYT(New York Times Corpus)数据集。这些通用数据集被广泛应用于各关系抽取方法中,但目前很少有公开的垂直领域三元组抽取数据集。本文通过远程监督方法构建了人工智能领域的三元组抽取数据集,并利用中文中“、”“和”“等”等标点和字符的特点对数据集进行了扩充和过滤。

2.1.1 知识库的设计与数据收集

经过对大量人工智能领域新闻报道、相关企业网站、专业书籍的翻阅了解,对人工智能领域设计了如表1 所示的11 种的关系类别,并通过人工收集的方法围绕这11 种关系类型收集了1 500 个该领域的三元组,其中的实体类型包括技术、领域、产品、功能、算法等多种不同层次的实体。在这些三元组中,“使用范围”关系的尾实体一般属于产品、功能等类型,“使用领域”关系的尾实体特指某个领域,“包含”关系的头、尾实体是整体和部件的关系,“别称”关系的设计是为了知识图谱的实体链接特设的关系类型。

为了提高远程监督的匹配效率,本文从博客新闻类网站的人工智能专栏爬取该领域语料库,经过分句分词以及远程监督的对齐匹配过程获得了大量有标记样本。

2.1.2 数据扩充及过滤

由于远程监督的假设过于强烈,导致同一个顿号序列之间的实体会被匹配到“上位词”“所属领域”等蕴含上下位关系的关系类型,但事实上顿号上下文并不包含该语义;而且经过观察发现,若并列的实体中有一个实体和该并列之外的其他实体之间存在除“上位词”“相对概念”“别称”之外的其他关系,那个该并列内的其他实体大概率也和该实体之间存在该关系并且头尾顺序不变。根据该特点,本文在匹配过程中对数据集进行了过滤及扩充,并将顿号序列周围的“和”“等”等字符也考虑在内,由此修正了一部分由于远程监督方法导致的错误标注问题,扩充了数据集样本数量。处理之后得到置信度较高的22 070 条样本,按照10∶1∶1 的比例分割为训练集、验证集和测试集,用于模型的训练、验证和测试结果。样本中各关系类型数量分布如表1 所示,其中一个样例展示如图1所示。

2.2 JSA的模型设计

本模型的目的是识别句子中所有可能存在的三元组,其中部分三元组可能存在重叠的头实体或尾实体。为了对整个三元组联合建模的同时保证模型对重叠三元组的处理能力,本模型将三元组建模过程做如式(1)的转换:

其中:s、r、o分别表示句子中的一对三元组的主语、关系、宾语;x表示输入的句子;T表示所有关系组成的集合。通过该转换将三元组的抽取拆分为两个子任务:第一个子任务是学习一个头实体标记器,对句子中头实体的起始位置和结束位置进行标记;第二个子任务是学习一个尾实体及关系标记器,分别对每个头实体标记对应关系的尾实体的起始和结束位置,对不存在的关系标记为全0。尾实体及关系标记器将关系分类和尾实体抽取同步进行,避免了流水线学习中的错误累积和冗余实体等问题,同时将头尾实体分开标记解决了实体重叠的问题。JSA 的模型总体架构如图2 所示,图中s 指头实体,o指尾实体,“首”指的是实体起始位置,“尾”指的是实体结束位置。利用该模型抽取句子中所有可能三元组的具体步骤为:首先将句子输入头实体标记器,标记出句子中所有可能的头实体;其次将每个头实体单独输入尾实体及关系标记器,利用CNN+注意力机制求得头实体在各个位置的表示,将其与相应位置隐向量拼接,拼接得到的结果用于标记该头实体对应的尾实体。模型各部分具体介绍如下。

图2 JSA的模型架构示意图Fig.2 Schematic of JSA model architecture

2.2.1 BERT编码层

自BERT 被提出以来,由于其在各个自然语言处理任务中优异的表现,已成为近几年最常用的预训练语言模型。本文模型的两个子任务共享同一个BERT 编码器,该编码器从输入的句子中提取特征信息,并将其提供给后续的两个标注模块,如式(2)所示:

其中:x={x1,x2,…,xn}为输入的句子;H=[H1,H2,…,Hn]为各个位置的隐向量表示。

2.2.2 头实体标记器

如式(3)~(4)所示,头实体标记器直接在编码层之上使用两个独立的线性层对BERT 编码器输出的隐向量H进行解码,以序列标记的形式使用0/1标记句子中所有头实体的起始和结束位置。

其中:σ表示sigmoid 激活函数均为待学习的网络参数;代表句子中的第i个位置作为头实体的起始位置的概率;代表句子中的第i个位置作为头实体的结束位置的概率,如果概率超过某一阈值则对应的位置将被赋以标签1,否则赋以标签0。可使用验证集为标记器确定最佳阈值,此处将阈值设为0.5。抽取实体时,为每个起始位置匹配最接近且处于其右边的结束位置生成一个头实体。

2.2.3 尾实体及关系标记器

与头实体标记器不同,除了句子本身的输入外,尾实体及关系标记器同时考虑了头实体的特征。首先根据头实体位置得到头实体的起始、结束区间内所有位置的隐向量表示Hhead,将其输入一个CNN+ReLU+maxpooling 层以获取实体级别的向量表示hhead。本文认为,头实体的表示对尾实体标注任务的影响与当前位置词相关,于是提出头实体注意力机制,如式(6)所示:

计算每个位置词对头实体的点积注意力权重,再将赋予权重的头实体表示与当前词的隐向量拼接,将拼接结果T=[T1,T2,…,Tn]输入如式(7)、(8)的两个独立线性层进行解码,标记方法和头实体标记器类似,但尾实体及关系标记器需要对每个关系类型单独标记尾实体的起始和结束位置。

综上,本模型在尾实体及关系标记器中使用CNN 获取头实体表示,很好地利用了CNN 擅长捕获句子局部特征的特点;并使用头实体注意力机制调整头实体向量对每个位置词作为尾实体的影响力权重,使模型能够自动识别句子中与头实体相关的部分,从而达到提高尾实体及关系标记器标注效果的目的。针对每个头实体,尾实体的抽取方法和头实体标记器类似。

在训练过程中,对每个样本随机选择一个真实头实体作为尾实体及关系标记器的输入;在推断过程中,需要对所有头实体单独提取一次尾实体。

2.3 损失函数

本文采用多个二分类交叉熵损失函数训练模型,并将各子任务损失相加得到模型的联合损失,通过最小化联合损失以学习模型中的参数。如式(9)所示:

其中代表第i个位置词作为头或尾实体的真实的起始或结束位置;L代表句子长度。

3 实验与结果分析

3.1 基线模型、实验设计和评估标准

为了公平比较,本文将使用BERT 作为编码层且基于实体导向的联合抽取模型CasRel(Cascade binary tagging framework for Relational triple extraction)[21]作为基线模型,在公开的三元组抽取数据集NYT 以及通过远程监督方法得到的人工智能领域数据集上进行实验,并按照惯例使用F1值作为评估标准。这样的选择有助于衡量本文提出的JSA 是否更好地利用了头实体和其他单词间的细粒度语义关系。除此之外,为了验证本模型各改进设计的有效性,针对各个改进点做了消融实验,以展示使用CNN 获得头实体表示、头实体注意力机制、联合抽取等设计对三元组抽取任务的增益。

3.2 参数设置

本文通过使用验证集进行测试实验来确定超参的大小。为了公平比较,在人工智能领域数据集中,本文对所有模型实验均采用如下设置:使用小批量更新的方法,根据设备显存大小将小批量样本数设为32;学习率设为1E-5,使用自适应矩估计(Adam)优化器对模型参数进行自适应学习;预训练语言模型使用的是中文版的BERT-Base,隐向量长度为768;输入句子的最大长度设为100,头实体的最大长度设为15,对过长的句子和头实体进行截断;CNN 卷积核大小设为5;起始和结束位置的标记阈值均设为0.5;采用早停机制防止过拟合,当在验证集中的F1值至少连续7个训练周期没有得到改进时即停止训练。特别地,为了和基线模型的实验结果形成公平对比,在NYT 数据集上采用与以上不同的设置:小批量样本数设为6;预训练语言模型使用[BERT-Base,Cased]版本。本文所有实验基于Google Colab 平台的Nvidia Tesla T4 16 GB 显卡进行训练。

3.3 实验结果分析

3.3.1 模型对比实验分析

表2 展示了本文模型和其基线模型在NYT 以及本文第2章中构建的数据集上的实验结果。可以看出,无论是在公开数据集上还是人工智能领域数据集上,无论是精确率还是召回率上,本文模型均明显优于基线模型,在NYT 和领域数据集上的F1值分别高于基线模型1.8和8.9个百分点。本文认为这主要归功于:1)面向头实体的尾实体标注过程能够捕获头实体与尾实体之间的依赖关系;2)利用CNN 有效捕获头实体信息;3)联合抽取的方法将头尾实体的标注联合学习,解决了冗余实体和实体重叠的问题。图3 所示为本文模型在测试集上的F1值、精确率、召回率等指标随训练周期变化图。图4所示为模型训练时的损失函数值变化图,可以观察到随着训练周期的增长,模型逐渐趋于稳定,最终在第55 个训练周期时F1值达到最高,之后根据早停机制停止训练。

表2 在人工智能领域数据集和NYT数据集上不同模型的实验结果Tab.2 Experimental results of different models on artificial intelligence dataset and NYT dataset

图3 测试集上的F1值、精确度和召回率Fig.3 F1 score,precision and recall on test dataset

图4 训练损失值Fig.4 Training loss value

3.3.2 消融实验分析

本文为验证模型各优化点的增益作用,使用第2 章中构建的数据集对模型进行了消融实验。

首先,简单地对头实体所有位置词的隐向量求加和平均得到头实体表示,将其直接与句子的词向量拼接,拼接结果用于标记尾实体的起始结束位置。对该模型(Entity-Orientedsimple)进行实验,得到结果如表3所示,该方法相比基线模型(CasRel)得到了1.7个百分点的F1值提升。相较于基线模型中将头实体表示和各位置词隐向量相加的设计,拼接的方法使得尾实体及关系标记器可对当前词向量和头实体表示向量产生不同的权重,很好地学习了头实体对于尾实体及关系标注任务的影响力。

表3 在人工智能领域数据集上的消融实验结果Tab.3 Results of ablation experiment on artificial intelligence dataset

第二步,在拼接的基础上,使用CNN+maxpooling 网络代替加和平均来学习头实体特征表示,通过该方法(Entity-OrientedCNN)在F1值上获得了0.4个百分点的提升。最后在以上模型的基础上使用头实体注意力机制,以捕获头实体与尾实体之间的依赖关系,该创新点在F1 值上贡献了高达6.8 个百分点的显著提升。

为了验证联合学习为本模型带来的增益,本文设计了一个实验,简单地为头实体标记器和尾实体及关系标记器学习两个独立的BERT 编码器,学习过程中使用各自的目标函数进行优化,其余设计与JSA 相似。该流水线模型(JSApipeline)在数据集上的实验结果如表3 所示,F1 值相对相应的联合学习模型(JSAjoin)t下降了6.1 个百分点,该结果表明联合学习方法对该模型起到了显著的增益作用。通过该实验,本文认为实体导向的联合抽取模型的两个子任务——头实体标记和尾实体标记能够通过共享编码层及损失联合优化的方法达到共同学习、相互促进的目的。

除此之外,相较于基于三元组标记的联合抽取模型,实体导向的联合抽取模型在实体重叠问题上体现了很好的抽取效果。如图5~6 所示,由于基于三元组的标记方法采用的全局优化方法和最近匹配原则,导致其无法处理重叠实体的三元组抽取问题;而在实体导向的联合抽取模型中,其架构设计使其在一定程度上天然不受重叠实体问题的影响。

图5 基于三元组标记的全局优化模型在实体重叠情况下的标记和抽取结果Fig.5 Tagging and extraction results in case of overlapping entities by using global optimization model based on triple tagging

图6 实体导向的联合抽取模型在实体重叠情况下的标记和抽取结果Fig.6 Tagging and extraction results in case of overlapping entities by using entity-guided joint extraction model

4 结语

本文提出了一种基于头实体注意力的实体导向联合抽取模型,该模型将三元组抽取任务分为两个互相影响的实体抽取子任务,第二个子任务利用第一个子任务获取到的头实体信息进行抽取。通过这种方式,解决了流水线模型中的冗余实体的问题和以往联合抽取模型中实体重叠的问题,并学习了头实体与尾实体之间的依赖关系。本文在通过远程监督方法构建的三元组抽取数据集上的多个实验结果表明,本文模型性能取得了显著的改进,并验证了联合抽取框架以及各个改进设计的有效性。但通过远程监督构建的数据集难免由于过宽的假设引入噪声,如何去除数据集中的噪声而获得更好的训练效果将是下一步的研究方向。

猜你喜欢
三元组向量实体
TransP:一种基于WordNet中PartOf关系的知识图谱嵌入方法
向量的分解
基于卷积神经网络的知识图谱补全方法研究
聚焦“向量与三角”创新题
K-VQA:一种知识图谱辅助下的视觉问答方法
实体书店步入复兴期?
2017实体经济领军者
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
向量垂直在解析几何中的应用