«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (3): 46-53  DOI: 10.19678/j.issn.1000-3428.0060745
0

引用本文  

陈仁杰, 郑小盈, 祝永新. 融合实体类别信息的实体关系联合抽取[J]. 计算机工程, 2022, 48(3), 46-53. DOI: 10.19678/j.issn.1000-3428.0060745.
CHEN Renjie, ZHENG Xiaoying, ZHU Yongxin. Joint Entity and Relation Extraction Fusing Entity Type Information[J]. Computer Engineering, 2022, 48(3), 46-53. DOI: 10.19678/j.issn.1000-3428.0060745.

基金项目

国家重点研发计划(2019YFC0117302);国家自然科学基金(U2032125);上海市自然科学基金(19ZR1463900);中国科学院上海高等研究院院内人才计划(E052891ZZ1);上海高等研究院与上海光源合作项目(E0560W1ZZ0)

通信作者

祝永新(通信作者), 研究员、博士

作者简介

陈仁杰(1995-), 男, 硕士研究生, 主研方向为自然语言处理;
郑小盈, 副研究员、博士

文章历史

收稿日期:2021-01-29
修回日期:2021-03-12
融合实体类别信息的实体关系联合抽取
陈仁杰1,2 , 郑小盈1,2 , 祝永新1,2     
1. 中国科学院上海高等研究院, 上海 201210;
2. 中国科学院大学, 北京 100049
摘要:针对实体关系抽取任务中的三元组重叠问题,基于编码器-解码器结构的联合抽取方法能够通过序列生成的方式加以解决。但现有方法没有充分利用实体类别信息,而实体类别信息对于构建更丰富的语义特征并进一步优化关系模型的效果具有重要意义。在使用编码器-解码器结构的基础上,融合实体类别信息构建实体关系联合抽取模型FETI。编码器采用经典Bi-LSTM结构,解码器采用树状解码替代传统的一维线性解码。同时,在解码阶段增加头尾实体类别的预测,并通过辅助损失函数进行约束,使模型能够更有效地利用实体类别信息。在百度公开的中文数据集DuIE上进行实验,结果表明,FETI的F1值达到0.758,相对于CopyMTL、WDec、MHS、Seq2UMTree模型提升了2.02%~9.86%,验证了融合实体类别信息对于提升实体关系抽取模型性能的有效性。此外,基于不同解码顺序和不同权重损失函数的实验结果表明,解码顺序对模型性能影响较大,而对主要任务的损失函数赋予较高权重,能够保证辅助任务为主要任务提供有效的背景知识,同时限制噪声的影响。
关键词实体关系抽取    联合抽取    实体类别信息    三元组重叠    编码器    解码器    
Joint Entity and Relation Extraction Fusing Entity Type Information
CHEN Renjie1,2 , ZHENG Xiaoying1,2 , ZHU Yongxin1,2     
1. Shanghai Advanced Research Institute, Chinese Academy of Sciences, Shanghai 201210, China;
2. University of Chinese Academy of Sciences, Beijing 100049, China
Abstract: For the problem of triplet overlapping in entity and relation extraction, a joint extraction method based on an encoder-decoder structure can be used to solve it using sequence generation.However, the existing methods do not fully use the entity type information, which is of great significance for building richer semantic features and for further improving the effect of the relationship model.Based on an encoder-decoder structure, the joint entity and relation extraction model FETI is constructed by fusing entity type information.The encoder adopts the classical Bidirectional Long-Short Term Memory(Bi-LSTM) structure, and the decoder adopts tree decoding to replace the traditional one-dimensional linear decoding.At the same time, the prediction of the head and tail entity types is added in the decoding stage and is constrained by the auxiliary loss function, so that the model can more effectively use the entity type information.The experiment is conducted on the Chinese dataset DuIE published by Baidu.The experimental results show that the F1 value of FETI reached 0.758, which is 2.02%~9.86% higher than those of the CopyMTL, WDec, MHS and Seq2UMTree models.The results confirm the effectiveness of integrating the entity category information to improve the performance of the entity and relation extraction model.In addition, the experimental results based on different decoding sequences and different weight loss functions show that, the decoding sequence has a great impact on the performance of the model, and that giving higher weight to the loss function of the main task, which ensures that the auxiliary task can provide effective background knowledge for the main task and limit the impact of noise.
Key words: entity and relation extraction    joint extraction    entity type information    triplet overlapping    encoder    decoder    

开放科学(资源服务)标志码(OSID):

0 概述

互联网上每时每刻都涌现出大量新闻、博客、社交媒体的文本数据,如何从海量的非结构化数据中提取出有用的结构化信息成为亟待解决的问题,因此,信息抽取(Information Extraction,IE)技术被提出。实体关系抽取是信息抽取中的核心子任务,包含实体抽取和关系分类,旨在从非结构化文本中提取出潜在的命名实体对,并对每个实体对间存在的关系类型进行分类,最终以实体-关系三元组的形式呈现。例如,在句子“周星驰导演了电影《喜剧之王》”中,可以提取出的三元组是“周星驰-导演-喜剧之王”,其中,“周星驰”是头实体,“喜剧之王”是尾实体,“导演”是实体对之间存在的关系类型。实体关系抽取可以为自动问答、推荐系统、信息检索、知识库填充等下游任务提供有力支持,近年来受到学术界和工业界的广泛关注。

传统的关系抽取方法将任务划分为2个流水线式的子任务:命名实体识别(Named Entity Recognition,NER)和关系分类[1-2]。针对每个句子,首先识别出句子中所有的实体,然后对每个实体对进行关系分类。这类方法容易导致误差传播问题,前一个子任务产生的错误可能会累积到下一个子任务[3]。此外,流水线方法还忽视了2个子任务间的内在交互和依赖关系。

不同于流水线方法,联合抽取方法采用一个联合模型同时识别出实体和关系类型,现有的联合抽取方法主要包括基于表格填充的方法、基于标注策略的方法和基于编码器-解码器的方法。基于表格填充的方法需要枚举所有可能的实体对,会导致繁重的计算负担[4]。基于标注策略的方法[5]将实体关系抽取任务统一成一个序列标注问题,但由于对句子中的每一个token都只能赋予一个标签,因此无法处理三元组重叠问题。

