融合动态掩码预训练与膨胀卷积的实体识别
2022-08-08葛志辉洪龙翔李陶深叶进
葛志辉, 洪龙翔, 李陶深, 叶进
(广西大学 计算机与电子信息学院, 广西 南宁 530004)
0 引言
随着互联网技术的不断发展,各行业、各领域都产生了海量的数据资源,文本数据作为一种数据形式,包含了许多重要的信息;但是文本信息大量存在于非结构化及半结构化的文本中,无法直接在统计分析工具上使用,而仅通过人工筛选需要耗费大量精力与时间,因此,如何从海量非结构化及半结构化文本中进行有效的信息抽取尤为关键。信息提取和自然语言处理的许多领域都需要一定的预处理工具来分析文本的词汇、句法和语义结构等信息。命名实体识别是文本预处理工具之一,在自动文本摘要、机器翻译、信息检索、问答等自然语言应用中发挥着重要作用。
命名实体是从元素集合中识别具有相似属性的元素的词语形式,根据所在领域的不同而有所区别。例如:在一般领域中,人、地点、组织、日期、时间等是重要的实体;在生物医学领域,感兴趣的实体是基因和基因产品;在司法领域,凶器等也可能被视为实体。现有的研究大多围绕英文的实体识别(named entity recognition, NER)来进行,而与之相比,中文的NER研究面临着诸多挑战:①汉语缺乏明确的词汇边界和固有的定冠词,专有词没有拼写变化等提示信息;②有监督的中文训练数据有限;③领域文本没有统一的语言格式,实体存在组合、缩写等问题。
当前,随着NER研究的深入,现有的NER技术已经比较成熟,在诸多NER任务中取得了不错的识别准确率。随着深度学习及神经网络的提出与发展,人们开始寄希望于通过深度学习在NER任务特别是中文NER中获得更好的识别效果。卷积神经网络(convolutional neural network, CNN)、循环神经网络(recurrent neural network, RNN)是2种广泛应用于实体识别的经典神经网络模型;但CNN缺乏捕获上下文特征的能力,而RNN由于其网络结构特点存在着运行速率低,因此缺乏并行能力的问题,更重要的是在训练过程中会产生梯度消失和梯度爆炸问题。CNN和RNN的这些缺点直接导致实体识别准确率下降。使用长短期记忆神经网络(long short-term memory, LSTM)模型解决RNN梯度消失或爆炸的问题近年来被提出。双向LSTM(bi-directional long short-term memory, Bi-LSTM)模型已广泛应用于中文NER任务中,在克服RNN问题的基础上能更有效地对时序数据(如文本数据)进行建模,但是LSTM的网络结构复杂,参数量庞大,训练速度较慢,且不具有CNN模型能并行加速的特性。膨胀卷积(dilated convolution, DC)作为一种被广泛应用于计算机视觉领域的方法,也可应用于自然语言处理(natural language process, NLP)领域中。通过膨胀卷积,能使CNN在无需引入额外的参数的同时捕获到更多的上下文特征,也保留了CNN的运算速度及可并行性。
同时,中文NER任务常常碰到“一词多义”问题,双向编码表示的Transformer(bidirectional encoder representation from transformer, BERT)模型能较好解决此问题,但是BERT静态掩码的方式使得训练得到的语言表征较为单一。RoBERTa(robust optimized BERT pretraining approach)是在BERT基础上改进的一种预训练方式,动态掩码的训练策略能在不同的输入过程中更好地获得文本中的语言表征。在预训练过程中,仅依靠字向量进行表示没能考虑到字词之间的共同特征。有的研究通过字词融合的方式作为输入,但是仅仅通过结合单词的特征与构成该单词的字符的特征也不能较好地解决因单词边界划分的错误问题,而通过字向量与该字所在文本中能形成的词向量进行融合更能有效地提高字向量的表示能力。
基于上述问题,本文中将实体识别任务转化为序列标注任务,提出一种融合动态掩码与膨胀卷积神经网络相结合的模型(dynamic-masking-IDCNN-CRF, DMIC)。首先在词向量训练阶段引入基于动态掩码的预训练模型进行预训练获得字向量,同时与该字在上下文环境中所产生词的词向量拼接生成融合向量,然后将融合向量输入多层膨胀卷积神经网络,使用GPU进行加速训练,最后通过条件随机场(conditional random field, CRF)进行标签预测。
1 相关研究
近年来,NER常被作为序列标注问题进行研究,国内外主要研究方法有基于词典和规则的方法、基于统计机器学习的方法和基于深度学习的方法。基于词典和规则的方法需要专业语言学家手工编写规则,需要大量时间,在不同领域的可移植性较差。在NER任务中,常用的基于统计机器学习的NER主要采用条件随机场[1]和隐马尔可夫模型(hidden Markov model, HMM)[2]。与基于规则和字典的方法相比,虽然准确率有所提高,但基于统计的方法对语料库的依赖比较大,而可以用来建设和评估命名实体识别系统的大规模通用语料库又比较少。当前,多种特征提取的方法被提出并取得了不错效果。如陈可嘉等[3]提出了一种基于词频和情景语义的产品特征提取方法。而为了更好地构建命名实体识别系统,提升实体识别效率,现有研究通常在NER任务中使用深度学习的方法进行特征提取。
CNN和RNN是目前在NER领域中使用较为广泛的深度学习模型。Kong等[4]提出了一种完全基于卷积神经网络的新型高效模型,该模型可以充分利用GPU的并行性来提高模型效率,但是基于CNN的网络明显存在着上下文信息捕获能力不足的问题。单向LSTM作为RNN的一种变体,也被提出用来解决NER问题。冯艳红等[5]提出一种基于LSTM网络的方法用于实体识别任务中,获得了不错的效果。张应成等[6]首先将BiLSTM-CRF模型应用于CoNLL数据集,得到了最优的F1值。在单向LSTM的基础上,后续的研究更多通过双向LSTM来捕获历史和未来信息。从他们的实验结果可以看出,双向LSTM的识别效果要好于LSTM。而LSTM的网络结构复杂性极大地影响模型训练速度,故近年来有些研究考虑用CNN的变体替代LSTM网络用于提升训练速度和并行性,但是,为了在性能和速度之间做出权衡,传统的CNN依靠池函数减少特征映射,以提高执行时间,这将导致信息丢失。为了解决这个问题,Lei等[7]将DC融合到CNN中,通过相邻词扩大接受域,捕捉到更多有用的信息。之后,越来越多的依赖不同膨胀因子的膨胀卷积神经网络被提出,用于获得更好的模型性能。例如,张浩等[8]提出一种基于膨胀卷积的快速图像背景更换方法,并联组合多组膨胀卷积,使其拥有足够大且细的感受野。邹斌等[9]通过不同膨胀率的膨胀卷积获取多尺度的目标信息并进行融合,丰富了模型的语义。近年来的研究证实了膨胀卷积在多种任务中能克服LSTM网络复杂性带来的运行速度慢等问题,且在特征提取中获得较为丰富的信息。
现有的NER任务可分为词级、字符级和字词混合级的NER。Collobert等[10]最早提出了词级NER模型,在CoNLL 2003数据集上获得了接近90%的F1值。王洪亮等[11]提出一种融合全局上下文信息的词向量方法用于特征选择,通过主题模型和词向量聚类2种方法获取深层语义信息,在中文微博的命名实体识别任务中取到了不错的效果。词级NER会受中文分词错误影响,故当前中文任务中多采用字符级方法进行研究。基于字符级的方法在诸多实验上证明优于词级NER方法;但该方法会忽略单词信息,因此,一些研究[12-13]尝试将词汇信息与字符信息相融合,使用字词混合的NER方法解决问题。张海楠等[14]通过深度学习的方法,将字符特征与词特征相结合,实验证明了加入的词性信息相较字符NER性能有一定程度的提升。殷章志等[15]提出了一种融合字词LSTM模型的NER方法,通过字符级NER模型与词级NER模型融合提升NER的实验性能。
最近,预训练模型(如Word2Vec和BERT)在几个自然语言处理任务中取得了最先进结果(SOTA)的成绩。预处理模型通过预处理任务从大规模的无标记语料中获取先验语义知识,并通过将这些知识传递给下游任务,提高下游任务的性能。杨飘等[16]构建了BERT和BiGRU相结合的模型用于表征语句特征。通过嵌入BERT 预训练模型,增强字的语义表示,根据其上下文动态生成语义向量。武惠等[17]通过词向量和BiLSTM-CRF的结合,解决了对人工特征和专家知识的依赖。陈剑等[18]在司法文书识别领域使用BERT表征预训练模型,提出的模型实体提取准确度达到89%以上,显著优于传统的RNN和CNN模型。王子牛等[19]结合BERT和BiLSTM-CRF模型对中文实体进行识别,以无需添加任何特征的方式,在1998上半年《人民日报》数据集上取得了94.86%的F1值,然而,预训练模型的能力尚未得到充分开发,以往的研究大多集中在Word2Vec和BERT[20],但其他在BERT上改进的预训练模型如ALBERT、RoBERTa等,也值得关注。
2 DMIC网络模型
本文设计的DMIC模型在预训练阶段,通过引入动态掩码解决传统模型Word2vec缺乏上下文相关性信息以及BERT模型词义缺失的问题。新的预训练模型可以学习不同的语言表征,字词向量融合方式的改变,能有效利用分词信息的同时也能减少分词错误带来的影响;特征提取阶段,使用膨胀卷积获得多尺度上下文信息,借鉴混合膨胀卷积(hybird dilated convolution, HDC)的思想设计膨胀卷积块以避免网格效应对特征提取过程的影响,在提升训练速度的同时仍可以获取更大范围的上下文特征信息。DMIC网络模型架构如图1所示,具体由以下3部分组成:
图1 DMIC网络模型架构
① 字词向量融合嵌入层。为了提取丰富的语法及语义特征,引入基于动态掩码的RoBERTa预训练模型得到字向量的表示,同时与字可能形成的词向量相结合作为输入。
② 序列建模层。膨胀卷积能克服传统LSTM模型参数量过大、训练速度缺失的的问题,同时也能获取比传统CNN模型更多尺度的上下文信息,故在该层采用多层膨胀卷积网络进行特征提取,获得对应的特征向量。
③ 标签解码层。CRF对上一层的输出进行解码,通过动态规划算法得到最优预测结果,从而完成实体识别的任务。训练的过程使用GPU进行加速。
2.1 融合动态掩码的多重嵌入
DMIC网络模型的输入向量包括字符向量和字符所对应的词向量。通过动态掩码策略进行训练得到的字符向量可以在提取字符级别特征的同时融入上下文信息、包含词义信息,字符向量对应的词向量则对字符进行有效的语义增强,将二者进行拼接得到的向量作为字符的最终表示向量,然后将其输入序列建模层中。图2为DMIC网络模型输入向量的组成,最终的输出向量为字向量c和词向量w结合得到的向量f。本文通过3个步骤实现融合动态掩码的多重嵌入:①字符向量训练;②字符相关词向量生成;③字词向量融合。
图2 DMIC网络模型输入向量的组成
Step1:字符向量训练。为了使生成的语义更适用于中文NER任务,引入了RoBERTa预训练模型用于字符嵌入,使其能在预训练中更好地获取词的信息。RoBERTa训练中使用动态掩码策略学习不同的语言表征,在大量数据不断输入的过程中,每次向模型输入一个序列时都会生成新的掩码模式,在此过程中,模型会逐渐适应不同的掩码策略。
对于给定输入句子s或者给定字符序列ch={ch1,ch2,…,chn},通过RoBERTa层进行字符向量训练过程如图3所示。
图3 字符向量的训练
其中,字符chi对应的字符表示为字符、段和位置嵌入的融合,即Ei=Eci+Esi+EPi,其中,Eci、Esi和EPi分别为对字符chi3种嵌入,Ei为融合后的嵌入表示,经过RoBERTa模型后,最终得到字符训练后的向量ci。
Step2:字相关词向量生成。字符嵌入后单个汉字能表达的语义与词汇所含有的语义还具有较大的差距。现有的研究尝试了融入词汇信息,但是没有充分考虑字词间的共同特征。而简单的字词融合,如将单词特征与单词所包含的字信息进行融合则可能因为分词错误而导致错误传播。为了利用分词的结果且减少分词错误的影响,同时丰富字向量的语义,本文将字向量和该字所在的词的词向量进行融合,通过训练得到的词向量对字向量进行语义增强。
(1)
(2)
(3)
2.2 基于膨胀卷积的特征提取
为了克服传统LSTM网络结构复杂及运行速度慢、缺乏并行性等不足,本文在序列建模层使用堆叠的膨胀卷积进行特征提取。不同膨胀率的膨胀卷积神经网络感受野对比如图4所示,从图中可以发现,当膨胀率为4时,感受野已经扩展到15×15,可以获取到比普通卷积更多尺度的信息。
(a)膨胀率为1
虽然具有膨胀卷积的神经网络在各种深度学习任务中都取得了成功,但普通膨胀导致的“网格效应”将影响特征提取的效率。为了解决解决网格效应对特征提取带来的影响,本文将HDC的设计思想引入NLP任务中,在设计膨胀卷积时遵循HDC的设计准则。本文设计的膨胀卷积满足以下特性:①不同的膨胀卷积层之间的膨胀率数值选定为锯齿状;②堆叠的卷积层膨胀率之间不能存在除了1之外的公约数,如(2,4,6)的设计不符合HDC的设计思想;③膨胀率需要根据公式(4)进行选择:
Mi=max[Mi+1-2ri,Mi+1-2(Mi+1-ri),ri],
(4)
式中:ri是第i层的膨胀率;Mi是第i层最大的膨胀率。
综上条件,本文选取的每个膨胀卷积块的膨胀率分别为1、2和5,如图5所示,卷积核数目设置为3。由图可见,当膨胀率为1时,相当于对每个输入向量进行普通卷积提取特征,δ=1时,黑色圆圈代表提取后的特征,每个特征包含3个输入的向量的信息;δ=5时,由上至下,一个圆圈就可得到19个输入向量的特征。本文设计的膨胀卷积模型可以通过膨胀率的增加迅速扩展卷积核的感知视野,获取多尺度信息,提高模型的性能。
如图5所示,设嵌入层产生的融合向量fi作为Dilated CNN的输入,用D(n)表示第n个膨胀卷积层,则fi经过第一层膨胀卷积的输出表示oi(1),第n层(n> 1)膨胀卷积的输出表示oi(n)分别如公式(5)、(6)所示:
图5 每个膨胀卷积块的结构
oi(1)=D(1)fi,
(5)
oi(n)=Relu[D(n-1)oi(n-1)],
(6)
式中Relu为激活函数用于将膨胀卷积的输出层用作下一层的输入。
迭代的膨胀卷积神经网络(ID-CNNs)通过堆叠膨胀卷积块获取更多的上下文信息。在膨胀卷积神经网络中,感受野随着网络堆叠层数的增加而呈指数增加,可用于捕获全局信息。为了防止出现过拟合的现象,本文的DMIC网络模型使用了4次迭代膨胀卷积块进行堆叠,可以覆盖大部分序列的整个长度,更好地结合上下文信息。
2.3 基于CRF的标签预测
考虑到连续标签之间的依赖性,使用CRF层进行顺序标记。CRF可以通过学习到的约束条件保证标签预测结果的有效性。将特征向量o={o1,o2,…,on}作为CRF层的输入,对于给定标签序列Y={y1,y2,…,yn},带输入o的标签序列Y的条件概率可以表示为
(7)
式中:Y(s)是所有可能的句子s对应的标签序列的集合;φ(oi,yi,yi-1)是得分函数,计算式为
φ(oi,yi,yi-1)=exp(yiTWoi+yi-1TTyi),
(8)
式中W和T表示CRF层中的参数。在训练模型时,使用log_likelihood函数作为目标函数。给定训练样本(Xi,Yi),目标函数L表示为
(9)
3 实验与结果分析
3.1 数据集和评价指标
实验数据集分别来自于MSRA数据集和人民日报数据集,是多个经典NER任务中常用的语料,以BIO格式标注了人名、地名、组织机构名3类实体。MSRA数据集分为训练集和测试集。训练集和测试集的样例数据见表1。《人民日报》数据集(pd2014)分为语料源和语料标记2个文件见表2。实验中根据实际需求划分成训练集、数据集和测试集,并转换为可读取的格式。
表1 MSRA数据集训练集和测试集的样例数据
表2 《人民日报》2014数据集样例数据
命名实体识别任务模型的评价指标一般使用准确率(precision)P、召回率(recall)R和F1值。准确率代表着正确识别的实体在标注样本实体中的比例;召回率表示正确分类的实体在所有识别的实体中的比例;F1值为准确率和召回率的一个调和平均值,是一个综合指标。各指标具体计算方法为
(10)
(11)
(12)
式中:TP表示正确实体标注正确;FP表示正确实体标注错误;TN表示非实体标注正确。
3.2 实验环境及模型参数设置
实验环境选取操作系统为Ubuntu 18.04.4 LTS的服务器作为实验平台,其中CUDA版本为11.0,CPU为Intel(R)Xeon(R)Gold 6126 CPU 48核,GPU为GeForceRTX 2080Ti。采用的编程语言为Python,采用Tensorflow作为主要框架实现了的LSTM、IDCNN等模型,采用Pytorch实现了ERNIE模型。在PyCharm Profession上进行开发和调试,使用NVIDIA GPU加速训练过程。命名实体识别的标注模式有BIO、BIOE和BIOES等。本实验使用BIO标注模式,待预测的标签一共有7种,分别为“O”“B-PER”“I-PER”“B-ORG”“I-ORG”“B-LOC”和“I-LOC”。
模型的部分超参数主要源于现有的相关研究中的经验,如学习率、dropout比例等;一些参数是根据数据集的特性而设置;还有一些参数是根据模型训练和实验硬件条件配置的,如每批次数据量的大小,LSTM隐藏层单元数;膨胀卷积块堆叠层数根据对比实验获得。实验采用Adam优化算法对模型参数进行优化和调参。模型超参数设置见表3。
表3 模型超参数设置
3.3 基线模型
为了进行比较,本文在使用的数据集上,分别选取了5种具有代表性的模型作为基线进行对比,包括CNN-CRF模型、BiLSTM-CRF模型、IDCNN-CRF模型、BERT-BiLSTM-CRF模型、BERT-IDCNN-CRF模型以及ERNIE模型。其中,CNN-CRF模型、BiLSTM-CRF模型和IDCNN-CRF模型都是通过Word2Vec预训练,BERT-BiLSTM-CRF模型和BERT-IDCNN-CRF模型则是通过BERT进行预训练所得,ERNIE模型是近年由百度开发出的预训练模型,在多个NLP任务上效果突出。
3.4 实验结果分析
不同膨胀卷积块堆叠层数实验结果如图6所示。从图可知,DMIC模型在卷积膨胀卷积块为4层堆叠时能够取得最佳F1值,最佳F1值为94.85%。后文的对比实验中使用的DMIC模型采用的是4层堆叠的模型。
图6 不同膨胀卷积块堆叠层数实验结果
与基线模型实验效果对比。本文提出的模型DMIC和5种基线模型在数据集上的实现效果见表4。
表4 不同模型在MSRA数据集上的实验性能
① 膨胀卷积实验效果。普通CNN(CNN-CRF模型)与膨胀卷积(IDCNN-CRF模型)的识别效果对比见表5,对比普通CNN,膨胀卷积的方式有助于大幅度提高实体识别准确率。BiLSTM模型与IDCNN模型每个epoch的训练速度对比见表6。由表4—6可知,与在序列建模层使用LSTM的模型(BiLSTM-CRF和BERT-BiLSTM-CRF)相比,使用膨胀卷积(IDCNN-CRF和BERT-IDCNN-CRF)能在识别效率接近的情况下有着较短的运行时间,说明膨胀卷积能克服传统LSTM模型参数量大训练时间长的问题,同时保证了实体识别的准确率。
表5 简单CNN模型(CNN-CRF)和膨胀卷积模型(IDCNN-CRF)识别效果对比
② 融入动态掩码预训练及字词向量融合表示效果。观察表4可知,与使用Word2Vec预训练的模型BiLSTM-CRF和IDCNN-CRF相比,引入BERT或RoBERTa进行预训练的BERT-BiLSTM-CRF、BERT-IDCNN-CRF和DMIC模型可以获得更高的P、R和F1值,说明相比静态词向量输入,动态地调整词向量可以提高多义词识别的准确性。预训练阶段使用静态掩码(BERT)与动态掩码(RoBERTa)的模型在实体识别精确率上的对比见表7。由表可知,与使用静态掩码预训练的模型BERT-IDCNN-CRF相比,融入了基于动态掩码预训练的模型DMIC在3种实体的识别精确率上产生进一步的改进。动态掩码的训练方式使模型对于不同的输入逐渐适应不同的掩码策略,学习到更多的言语表征。不同模型在pd2014数据集上的识别效果对比见表8,由表可知,相比ERNIE模型,DMIC模型在pd2014数据集上LOC、PER和ORG这3个指标上均得到进一步的提升,这是因为改进的RoBERTa模型通过不同分词器的加权平均使得由分词器分词错误造成的误差减小,从而提升了实体识别效率。
表8 不同模型在pd2014数据集上的识别效果对比
评价结果表明,所提出的混合模型优于现有的常用于实体识别的模型。模型将基于动态掩码策略的RoBERTa作为一个模块引入,解决BERT词法结构、语法结构缺失的问题,同时字词向量的增强使模型具有丰富的词义表示。膨胀卷积的引入一方面能捕获到比简单CNN更多的上下文及结构信息,提高模型对长序列句子的识别能力,另一方面也克服了BiLSTM因参数量过大而运行速度较慢的问题。使用了CRF层而避免使用softmax计算标记结果,使用标记之间的依赖关系可以提高识别率。
③ 实体识别效果。表9为3段测试样例示例文本,识别结果见表10。可以看出,在对Sentence1的识别中,前3种方式都没能识别出“滴滴”这个ORG实体,而在带有BERT预训练模型和DMIC模型中均能识别出这个实体。在对Sentence2的识别中,前3种方式都未能抽取出里面的ORG实体,IDCNN-CRF模型出现了将“中国网”识别成LOC实体的错误,而BERT-IDCNN-CRF模型则错误地从“中国网”提取出了“中国”作为ORG实体,BERT-BiLSTM-CRF模型和DMIC模型均正确地提取出句子中所有类型实体。Sentence3中,“俄罗斯卫星网”在其他模型中均被错误拆分识别为“俄罗斯”的地名实体,在DMIC模型中被正确识别为一个组织机构实体。此外进行了大量文本测试,DMIC模型均获得了不错的实体识别效果,可以比较精确地提取出文本中的人名地名和组织机构名。
表9 不同的文本测试样例
表10 不同模型识别效果
4 结论
本文中揭示了传统静态语言预训练模型面对单词多义情况容易出错的问题,提出现在流行的BERT预训练模型存在不能获得词级别语义表示的不足,为此提出了一种融合动态掩码预训练模型和膨胀卷积神经网络的实体识别模型,通过模型使用的动态掩码策略解决预训练过程中缺失语义信息,改变简单字词向量融合方式使字词向量更有效融合以表达词义信息。引入膨胀卷积解决传统用于解决NER问题的LSTM模型训练时间较长、CNN模型缺乏捕获上下文特征的能力的问题。实验结果表明,该模型相较现有的BiLSTM-CRF等模型在中文实体识别任务上具有较好的效果。在未来,如何更好地处理机构名中地名嵌套、缩略词和歧义等干扰信息是今后需要进一步研究的方向。