张东东,彭敦陆
(上海理工大学 光电信息与计算机工程学院,上海200093)
随着网络信息资源的日渐丰富,信息数据呈现出规模巨大、模态多样和高速增长等特点.在互联网搜索领域中,当用户输入查询信息时,希望计算机能够从语义层面理解用户想要获取的信息,而不仅是关键字的提取和搜索.这就迫切要求计算机能快速、准确地返回用户真正所需信息.Google在2012年推出知识图谱并将它应用到搜索引擎中增强搜索结果准确性,这标志大规模知识图谱在互联网语义搜索中的成功应用[1].
信息抽取是构建知识图谱的第1步.它是一种从不同来源、不同结构的数据中抽取实体、关系以及实体属性等信息的技术[2].从应用的广泛程度以及研究的深入程度来看,信息抽取任务主要包含两个主要的子任务:命名实体识别任务和实体关系抽取任务[3].提高命名实体识别的准确率,在信息抽取、语篇理解、句法分析以及机器翻译等任务中具有重要意义,但仅仅进行实体识别只能得到以离散形式存在的实体,进一步的任务还需要发掘实体之间的关系.
在深度学习有监督领域中,对于实体关系的抽取研究现阶段大部分都是通过已知实体对来判断实体对之间的所属关系,即将实体关系抽取看作是关系分类任务.对于有监督领域的实体关系分类研究早期采用的是传统非深度学习方法,根据关系实例的表示方式不同,可以分为基于特征的方法[3]和基于核函数的方法[4].传统方法一个最大的不足是过于依赖自然语言处理NLP(Natural Language Processing)工具(例如WordNet、词性标记、依存句法分析等),这可能会导致隐式错误的积累,同时人工构造的特征无法捕获所需的所有相关信息.深度学习近年来发展迅猛,因为通过深层神经网络可以对大规模的文本语料进行学习.在这些网络模型中,在卷积神经网络CNN(Convolutional Neural Network)或循环神经网络RNN(Recurrent Neural Network)中加入注意力机制(Attention mechanism)被认为是目前关系分类任务中主流和最佳的解决方法[5-10].新近提出的BERT模型[11]刷新了多项NLP任务的最佳效果,紧接着便有相关研究将它应用于文本分类和实体关系分类,但实体关系分类与文本分类最大的区别就是关系分类更关注两个实体的信息.因此,针对现有实体关系分类方法所存在的缺陷,本文试图将BERT模型与实体对信息相结合从而构建基于有监督领域的实体关系分类模型ENT-BERT.本研究的主要贡献如下:
·将预训练模型BERT应用于实体关系分类任务,采用句子向量与实体向量相结合的方式来突出实体信息,从而提出新的关系分类模型.
·在句子向量和实体向量的结合过程中引入了注意力机制,使得不同特征向量对预测实体间关系的贡献度不同.
·分别在中英文数据集上进行实验验证.实验结果表明,与大部分模型相比,ENT-BERT模型能更有效地提高实体关系分类效果.
论文其余部分的结构如下:第2部分介绍近年来国内外有监督领域关系分类任务的研究现状;第3部分介绍了本文的实体关系分类模型ENT-BERT;第4部分通过实验证明模型的性能;第5部分给出论文的结论和展望.
近年来得益于深度学习的发展,CNN是第一个被应用于关系分类任务的深度学习模型.Zeng等人[12]将词向量和相对位置信息作为输入,然后利用CNN提取局部特征,最终在英文数据集上达到了较好的效果.但是CNN却无法捕获句子的层次信息和语法信息,Li等人[13]结合依存树和层次卷积方法提出了改进的CNN模型并应用于关系分类任务.Santos等人[14]是在CNN模型基础上做出改进,引入新的损失函数后更容易区分开一些易于分错的类别.在Socher等人[15]的工作中,他们没有使用CNN作为基本结构,而是开始尝试将RNN用于关系分类.Zhou等人[5]更是结合更简单的位置特征信息PI(Position Indicators)来突出两个实体的位置,再使用Att-BLSTM(Attention-Based Bidirectional Long Short-Term Memory Network)模型架构来捕获句中更加重要的语义信息.鉴于注意力机制在图像领域中的表现,其在文本领域中也用于获得词级别和句子级别的权重特征.Sheng和Huang[10]利用词级别的注意力机制使得与实体对相关的词语拥有更高的权重系数,再结合CNN使得分类效果得到进一步提升.为了区分文本中不同句子对关系分类的贡献程度,Meng等人[6]在加入词级别的注意力机制后还引入了句子级别的注意力机制来提高分类效果.由于CNN能提取词级别的特征和RNN能提取句子级别的特征,Guo等人[9]提出将CNN、RNN和注意力机制相结合的Att-RCNN(Attention-Based Combination of CNN and RNN)模型.Wang等人[7]更是通过两个注意力层结合CNN来更好识别异构的上下文中的模式从而提出Att-Pooling-CNN模型,最终使得实体关系分类效果达到新高.以上介绍的都是关于英文关系分类的研究,对于中文实体关系分类而言,Wu等人[16]将所提出的PCNN_ATT模型应用于第8届中文倾向性分析评测(COAE2016)任务3中并取得较好成绩.Li等人[17]提出基于多特征自注意力的实体关系抽取方法,充分考虑词汇、句法、语义和位置特征,其在COAE2016任务3的数据集上取得最佳效果.
BERT是最近提出的语言预训练模型,该模型使用双向Transformer模型结构[18]对大型的未标记语料库进行预训练,然后通过对下游任务进行微调的方式在一些NLP任务(例如分词、命名实体识别、情感分析和问题解答)上展现模型优异性能.但它仍然缺少特定领域相关知识,为了解决这样的问题,Xu等人[19]通过构造辅助语句从而提出基于BERT的文本分类模型BERT4TC,多个数据集上的实验结果表明具有适当辅助语句的BERT4TC明显优于典型的基于特征的方法和微调方法.Ma等人[20]直接将BERT所得到的句子向量表示用于中文实体关系分类并获得较好的分类效果.
图1是整体模型架构,模型主要由3个部分组成:(i)BERT层对句子进行编码得到句子表示H(ii)将组成实体的字向量取平均得到两个实体向量表示He1,He2(iii)再通过注意力机制将所得到的句子向量H[CLS]与两实体向量相结合,最终通过全连接层和softmax函数进行分类.
图1 ENT-BERT模型架构Fig.1 Architecture of ENT-BERT model
在深度学习领域,RNN及其改进模型LSTM、GRU(Gated Recurrent Unit)都适用于对序列进行建模,但是它们的缺点就是无法并行处理,它们需要递归才能获得全局信息因而计算速度较慢.CNN尽管计算速度快,但事实上它只能获取局部信息.谷歌提出基于多头自注意力机制的Transformer模型[18],并在机器翻译任务领域取得较佳效果,而BERT模型实际上就是多层的双向Transformer模型的编码器部分.BERT[11]作为语言模型在处理模型输入时还在词向量的基础上加入了段落向量和位置向量.同时,序列的首位置还加入了特殊标记[CLS],H[CLS]是[CLS]经过BERT后对应的文本表示,而对于一个任务中拥有多个句子时,[SEP]则用于分隔句子.不同于以往的从左往右或者从右往左的预训练方式,又或者将两者结合使用的方式,BERT采用的是遮蔽词预测和下一句判断方式来进行训练,这样获得的向量表示拥有更全局的表达.
如图1所示,给定带有两个实体e1,e2的文本sk,输入文本经过BERT模型后的最终输出为H.不同于一般的文本分类直接利用句子表征向量H[CLS]结合全连接、softmax函数得出分类概率,本文为了突出实体信息,通过注意力机制将句子向量表征与两个实体向量进行结合.首先将实体中的字向量取平均得到两个实体向量He1和He2,其计算方式为公式(1)和公式(2),其中i,j对应实体e1的首字下标和尾字下标,m,n对应实体e2的首字下标和尾字下标.
(1)
(2)
(3)
(4)
α=softmax(wTM)
(5)
(6)
接下来对H"[CLS]用激活函数tanh使其非线性化,然后进行全连接,其中,W,b是待学习的权重矩阵和偏置项.
(7)
最终采用softmax函数来得到关系类别输出概率:
(8)
公式(8)中yl是目标关系类别,θ表示所有需要学习的参数.实体关系分类任务属于多分类任务,所以本文采用交叉熵损失函数作为目标函数,其公式中|D|的表示训练集样本数量.同时为了避免过拟合问题,公式(9)中还加入L2正则项.
(9)
本研究进行实验的操作系统是Ubuntu16.04,其它设备信息是Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz,64GB内存以及两块NVIDIAGeForce 1080Ti显卡,然后在深度学习框架Keras-GPU 2.2.4下使用Python3.6编程完成实验.
本研究实验部分采用的英文数据集来源于SemEval-2010任务8[21],该数据集已被广泛用于关系分类任务,通过与其他方法的比较可以验证模型的分类效果.该数据集包含10717条文本,其中8000条作为训练集,2717条作为测试集,各种关系分布如图2所示,其中“Other”类别表示实体对之间没有关系.根据官方评价标准,在SemEval-2010任务8数据集中总共需要考虑19种关系类型,因为关系类别Cause-Effect(e2,e1)和关系类别Cause-Effect(e1,e2)是不同的,下文实验皆使用SemEval-2010-Task8来表示SemEval-2010任务8中的数据集.
图2 SemEval-2010-Task8关系类别及其分布Fig.2 SemEval-2010-Task8 relation type and distribution
现有开放的关系抽取中文标记语料库相对稀缺,第8届中文倾向性分析评测增加了知识抽取关系分类的任务,本文中文实验是在该任务提供的数据集上进行的.数据集是由988条文本的训练集和483条文本的测试集组成.在这个任务中,有10种类型的关系,但是该任务当时是参赛者提交测试集预测结果后由官方组织人员验证结果的准确性,所以该任务提供的测试集是没有关系类别标签的.本文在采用人工标注测试集语句关系的过程中,发现训练集和测试集中并未出现有语句对应“组织机构的成立时间(Cr35)”关系,所以实验部分仅考虑剩余9种关系类别,下文实验皆使用COAE-2016-Task3来表示COAE 2016任务3中的数据集.
针对每个关系类别,一般用精确率P(Precision)、召回率R(Recall)和F1(F1_score)值来衡量模型分类效果.实体关系分类属于多分类任务,从图2关系类别分布情况看可知数据分布大致平衡,因此本文采用macro-F1来衡量模型性能.首先分别计算每个类别样本的P、R和F1值,公式(10)-公式(12)中i表示第i类样本,TP表示正确预测的正样本数,TN表示正确预测的负样本数,FP表示错误预测的正样本数,FN表示错误预测的负样本数:
(10)
(11)
(12)
宏观精确率Pma就是所有类别精确率的均值,宏观召回率Rma也是所有类别召回率的均值,宏观F1值F1ma也是所有类别F1值的均值.
(13)
(14)
(15)
实验中,因为官方所提供的数据集缺少验证集,考虑到模型超参的选择,本文使用十折交叉验证法来验证不同超参对模型性能的影响.在训练过程中,训练数据按照9:1的比例划分为训练集和验证集,并将10次验证结果的均值作为当前模型的评估.实验结果表明当模型取得最优效果时,其主要相关参数设置如下.在数据预处理的过程中,中英文数据集的最大句子长度分别为220和100,在模型训练阶段,中英文数据集的Batch_size都是16.为了防止过拟合,本实验将L2正则项系数λ设为10-5,全连接层的dropout设为0.1,最终采用Adam算法来优化更新迭代参数.
实验1.SemEval-2010-Task8上关系分类方法比较
本组实验将ENT-BERT模型和其它方法在不同特征支持下的分类效果进行对比,这些方法包括机器学习方法代表SVM,卷积神经网络相关方法CNN和CR-CNN,CNN或者RNN与注意力机制相结合的方法有Att-CNN、BGRU-Att、Att-BLSTM、Att-RCNN、Att-Pooling-CNN、BLSTM-Entity_Att.以上多种方法采用的特征集WE、POS、NER、PF、PI分别对应着词嵌入WE(Word Embedding)、词性标注POS(Part-of-speech)、命名实体识别NER(Name Entity Recognition)、PF(Position feature)、PI(Position indicators).
表1中可以看出除了第1种方法SVM外,其它都是基于神经网络的关系分类方法.SVM[3]利用人工构造特征在所有的传统方法中取得最好的结果,其F1ma值达到了82.2%.CNN[12]利用原始语句序列作为输入,并利用位置特征来突出实体对的位置信息.显而易见PF对于实体关系分类任务很重要,因为F1ma从69.7%增加到82.7%.CR-CNN[14]更多地考虑“Other”关系类别的影响,改进损失函数后达到84.1%的F1ma值.注意力机制在图像、文本和语音等不同领域取得的有效成果,使得Att-BLSTM[5]、Att-CNN[10]和BGRU-Att[6]在关系分类任务上取得更好效果.
表1 SemEval-2010-Task8上关系分类方法比较Table 1 Comparison of relation classification methods on SemEval-2010-Task 8
与本文模型最为相关的模型是BLSTM-Entity_Att[8],Att-RCNN[9]和Att-Pooling-CNN[7].BLSTM-Entity_Att论文中的注意力机制就是Transformer模型中所提出的多头注意力机制,而本文模型中BERT就是多层双向Transformer的编码器部分,由实验数据对比可知多层Transfomer的结合比单层多头注意力机制效果好.对于Att-RCNN和Att-Pooling-CNN,这是目前基于CNN和RNN方法在关系分类任务上表现较佳的代表,而本文模型是基于BERT和Transformer模型,即完全基于注意力机制,并未使用CNN或RNN来提取特征,其实验数据表明在SemEval-2010-Task8上取得88.9%的宏观F1值.
实验2.实体信息对实体关系分类的影响
文本经预训练模型BERT后会得到句子向量和字向量,文本分类任务一般解决方法是将得到的句子向量表示与softmax函数结合,这样便可取得优异的分类效果.但实体关系分类与文本分类任务主要区别在于它更需要突出实体信息,本研究为了突出实体从而引入注意力机制将句子向量表示与两个实体向量相结合,因而设计出图1的实体关系分类模型架构.为了突出本文贡献,进一步设计相关实验2.
图3 模型不同特征组合的影响Fig.3 Influence of different feature combinations of the model
图3中Sen_PI_ENT就是本文所采用模型架构,其中Sen表示输入的句子序列,PI是通过e1和e2来指明Sen中的两个实体,ENT表示将句子向量与两实体向量相结合,所以Sen_PI代表直接将带有PI特征的句子序列经过BERT模型后得到的句子向量用于分类的结果,Sen_ENT代表将不带有PI特征的句子序列经过BERT模型得到句子向量后再结合两实体向量用于分类.Sen_PI与Sen的数据对比可以表明PI特征对与实体关系分类任务的重要性.与此同时,Sen_PI与Sen_ENT实验效果相差无几,即表明通过句子向量和两实体向量的结合方式同样使得分类效果提升显著,这也说明本文引入注意力机制将句子向量与实体向量相结合的方式对于实体关系分类任务具有重要意义.因此,在结合PI特征和特征向量结合操作后,本文所设计的模型在SemEval-2010-Task8上取得较佳效果.
实验3.句子向量与实体向量结合方式的比较
表2 句子向量与实体向量结合方式的比较Table 2 Comparison of the combination manner of sentence vector and entity vector
目前对于特征向量的哪种结合方式较好的相关研究较少,基本都是通过实验结果来选择结合方式.尽管采用相加的方式会使得所训练的参数相对少一点,但从表2中的数据可以看出直接将实体向量加入句子向量效果并没有采用连接的方式好,而且也不如引入注意力机制的效果.
造成该现象的主要原因是经过BERT模型所得到的句子向量其实已经包含实体对的信息,当特征向量采取直接相加的结合方式时,这会使得后续神经网络无法将句子向量信息与实体向量信息分隔开.当特征向量采用连接的方式时,这会使得在训练过程中会有额外的参数对两实体向量进行拟合.当引入注意力机制后会赋予实体向量和句子向量不同的权重,进一步提升实体关系分类的效果.
实验4.COAE-2016-Task3上关系分类方法比较
表3中ET(Entity Type)表示实体类型,EO(Entity Order)表示实体顺序,*表示论文数据未列出.实验数据表明使用多种特征的SVM算法[22]的Pma和Rma值差异较大,这是因为该方法在常见关系类别上的效果较佳,而在一些稀有关系类别上的表现较差.CNN模型中Pma和Rma较为平衡,但是因为COAE-2016-Task3中训练样本较少导致效果不佳,当训练样本较大时CNN仍有很大提升空间.PCNN_ATT模型[16]不仅优于基于SVM的方法,而且相比CNN模型它相对提升了11.6%的F1ma值,因为它引入了词级别的注意力机制和采用了分段最大池化操作的策略,同时也证明了ET有助于区分某些关系类别.
表3 COAE-2016-Task3上关系分类方法比较Table 3 Comparison of relation classification methods on COAE-2016-Task3
相比PCNN_ATT和SelfAtt-BLSTM模型,ENT-BERT模型在中文实体关系分类任务COAE-2016-Task3上分类效果能有如此大的提升,其主要原因如下:1)其它方法使用的词向量需要对文本序列进行分词,所以分词过程所带来的错误积累会影响实体关系分类准确性;2)因为经过BERT预训练的词向量已经是基于上下文特征的字向量,其句子向量含有丰富的文本信息,3)是本文的创新所在,即在句子向量与实体向量的结合过程中引入注意力机制使得中文实体关系分类效果进一步提升.以上种种原因使得ENT-BERT模型在COAE-2016-Task3上取得最优效果,而且F1ma比SelfAtt-BLSTM模型提高7.39%.
本文利用预训练语言模型BERT获得输入文本的句子向量和字向量,然后通过字向量取平均的操作得到实体向量,再引入注意力机制将句子向量和实体向量相结合再用于实体关系分类任务,从而提出了ENT-BERT模型.该模型不需要任何背景知识和句法特征作辅助信息,仅通过原始文本作为输入,更加有效地利用实体信息.在SemEval-2010-Task8和COAE-2016-Task3上的实验效果表明所提出的模型对于实体关系分类任务具有更好的效果.
然而有监督的实体关系分类任务需要大量人工来标注数据集,进而训练出相应模型.然而工作量的大小限制了数据集的规模,同时当模型面向不同领域时,往往需要重新进行数据标注,这无疑会大大增加模型移植的困难.最后,有关半监督的实体关系分类任务的研究将会是接下来的工作.