基于XLnet语言模型的中文命名实体识别
2021-09-26姚贵斌张起贵
姚贵斌,张起贵
太原理工大学 信息与计算机学院,山西 晋中030600
命名实体识别是自然语言处理中的一项基础任务,旨在识别出文本中的人名、地名、机构名等具有实体意义的词汇。随着该技术在更多领域的不断普及,比如医疗、生物和军事领域,某种药物、疾病或武器也可以称作是命名实体。识别出这些实体对提取关键信息有极大的帮助,对抽取实体关系三元组和完善知识图谱有着重要的影响。传统命名实体识别方法有基于规则和统计的方法,这两种方法须依赖于人工制定的规则,代价昂贵。随着深度学习在自然语言处理中的广泛应用,可以利用特征抽取模型自动学习到文本特征。张俊飞等[1]通过将字向量和分词得到的字信息特征组合在一起输入BLSTM-CRF中并取得了不错的识别效果。Zhang等[2]提出Lattice LSTM(Long Short Term Memory)网络,对输入字符序列和所有匹配词典的潜在词汇进行编码,与基于字符的方法相比,该模型利用了词和词序信息,与基于词的方法相比又不会出现分词错误。并在四个数据集上优于论文中的其他模型。李博等[3]以transformer为基础模型,针对中文电子病历命名实体识别传统模型识别效果不佳的问题,提出一种完全基于注意力机制的神经网络模型,F1值高达95.02%。卷积神经网络模型主要用于图像领域,刘小安等[4]通过利用卷积神经网络充分对文本的局部信息特征进行抽象化抽取和表示,对文本进行空间建模,实现了对景点实体的识别。杨飘等[5]将Bert(Bidirectional Encoder Representations from Transformers)语言模型应用在命名实体识别任务上,并在MSRA语料上的识别结果优于Lattice网络。考虑到之前的工作在词向量的语义表征方面存在不足,影响了命名实体识别率。本文提出一种基于XLnet语言模型的中文命名实体识别框架,首先用LSTM初步提取,再经过CNN提取空间特征,然后把得到的词向量输入到XLnet语言模型中进行更深层次的特征提取,该方法可以得到更为精确的词向量表示。
1 CAW-XLnet-BiGRU-CRF框架
传统的语言模型不能有效表达句子中上下文的关系,长期依赖性差,并且数据稀疏严重。随着深度学习的发展,神经网络语言模型更能准确地用结构化数据表示文本。Mikolov等[6]提出了Word2vector模型,可以根据上下文去预测目标单词,但由于生成的词向量是静态的,无法处理多义词的现象。Peters等[7]提出了一种深层语境化的词汇表示(Deep contextualized word representations,ELMO)法,词向量不再是静态的,而是随语境改变的学习函数,该模型有效地缓解了一词多义的问题。Radford等[8]摒弃了先前的利用LSTM网络结构进行特征抽取,改用transformer模型,在提取长距离依赖信息有突出表现。但该模型(Generative Pre-Training,GPT)还是延续单向语言模型的特点,无法从上下文不同方向同时进行预测。Devlin等[8]提出的Bert语言模型强调了双向预训练对于语义表示的重要性,但由于其掩体与被掩体之间的独立性和预训练和微调阶段的差异性,在应用到具体任务上时会影响结果的精确度。Yang等[10]提出了广义自回归语言模型(XLnet)。它利用了排列组合的原理,实现了双向预测,展现出强大的表义能力。
鉴于XLnet在语言表义方面的优势,本文在中文命名实体识别任务上加入XLnet语言模型增强字的语义表示,设计了如图1所示的网络结构,直观地把模型分为四层结构,向量处理(Char And Word,CAW)层、XLnet层、正反向GRU层和CRF层。字词向量嵌入层中底层为字向量,高层是经过分词预测和矩阵运算得到的词向量;XLnet层用于对处理过的词向量提取出隐藏的语义信息,其中用到了由Dai等[11]提出的transformer-xl(Attentive language models beyond a fixed-length context)特征抽取器,在面对长文本时有更好的特征抽取能力,可以得到更强的语义表示;GRU层进一步对获得的语义表示编码;CRF层通过转移概率矩阵输出概率最大的标签序列。
图1 中文命名实体识别模型图Fig.1 Chinese named entity recognition model
图1中的输出标注方式选择了信息更加全面的BIOES格式。B表示实体开始,I表示实体中间,E表示实体结束,S表示单字实体,O表示不是实体。以“新华社”为例,“新”是首字,用“B”表示;“华”位于中间,用“I”表示;“社”居文末,所以用“E”表示。并且用到的《人民日报》1998年的数据语料设置了三个类别,如表1所示。其属于三个类别中的机构名,后面加上“ORG”,便得到了如图1所示的标注结果。
表1 实体类别及编码Table 1 Entity category and code
1.1 向量处理层
命名实体识别任务可以在字向量和词向量上分别进行特征提取,中文词语中包含了更加丰富的语义信息,但分词结果会对识别结果产生影响,将字向量和词向量进行拼接是常规做法,殷章志等[12]提出了一种融合字词BiLSTM模型的命名实体识别方法,其使用支持向量机(SVM)对训练得到的字向量和词向量进行模型融合。研究人员考虑利用字向量特征和分词信息一起生成词向量,而不是直接利用分词结果训练得到词向量,比如在图1所示中输入文本“新华社拉萨”,底部为用Word2vec语言模型在大规模语料库上预训练得到的字向量,为了能够让文本自动学习到词向量级别的语义,这里不直接给出分词信息,而是给出一个预测矩阵来预测组合词语的分数,这样前向LSTM阶段的组合词向量概率分数可以表示为:
其中,Wi表示当前预测词,Xi0,Xi1,…,Xin表示组成Wi的字,WWi表示Wi的预测权重矩阵,Lfi表示前向LSTM编码输出,bWi表示偏置矩阵。同样可以得到后向LSTM阶段的预测组合词向量分数表示:
损失函数设置为:
通过引入目标预测矩阵,运用反向传播算法原理不断更新词向量预测分数值,前向LSTM特征提取阶段“社”包含了“新”“华”信息,后向LSTM提取阶段“新”包含了“社”“华”信息,将这两个向量矩阵运算后得到“新华社”的词向量表示,同样的方法可以得到“拉萨”的词向量表示,此方法可以充分利用词语内部的字信息特征,文本可以自动学习到词语内部更深的语义表示。
考虑到在图像语义分析领域,图像中的语言文字被看作是图像的一部分,其中也包含了空间信息。在本次任务中引入了CNN模块来提取词语与词语之间的空间特征,设给定输入句子变量具有n个词V=(W1,W2,…,Wn),首先计算每个词向量及其相邻词向量的空间特征表示:Vc=fCNN(V),其中fCNN(⋅)表示CNN的功能函数。这是通过一个大小为Nw×No的滤波器实现的,其中设置了窗口大小为Nw,这表示一次处理的词向量个数,No是与输出矢量有关的超参数。另外,在边界处设置
图2 f CNN(⋅)功能实现示意图Fig.2 F_Schematic diagram of f CNN(⋅)function implementation
1.2 XLnet语言模型
XLnet,即语义理解的广义自回归预训练。它避免了原始的自回归和自编码语言模型的缺点,在自回归语言模型上实现了双向预测。该模型的核心思想是以排列组合的方式重构输入文本。与Bert不同的是,XLnet并不是在输入阶段对文本进行排列组合,这在微调阶段是不允许的,它是在transformer内部通过attention mask矩阵来实现的,通过attention mask矩阵可以得到不同的排列组合,使模型的训练充分融合上下文特征,同时不会造成Mask机制下的有效信息缺失,克服了Bert模型的缺陷。如图3所示为XLnet掩蔽机制实现方式举例,图中假设原始输入句子为[新,华,社,拉,萨],如果随机生成序列为[社,华,新,萨,拉],但输入XLnet的句子仍然是[新,华,社,拉,萨],那么在XLnet内部是以如下掩码矩阵实现的。对于排列后的“新”字来说,它只能利用到“华”和“社”两字的信息,所以在第一行中保留了第二个和第三个位置的信息(用空心表示),而其他位置的信息被掩盖掉(用实心表示)。再比如排列后的“社”字位于第一个位置,没有可以利用的信息,所以在第三行中全部以实心表示。
图3 XLnet模型掩蔽机制示例Fig.3 Example of XLnet model masking mechanism
对于XLnet的核心部分——transformer-xl,它在继承了原先transformer结构的基础上引入了循环机制和相对位置编码的概念。为了处理数据方便,在拟合数据阶段需要将输入的序列分割为固定长度的片段,transformer可以快速提取到这一片段的信息,但就全文来看,它损失了相邻片段甚至长期相关重要的信息,在长期依赖方面还不如RNN。有了RNN提取隐状态信息作为长期依赖的依据,transformer-xl设法在片段与片段之间插入隐状态信息,在提取出上一片段信息后预先存储起来以备下一片段预测使用,这样可以充分挖掘长距离文本信息。图4所示为两个片段之间引入循环机制实现信息传递方式图。灰线表示前一片段保留的记忆。在Bert模型中由于缺失灰线表示的记忆信息,在预测c5时没有可以利用的信息。而在XLnet模型中则可以利用前一片段的c2、c3、c4保留的信息,实现了信息的传递。
图4 XLnet循环机制实现信息传递Fig.4 XLnet loop mechanism to realize information transmission
而对于位置编码来说,基线transformer是忽略了不同片段中出现同一个词的可能性为前提的,但这种情况也是可见的,如果沿用绝对位置编码,那么同一个词不同片段向量表示完全一样,无法表征字的多义性。绝对位置编码公式如下所示:
其中,Vt表示当前片段向量编码,Vt-1表示上一片段向量编码,TVt表示当前片段文本向量编码,PV1:l表示当前片段位置向量编码,可以看出不同片段中PV1:l总是不变。如果两个片段中存在共有词,那么该词的向量表示是一样的。为了更直观地看出绝对位置编码与相对位置编码的异同,以下列出了原transformer模型中段内序列之间self-attention公式:
其中Exi、Exj分别表示词i、j的文本向量,Ui、Uj分别表示词i、j的位置向量,这里的Ui=Uj,W代表权重矩阵。引入相对编码机制后,以上公式变为:
XLnet语言模型以transformer-xl框架为核心,通过引入循环机制和相对位置编码,可以充分利用到上下文语义信息,挖掘出隐藏在初始文本向量内部的潜在关系,获得更为准确的词向量表示。
1.3 BiGRU层
GRU(Gated Recurrent Unit)[13]由Cho等提出,实际上是对LSTM的简化,它通过门控制信息的传递与截止。其最初在统计机器翻译方面取得了出色的效果,主要由重置门和更新门构成,参数设置方面较少,训练速度更快。在处理序列化数据方面有诸多应用[14-15],图5为单个GRU结构示意图。
图5 GRU编码单元信息流Fig.5 Information flow of GRU coding unit
箭头表示信息传递的方向,具体实现公式如下:
其中,σ为sigmoid函数,取值[0,1]之间,zt和rt分别为更新门和重置门,主要由当前时刻xt和上一时刻的隐藏向量ht-1决定,控制信息的保留和丢弃。ht作为当前时刻的输出和下一时刻隐藏向量的输入。本次实验采取双向GRU循环结构以达到对上下文信息的共同编码。
1.4 CRF层
理论上双向GRU网络的输出可以得到各个标签的分数值,只需要输出其中最大的分数值即可作为输入文本的标签类别。但这样做忽略了输出类别标签之间的依赖性,标签依赖性对于序列标记任务至关重要,这种依赖性可以理解为约束条件。例如:实体标记的第一个字可以是“B_”“S_”,不能是“I_”或“E_”;一个实体标记中必须以“E_”结尾;同一个实体标记中不能出现不同的类别,即“B_LOC,I_ORG”是不合理的等。而CRF(Conditional Random Fields)可以通过转移矩阵避免上述等不合理的情况出现,降低实体标签识别错误率。
对于输入实例Xi,假设通过GRU编码单元的输出为Zi,经过CRF层后输出Yi的概率可以表示为:
其中,wyi-1,yi表示前一个输出标记相对于当前输出标记的转移权重矩阵,byi-1,yi为偏差矩阵,这样可以将损失函数表示为:
2 实验及分析
2.1 数据集处理
本文采用的是《人民日报》1998年1月份数据集,大约35 980条句子,其中各个实体类别的数量如表2所示,并且将数据集按8∶1∶1分为了训练集、验证集和测试集。
表2 实验数据集Table 2 Experimental data set
2.2 实验配置
2.2.1 环境配置
实验用到的运行环境如表3所示。
表3 环境配置Table 3 Environment configuration
2.2.2 参数配置
实验中的参数配置如表4所示。
表4 参数配置Table 4 Parameter configuration
2.3 评价指标
命名实体识别作为标签序列分类模型中的一项基础任务,其评价指标通常以准确率(P)、召回率(R)和F值作为评判标准。其公式为:
其中,correct为识别到正确实体标签的个数,wrong为识别到错误实体标签的个数,miss为未识别出实体标签的个数。
2.4 实验结果与分析
为了验证本文提出的模型的优良性,根据提出的网络结构,首先用不同的语言模型设置了五组不同的实验,F1值变化如图6所示。
从图6中可以看出本实验提出的CAW-XLnet-BiGRUCRF模型达到了最好的识别结果,比CAW-Bert-BiGRUCRF模型略好,且明显优于其他三组模型。基于ELMO和GPT语言模型的实验结果图基本一致,但由于GPT利用了transformer特征提取器,对较长距离的上下文语义表征能力更强,所以在识别效果上优于ELMO模型。而对于Word2vec语言模型,其只是在句子的表面对上下文信息进行提取表示,没有融入更多内部特征,所以表现出较差的F1值。模型中不同类别的识别结果如表5所示。
图6 不同模型F1值对比Fig.6 Comparison of F1 values of different models
表5 不同模型类别识别结果Table 5 Identification results of different model categories %
可以看出基于XLnet的语言模型在3个类别上的F值均为最优,分别高出基于Bert、Word2vec、ELMO、GPT模型0.81、18.01、4.17、2.97个百分点。且在同一个模型中ORG类的F值明显低于其他类别,严重影响了整体的F1值。这是由于机构名的命名规则极其复杂,且嵌套现象大量存在,长度也很不稳定等因素造成的。比如在对“外经贸”的预测中,由于缺少上下文信息对其描述,并没有识别出其属于组织机构类。像“国务院侨办”“国家语委”等缩写名词,基于Word2vec模型的识别结果错误率非常高。表6对比了XLnet与Bert模型部分预测实体的示例。
表6 XLnet与Bert模型部分预测示例Table 6 Some prediction examples of XLnet and Bert models
通过以上识别结果分析,Bert模型对实体的识别准确度不够,比如在第一个实体中虽然徐虎是人名,但结合上文语境,此为纪念此人成立的一所机构。在对第二个实体的识别中由于在上下文中缺少对“外经贸”的描述,两种模型都无法识别出正确结果。在第三个实体中出现了连续嵌套的机构名,Bert模型只识别出了一部分,XLnet模型虽然识别出了全部的实体,但结果也不准确,其将“部门”之前的相关机构合并为了一个机构。
另外,为了验证本文提出的CAW字词结合模型的有效性,直接将Word2vec预训练得到的字向量和词向量加入到实验中作对比分析,分别记为C-XLnet-BiGRUCRF和W-XLnet-BiGRU-CRF。实验结果如图7所示。
从F1值变化趋势图上可以看出,本文所提出的字词结合的模型均优于单独的基于字或词的模型,且基于字的模型表现效果最差。表7为提出的模型的识别结果与文献[12]中的模型在同一数据集上的数据对比。
表7 与其他模型的实验对比Fig.7 Experimental comparison with other models%
通过以上数据对比可以看到,在字模型方面,PER、LOC类别上F值分别提高了3.25和6.52个百分点,而ORG类下降了0.33个百分点。在词模型方面,PER、LOC、ORG类别上分别提高了2.17、4.5和0.15个百分点。在字词结合方面,PER、LOC、ORG类别上分别提高了2.64、2.68和3.55个百分点。验证了本文所提模型在处理命名实体识别任务上的有效性。
3 结束语
本文对目前中文命名实体识别性能作了改善,从字的语义表示方面着手,提出了基于XLnet语言模型的CAW-XLnet-BiGRU-CRF网络框架,并在《人民日报》1998年1月份数据集上用不同的语言模型设置了五组实验进行了对比分析,验证了本文提出的CAW-XLnet-BiGRU-CRF模型在处理中文命名实体识别任务上的优越性。还分别从字向量和词向量级别上作了实验对比,验证了本文提出的从字向量特征预测提取词向量特征的有效性。但研究也存在不足之处,从数据中可以看出在识别嵌套命名实体方面,尤其在机构名类别中,优秀的语言模型还是不能妥善的解决此问题,研究人员下一步试图从规则方面入手,将深度学习网络和人工制定规则结合起来,并在实体关系抽取上做进一步研究。