关菁华,黄启亮,吕泽华,谭梦琪
(大连外国语大学 软件学院,辽宁 大连 116044)
随着大数据时代的快速发展,数据呈爆炸式增长。这一现象使得有意义的信息提取成为一项重要且关键的任务,因此自然语言处理中,信息提取技术应运而生。命名实体识别(Named Entity Recognition,NER)[1]作为自然语言处理研究的基础,近年来备受关注,其主要任务是识别文本中的地名、人名、组织机构名等专有名词[2],其识别效果对后续的机器翻译、事件抽取、知识图谱构建等任务影响很大。中文比英语在命名实体识别上更加复杂,英语中的命名实体有着明显边界,例如地名人名的首字母大写等,对于中文而言,命名实体没明显边界、构成结构复杂、类型多种多样且不断有新的命名实体涌现,因此中文命名实体识别依然是一个重要且值得深入研究的课题。
从目前研究情况看,低资源语言(例如藏语、蒙古语)[3]受关注范围较广,而且中文命名实体识别在国内一直备受科研人员的高度重视。目前,命名实体识别实现方法主要有传统的统计模型和神经网络模型。NER 方法[4-6]主要分为以下4类:
(1)基于规则的方法。依赖于手工制定的规则,可以基于特定领域的地名词典、语法规则。著名的基于规则的NER 方法有lase-ii、NetOwl、Facile、SAR、FASTUS 和LTG,这些方法主要基于手工制定的语义和语法识别实体,由于特定领域的规则加上词典的不完整性,这些方法往往具有高精确度、低召回率等特点,领域迁移十分困难。
(2)无监督方法。主要基于聚类的方法,根据文本相似度分析得到不同的文本簇,表示不同的实体组别。
(3)基于特征的监督学习方法。通过监督学习将NER任务转换为多分类任务或者是序列标签任务,因此这类方法依赖于特征工程。特征工程使用一个特征向量表示文本中的词,进而可以使用许多机器学习算法——隐马尔科夫模型(Hidden Markov Model,HMM)[7-8]、条件随机场(Conditional Random Field,CRF)[9]和支持向量机(Support Vector Machine,SVM)[10]等。
(4)基于深度学习的方法。与其他方法相比,基于深度学习的NER 模型目前已经处于主导地位并取得了最先进的成果。深度学习可以通过分布式向量表达,更好地自动发现隐藏的特征从而实现端到端的训练,并建立更复杂的NER 模型。
标准的基于深度学习的NER 模型[11-12]由输入层、编码层和解码层3 层结构组成。输入层使用词级别或者字符级别的向量表示。词级别表示的常用词嵌入方法有:Word2vec[13-14]、Glove、fastText、SENNA。字符级别表示的常用字符嵌入方法有:基于CNN[15]和基于RNN[16],字符嵌入可缓解未登录词(OOV)问题。
随着近几年预训练模型在自然语言处理上的重大突破,基于神经网络的深度学习模型在命名实体识别任务中表现得更加优秀。在预训练模型被提出前,以Word2vec为代表的词向量技术是最常用的文本特征表达方法,直到ELMo[17]提出了与上下文相关的文本特征表示方法后,预训练模型才得到发展并在NER 任务中大放异彩。
基于深度学习的命名实体识别研究已经持续了多年,现已进入相对成熟的阶段,Bert-BiLSTM-CRF[18]是NER 模型中使用较多且效果不错的模型之一,其中Bert(Bidirectional Encoder Representation from Transformers,BERT)模型在预处理时将进行2 项任务,分别是Masked LM(Masked Language Model,MLM)和下一句预测(Next Sentence Prediction,NSP),其中MLM 会对每个序列进行静态掩盖,在一个序列中随机静态掩盖掉15%的标签,虽然在统计学意义上依旧可以学习到特征,但实际上破坏了中文特有的词结构(例如[MASK]球)。MLM 任务在每个Epoch 中,对于同一个序列掩盖的标签是相同的,如果训练数据较小,就会破坏词之间的相互依赖关系。虽然基于Bert 的NER 模型可以达到很好的效果,但其不足之处在于规模太大,需要很强的计算能力,导致资源占用过多、训练时间过长,而且很难在便携式设备上进行训练。
为了解决上述问题,本文结合中文特有的词结构[19]和语言学特征,使用不同的自注意力机制预训练模型并结合BiLSTM-CRF[20]模型在保证精确度的前提下进行微调实验。使用一种鲁棒优化的BERT 预训练方法——全词掩盖(A Robustly Optimized BERT Pretraining Approach——Whole Word Masking,RoBERTa-WWM)[21],将全词掩盖预训练模型作为预训练的输入进行实验,此预训练模型将在每个Epoch 的相同序列中动态地选择15%的词进行掩盖,而不是在字符级上进行15%的掩盖,这更符合中文语言的词结构,提高了模型对特征能力的提取。由于BERT 是超大规模预训练模型,在便携式设备上训练时间长、占用资源过多,因此使用其轻量化模型ALBERT[22]进行研究,在保留精度的前提下提高模型训练速度。
在NLP 任务中,好的预训练模型至关重要,从目前的Bert、XLNet[23]、RoBERTa 看,性能越好的模型,其参数量也越大。如果想要扩大预训练模型的规模,会遇到内存限制。为了解决此问题,Albert 降低了参数量,提升了参数使用效率。为了更好地发挥参数的功能,它使用了2 种减少参数量的方法。①跨层参数共享:在Albert 中,全连接层和注意力层参数全部共享,很大程度上减少了参数量;②Embedding 因式分解:利用矩阵分解的思想,在嵌入词向量后添加一个全连接层,将E 映射到H 维度,因此Albert 模型的Embedding 层设置为128 维,利用全连接层进行映射,使得映射后的维度与Hidden 层的维度相同,将参数量从O(V·H)减少到O(V·E+E·H)。
Albert 在预处理时会进行2 项任务,分别是Masked LM和句子顺序判断(Sentence Order Prediction,SOP)。Albert与Bert 的MLM 任务相同,均是随机遮罩进行预测。但在后续研究中发现,Bert 模型中的NSP 任务并不能使模型学习到句子间的连贯性信息,在下游任务中进行NSP 任务反而会使模型性能下降。因此Albert 使用了SOP,此任务会进行句子顺序的预测,使得模型可以学习句子之间的连贯性信息并在一定程度上解决NSP 任务。
RoBERTa-WWM 模型是Bert 模型的优化版本,主要在Bert模型上进行以下调整:
(1)采用更大的模型参数和训练数据。训练时间更长,batch size 更大,训练数据更多,模型参数量更大。
(2)对训练方法进行改进。由于NSP 任务对模型没有实质性的性能优化,因而RoBERTa-WWM 移除了NSP任务。
(3)加长训练序列。训练序列更长,有助于提升模型性能。
(4)动态掩码与全词掩盖。每次向模型输入一个序列时,就进行一次随机掩码,随着数据的输入,模型会适应不同的掩码策略,从而学习到不同的语言特征。全词掩盖针对中文特有的词结构进行全词掩码,使得模型可以更好地学习到中文语言复杂的语言特征。
(5)文本编码(Byte-Pair Encoding,BPE)。该编码方式是字符级和单词表示的混合,可以处理自然语言语料库中常见的大量词汇且不依赖于完整单词,而是依赖于子词(sub-word)单元。子词单元是根据自然语言语料库进行统计分析而得,是一种统一的编码方式。
RNN 的结构能够很好地利用序列之间的关系,可以动态地获取序列间的信息并对其进行记忆保存,但是RNN在实现时容易出现梯度消失问题。LSTM 模型是在RNN模型上加入门限机制和记忆单元从而解决了梯度消失问题。在后续研究中发现,无论是RNN 还是LSTM,都是从前向后传递信息,在NER 任务中,现在的词性也会与后面的词有关,类似于BRNN 的双向LSTM 被提出以解决此问题,其结构如图1所示。
Fig.1 BiLSTM model structure图1 BiLSTM 模型结构
双向的LSTM 也称BiLSTM,它将训练2 条LSTM,一条从左到右,另一条从右到左,随后进行状态序列拼接并输出。在t时刻,给定输入xt,LSTM 的隐藏层输出表示具体计算过程如下:
其中,W为模型参数矩阵,b为偏置向量,C为记忆单元的状态,σ和tanh为2 种不同的激活函数,ft、it、ot分别是遗忘门、输入门、输出门,Xt、ht分别为状态向量和输入向量。这种门限机制可以有效捕获序列前后信息从而解决梯度消失问题。
BiLSTM 可以学习到上下文信息,但是并不能使模型学习到前后标签的约束关系。由于CRF 中有着特征转移矩阵,可以使模型学习到标签之间的顺序和一些约束规则,可以更好地对标签进行预测。
Albert-BiLSTM-CRF 与RoBERTa-BiLSTM-CRF 均 是将预训练模型与BiLSTM 网络和CRF 模型结合起来的 2 种模型,模型结构如图2所示。
Fig.2 Pre-trained model-BiLSTM-CRF model structure图2 预训练模型-BiLSTM-CRF 模型结构
由图2 可以看出,命名实体模型是以BERT 等预训练模型作为输入,经过BiLSTM 层对每个序列分别进行向前和向后处理,使模型学习到上下文关系后,输出给CRF 层进行序列前后标签约束关系的学习。
实验数据来源于开源的新闻网站,实验采用BIO 序列标注模式,对每个字符进行标注,B 表示实体类型的第一个词,I 表示实体类型其余的词,O 表示非实体类型。本次任务分为7 种实体类型,如表1 所示。数据共有216 547字,其中CW 标签有3 295 个,ORG 标签有9 010 个,LOC 标签有2 903 个,FNAME 标签有840 个,LNAME 标签有3 820个,DATE 标签有17 425 个,其余为O 标签,训练集与验证集以7∶3的比例划分。
Table 1 Entity type definition表1 实体类型定义
对于每一种实体类型,本次实验都采用准确率(Precision,P)、召回率(Recall,R)和F1 值(F1-score)作为衡量模型性能的标准。各指标计算公式如下:
其中,TP 表示预测为正类且样本为正类,FP 表示预测为正类且样本为负类,FN 表示预测为负类且样本为正类,TP+FP 表示预测为正类的样本数,TP+FN 表示实际为正类的样本数。
本文提及的模型采用Pytorch 框架进行搭建。Pytorch是由Facebook 人工智能研究院基于Torch 开发的深度学习框架,其被广泛应用于深度学习模型的研究与应用。在RoBERTa-BiLSTM-CRF 模型上,相较于张芳丛等[24]的研究,其在数据方面有着明显区别。此外,在Albert-BiLSTM-CRF 模型上,相比网络开源代码所使用的框架keras,本次实验使用Pytorch 框架实现。本次研究采用谷歌发布的Bert_Large 预训练模型结合BiLSTM 和CRF 作为baseline,该预训练模型嵌入层数和隐藏层数为24 层,嵌入层维度和隐藏层维度为1 024,注意力头数为16。本研究采用的另外2 个预训练模型分别为Albert_Base 和RoBERTa_Base-WWM。模型具体参数如下:Albert_Base 的嵌入层数和隐藏层数为12 层,隐藏层维度为768,嵌入层维度为128,注意力头数为12;RoBERTa_Base-WWM 的嵌入层数和隐藏层数为24 层,嵌入层维度和隐藏层维度为1 024,注意力头数为16。预训练模型-BiLSTM-CRF 模型训练参数如下:最大序列长度(max_seq_length)为128,batch size为16,dropout 设置为0.5。在Albert 上分别采用batch size为8和16进行实验。
本实验设置不同的epoch 值,在一定时间内记录不同模型的准确率、召回率、F1 值,并进行训练结果比较,实验结果如表2 所示。此外,还记录了不同模型在各标签上的效果,实验结果如表3—表5所示。
Table 3 Consumption of resources by different models表3 不同模型对资源的消耗情况
Table 4 P,R,F1 value of each label of Bert-BiLSTM-CRF表4 Bert-BiLSTM-CRF 的各标签的准确率、召回率、F1值
Table 5 P,R,F1 value of each label of Albert-BiLSTM-CRF表5 Albert-BiLSTM-CRF 的各标签的准确率、召回率、F1值
从表2 和表3 可以看出,Albert-BiLSTM-CRF 与Bert-BiLSTM-CRF 在F1 值上相差1.1%,将Albert-BiLSTM-CRF的batch size 减小到8 时模型有着明显的性能提升并且超过了Bert-BiLSTM-CRF,在Albert-BiLSTM-CRF 上可以适当减小batch size 以得到更优结果。Albert_Base 消耗的资源仅为Bert_Large 的1/4,并且在相同时间下最终效果提升了至少2%,Albert_Base 与RoBERTa_Base-WWM 相比,资源消耗减少了一半但是F1 值仅减少了不到3%,并且不到3G 的资源消耗在如今的便携式设备基本上都可以进行训练。RoBERTa-WWM-BiLSTM-CRF 在采取更符合中文词特征的全词掩盖和动态掩盖后F1 值提升了5%,这体现了全词掩盖和动态掩码在中文命名实体识别研究上的优越性。Albert 采用的参数共享机制在减少大量参数后,各项评价指标和Bert 模型相差无几。实验表明,Bert 模型中有大量的参数冗余导致训练效率低于Albert。
由表4—表6 可知,Bert-BiLSTM-CRF 在DATE 和LABEL 标签上相较于其他标签差距较大,其中DATE 标签的F1 值仅有86.90%。Albert-BiLSTM-CRF 在LNAME 标签上的效果最差,仅有81.31%,与其他标签相比相差不止10%,但是在LABEL 标签上效果很好。RoBERTa-WWM-BiLSTM-CRF 在各标签上平均高达97%,但相较自身ORG、DATE 和LABEL 标签效果还有待提升。总体看来,RoBERTa-WWM-BiLSTM-CRF 在各标签的效果相较于其他2 个模型有不小提升,而Bert-BiLSTM-CRF 和Albert-BiLSTMCRF 在特定标签上F1 值未达到预期效果,由此看来动态掩码任务和全词掩盖任务在识别特定标签上具有一定的优越性。
Table 6 P,R,F1 value of each label of RoBERTa-BiLSTM-CRF表6 RoBERTa-BiLSTM-CRF 的各标签的准确率、召回率、F1值
本文针对Bert-BiLSTM-CRF 模型消耗资源过多、训练时间过长的问题进行模型改进,采用Albert 预训练模型以减少模型参数量,降低资源消耗,并提升了实体识别能力。同时,基于Bert 预训练模型在预训练任务上的不足,采用RoBERTa-WWM 预训练模型代替Bert 进行研究,实验表明,动态掩码和全词掩盖在中文命名实体识别上有着不小的提升,并且Albert 消耗的资源很少,可以在便携式设备上进行训练。后续工作中,将考虑进行数据增强、数据优化和领域迁移以提升模型性能和泛化能力。