为应对三元组重叠问题,DAI等[6]在ZHENG等[5]研究的基础上,采取对一个句子进行多轮标注的策略,这虽然可以应对三元组重叠问题,但是却带来了较大的计算量。另一种可行的思路是采用基于编码器-解码器结构的方法[7-9],将非结构化文本输入到模型中,按照特定的顺序依次解码实体关系三元组,这类方法可以应对三元组重叠问题,同时也不会带来较高的复杂度。

此外,PENG等[10]的研究表明,句子的上下文以及实体信息(主要是实体类型信息)对于关系抽取模型效果的提升起到了重要作用,ZHONG等[11]验证了学习实体和关系的不同上下文表示并将实体类别信息用作关系模型输入特征的重要性。

在联合抽取方法中,目前关于如何有效融合实体类别信息的研究相对较少,但相关研究[10-11]表明,实体类别信息对于构建更丰富的语义特征并进一步提升关系模型的效果具有重要意义。文献[12]利用卷积神经网络从Freebase知识库和Wikipedia中提取出实体描述信息特征向量,但该方法基于远程监督,会引入大量噪声,并且不能直接处理三元组重叠问题。

本文提出一种融合头尾实体类别信息的实体关系联合抽取模型FETI。将实体类别信息融合到模型中,在解码阶段增加头尾实体类别的预测,同时优化损失函数,增加对实体类别信息的约束。此外,在百度开源的中文数据集DuIE[13]上进行实验并与基线模型对比,验证融合实体类别信息对于提升实体关系抽取模型性能的有效性。

1 相关工作 1.1 实体关系抽取

早期的研究工作主要采用流水线方法[1-2],先从文本中提取出所有的实体,再对每个实体对进行关系分类,从而得到实体-关系三元组,但是这类方法存在错误累计传播问题,并且忽视了2个子任务之间的内在交互[14]。MIWA等[15]通过设计复杂的特征来进行关系抽取,特征的提取依赖NLP句法分析工具,不同工具提取特征的准确率存在差异,且句法分析工具产生的误差可能传播到关系抽取任务中。TAKANOBU等[16]采用基于强化学习的方法,先识别出关系类型,再识别出相应的实体对。孙紫阳等[17]则采用基于最短路径表示文本的方法来进行中文实体关系抽取。

ZHENG等[5]提出一种新的标注策略,将关系类型和实体用一个标签来表示,并根据该标注策略对句子中的每一个单词进行标注,由此将联合抽取问题转化为经典的序列标注问题。但重叠的三元组问题对于传统的序列标注策略是一个极大的挑战,因为序列标注问题假定每一个单词只包含一个标签,由于该方法对句子中的每个单词只能分配一个标签,因此无法处理三元组重叠问题。DAI等[6]尝试采用多轮序列标注的方法,但是却又引入了较大的计算负担。FU等[18]采用基于图卷积网络(Graph Convolutional Network,GCN)的方法,将句子中的单词作为图中的节点,将单词间的关系作为图中的边,通过加权的GCN考虑实体间的相互作用以及可能存在的重叠关系。LI等[19]将联合抽取问题转化为多轮问答问题,利用针对特定关系类型的模板生成相应的问题。

此外,还有一些研究采用基于编码器-解码器结构,将关系抽取问题转化为序列生成问题,在解决三元组重叠问题的同时避免带来过多的计算量,这类方法与人工提取三元组的过程类似,即首先阅读整个句子,理解其含义,然后按照特定顺序抽取出实体-关系三元组。ZENG等[7]将编码器-解码器结构应用到实体关系抽取任务中,尝试解决三元组重叠问题。

三元组重叠问题指的是一个句子中的不同三元组之间存在某个元素(头实体、尾实体或关系类型)重合的现象,这会导致无论是基于深度学习的方法还是传统的基于特征工程的方法都难以准确提取出句子中的三元组。如图 1所示,根据是否重叠可以将三元组划分为3个类型:正常(Normal),单个实体重叠(Single Entity Overlap,SEO),实体对重叠(Entity Pair Overlap,EPO)。

Download:
图 1 三元组类型划分示例 Fig. 1 Example of triplet type division

文献[7]模型中主要包含编码器(Encoder)和解码器(Decoder)两个部分,编码器接收非结构化的文本作为输入并转化为固定长度的上下文向量,解码器读取该向量并生成三元组。但是该方法每次只能预测实体的最后一个单词,对于含有多个单词的实体不能完整预测。ZENG等[8]在文献[7]模型的基础上进行改进,采用多任务学习的策略使模型可以预测出多单词实体。NAYAK等[20]提出带掩码机制的编码器-解码器结构来应对实体关系抽取中的三元组重叠问题。然而,这些基于编码器-解码器的方法将重叠三元组的抽取分解为几个有先后顺序、相互依赖的步骤,会导致曝光偏差的问题[21]。曝光偏差指的是基于编码器-解码器的模型在训练和测试阶段存在不一致的现象。在训练阶段,当前步三元组的预测依赖于前一步三元组的真实标签,但是在测试阶段,当前步模型预测的三元组却依赖于模型上一步预测出的三元组。例如,当一个句子中存在3个三元组,在训练阶段,模型按照“三元组1-三元组2-三元组3”的顺序进行学习,在测试阶段,如果模型首先预测出“三元组2”,则最后的结果只能是“三元组2-三元组3”,而缺失了“三元组1”的预测,但“三元组2-三元组3-三元组1”仍然是正确的结果。这种在训练阶段对于多个三元组先后顺序的预定义,限制了模型的学习能力和泛化性能[9]。因此,ZHANG等[9]提出了一种树状解码方法,将一维三元组序列转化为一个无序树状结构,通过三层解码依次识别出所有可能的头实体、关系、尾实体。由于同一层预测出的结果间是无序的,并且摒弃了不同三元组间预定义的顺序,因此一个三元组的预测偏差并不会累积到下一个三元组的预测,该方法能够有效缓解曝光偏差的问题。

尽管目前的实体关系联合抽取方法研究取得了显著的进展,但仍然存在一些不足,例如实体描述信息(包括实体类别等信息)没有得到充分利用,导致实体和关系之间缺乏内在的交互。本文在联合抽取模型中集成对实体类别信息的预测,为联合抽取任务补充了背景知识,以期提升模型性能。

1.2 多任务学习

