赵建强,朱万彤,陈 诚
(1.厦门市美亚柏科信息股份有限公司,福建 厦门 361008;2.西安电子科技大学 计算机科学与技术学院,陕西 西安 710071)
命名实体识别(Named Entity Recognition,NER)是自然语言处理(Natural Language Processing,NLP)中一项非常基础的任务,其目标是识别文本中具有特定意义实体并对其进行分类,主要包括人名、地名、组织机构名、专有名词等。NER任务是信息抽取、问答系统、句法分析、机器翻译、知识图谱构建、信息检索等众多NLP任务的重要基础。
早期对命名实体识别的研究多采用基于规则和字典的方法以及基于统计机器学习的方法,近年来,对命名实体识别的研究主要集中于深度学习方法。命名实体识别任务首先在英文数据集上展开研究,相比于英文数据集单词之间通过空格分开便于研究,中文数据集中汉字字符排列紧密且一词多义,增加了命名实体识别研究的难度[1]。英文NER针对输入的文本大多采用单词级别的分布式表示,这是由于英文单词可以看作是英文中的最小语义单位,而对于中文文本,一个字往往就有其本身的语义,由字组成的词语更是存在一词多义的现象,因此,选取何种方式进行输入文本的分布式表示也会对中文NER的效果产生很大影响。目前对于中文NER的特征提取大都基于BiLSTM模型[2],BiLSTM可以整合序列前后项信息,获取更大范围的上下文依赖关系,但由于其采用循环处理序列的方式,不能充分利用GPU的并行计算能力。相比BiLSTM处理输入序列的方式,卷积神经网络(CNN)可以一次性并行处理整个输入序列,但CNN在进行卷积操作时,不能有效地提取到输入序列的全局特征,Strubell等人[3]提出的IDCNN通过膨胀卷积获得范围更大的感受野,并且相比BiLSTM具有更好的并行能力。近年来,随着BERT[4]等预训练模型的陆续提出,其对多义词进行建模、整合句法和语义信息的能力,为多项自然语言处理任务带来了优异的性能提升。
针对以上情况,在不引入外部特征的条件下,以IDCNN模型为基础,该文提出了BERT-DuCNNS-CRF模型,通过多特征提取器获取输入文本的局部和全局特征,充分利用GPU的并行性,并在MSRA和Resume数据集上进行实验。
近年来,随着硬件计算能力的发展及词的分布式表示的提出,神经网络可以有效处理许多NLP任务。与基于特征的机器学习方法相比,深度学习方法有助于自动发现隐藏的特征。在深度学习方法中,NER任务的一般流程主要包括:输入的分布式表示、上下文编码器、标签解码器[5]。
输入的分布式表示通常包含字符及单词级别的嵌入,以及在基于特征的方法中附加其他有效特征(如词典、词汇相似度等[6-7])。中文的词内是包含大量信息的,直接用基于词的方法会受到分词效果的影响,因此目前很多模型都是基于字嵌入的,词级别的信息则依赖于通过好的向量嵌入和模型的上下文依赖来补充。Ma等人[8]首先使用卷积神经网络将单词的字符级信息编码成其字符级表示形式,之后将字符级和单词级表示形式进行组合,并将它们输入到双向LSTM中,以对每个单词的上下文信息进行建模,在解码层使用顺序CRF联合解码整个句子的标签。Y. Zhang 和J. Yang[9]提出通过Lattice LSTM方法将词信息加入到基于字的LSTM+CRF模型中,减轻模型受到分词错误的影响。除了单词级和字符级的表示法外,一些研究还将其他信息纳入最终的表示中,J. Devlin等人[4]提出了来自Transformer的双向编码器表示模型—BERT,使用屏蔽语言模型来启用预训练的深度双向表示。对于给定的令牌,其输入表示是通过对相应的位置、片段和令牌嵌入求和而构成的。经过预训练的语言模型嵌入通常需要大规模的语料库进行训练,并且本质上并入了辅助信息的嵌入(如位置和片段嵌入)。
上下文编码器使用CNN、RNN或其他网络捕获上下文依赖关系。在使用CNN网络结构作为上下文编码器的方法中,Collobert等人[10]提出了一种基于CNN的句子逼近网络。在输入表示阶段之后,将输入序列中的每个单词嵌入到N维向量中,使用卷积层在每个单词周围产生局部特征,卷积层的输出大小取决于句子中单词的数量;利用卷积层提取的局部特征向量来构造全局特征向量。通过对句子中的位置进行最大值或平均运算来提取全局特征。最后,将这些固定大小的全局特征反馈到标签解码器,计算网络输入中单词的所有可能标签。继Collobert的工作之后,Zhu Y和Wang G[11]提出一种卷积注意网络CAN,它由具有局部注意力层的基于字符的卷积神经网络(CNN)和具有全局自注意力的门控递归单元组成,用于从局部的相邻字符和全局的句子上下文中获取信息。对于普通的CNN,在卷积之后,末层神经元可能只是得到了原始输入数据中一小块的信息。而对于命名实体识别,整个句子中的每个字都可能对当前需要标注的字产生影响。为了覆盖更多的信息,加入更多的卷积层,从而导致层数更深、参数更多,为防止过拟合要加入更多的Dropout之类的正则化,带来更多的超参数,整个模型将会变得庞大和难以训练。E. Strubell等人[3]提出迭代膨胀卷积神经网络(IDCNN),由于能够处理更大的上下文和结构化预测,因此计算效率更高。在以RNN网络结构为基础编码上下文的方法中,Huang等人[2]率先提出BiLSTM-CRF架构应用于序列标记任务(POS、NER)。一方面,BiLSTM使得模型可以获得前后文的特征信息,另一方面,CRF使得模型能够获取句子级别的标注信息。由于CRF层的引入可以有效解决预测标签之间的强语法依赖的问题,因此有效避免了预测标签冲突的情况,尤其是对于NER这种标签带有强约束的任务来说。该模型在各项NLP序列标注任务中取得了当时的SOTA表现,之后,大量的研究都应用了BiLSTM作为编码序列上下文信息的基本架构[12-13]。基于神经网络的序列标注模型通常采用复杂的卷积或循环网络,由Vaswani等人[14]提出的Transformer,利用堆叠的自注意力和点乘注意力,使用全连接层来建立编码器和解码器的基本块,完全避免了循环和卷积,提升了训练的效率。Transformer的优势是并行性和对长程上下文语义建模,但它在NER中的表现却不尽如人意,Yan等人[15]提出一种采用自适应Transformer的NER架构—TENER,对字符级特征和词级特征进行建模,通过结合方向感知、距离感知和Unscaled的Attention,使得改进的Transformer在NER中获得了良好的表现。BERT是Transformer的双向编码表示,通过在所有层中对左右文本进行联合条件化来预训练深度双向Transformer。2019年,Guan Guoliang[16]基于BERT模型,在后面加上了BiLSTM+CRF层,进行命名实体识别。在人民日报等语料库上进行训练和测试,实验表明,该模型在性能上超过了以往的模型。
标签解码器是NER模型的最后步骤,它以上下文相关的表示形式作为输入,并生成与输入序列相对应的标签序列。条件随机场(CRF)是一个以观察序列为整体条件的随机场。 CRF已广泛用于基于特征的监督学习方法中。许多基于深度学习的NER模型使用CRF层作为标签解码器,如在双向LSTM层顶部[2,17]和CNN层顶部[10]。
该文提出了BERT-DuCNNS-CRF模型,结构如图1所示。分为三个模块:(1)输入层:BERT对文本的原始输入进行字嵌入;(2)特征提取层:分别使用IDCNN和CNN模型对字向量进行特征提取,而后进行特征融合,随后进行Attention操作;(3)输出层:计算从特征提取层输入序列的预测标签。
BERT的网络架构如图2所示,BERT使用Transformer中的Encoder部分,每个Encoder由6个相同的层组成,每层又由2个子层组成,分别是多头自注意力机制和全连接前馈神经网络。多头注意力机制让模型去关注不同方面的信息,有助于网络捕捉到更丰富的特征信息。全连接前馈神经网络提供非线性变换。图中Trm代表一个Encoder。
图1 模型结构
图2 BERT网络架构
BERT将输入的句子转换为Embedding,由三个部分相加得到,如图3:Token Embedding(单词嵌入/字符嵌入)、Segment Embedding(分隔嵌入)和Position Embedding(位置嵌入)。
图3 BERT输入表示
BERT是多任务模型,通过预训练的方式训练模型,预训练任务包括Masked Language Model (MLM)和Next Sentence Prediction (NSP)。MLM随机屏蔽部分输入单词,然后训练模型来预测被屏蔽的单词,模型为了预测正确,就需要保持每个输入的分布式上下文表示,从而实现对上下文进行特征提取的目的。NSP是判断句子间的上下文关系,并通过标签进行标注,从而提取句子级别的特征。
普通CNN在输入矩阵一片连续的位置上滑动进行卷积操作,通过池化操作整合多尺度的上下文信息,这种方式会损失精度,但是不加池化层会使感受野变小,学习不到全局的特征。而通过加入更多卷积层、去掉池化层、扩大卷积核等操作来获取上下文信息,势必导致参数增多,计算量增大,容易发生过拟合。膨胀卷积在不做池化损失信息的情况下,通过加入卷积核的间隔加大了感受野,让每个卷积输出都包含较大范围的信息。膨胀卷积在处理需要全局信息或者较长范围的信息依赖的问题中,都能很好地应用。但膨胀卷积在增大感受野的同时,却损失了局部语义信息。基于以上问题,该文使用IDCNN+CNN对字嵌入进行联合特征提取,在提取全局信息的同时弥补局部语义信息的缺失,同时使用自注意力机制学习联合特征之间的关系。
2.2.1 IDCNN+CNN
普通CNN结构通常包括输入层、卷积层、池化层和全连接层,如图4所示。对一个filter来说,可以认为滑动窗口从输入矩阵的第一个字开始不断往后移动,对于某个时刻的窗口,通过非线性变换将窗口内的输入值转换为某个特征值,随着窗口的不断向后移动,得到该filter下的特征向量。池化层对filter提取的特征进行降维操作,该模型中采用最大池化操作。在池化层后接全连接层,得到最终的特征。
图4 CNN结构
IDCNN将4个结构相同的Dilated CNN模块拼接在一起,每个模块里是膨胀宽度分别为1、1、2的三层DCNN。IDCNN对输入句子的每一个字生成一个logits,然后放入CRF层解码出标注结果,每个Dilated CNN模块如图5所示。IDCNN与经典的序列标注模型BiLSTM都具有获取远距离上下文信息的能力,但是相对于BiLSTM,IDCNN可以充分利用GPU并行,提升训练效率。
图5 膨胀卷积块
(1)
(2)
CNN层的输入也为X=[x1,x2,…,xt],卷积核为Hc,偏置为bc,经过非线性变换得到Cc={c1,c2,…,ct}特征序列:
ci=relu(xi·Hc+bc)
(3)
通过IDCNN和CNN得到的特征序列进行拼接,CI、CC分别代表IDCNN、CNN提取的特征序列:
C=CI⊕CC
(4)
2.2.2 多头自注意力机制
自注意力机制可以用来学习句子中任意两个字符之间的依赖关系并捕捉句子内部的结构信息,并且具有并行计算的能力。自注意力机制通过(K-key、Q-query、V-value)的三元组,提供了一种有效的捕捉全局上下文信息的建模方式,可用公式表示为:
(5)
多头注意力是指重复做h次attention之后进行拼接,即首先对query、key、value进行线性变换,然后输入到缩放点积attention,每一次算作一个头,每次使用不同的线性变换参数W,最后,将拼接后的结果做一次线性变换作为多头注意力的结果。多头注意力可以从不同的维度和表示子空间里学习到相关的信息,公式表达如下:
(6)
C'=MultiHead(Q,K,V)=Concat(head1,…,
headk)W
(7)
经过特征提取层可以获得语义特征及当前标签的预测结果,但不考虑标签之间的依赖关系,而CRF层可以训练数据中学习到标签之间的约束条件,从而保证预测标签的有效性。对于给定一个句子s=[s1,s2,…,sT],对应的预测标签序列为y=[y1,y2,…,yT],y的概率计算公式如下:
(8)
(9)
(10)
其中,p表示句中第t个字的第yt个标签的得分,A为状态转移矩阵,f(yt-1,yt)为yt-1到yt的转移分数,目标是使P(y|s)最大。在解码时,采用Viterbi算法来寻找达到最大概率的路径。
该文使用MSRA[18]、Resume[9]数据集来对模型效果进行评估。表1提供了这两个数据集的详细情况,MSRA数据集来源于新闻文本,Resume数据集来源于简历文本。其中MSRA数据集包含实体数目,种类较多,具有较大的识别难度。
表1 数据集
所用数据集均采用BIOES标注方法,采用精确率(Precision,P)、召回率(Recall,R)和F1值(F1-score,F1)进行实验结果评估,见表2。
表2 实验设置
为验证所提模型的性能,在MSRA和Resume数据集上,与Lattice LSTM[9]、BERT-Tagger[4]、LR-CNN[19]、PLET[20]等几个模型进行对比。
Lattice LSTM模型通过门控单元获取词汇,避免了实体分割错误的情况。BERT-Tagger使用BERT最后一层的输出作为字符级的上下文表示来进行序列标注。LRCNN使用Rethinking机制来处理词汇冲突问题,并且加速了模型训练。PLET以transformer encoder为基础,能够并行地批量处理对所有字符和匹配的词典词信息的建模。除此之外,它还添加了位置关系表示;引进了一种多孔机制增强局部性的建模和维持捕捉长期依赖的能力。为保证实验的公平性,以上模型均使用BERT预训练词嵌入。
测试结果如表3和表4所示。
通过表3和表4可知,所提模型在MSRA数据集和Resume数据集上的F1值分别达到了95.81%、96.60%,与目前效果较好的PLET模型在MSRA数据集上相比,F1值提升了1.28百分点,在Resume数据集上F1值提升0.15百分点。实验结果表明,所提模型在不引入其他外部特征的情况下,通过构造融合的特征提取器,分别针对全局语义信息和局部语义信息进行提取,对不同特征进行融合、扩展,有效提升了模型在NER任务上的预测能力,证明了该方法的优越性。
表3 MSRA数据集测试结果 %
表4 Resume数据集测试结果 %
为验证所提模型的有效性,在MASR和Resume数据集上针对各模块进行了消融实验,结果如表5、表6所示。其中Baseline设置为IDCNN+CRF模型。
表5 MSRA数据集消融实验 %
由表5和表6可以看出,与Baseline相比,引入BERT预训练模型在两个实验数据集上的准确率和召回率均有大幅提升,证明了通过BERT获取的字向量相比于传统的词向量表示的有效性。通过引入CNN来弥补IDCNN对于局部语义信息的缺失,在实体种类不同、数目不同的两个数据集上均验证了有效性。Self-attention的引入进一步提升了模型对于字符之间语义信息的捕捉,这一点也可在实验中得到证明。此结果表明,对模型的改进可以进一步提升命名实体识别的效果。
表6 Resume数据集消融实验 %
针对目前常用NER模型中,BiLSTM-CRF模型并行性不高,IDCNN-CRF模型损失局部上下文信息等问题,提出了BERT-DuCNNS-CRF模型。模型使用BERT预训练字向量,通过融合CNN模型弥补IDCNN对局部语义信息的缺失,加入自注意力机制学习联合特征之间的关系。实验证明,该模型的性能在以上测评数据集上相比其他模型有一定的优势。
在未来的工作中,将继续研究如何将模型拓展到特定领域的命名实体识别任务,同时保持模型的性能。