马建红 魏字默 陈亚萌
(河北工业大学人工智能与数据科学学院 天津 300401)
专业领域资源命名实体识别(Named Entity Recognition,NER)[1]和关系抽取(Relation Extraction,RE)[2]是对资源描述的文本进行信息抽取的重要方式,基于实体和关系可以构建出资源库和资源知识图谱,可以更好地促进自然语言处理(Natural Language Processing,NLP)上层任务的发展。
当前,完整解决NER和RE这类问题的场景需求很多,一般可以归结为对应的两个子任务,主要有两种完成方式,一种是流水线方式;另一种是联合学习方式。
目前的研究以流水线处理方式较多,例如:对于命名实体识别,张海楠等[3]、何炎祥等[4]分别使用神经网络和机器学习方法完成NER任务;对于关系抽取,Yan等[5]、 Li等[6]采用改进的深度学习方法完成RE任务。这种流水作业方式使得两个子任务易于处理,但存在一些缺陷,例如:忽略了两个子任务模块之间的关联性,前一个子任务的错误会顺延传递到下一个子任务;两个子任务都是对原始文本进行处理,做了重复性的数据处理工作,处理效率低。
与流水线处理方式不同,联合学习方式可以有效解决上述问题。基于深度学习的联合抽取方式拥有以下优势:① 采用深度学习的模型可以自动学习句子特征,无须人工构建复杂的特征工程;② 这一方式考虑了子任务之间关联性的同时,避免了流水线方法中子任务训练误差、错误率累计传播和冗余实体产生等问题;③ 端到端的学习方式较大地提升了处理效率[7]。因此,研究有效的联合抽取方式更具实际意义。
本文将化学资源库应用于计算机辅助创新(Computer Aided Innovation,CAI)[8]中,对化学资源的完整描述包括资源物质本身、资源的属性或参数和相应的量值。在非结构化文本中它们会被全部或者部分地描述出来,因此,本文以资源的物质(RES)、属性(PAR)、值(VAL)作为抽取的对象,表示为(RES,PAR,VAL)的三元组形式。分析表明,该领域文本主要存在以下特点:
(1) 文本中各类实体组合方式多变,词长主要为2~20字符不等,其中包含较多的长实体名、文字夹带符号的混合情况,例如,“5,6-二羟基吲哚”、“抗静电剂SH-105”等。
(2) 一个自然句中包含的实体数量多,因此确定文本中三类实体对象互相之间是否存在关系比较困难。
(3) 实体与实体间存在一对多的描述情况,即一个句子中某一实体可能会同时存在多个三元组中,存在一定的重叠关系。
联合抽取的方法又可以分为参数共享和序列标注两类。Miwa等[9]提出了一个基于参数共享的联合抽取模型,NER子任务中的输出和隐含层共同作为RE子任务输入的一部分,实现共享参数。Li等[10]在Miwa等研究的基础上加入了实体验证的处理,并将该模型应用于提取细菌和细菌位置关系。Katiyar等[11]在参数共享的基础上将注意力机制引入到RE子任务中。这种方式虽然在底层参数上进行了共享,但两个子任务是分别进行的,依旧会产生冗余信息。Zheng等[12]提出了一个序列标注的方式,通过将实体之间的关系类型放入标签中,使用序列标注模型直接抽取实体对及其关系。标签中包含三部分信息:实体的边界信息、实体的关系类型和实体的序号。针对在一个句子中出现相同类型关系的多个实体,采用就近的原则来标注实体。这种方法只考虑了一个实体属于一种关系的情况,如图1所示。而在很多情况下一个句子中存在多个三元组信息,并且同一个实体会出现在多个关系中,比如将此例句改为“The United States President Trump’s wife Melania Trump will…”。此时夫妻关系(Husband-Wife,HW)与国家-总统关系(Country-President ,CP)只能被标注出一个,导致最终的查全率受影响。本文所要研究的化学领域文本对于资源叙述中也会大量出现类似的关系重叠情况,因此,本文提出一种新的标注策略。
对于文本数据的向量化表示,在2018年以前的几年中,NLP任务的起点多是以Word2vec为代表的词向量。获得词向量以后,对其进行平均或者求和得到句向量,这种处理方式难以实现深层语义的提取,导致上层任务效果提升困难。当前很多词向量表示的方法都是静态的,如Word2vec、GloVe等,当训练完成之后便获得了一个词的唯一确定的向量表示。由于一个词很可能在不同的句子语境中表示不同的意思,Google在2018年提出BERT[13],译为基于Transformer[14]的双向编码表征,实现了一词多义的表示以及基于上下文的双向特征表示,保证了其在表征上更高的准确性。
另一方面问题来自学习模型,深度学习方法中卷积神经网络(Convolutional Neural Network,CNN)常被引入到关系分类的任务上用于特征学习,虽然取得了较好的表现,但是在面对长距离依赖的问题上存在局限,当增大上下文窗口大小的同时,模型的性能也会下降。循环神经网络(Recurrent Neural Networks,RNN)缓解了长距离依赖的问题,但是随着间隔增大,RNN存在遗忘问题,对捕获远距离的特征依旧存在局限。因此研究者们提出了长短时记忆网络模型(Long Short Term Memory,LSTM)来解决这个问题,LSTM采用“门”让上游信息有选择性地传递给每个时序序列。在自然语言的处理中,句子当前位置的特征不仅依赖于先前位置,还与后续位置特征也存在着较大的关系。随即便有研究者们提出了BiLSTM模型,通过深度提取文本的上下文特征,增强对长文本的处理能力。2015年开始BiLSTM-CRF模型逐步在处理序列化标注问题上得到应用,Plank等[15]研究表明了双向长短记忆模型在词性标注任务上具有较好的效果。Yang等[16]对CRF、BiLSTM及BiLSTM-CRF联合模型在中文和英文语料上的词性标注效果进行了对比,结果证明了BiLSTM-CRF模型在解决序列问题上的优异性。
基于化学领域的文本特点,本文结合深度学习技术提出了一种联合抽取的解决方法。本文贡献主要体现在以下两个方面:
(1) 提出一种针对实体及关系联合抽取的模型,该模型由BERT、BiLSTM和CRF组成,能够对长文本进行建模。
(2) 提出一套针对化学领域实体关系三元组抽取的标注策略,该标注策略可以有效地在多实体共现的文本中抽取存在重叠关系的三元组信息。
本文的实体关系抽取框架如图2所示。IFT-Joint模型的核心部分由BERT预训练语言模型和BiLSTM-CRF网络构成,实现了一个抽取实体及关系三元组信息的端到端学习模型。
图2 资源实体关系抽取框架
为了解决重叠关系问题即实体之间关系一对多的情况,本文使用一种信息融合标注策略。在多实体共现时根据各自对应情况进行划分,标签中含有三部分信息:① 标签前缀。实体边界信息,用BIN来表示,“B”表示实体的起始边界,“I”表示后继序列,“N”表示与实体无关的信息。② 标签中缀。实体类型信息,“RES”表示资源实体,相当于传统三元组中的“实体1”;“PAR”表示属性实体,该实体在三元组中位于中间位置,相当于“关系”,本文将关系属性作为一类实体处理,摆脱同一个实体只能出现在一个关系中的局限性,从而解决实体一对多的问题;“VAL”表示量值实体,该实体在三元组中位于最后的位置,即“实体2”。③ 标签后缀。各类实体间对应关系信息,“O、I、II、III、IV、V”的表征意义为属性实体与值实体的对应描述关系以及在缺失属性实体的情况下值实体与资源实体的直接描述关系。例如,在文本中对“资源A”的描述中的资源实体标签用{B-RES-O,I-RES-O},相关的属性实体标签用{B-PAR-I,I-PAR-I,B-PAR-II,I-PAR-II…B-PAR-V,I-PAR-V},对应的值实体标签为{B-VAL-I,I-VAL-I,B-VAL-II,I-VAL-II…B-VAL-V,I-VAL-V},被省略属性描述的值实体用{B-VAL-O,I-VAL-O}。图3为一组文本标注样例。
邻苯二甲酸氢钾是一B-RES-OI-RES-OI-RES-OI-RES-OI-RES-OI-RES-OI-RES-ONN种化学物质,分子式NNNNNNB-PAR-II-PAR-II-PAR-I是C8H5KO4,NB-VAL-II-VAL-II-VAL-II-VAL-II-VAL-II-VAL-II-VAL-IN白色结晶性粉末;在B-VAL-OI-VAL-OI-VAL-OI-VAL-OI-VAL-OI-VAL-OI-VAL-ONN空气中稳定,能溶于NNNB-VAL-OI-VAL-ONB-VAL-OI-VAL-OI-VAL-O水,溶液呈酸性;分I-VAL-ONNNNB-VAL-OI-VAL-ONB-PAR-II子量:204.22I-PAR-III-PAR-IINB-VAL-III-VAL-III-VAL-III-VAL-III-VAL-III-VAL-II。N
从图3的序列标签中,容易得到如表1所示的三元组信息。
表1 序列标注的结果
其中第1组与第2组包含完整的三元组信息。同时可以看出属性实体被省略的(Not Given,NG)值实体与资源实体的直接对应关系,如第3组-第6组。基于现有知识库所构建的属性量值字典对表中缺失属性进行补全(本文暂不对补全操作进行论述)。即可抽取得到6组三元组信息,充分发掘文本内容。
文本的文本向量表示即编码阶段,采用BERT预训练模型进行微调完成。BERT是一种多层双向Transformer编码器,在训练过程中使用了“Masked语言模型”。图4为BERT的模型结构图,其中:Ei为每个词块对应的embedding表示;Trm为Transformer编码单元;Ti为输出的每个token。
图4 BERT模型结构
BERT进行遮蔽(Mask)预训练工作,通过随机Mask输入词块中的15%,其中的80%会直接用[MASK]符号代替,10%会替代为其他任意的词,最后10%会保留原词。将其传入多层的Transformer中训练预测这些被Mask的词块,得到深度双向语义表示的向量。
值得注意的是,BERT模型核心部分是一个多层双向的Transformer编码结构,不再依赖RNN或者CNN,只需要注意力机制就能够一步到位地获取全局信息。其中Transformer编码单元的结构如图5所示,Add为做残差连接,将模块的输入与输出直接相加,作为最后的输出;Normalize为对某一层神经网络节点做0均值1方差的标准化。
图5 Transformer编码单元结构
编码部分主要是基于自注意力的,计算式如下:
(1)
式中:Q∈Rn×dk,K∈Rm×dk,V∈Rm×dv。如果忽略激活函数softmax的话,那么事实上它就是三个n×dk、dk×m、m×dv的矩阵相乘,最后的结果就是一个n×dv的矩阵。也可以将其视为一个Attention层,将n×dk的序列Q编码成了一个新的n×dv的序列,因此,其实质是一个重新编码的过程。
这样做的目的是获得一个既可以表示词本身特征又可以反映上下文关系的表达。为了增强其表示能力,Transformer使用了“多头”模式对其进行了优化,使模型共同处理来自不同表达的子空间在不同位置的信息,如式(2)和式(3)所示。
MultiHead(Q,K,V)=Concat(head1,head2,…,
headi,…,headh)
(2)
(3)
(4)
FFN(x)=max(0,xW1+b1)W2+b2
(5)
式中:α和β是可学习的参数;接近于0。W1、W2为全连接权重矩阵;b1、b2为正则化项。
Transformer是基于完全注意力的方法,与一般CNN和RNN编码词与词之间位置的描述方式都不同,它能够依据上下文距离长短建模捕捉两个词之间的关系。为了使Transformer感知词与词之间的位置关系,BERT的输入表征中使用位置编码给每个词加上位置信息。
如图6所示,它的输入表征通过对相应词块嵌入、句段嵌入和位置嵌入求和来构造。首先,将每个位置编号,然后每个编号对应一个向量,通过结合位置向量和词向量,给每个词都引入了位置信息,如式(6)和式(7)所示,这样Attention就可以分辨出不同位置的词了。
图6 BERT输入表征
(6)
PE(pos,2i+1)=cos(pos/10 0002i/dmodel)
(7)
式中:pos是指词语在序列中的位置;i表示位置向量中每个值的维度;dmodel是模型的维度,故i BERT预训练模型真正做到了同时考虑上下文语义特征,能捕捉更长距离的依赖,可以为上层网络模型的构建提供更好的文本表征。 利用CRF层对BiLSTM层的输出进行进一步处理。对于待预测的标签序列y={y1,y2,…,yT}则通过以下得分函数求得: (8) (9) 式中:s(x,y)为标签序列y的得分;Ayt-1,yt代表从第t-1个标签转移到第t个标签的概率;Pt,yt为第t个词映射到第t个标签的概率;P(y|x)为标注为标签序列y的概率,为使其达到最大,采用对数最大似然估计得到代价函数,最后使用维特比算法求得最优标签序列。 如图7所示,本文的IFT-Joint引入了BERT,在经过大规模语料预训练后再由本文的领域数据进行微调,可以获得高质量的序列向量表示。原始文本输入后,经过多层Transformer的Encoder获得深层的语义表示,再将BERT最后一层的结果输入到BiLSTM中完成进一步的编码,最后交由CRF层输出最优标签序列。 图7 IFT-Joint模型 由于目前化学领域还未形成统一的语料库,因此本文从百科以及专利文本中爬取文本语料,再结合目前已有的知识库形成数据集。按照本文所提出的标注策略进行标注,共标注2 674句,包含184 080个字级别的标签。语料中的文本涉及化学物质、材料、电器元件及其他分别占比为63%、21%、11%和5%,人工标注结果经过了CAI验证。各集合句子数量及3种命名实体数量如表2所示。 表2 训练集、验证集、测试集中3种命名实体数量 实验使用准确率P、召回率R以及F1值对结果进行评测,其计算公式如下: (10) (11) (12) 式中:Nr为预测正确的实体总数;Na为预测出的实体总数;M为测试集合中的实体总数。 本文实验均采用统一的运行环境进行,如表3所示。 表3 环境参数 BERT隐含单元数768,隐含层数12,初始化范围0.1,处理序列最大长度128,学习率为5e-5,训练批处理大小为32。本文下载使用Google提供的中文预训练模型“BERT-base Chinese”进行Fine-tuning。BiLSTM_CRF部分隐含单元数128。 实验选取3.1节中所构建的语料库的训练样本作为本文模型的训练集进行训练,采用测试样本进行模型训练后的测试评估。参数验证结果如图8所示。 (a) (b)图8 不同参数值对F1值影响 在训练时为了防止出现过拟合引入了dropout策略。IFT-Joint模型F1值随着丢码率的变化如图8(a)所示,当丢码率设置为0.5时模型总体效果最好,本文在接下来的对比实验中将模型的丢码率设置为0.5。IFT-Joint模型在训练到3个epoch时便可以达到稳定,其F1值可以到达76.55%,增加epoch后训练时长会相应增加,其F1值在76.50%左右小幅波动,每增加一个epoch,训练时长增加1 590 s左右,因此训练成本会增加,本文在考虑训练效率最佳的情况下选取epoch为3来完成与其他模型的对比实验。 为体现本文方法在准确度和稳定性上的优势,将IFT-Joint与CRF、RNN、BiLSTM和BiLSTM-CRF四种常用于解决序列问题的方法在同一语料库上进行实验对比。为统一比较标准,所有需要数据标注的方法均使用本文3.1节中提出的策略进行标注,所有网络隐含层节点数均取128。另外,除本文模型外其他涉及分词操作的方法均采用jieba分词工具包做分词处理,词向量训练均采用Word2vec,词向量训练部分选择CBOW模型,词向量的维度大小采用200。 本文报告了不同方法的实验结果,由于本文所使用的新标注策略中标签分为三部分,标签前缀和中缀可以反映实体序列的预测结果,而后缀可以反映关系的对应情况,故而实验从实体识别结果和三元组联合抽取结果进行统计分析。 (1) 表4通过对测试集上的标签序列的前缀和中缀进行统计,列出了三类实体识别结果。如图9所示,表4中的结果来自标签中对①部分的统计分析。可以看出,用深度学习的方法识别效果要强于仅用CRF,CRF特征表示不充分,并且其结果受人工制定特征模板的影响严重,神经网络的方法总体上有效地提取了文本特征。BiLSTM方法效果优于RNN,表明在本文所研究的长序列问题中RNN无法很好地解决长距离依赖的问题,而LSTM单元对RNN的改进有效缓解了这个问题,优化了长期记忆的功能。将CRF加入到BiLSTM中可以明显提高其序列的准确率,这也说明了CRF在序列标注问题上可以有效考虑全局最优的解。当引入BERT后,模型整体效果有了较大提升,说明在句子的表征能力上,BERT预训练模型可以提取更深层更有效的文本特征,较之Word2vec的embedding对网络模型参数的优化更有效。 表4 实体识别结果 % 图9 标签结果分析 (2) 表5中的结果来自图9标签②部分,这是对标签完整信息的统计,即三类实体最终构成三元组(R,P/NG,V)结果的情况,其中“P/NG”为本文2.2节中提到的情况,即存在属性信息的三元组或者被省略属性信息的三元组,两者均作为正确结果。通过与表4中结果对比分析发现,不论哪类模型均存在各类实体的准确率以及召回率均高于最终所构成的三元组情况。究其原因,从标签后缀中获得关系结果,标签中包含了两大类直接对应关系,即一种是“资源实体”与被省略属性的“值实体”,另一种是“属性实体”与对应的“值实体”,若对应关系涉及的两类实体有一个未被正确识别或者未识别出都会造成一组三元组信息的错误或者流失。如表6所示,“邻苯二甲酸氢钾是一种化学物质,分子式是C8H5KO4,…”当资源实体“邻苯二甲酸氢钾”、属性实体“分子式”和值实体“C8H5KO4”的实体部分均识别正确,讨论其后缀的对应关系才有意义,否则无效。本文的IFT-Joint模型在标签预测的整体准确率上较高,因此在这样的信息损失下依旧保持76%以上的F1值。 表5 联合抽取结果 % 表6 IFT-Joint模型实体识别结果 续表6 (3) 本文还对模型的稳定性进行了探究,由图10可知,IFT-Joint方法在训练数据集上取样40%就基本达到了稳定,而BiLSTM-CRF作为其他四种对比方法中效果最好的序列模型需要在训练集为70%以后才能趋于稳定。由此可知,BERT在预训练的基础上进行微调使得训练模型的效率更高,IFT-Joint模型中引入BERT可以更为有效地提取文本特征,体现了本文方法在准确度和稳定性上的优势。 图10 模型稳定性实验 本文提出一种基于融合信息标注的联合抽取方法,首先在序列标注的基础上提出一套适用于化学领域资源实体及关系抽取的标注方法,有效缓解了重叠关系的问题。其次,BERT的引入提升了模型在编码阶段对文本特征的挖掘能力,也避免了构建复杂的特征工程,经实验验证,IFT-Joint模型的召回率在75%以上,优于文中所提的其他模型。通过实验数据分析发现,该模型还具有识别训练集中未出现信息的能力。本文方法已经为构建领域知识库提供了大量的领域基础数据。在接下来的工作中,将在继续增加语料的基础上对方法进行持续优化,考虑引入主动学习来选择最有价值的未标注语料进行标注,提升模型的泛化能力。2.4 BiLSTM_CRF模型
2.5 IFT-Joint模型
3 实验与结果分析
3.1 数据集的准备与分析
3.2 评价指标
3.3 参数设置
3.4 参数分析
3.5 对比分析
4 结 语