多任务学习[22]通过利用多个相关任务的训练中包含的特定信息来提高模型的泛化性能,主要研究方向包括网络设计和损失函数的优化,本文主要关注多任务损失函数的优化。VANDENHENDE等[23]指出,在多任务学习中,当一个任务的梯度幅度比其他任务高得多时,也即不同任务的梯度若不在一个数量级上时,网络权重的更新可能由梯度较高的任务主导,并通过对现有的多种任务平衡策略进行分析,总结出对平衡多任务学习有效的方法,如降低噪声任务的权重、平衡不同子任务的梯度等。CIPOLLA等[24]利用同方差不确定性来调整各个子任务损失函数的权重,使得训练过程中每个子任务的损失函数值在数量级上较为接近。CHEN等[25]定义了一些变量分别用来衡量不同任务损失的数量级以及任务的学习速度,使得训练过程中各个子任务的损失数量级以及训练速度尽可能比较接近。

尽管多任务学习损失函数优化研究近年来受到广泛关注,但不同方法针对不同的任务场景、数据集、优化器以及网络结构,其有效性并不一定能够得到保证,且仍缺少对于损失函数权重可解释性问题的研究与讨论,因此,损失函数权重的可解释性问题是目前多任务学习领域乃至整个深度学习领域的一大难题,学术界尚未形成系统有效的理论予以支撑。

2 融合实体类别信息的联合抽取

本文提出一种融合实体类别信息的实体关系联合抽取模型FETI。该模型整体采用基于编码器-解码器的结构[26],其中编码器采用经典的Bi-LSTM结构[27],解码器采用一种树状解码方案替代传统的一维线性解码。具体而言,假设模型的解码顺序为h1-h2-r-t1-t2,h1代表头实体,h2代表头实体类别,r代表关系类型,t1代表尾实体,t2代表尾实体类别。首先,第1层解码预测出所有潜在的h1,然后将预测出的每一个头实体依次作为下一层解码的输入,在下一层解码阶段预测所有的h2,再将第2层解码预测结果依次作为下一层解码输入,在第3层解码阶段预测出所有的关系类型r。依次类推,通过5层解码预测出头实体-头实体类别-关系-尾实体-尾实体类别。本文提出的FETI模型整体框架如图 2所示,其中,左侧为从输入句子提取出一个实体关系三元组的示意图,右侧为利用树状解码提取出句子中所有三元组的示意图。

Download:
图 2 FETI模型总体框架 Fig. 2 Overall framework of FETI model
2.1 编码器 2.1.1 嵌入层

假设单个输入句子表示为s =$ [{w}_{1}, {w}_{2}, \cdots , {w}_{n}] $,经过嵌入层后得到句子的向量表示:

$ \mathit{\boldsymbol{X}} = [{\mathit{\boldsymbol{x}}_1},{\mathit{\boldsymbol{x}}_2}, \cdots ,{\mathit{\boldsymbol{x}}_n}] = {\rm{Embedding}}([{w_1},{w_2}, \cdots ,{w_n}]) $ (1)

其中:$ {w}_{i} $表示句子中的每一个字;$ {\mathit{\boldsymbol{x}}_i} $表示每一个字对应的向量表示;n表示句子的长度。字的嵌入表示通过维护一个查找表实现,在训练过程中,查找表随不断迭代而更新,根据每个字的索引可以查询到对应的向量表示。

2.1.2 Bi-LSTM编码层

LSTM网络[28]由不同的记忆单元组成,通过输入门、遗忘门和输出门对输入内容以及记忆单元里存储的内容进行控制,形成对之前输入信息的记忆。由于双向LSTM(Bi-LSTM)考虑了当前时间步的输出既与之前的状态有关,又可能与未来的状态有关,因此通常可以获得更好的编码。LSTM的计算过程如下:

$ {\mathit{\boldsymbol{i}}_t} = \sigma ({\mathit{\boldsymbol{W}}_{{\rm{ii}}}}{\mathit{\boldsymbol{x}}_t} + {\mathit{\boldsymbol{b}}_{{\rm{ii}}}} + {\mathit{\boldsymbol{W}}_{{\rm{hi}}}}{\mathit{\boldsymbol{h}}_{t - 1}} + {\mathit{\boldsymbol{b}}_{{\rm{hi}}}}) $ (2)
$ {\mathit{\boldsymbol{f}}_t} = \sigma ({\mathit{\boldsymbol{W}}_{{\rm{if}}}}{\mathit{\boldsymbol{x}}_t} + {\mathit{\boldsymbol{b}}_{{\rm{if}}}} + {\mathit{\boldsymbol{W}}_{{\rm{hf}}}}{\mathit{\boldsymbol{h}}_{t - 1}} + {\mathit{\boldsymbol{b}}_{{\rm{hf}}}}) $ (3)
$ {\mathit{\boldsymbol{g}}_t} = {\rm{tanh}}({\mathit{\boldsymbol{W}}_{{\rm{ig}}}}{\mathit{\boldsymbol{x}}_t} + {\mathit{\boldsymbol{b}}_{{\rm{ig}}}} + {\mathit{\boldsymbol{W}}_{{\rm{hg}}}}{\mathit{\boldsymbol{h}}_{t - 1}} + {\mathit{\boldsymbol{b}}_{{\rm{hg}}}}) $ (4)
$ {\mathit{\boldsymbol{o}}_t} = \sigma ({\mathit{\boldsymbol{W}}_{{\rm{io}}}}{\mathit{\boldsymbol{x}}_t} + {\mathit{\boldsymbol{b}}_{{\rm{io}}}} + {\mathit{\boldsymbol{W}}_{{\rm{ho}}}}{\mathit{\boldsymbol{h}}_{t - 1}} + {\mathit{\boldsymbol{b}}_{{\rm{ho}}}}) $ (5)
$ {\mathit{\boldsymbol{c}}_t} = {\mathit{\boldsymbol{f}}_t}{\rm{*}}{\mathit{\boldsymbol{c}}_{t - 1}} + {\mathit{\boldsymbol{i}}_t}{\rm{*}}{\mathit{\boldsymbol{g}}_t} $ (6)
$ {\mathit{\boldsymbol{h}}_t} = {\mathit{\boldsymbol{o}}_t}{\rm{*tanh}}\left( {{\mathit{\boldsymbol{c}}_t}} \right) $ (7)

其中:$ \mathit{\boldsymbol{h}}_{t} $代表时刻t的隐藏层状态;$ \mathit{\boldsymbol{c}}_{t} $代表时刻t的元胞状态;$ \mathit{\boldsymbol{x}}_{t} $代表时刻t的输入;$ \mathit{\boldsymbol{i}}_{t}\mathrm{、}\mathit{\boldsymbol{f}}_{t}\mathrm{、}\mathit{\boldsymbol{o}}_{t} $分别代表输入门、遗忘门和输出门。同时考虑前向LSTM的编码$ \mathit{\boldsymbol{h}}_{t}^{\mathrm{F}} $和反向LSTM的编码$ \mathit{\boldsymbol{h}}_{t}^{\mathrm{B}} $,则时刻t单词编码后的向量表示为:

$ \mathit{\boldsymbol{h}}_t^{\rm{E}} = {\rm{concat}}(\mathit{\boldsymbol{h}}_t^{\rm{F}},\mathit{\boldsymbol{h}}_t^{\rm{B}}) = [\mathit{\boldsymbol{h}}_t^{\rm{F}};\mathit{\boldsymbol{h}}_t^{\rm{B}}] \in {{\mathbb{R}}^{n \times 2{d_h}}} $ (8)

其中:$ {d}_{h} $代表LSTM隐藏层的维度。

编码器对整个输入句子进行编码后,特征可以表示为:

$ {\mathit{\boldsymbol{h}}^{\rm{E}}} = [\mathit{\boldsymbol{h}}_1^{\rm{E}},\mathit{\boldsymbol{h}}_2^{\rm{E}}, \cdots ,\mathit{\boldsymbol{h}}_n^{\rm{E}}] $ (9)

其中:n代表句子的长度。

2.2 融合实体类别预测的解码器

考虑时刻t解码器隐藏层状态为$ \mathit{\boldsymbol{h}}_{t}^{\mathrm{D}} $,前一时刻输入句子编码后的特征为$ \mathit{\boldsymbol{o}}_{t-1} $,根据文献[29]提出的注意力机制(Attention)生成上下文向量:

$ {\mathit{\boldsymbol{c}}_t} = {\rm{Attention}}(\mathit{\boldsymbol{h}}_t^{\rm{D}},{\mathit{\boldsymbol{o}}_{t - 1}}) $ (10)

$ \mathit{\boldsymbol{c}}_{t} $$ \mathit{\boldsymbol{o}}_{t-1} $拼接,经过卷积层(Conv Layer)得到t时刻输出:

$ {\mathit{\boldsymbol{o}}_t} = {\rm{Con}}{{\rm{v}}_1}([\mathit{\boldsymbol{c}}_t^{\left( n \right)};{\mathit{\boldsymbol{o}}_{t - 1}}]) $ (11)

其中:$ \mathit{\boldsymbol{c}}_{t}\in {\mathbb{R}}^{{d}_{h}} $$ \mathit{\boldsymbol{o}}_{t}\in {\mathbb{R}}^{n\times {d}_{h}} $;卷积层$ \mathrm{C}\mathrm{o}\mathrm{n}{\mathrm{v}}_{1} $将特征维度从$ 2{d}_{h} $映射到$ {d}_{h} $$ \mathit{\boldsymbol{c}}_{t}^{\left(n\right)} $表示在拼接前将$ \mathit{\boldsymbol{c}}_{t} $复制n次。将$ \mathit{\boldsymbol{o}}_{t} $输入到映射层,完成对头实体、头实体类型、关系类型、尾实体、尾实体类型5个部分的预测。文献[9]提出的模型仅包含了对头实体、尾实体、关系类型的预测,考虑到头尾实体的类型可以补充联合抽取任务所需的背景知识,本文提出的FETI模型增加了头尾实体类型预测层,由一个线性变换层结合一个序列上的最大池化层组成,表示如下:

$ {\mathit{\boldsymbol{p}}_{{h_2}}} = {\rm{SoftMax}}({\rm{Max}}({\mathit{\boldsymbol{o}}_t}{\mathit{\boldsymbol{W}}_{{h_2}}} + {\mathit{\boldsymbol{b}}_{{h_2}}})) $ (12)
$ {\mathit{\boldsymbol{p}}_{{t_2}}} = {\rm{SoftMax}}({\rm{Max}}({\mathit{\boldsymbol{o}}_t}{\mathit{\boldsymbol{W}}_{{t_2}}} + {\mathit{\boldsymbol{b}}_{{t_2}}})) $ (13)

其中:$ \mathit{\boldsymbol{p}}_{{h}_{2}} $表示头实体类型的概率向量;$ \mathit{\boldsymbol{p}}_{{t}_{2}} $表示尾实体类型的概率向量;$ \mathit{\boldsymbol{W}}_{{h}_{2}}\in {\mathbb{R}}^{{d}_{h}\times {d}_{{h}_{2}}} $$ \mathit{\boldsymbol{W}}_{{t}_{2}}\in {\mathbb{R}}^{{d}_{h}\times {d}_{{t}_{2}}} $$ \mathit{\boldsymbol{b}}_{{h}_{2}}\in {\mathbb{R}}^{{d}_{{h}_{2}}} $$ \mathit{\boldsymbol{b}}_{{t}_{2}}\in {\mathbb{R}}^{{d}_{{t}_{2}}} $$ {d}_{{h}_{2}} $表示头实体类型的数量;$ {d}_{{t}_{2}} $表示尾实体类型的数量,并假定一个实体仅具有一种实体类型。如图 2左侧所示,针对输入句子,模型提取出一个有效的五元组“导演-周星驰-人物-喜剧之王-影视作品”,最终所需的三元组为“周星驰-导演-喜剧之王”。

由于一个句子中可能存在多个三元组,且三元组之间可能存在重叠,在文献[9]解码方法基础上,本文提出的FETI模型添加了头尾实体类型的预测层。如图 2右侧所示,假设解码顺序为“关系-头实体-头实体类型-尾实体-尾实体类型”,第1步解码出所有可能的关系,得到“导演”“主演”,第2步分别将“导演”“主演”作为输入送入下一层进行解码,得到头实体,依次类推,继续解码得到头实体类型、尾实体、尾实体类型,最终解码得到两个实体-关系三元组:“周星驰-导演-喜剧之王”“周星驰-主演-喜剧之王”,从而有效应对多三元组问题以及三元组重叠问题。

2.3 损失函数

本文提出的FETI模型融合了头尾实体类别信息的预测,假设解码时的预测顺序为h1-h2-r-t1-t2,即依次预测头实体-头实体类型-关系类型-尾实体-尾实体类型,则总的损失函数等于5步解码的损失函数之和:

$ {l}_{{\mathrm{h}}_{1}}^{\mathrm{l}\mathrm{o}\mathrm{s}\mathrm{s}}=-\mathrm{l}{\mathrm{n}}_{}P({\mathrm{h}}_{\mathrm{b}}={\mathrm{h}}_{\mathrm{b}}^{\mathrm{*}}|\mathit{\boldsymbol{x}};\theta )-\mathrm{l}\mathrm{n}P({\mathrm{h}}_{\mathrm{e}}={\mathrm{h}}_{\mathrm{e}}^{\mathrm{*}}|\mathit{\boldsymbol{x}};\theta ) $ (14)
$ {l}_{{\mathrm{h}}_{2}}^{\mathrm{l}\mathrm{o}\mathrm{s}\mathrm{s}}=-\mathrm{l}{\mathrm{n}}_{}P({\mathrm{h}}_{2}={{\mathrm{h}}_{2}}^{\mathrm{*}}|{\mathrm{h}}_{\mathrm{b}}^{\mathrm{*}}, {\mathrm{h}}_{\mathrm{e}}^{\mathrm{*}}, \mathit{\boldsymbol{x}};\theta ) $ (15)
$ {l}_{\mathrm{r}}^{\mathrm{l}\mathrm{o}\mathrm{s}\mathrm{s}}=-\mathrm{l}{\mathrm{n}}_{}P(\mathrm{r}={\mathrm{r}}^{\mathrm{*}}|{{\mathrm{h}}_{2}}^{\mathrm{*}}, {\mathrm{h}}_{\mathrm{b}}^{\mathrm{*}}, {\mathrm{h}}_{\mathrm{e}}^{\mathrm{*}}, \mathit{\boldsymbol{x}};\theta ) $ (16)
$ \begin{aligned}{l}_{{\mathrm{t}}_{1}}^{\mathrm{l}\mathrm{o}\mathrm{s}\mathrm{s}}=-&\mathrm{l}{\mathrm{n}}_{}P({\mathrm{t}}_{\mathrm{b}}={\mathrm{t}}_{\mathrm{b}}^{\mathrm{*}}|{\mathrm{r}}^{\mathrm{*}}, {{\mathrm{h}}_{2}}^{\mathrm{*}}, {\mathrm{h}}_{\mathrm{b}}^{\mathrm{*}}, {\mathrm{h}}_{\mathrm{e}}^{\mathrm{*}}, \mathit{\boldsymbol{x}};\theta )-\\ &\mathrm{l}{\mathrm{n}}_{}P({\mathrm{t}}_{\mathrm{e}}={\mathrm{t}}_{\mathrm{e}}^{\mathrm{*}}|{\mathrm{r}}^{\mathrm{*}}, {{\mathrm{h}}_{2}}^{\mathrm{*}}, {\mathrm{h}}_{\mathrm{b}}^{\mathrm{*}}, {\mathrm{h}}_{\mathrm{e}}^{\mathrm{*}}, \mathit{\boldsymbol{x}};\theta )\end{aligned} $ (17)
$ {l}_{{\mathrm{t}}_{2}}^{\mathrm{l}\mathrm{o}\mathrm{s}\mathrm{s}}=-\mathrm{l}\mathrm{n}P({\mathrm{t}}_{2}={{\mathrm{t}}_{2}}^{\mathrm{*}}|{\mathrm{t}}_{\mathrm{b}}^{\mathrm{*}}, {\mathrm{t}}_{\mathrm{e}}^{\mathrm{*}}, {\mathrm{r}}^{\mathrm{*}}, {{\mathrm{h}}_{2}}^{\mathrm{*}}, {\mathrm{h}}_{\mathrm{b}}^{\mathrm{*}}, {\mathrm{h}}_{\mathrm{e}}^{\mathrm{*}}, \mathit{\boldsymbol{x}};\theta ) $ (18)
$ {l}_{\mathrm{s}\mathrm{u}\mathrm{m}}^{\mathrm{l}\mathrm{o}\mathrm{s}\mathrm{s}}={l}_{{\mathrm{h}}_{1}}^{\mathrm{l}\mathrm{o}\mathrm{s}\mathrm{s}}+{l}_{\mathrm{r}}^{\mathrm{l}\mathrm{o}\mathrm{s}\mathrm{s}}+{l}_{{\mathrm{t}}_{1}}^{\mathrm{l}\mathrm{o}\mathrm{s}\mathrm{s}}+\alpha {l}_{{\mathrm{h}}_{2}}^{\mathrm{l}\mathrm{o}\mathrm{s}\mathrm{s}}+\beta {l}_{{\mathrm{t}}_{2}}^{\mathrm{l}\mathrm{o}\mathrm{s}\mathrm{s}} $ (19)

其中:αβ是超参数;$ {\mathrm{h}}_{\mathrm{b}}^{\mathrm{*}} $$ {\mathrm{h}}_{\mathrm{e}}^{\mathrm{*}} $分别表示头实体的开始位置和结束位置的真实标签;$ {\mathrm{h}}_{2}^{\mathrm{*}} $表示头实体类型的真实标签;$ {\mathrm{r}}^{\mathrm{*}} $表示关系的真实标签;$ {\mathrm{t}}_{\mathrm{b}} $$ {\mathrm{t}}_{\mathrm{e}}^{\mathrm{*}} $表示尾实体的开始位置和结束位置的真实标签;$ {\mathrm{t}}_{2}^{\mathrm{*}} $表示尾实体类型的真实标签。FETI模型在损失函数层对头尾实体类型进行了约束,使得模型可以充分利用实体类别信息,为联合抽取任务提供有效的背景知识。

3 实验 3.1 数据集介绍

本文实验数据集采用2019年百度信息抽取竞赛中开源的数据集DuIE[13],该数据集是目前最大的中文关系抽取数据集,基于百度新闻和百度百科的语料,通过远程监督并结合人工校验的方式生成,其中包含训练集数据173 108条、验证集数据21 639条、测试集数据19 992条。头实体包含16种类别,如“景点”“企业”“歌曲”等,尾实体包含16种类别,如“人物”“国家”“学校”等。

由于测试集原始数据并未公开,因此将原来的验证集作为测试集,将原来的训练集按照9∶1划分为新的训练集和验证集,并且删去不包含三元组的句子。新的数据集统计信息如表 1所示。

下载CSV 表 1 数据集信息 Table 1 Dataset information

数据集中的一个标注样例为{“subject”:“喜剧之王”,“predicate”:“主演”,“object”:“周星驰”,“subject_type”:“影视作品”,“object_type”:“人物”}。其中:“subject_type”表示头实体的类型;“object_type”表示尾实体的类型。在之前的公开数据集中,较少有关于实体类别信息的标注,因此,基于该数据集可以展开考虑实体类别信息的关系抽取实验。

3.2 实验设置

实验中的词向量通过维护一个查找表实现,词向量的维度$ {d}_{\mathrm{w}} $为200,LSTM隐藏层的维度$ {d}_{\mathrm{h}} $为200,关系嵌入维度$ {d}_{\mathrm{r}} $为200,头实体类型嵌入维度$ {d}_{{\mathrm{h}}_{2}} $为200,尾实体类型嵌入维度$ {d}_{{\mathrm{t}}_{2}} $为200,以上提到的嵌入均进行随机初始化。本文使用Dropout来防止模型产生过拟合[30],Dropout的大小设置为0.5,采用梯度截断防止训练过程中产生梯度爆炸。损失函数权重α设置为0.1,β设置为0.1。模型使用Adam[31]优化器训练50个epoch,在验证集上获取F1分数最高的模型,然后在测试集上进行测试,所有实验均在NVIDIA V100 32 GB GPU上完成。

3.3 对比模型与评价指标

将本文提出的FETI模型与以下模型进行对比:

1)Seq2UMTree[9]。此模型基于编码器-解码器结构,解码器部分采用了一个简单的树形结构生成三元组,本文选取其中效果最好的模型作为对比模型。

2)CopyMTL[8]。此模型是一个基于编码器-解码器结构并结合了复制机制的模型,实体的预测通过多任务学习的方式实现,解决了CopyRE[7]方法无法抽取含多个单词的实体的问题。

3)WDec[20]。此模型基于带掩码机制的编码器-解码器结构实现。

4)MHS[32]。此模型基于条件随机场进行实体识别,将关系抽取转化为一个多头选择问题,是本文基线模型中唯一一个没有采用编码器-解码器结构的模型。

使用精确率P、召回率R和F1分数F1作为实体关系抽取的评价指标,计算方式如下:

$ P=\frac{{T}_{\mathrm{P}}}{{T}_{\mathrm{P}}+{F}_{\mathrm{P}}} $ (20)
$ R=\frac{{T}_{\mathrm{P}}}{{T}_{\mathrm{P}}+{F}_{\mathrm{N}}} $ (21)
$ {F}_{1}=\frac{2PR}{P+R} $ (22)

其中:TP表示正类判定为正类的个数;FP表示负类判定为正类的个数;FN表示正类判定为负类的个数。在本文实验中,预测正确与错误是针对三元组而言的,即当三元组中的头实体h1、关系r、尾实体t1全部预测正确时,才认定该三元组的结果是正确的。

3.4 实验结果与分析 3.4.1 基本实验

对比模型CopyMTL、WDec、MHS、Seq2UMTree的实验结果均来自文献[9],本文提出的FETI模型与所有对比模型的实验结果如表 2所示,其中加粗数据表示最优。由于解码阶段对于三元组的预测存在不同的顺序,因此表 2中的结果选自使得F1值最高的解码顺序,Seq2UMTree模型中F1值最高的解码顺序是r-h-t,FETI模型中F1值最高的解码顺序是h1-h2-r-t1-t2

下载CSV 表 2 基本实验结果 Table 2 Basic experimental results

在DuIE数据集上,FETI模型取得了最高的F1值和召回率:相对于Seq2UMTree,F1值提升了2.02%,召回率提升了4.11%;相对于未采用编码器-解码器结构的MHS,召回率提升了21.99%,F1值提升了9.86%。然而,FETI模型精确率相对于MHS的0.772下降了1.94%,原因在于MHS模型在提取三元组时需要对所有的实体对进行枚举,这需要耗费大量的显存资源,且由于中文数据集中长句较多,因此在实现时删去了测试集中长度超过150的句子,在整个测试集中占比1.6%,而Seq2UMTree模型和FETI模型均使用全部的测试集进行实验。

3.4.2 基于不同解码顺序的实验

在解码阶段,三元组的抽取存在一个预定义的顺序,例如:如果只预测h1、r、t1,则存在h1-r-t1、r-h1-t1等6种不同的解码顺序。由于FETI模型添加了头尾实体类型的预测,因此需要通过5步解码预测出h1、r、t1、h2、t2,其中:h2表示头实体类型;t2表示尾实体类型。由于实体和实体类型密切相关,因此两者的预测应当连续进行,不应被其他元素的预测所中断,所以,存在“先实体后实体类型”和“先实体类型后实体”两种顺序,则FETI模型存在12种解码顺序,例如h1-h2-r-t1-t2,从中选取较好的效果进行报告。基于不同解码顺序的实验结果如表 3所示。

下载CSV 表 3 不同解码顺序实验结果 Table 3 Experimental results with different decoding orders

在第1组实验中,FETI模型采用“t2-t1-r-h2-h1”解码顺序时相对于对比模型在精确率、召回率、F1值上分别提升了0.39%、2.71%、1.55%。

第3组和第4组实验FETI模型召回率较低,导致最终的F1值较低,检查实验结果发现大量样例在第一步解码时就出现预测错误(预测h1或t1),而关系的预测在解码的最后一步,说明关系类型信息的缺乏可能导致实体预测效果变差。在第3组实验中,FETI模型相对于对比模型在召回率上下降较多,尽管实体类别信息给联合抽取任务提供了一定的背景知识,但同时也可能引入一定的噪声。解码器采用自回归解码的方式,前一步的预测错误将会累积到下一步,从而导致整个三元组的预测出现错误。在第4组实验中,虽然将关系预测放在最后一步可能导致实体预测的效果变差,但是FETI模型融合了头尾实体预测之后,为整个任务提供了一定的背景知识,可以缓解由于缺乏关系类型而导致的实体预测错误,从而提升联合抽取模型的性能,FETI模型相对于对比模型在召回率上提升了近1.46倍,F1值提升了近1.07倍。

在第6组实验中,FETI模型采用解码顺序“h1-h2-r-t1-t2”时能够获得最高的F1值,FETI模型融合了头尾实体类别预测后,相对于采用“h1-r-t1”解码顺序的对比模型提升了3.98%,相对于“r-t1-h1”顺序的基线模型提升了2.02%。

整体上看,第3组与第4组实验相对其他组实验F1值下降较多,Seq2UMTree模型F1值分别为0.467和0.208,FETI模型F1值分别为0.201和0.430。说明不同解码顺序对于模型的最终效果影响较大,尤其是当关系类型r放在最后一步解码时,没有为前面的头实体h1和尾实体t1的预测提供足够的背景知识,导致前面几步解码时头尾实体的预测大量出错。

3.4.3 基于不同权重损失函数的实验

上文讨论了不同解码顺序对于模型最终效果的影响,由于本文FETI模型采用多任务学习的策略,利用损失函数对头尾实体类型分别进行了约束,因此不同损失函数权重的平衡可能会影响到模型最终的效果。

选取FETI模型实验效果最好的解码顺序h1-h2-r-t1-t2,进行基于不同权重的损失函数相关实验。实验需要预测头实体h1、头实体类型h2、关系类型r、尾实体t1、尾实体类型t2,其中头实体、尾实体、关系类型的预测是主要任务,模型效果的评价也是基于这3个元素预测结果的正确性来进行的,当一个样本中头实体、尾实体、关系类型预测正确,则记为预测正确,而不管头尾实体类别是否预测正确。头实体类型、尾实体类型的预测是辅助任务,两者预测结果的正确性并不直接参与模型效果的评价,而是为头实体、尾实体、关系类型的预测提供相应的背景知识,由于解码步骤中存在头尾实体类别的预测,因此可能会有误差传播问题,从而影响主要任务的表现,所以,辅助任务可能是潜在的噪声任务。

基于VANDENHENDE等[23]总结出的多任务学习中子任务平衡的两种策略:降低噪声任务的权重以及平衡子任务的梯度,本文对辅助子任务(头尾实体类型的预测)的损失函数赋予了较低的权重,将主要任务的损失函数权重默认为1.0,具体实验结果如表 4所示,其中加粗数据表示最优。

下载CSV 表 4 不同权重损失函数实验结果 Table 4 Experimental results with different weights of loss function

在第1组实验中,各子任务损失函数权重相等,通过观察损失函数值发现,头尾实体类别相关的损失函数值的大小曾超过头实体、尾实体、关系类型相关损失函数值10倍以上,表现为在损失函数值上不处于同一个数量级。

在第2组实验中,当α=0.1和β=0.1时取得最高的F1值0.758,一定程度上平衡了不同损失函数的数量级,使得F1值相对于实验1提升了8.91%。

在第3组和第4组实验中,当α=0时,F1值相对于实验1分别下降了29.02%和34.48%,由于没有对头尾实体类别的学习进行约束,导致头尾实体类别预测大量出错,在h1-h2-r-t1-t2解码顺序下,严重影响了后续r、t1的预测效果。而对于第5组实验,α=0.1,β=0.0相当于忽略了预测t2子任务的贡献,但由于t2的预测是最后一步,后续不存在对实体和关系类型的预测,因此F1值仍保持在0.623。

对比第2组和第5组实验,当α=0.1,β由0.1变为0.0时,F1值由0.758降为0.623,下降了17.81%,虽然β影响的是最后一步尾实体类别t2的预测,且后续不存在对实体和关系类型的预测,但也说明实体类别提供的背景知识对整个模型的效果有重要作用。实体类别的预测在提供背景知识的同时也可能带来噪声,对比第2组和第6组实验,当β=0.1,α由0.1变为1.0时,F1值由0.758降为0.729,下降了3.83%,当头实体类别损失函数权重升高时,噪声的影响可能超过了提供有效背景知识对模型的影响。

综上,对于主要任务(包括预测头实体、尾实体和关系类型)的损失函数,赋予较高权重时(均设置为1.0)并且对辅助任务(包括预测头实体类型、尾实体类型)的损失函数赋予较低权重时(均设置为0.1)实验效果最佳,能够在辅助任务为主要任务提供有效背景知识的同时限制噪声的影响,有效平衡不同损失函数值的数量级,防止次要任务主导整个训练过程。

4 结束语

本文提出融合头尾实体类别信息的实体关系联合抽取模型FETI,在解码阶段融合头尾实体类别信息的预测,并且通过辅助损失函数进行约束,使得模型能够有效利用实体类别信息,为联合抽取任务提供所需的背景知识。实验结果表明,FETI模型在DuIE数据集上召回率达到0.760,F1值达到0.758。本文对实体关系的预测采用了基于多任务学习的方法,因此,如何更好地平衡不同任务损失函数之间的权重以及损失函数权重的可解释性问题将是后续研究的重点。此外,寻求多元的实体信息融合方式,更有效地表征其他实体相关的描述信息,也将是下一步的研究方向。

参考文献
[1]
NADEAU D, SEKINE S. A survey of named entity recognition and classification[J]. Lingvisticae Investigationes, 2007, 30(1): 3-26. DOI:10.1075/li.30.1.03nad
[2]
CHAN Y S, ROTH D. Exploiting syntactico-semantic structures for relation extraction[C]//Proceedings of the 49th Annual Meeting of the Association for Computational Linguistics: Human Language Technologies. Stroudsburg, USA: Association for Computational Linguistics, 2011: 551-560.
[3]
ROTH D, YIH W. Global inference for entity and relation identification via a linear programming formulation[EB/OL]. [2021-01-02]. http://scottyih.org/files/RothYih07.pdf.
[4]
ADEL H, SCHÜTZE H. Global normalization of convolutional neural networks for joint entity and relation classification[EB/OL]. (2017-06-24)[2021-01-02]. https://arxiv.org/pdf/1707.07719.pdf.
[5]
ZHENG S C, WANG F, BAO H Y, et al. Joint extraction of entities and relations based on a novel tagging scheme[EB/OL]. (2017-06-07)[2021-01-02]. https://arxiv.org/pdf/1706.05075v1.pdf.
[6]
DAI D, XIAO X Y, LYU Y J, et al. Joint extraction of entities and overlapping relations using position-attentive sequence labeling[C]//Proceedings of AAAI Conference on Artificial Intelligence. Palo Alto, USA: AAAI Press, 2019: 6300-6308.
[7]
ZENG X R, ZENG D J, HE S Z, et al. Extracting relational facts by an end-to-end neural model with copy mechanism[C]//Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics(Volume 1: Long Papers). Stroundsburg, USA: Association for Computational Linguistics, 2018: 1-10.
[8]
ZENG D J, ZHANG H R, LIU Q Y. CopyMTL: copy mechanism for joint extraction of entities and relations with multi-task learning[C]//Proceedings of AAAI Conference on Artificial Intelligence. Palo Alto, USA: AAAI Press, 2020: 9507-9514.
[9]
ZHANG H R, LIU Q Y, FAN X M, et al. Minimize exposure Bias of Seq2Seq models in joint entity and relation extraction[EB/OL]. (2020-09-16)[2021-01-02]. https://arxiv.org/pdf/2009.07503.pdf.
[10]
PENG H, GAO T Y, HAN X, et al. Learning from context or names?An empirical study on neural relation extraction[EB/OL]. [2021-01-02]. https://www.aclweb.org/anthology/2020.emnlp-main.298.pdf.
[11]
ZHONG Z X, CHEN D Q. A frustratingly easy approach for entity and relation extraction[EB/OL]. (2020-10-24)[2021-01-02]. https://arxiv.org/pdf/2010.12812v1.pdf.
[12]
孙新, 申长虹, 姜景虎, 等. 结合实体描述信息的跨句包关系抽取方法[J]. 计算机工程, 2021, 47(6): 68-75.
SUN X, SHEN C H, JIANG J H, et al. Cross-sentence bagrelation extraction method combining entity description information[J]. Computer Engineering, 2021, 47(6): 68-75. (in Chinese)
[13]
LI S J, HE W, SHI Y B, et al. DuIE: a large-scale Chinese dataset for information extraction[C]//Proceedings of CCF International Conference on Natural Language Processing and Chinese Computing. Beijing, China: CCF, 2019: 791-800.
[14]
LI Q, JI H. Incremental joint extraction of entity mentions and relations[C]//Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics(Volume 1: Long Papers). Stroundsburg, USA: Association for Computational Linguistics, 2014: 402-412.
[15]
MIWA M, SASAKI Y. Modeling joint entity and relation extraction with table representation[C]//Proceedings of Conference on Empirical Methods in Natural Language Processing. Berlin, Germany: Springer, 2014: 1-10.
[16]
TAKANOBU R, ZHANG T Y, LIU J X, et al. A hierarchical framework for relation extraction with reinforcement learning[C]//Proceedings of AAAI Conference on Artificial Intelligence. Palo Alto, USA: AAAI Press, 2018: 1-9.
[17]
孙紫阳, 顾君忠, 杨静. 基于深度学习的中文实体关系抽取方法[J]. 计算机工程, 2018, 44(9): 164-170.
SUN Z Y, GU J Z, YANG J. Chinese entity relation extraction method based on deep learning[J]. Computer Engineering, 2018, 44(9): 164-170. (in Chinese)
[18]
FU T J, LI P H, MA W Y. GraphRel: modeling text as relational graphs for joint entity and relation extraction[C]//Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. Stroundsburg, USA: Association for Computational Linguistics, 2019: 1-10.
[19]
LI X Y, YIN F, SUN Z J, et al. Entity-relation extraction as multi-turn question answering[EB/OL]. (2019-05-14)[2021-01-02]. https://arxiv.org/pdf/1905.05529v1.pdf.
[20]
NAYAK T, NG H T. Effective modeling of encoder-decoder architecture for joint entity and relation extraction[C]//Proceedings of AAAI Conference on Artificial Intelligence. Palo Alto, USA: AAAI Press, 2020: 8528-8535.
[21]
RANZATO M, CHOPRA S, AULI M, et al. Sequence level training with recurrent neural networks[EB/OL]. (2015-11-20)[2021-01-02]. http://de.arxiv.org/pdf/1511.06732.
[22]
CARUANA R. Multitask learning[J]. Machine Learning, 1997, 28(1): 41-75. DOI:10.1023/A:1007379606734
[23]
VANDENHENDE S, GEORGOULIS S, GANSBEKE W, et al. Multi-task learning for dense prediction tasks: a survey[J/OL]. IEEE Transactions on Pattern Analysis and Machine Intelligence: 1-10[2021-01-26] https://ieeexplore.ieee.org/document/9336293.
[24]
CIPOLLA R, GAL Y, KENDALL A. Multi-task learning using uncertainty to weigh losses for scene geometry and semantics[C]//Proceedings of IEEE/CVF Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2018: 7482-7491.
[25]
CHEN Z, BADRINARAYANAN V, LEE C Y, et al. GradNorm: gradient normalization for adaptive loss balancing in deep multitask networks[C]//Proceedings of International Conference on Machine Learning. Berlin, Germany: Springer, 2017: 1-10.
[26]
SUTSKEVER I, VINYALS O, LE Q V. Sequence to sequence learning with neural networks[EB/OL]. [2021-01-02]. https://proceedings.neurips.cc/paper/2014/file/a14ac55a4f27472c5d894ec1c3c743d2-Paper.pdf.
[27]
GRAVES A, SCHMIDHUBER J. Framewise phoneme classification with bidirectional LSTM and other neural network architectures[J]. Neural Networks, 2005, 18(5/6): 602-610.
[28]
HOCHREITER S, SCHMIDHUBER J. Long short-term memory[J]. Neural Computation, 1997, 9(8): 1735-1780. DOI:10.1162/neco.1997.9.8.1735
[29]
LUONG T, PHAM H, MANNING C D. Effective approaches to attention-based neural machine translation[EB/OL]. (2015-08-17)[2021-01-02]. https://arxiv.org/pdf/1508.04025v1.pdf.
[30]
SRIVASTAVA N, HINTON G, KRIZHEVSKY A, et al. Dropout: a simple way to prevent neural networks from overfitting[J]. The Journal of Machine Learning Research, 2014, 15(1): 1929-1958.
[31]
KINGMA D P, BA J. Adam: a method for stochastic optimization[EB/OL]. (2014-12-22)[2021-01-02]. https://arxiv.org/pdf/1412.6980.pdf.
[32]
BEKOULIS G, DELEU J, DEMEESTER T, et al. Joint entity recognition and relation extraction as a multi-head selection problem[J]. Expert Systems with Applications, 2018, 114: 34-45.