基于BERT嵌入的中文命名实体识别方法

2020-04-20 05:02董文永
计算机工程 2020年4期
关键词:命名实体向量

杨 飘,董文永

(武汉大学 计算机学院,武汉 430072)

0 概述

命名实体识别(Named Entity Recognition,NER)技术可用于识别文本中的特定实体信息,如人名、地名、机构名等,在信息抽取、信息检索、智能问答、机器翻译等方面都有广泛应用,是自然语言处理的基础方法之一。一般将命名实体识别任务形式化为序列标注任务,通过预测每个字或者词的标签,联合预测实体边界和实体类型。

随着神经网络的迅速发展,不依赖人工特征的端到端方案逐渐占据主流。文献[1]基于单向长短期记忆(Long-Short Term Memory,LSTM)模型和神经网络进行命名实体识别,提出LSTM-CRF模型。基于LSTM良好的序列建模能力,LSTM-CRF成为命名实体识别的基础架构之一,很多方法都是以LSTM-CRF为主体框架,在其基础上融入各种相关特征。例如文献[2]加入手工拼写特征,文献[3-4]使用一个字符CNN来抽取字符特征,文献[5]采用的是字符级LSTM。也有基于CNN的命名实体识别方案,例如文献[6]提出的CNN-CRF结构,文献[7]在CNN-CRF基础上提出使用字符CNN来增强的模型。此后,文献[8]采用空洞卷积网络(IDCNN-CRF)进行命名实体识别,在提取序列信息的同时加快了训练速度,文献[9]在BiLSTM-CRF模型的基础上利用注意力机制获得词在全文范围内的上下文表示,并将该模型应用于化学药物实体识别任务,通过在生物文本上预训练词向量以及使用字符级LSTM,获得了90.77%的F1值。文献[10]采用GRU计算单元,提出了基于双向GRU的命名实体识别方法,并将其应用于会议名称识别任务。文献[11]将CNN-BiLSTM-CRF模型应用于生物医学语料中,获得了较高的F1值。文献[12]针对裁判文书的实体抽取提出SVM-BiLSTM-CRF模型,主要抽取动产、不动产、知识财产3类实体。该模型利用SVM判断含有关键词的句子,并将其输入BiLSTM-CRF模型中进行抽取。文献[13]针对在线医疗网站的文本,提出IndRNN-CRF和IDCNN-BiLSTM-CRF模型,性能均优于经典的BiLSTM-CRF模型。

中文存在字和词的区分,因此,在中文领域存在基于字的命名实体识别、基于词的命名实体识别、基于字和词的联合命名实体识别3种方案。文献[14-15]通过字级别和词级别统计方法的对比,表明基于字符的命名实体识别方法一般有更好的表现。因此,一些研究者在基于神经网络的命名实体识别模型中采用基于字的命名实体识别方案[16-17]。另一些研究人员在字级别的命名实体识别方案中融入了词的信息,例如文献[18-19]将分词信息作为soft feature来增强识别效果,文献[20]则通过将分词和命名实体识别联合训练来融合分词信息。文献[21]提出的Lattice LSTM网络结构效果较好,其将传统的LSTM单元改进为网格LSTM,在字模型的基础上显性利用词与词序信息,且避免了分词错误传递的问题,在MSRA语料上F1值达到93.18%。

以上基于字的中文命名实体识别方法普遍存在的问题是无法表征字的多义性,例如在句子“这两批货物都打折出售,严重折本,他再也经不起这样折腾了”中,3个“折”字表达的是不同的含义,但是在以往的字向量表示方法中,3个字的向量表示完全一样,这与客观事实不符。较好的词表示应能包含丰富的句法和语义信息,并且能够对多义词进行建模,针对这个问题,研究人员提出使用预训练语言模型的方法来进行词表示。文献[22]使用一个词级别的语言模型来增强NER的训练,在大量原始语料上实现多任务学习。文献[23-24]采用BiLSTM网络结构,通过预训练一个字符语言模型来生成词上下文表示以增强词的表示。文献[25]建立的BERT模型则采用表义能力更强的双向Transformer网络结构来预训练语言模型。

由于BERT预训练语言模型具有较强的语义表达能力,因此本文通过嵌入该模型的双向Transformer编码结构,构建BERT-BiGRU-CRF模型,以提高中文命名实体识别准确率。

1 BERT-BiGRU-CRF 模型

BERT-BiGRU-CRF模型整体结构如图1所示,整个模型分为3个部分,首先通过BERT预训练语言模型获得输入的语义表示,得到句子中每个字的向量表示,然后将字向量序列输入BiGRU中做进一步语义编码,最后通过CRF层输出概率最大的标签序列。

图1 BERT-BiGRU-CRF模型结构Fig.1 BERT-BiGRU-CRF model structure

与传统的命名实体识别模型相比,本文模型最主要的区别是加入了BERT预训练语言模型。BERT预训练语言模型在大规模语料上学习所得,可以通过上下文计算字的向量表示,能够表征字的多义性,增强了句子的语义表示。该模型有2种训练方式:一种是训练整个BERT-BiGRU-CRF模型的参数;另一种是固定BERT参数,只训练BiGRU-CRF部分参数。第2种训练方式相对于第1种训练方式可以大幅减少训练参数,缩短训练时间。

1.1 BERT预训练语言模型

近年来,研究人员将预训练深度神经网络作为语言模型,在此基础上以针对垂直任务进行微调的方式取得了很好的效果。比较典型的语言模型是从左到右计算下一个词的概率,如式(1)所示:

(1)

在将预训练模型应用于垂直领域时,有时并不需要语言模型,而是需要一个字的上下文表示以表征字的多义性和句子的句法特征。针对该问题,文献[22]提出了BERT预训练语言模型,其结构如图2所示。为融合字左右两侧的上下文,BERT采用双向Transformer作为编码器。该文还提出了Masked语言模型和下一个句子预测2个任务,分别捕捉词级别和句子级别的表示,并进行联合训练。

图2 BERT预训练语言模型结构Fig.2 BERT pretrained language model structure

Masked语言模型用于训练深度双向语言表示向量,该方法采用一个非常直接的方式,即遮住句子里某些单词,让编码器预测这个单词的原始词汇。文献[22]随机遮住15%的单词作为训练样本,其中,80%用masked token来代替,10%用随机的一个词来替换,10%保持这个词不变。

下一个句子预测是指预训练一个二分类的模型来学习句子之间的关系。很多NLP任务如QA和NLI都需要对2个句子之间关系的理解,而语言模型不能很好地直接产生这种理解。为理解句子关系,该方法同时预训练了一个下一个句子预测任务。具体做法是随机替换一些句子,然后利用上一句进行IsNext/NotNext的预测。

BERT最重要的部分是双向Transformer编码结构,Transformer舍弃了RNN的循环式网络结构,完全基于注意力机制对一段文本进行建模。Transformer编码单元如图3所示。

图3 Transformer编码单元Fig.3 Transformer coding unit

编码单元最主要的模块是自注意力(Self-Attention)部分,如式(2)所示:

(2)

其中,Q、K、V均是输入字向量矩阵,dk为输入向量维度。

上述方法的核心思想是计算一句话中的每个词对于这句话中所有词的相互关系,然后认为这些词与词之间的相互关系在一定程度上反映了这句话中不同词之间的关联性以及重要程度。在此基础上,利用这些相互关系来调整每个词的重要性(权重)即可获得每个词新的表达。这个新的表征不但蕴含了该词本身,还蕴含了其他词与这个词的关系,因此,其与单纯的词向量相比是一个更加全局的表达。

为扩展模型专注于不同位置的能力,增大注意力单元的表示子空间,Transformer采用了“多头”模式,如式(3)和式(4)所示:

MultiHead(Q,K,V)=

Concat(head1,head2,…,headh)Wo

(3)

(4)

此外,为解决深度学习中的退化问题,Transformer编码单元中还加入了残差网络和层归一化,如式(5)和式(6)所示:

(5)

FFN=max(0,xW1+b1)W2+b2

(6)

在自然语言处理中一个很重要的特征是时序特征,针对自注意力机制无法抽取时序特征的问题,Transformer采用了位置嵌入的方式来添加时序信息,如式(7)和式(8)所示。BERT的输入是词嵌入、位置嵌入、类型嵌入之和。

PE(Ppos,2i)=sin(Ppos/10 0002i/dmodel)

(7)

PE(Ppos,2i+i)=cos(Ppos/10 0002i/dmodel)

(8)

与其他语言模型相比,BERT预训练语言模型可以充分利用词左右两边的信息,获得更好的词分布式表示。

1.2 BiGRU层

GRU(Gated Recurrent Unit)是一种特殊循环神经网络(Circulatory Neural Network,RNN)。在自然语言处理中,有很多数据前后之间具有关联性,传统前向神经网络无法对这种数据建模,由此出现了循环神经网络。

循环神经网络通过引入定向循环来处理序列化数据,其网络结构分为3层,分别为输入层、隐层、输出层。隐层之间可以前后相连,使得当前隐层的信息可以传递到下个节点,作为下个节点输入的一部分,这样使得序列中的节点能够“记忆”前文的信息,达到序列建模的目的。

RNN神经网络理论上可以处理任意长度的序列信息,但是在实际应用中,当序列过长时会出现梯度消失的问题,且很难学到长期依赖的特征。针对这个问题,文献[26]改进了循环神经网络,提出了LSTM模型。LSTM单元通过输入门、遗忘门和输出门来控制信息传递。

GRU[27]是RNN的另一种变体,其将遗忘门和输入门合成为一个单一的更新门,同时混合细胞状态和隐藏状态。GRU单元结构如图4所示,具体计算过程如式(9)~式(12)所示。

图4 GRU编码单元Fig.4 GRU coding unit

zt=σ(Wi*[ht-1,xt])

(9)

rt=σ(Wr*[ht-1,xt])

(10)

(11)

(12)

其中,σ是sigmoid函数,·是点积。x=(x1,x2,…,xn)为时刻t的输入向量,x=(x1,x2,…,xn)是隐藏状态,也是输出向量,包含前面t时刻所有有效信息。zt是一个更新门,控制信息流入下一个时刻,rt是一个重置门,控制信息丢失,zt和rt共同决定隐藏状态的输出。

单向的RNN只能捕获序列的历史信息,对于序列标注任务而言,一个字的标签和该字的上下文都有关系。为充分利用上下文信息,文献[28]提出了双向循环神经网络(BRNN),之后文献[29]提出了BiLSTM模型,将单向网络结构变为双向网络结构,该模型有效利用上下文信息,在命名实体识别等序列标注任务中得到广泛应用。

GRU与LSTM相比结构更加简单,参数更少,可以缩短训练时间。由于GRU良好的序列建模能力,使得GRU在语音识别、命名实体识别和词性标注等方面都得到广泛应用。

1.3 CRF层

GRU只能考虑长远的上下文信息,不能考虑标签之间的依赖关系,如在命名实体识别中,有些标签不能连续出现,因此,模型不能独立地使用h(t)来做标签决策,而CRF能通过考虑标签之间的相邻关系获得全局最优标签序列,故使用CRF来建模标签序列。

CRF对于给定序列x=(x1,x2,…,xn)和对应的标签序列y=(y1,y2,…,yn),定义评估分数计算公式如式(13)所示:

(13)

其中,Wi,j表示标签转移分数,Pi,yi表示该字符的第yi个标签的分数。Pi定义如式(14)所示:

Pi=Wsh(t)+bs

(14)

其中,W是转换矩阵,h(t)是上一层t时刻输入数据x(t)的隐藏状态。

对CRF的训练采用的是最大条件似然估计,对训练集合{(xi,yi)},其似然函数如式(15)所示,P计算如式(16)所示,表示原序列到预测序列对应的概率。

(15)

(16)

2 实验结果与分析

2.1 实验数据

本文采用MSRA数据集,该数据集是微软公开的命名实体识别数据集,包含人名、机构名、地名3类实体。数据集中包括训练集和测试集,训练集共包含4.64×104个句子、2.169 9×106个字,测试集包括4.4×103个句子、1.726×105个字。各类实体统计如表1所示。

表1 数据集实体个数Table 1 Number of entities in data set

2.2 标注策略与评价指标

命名实体识别的标注策略有BIO模式、BIOE模式、BIOES模式。本文采用的是BIO标注策略,其中“B”表示实体开始,“I”表示实体非开始部分,“O”表示非实体的部分。因为在预测实体边界时需要同时预测实体类型,所以待预测的标签共有7种,分别为“O”“B-PER”“I-PER”“B-ORG”“I-ORG”“B-LOC”和“I-LOC”。在测试过程中,只有当一个实体的边界和实体的类型完全正确时,才能判断该实体预测正确。

命名实体识别的评价指标有精确率P、召回率R和F1值F1。具体定义如式(17)所示。其中,TP为模型识别正确的实体个数,FP为模型识别到的不相关实体个数,FN为相关实体但是模型没有检测到的个数。

(17)

2.3 实验环境

实验计算机配置如下:Ubuntu操作系统,i7-6700HQ@2.60 GHz的CPU,Python 3.6,Tensorflow 1.12.0,16 GB内存。

2.4 实验过程

BERT-BiGRU-CRF模型有2种训练方式:一种是训练模型全部参数;另一种是固定BERT部分参数,只更新BiGRU-CRF参数。本文使用这两种方式分别进行实验。

为证明模型的有效性,将BERT-BiGRU-CRF模型与以下模型进行对比:

1)BiGRU-CRF模型。该模型是序列标注经典模型,基于字的标注,采用预训练好的字向量,然后输入BiGRU-CRF模型中进行训练。

2)Radical-BiLSTM-CRF模型[17]。该模型在BiLSTM-CRF的基础上融入笔画信息,将字的笔画序列输入BiLSTM中得到字的表示,然后以字的Embedding和笔画表示连接,作为该字新的语义表示输入上层BiLSTM-CRF中进行训练。

3)Lattice-LSTM-CRF模型[21]。该模型在中文语料上达到了较好的效果,Lattice-LSTM网络结构充分融合了字信息和该字的潜在词信息,可有效避免分词的错误传递。

2.5 参数设置

Google提供的预训练语言模型分为2种:BERT-Base和BERT-Large。2种模型网络结构相同,只有部分参数不同。实验中采用的是BERT-Base。BERT-Base共12层,隐层为768维,采用12头模式,共110M个参数。最大序列长度采用128,train_batch_size为16,learning_rate为5e-5,droup_out_rate为0.5,clip为5,BiGRU隐藏层维数为128。

2.6 实验结果

BERT-BiGRU-CRF模型F1值随训练轮数的变化如图5所示,其中BERT-BiGRU-CRF-f模型表示在训练过程中更新整个模型的参数,BERT-BiGRU-CRF表示固定BERT参数,只更新BiGRU-CRF部分参数。BERT-BiGRU-CRF-f模型在训练12个epoch时达到最大F1值95.43%;BERT-BiGRU-CRF模型也是在训练12个epoch时达到最大F1值94.18%;BiGRU-CRF模型在第14个epoch达到最大F1值87.97%。BERT-BiGRU-CRF训练一轮的时间是394 s,BiGRU-CRF训练一轮的时间是406 s,BERT-BiGRU-CRF-f训练一轮的时间为2 044 s。另外测得Lattice-LSTM-CRF模型训练一轮的时间为7 506 s,在第37个epoch才得到最优F1值,总体训练时间远超BERT-BiGRU-CRF模型。

图5 F1值变化曲线Fig.5 Curve of F1 value changes

针对人名(PER)、地名(LOG)、机构名(ORG)3类实体的准确率、召回率、F1值如表2所示,可以看出其中机构类实体预测准确率偏低,主要原因在于机构名中很多存在地名嵌套、缩略词、歧义等干扰信息,在没有其他充足的上下文时容易预测错误。

表2 不同类型命名实体识别结果Table 2 NER results for different types of entities %

部分错例如表3所示。可以看出:例句1的机构名中嵌套了地名,类似的例子还有“中国政府陪同团”“中国东盟”等;例句2中出现了“工商联”这一缩写,类似的还有“理事会” “委员会”等;例句3中则出现了歧义的情形。这种情况下如果没有补充的上下文会导致难以预测。

表3 预测错误实例Table 3 Examples of wrong prediction

本文模型与其他模型的对比如表4所示。可以看出,对比BERT-BiGRU-CRF模型和BiGRU-CRF模型,本文模型能提高6.21%的F1值,说明BERT预训练语言模型能更好地表示字的语义信息,这是因为BERT生成的字向量是上下文相关的,例如在句子“罗布汝信汤洪高安启元许其亮阮崇武”中,正确实体划分应该是“罗布|汝信|汤洪高|安启元|许其亮|阮崇武”,表示6个名字的并列,但在BiGRU-CRF模型中,“安启元”这个实体无法正确识别,而是将“汤洪高安启元”作为一个整体,主要原因是“安”字作为姓氏比较少见,在传统词向量中只能表义“平安”“安定”等,而在BERT-BiGRU-CRF模型中,生成的“安”字语义向量是上下文相关的,在该语句的上下文中包含有姓氏的含义,与“民族团结,社会安定”中的“安”字相比,生成的语义向量不同,语义不同。同样的例子还有“普”“亢”作为姓氏的情形。

表4 不同模型命名实体识别结果Table 4 NER results of different models %

BERT-BiGRU-CRF模型与Radical-BiLSTM-CRF模型、Lattice-LSTM模型相比效果更好,说明BERT的特征抽取能力比较强,抽取的特征比单独训练笔画特征和字词融合特征更准确。对比BERT-BiGRU-CRF-f和BERT-BiGRU-CRF模型可以看出,BERT-BiGRU-f效果更好,但训练参数量更大,所需要的训练时间更长。

3 结束语

针对传统词向量表示方法无法表征字多义性的问题,本文构建BERT-BiGRU-CRF模型,通过BERT预训练语言模型双向Transformer结构动态生成字的上下文语义表示。该模型性能优于Lattice-CRF模型,可有效提升中文命名实体识别的效果,但其缺点是当上下文信息不足且存在实体嵌套、缩写、歧义实体等情形时,无法实现对语句特征的正确抽取。下一步将在本文模型中融入潜在词特征,结合BERT与Lattice LSTM表征字的多义性,同时加入潜在词的特征,以应对上下文信息不足的情况。

猜你喜欢
命名实体向量
向量的分解
命名——助力有机化学的学习
聚焦“向量与三角”创新题
前海自贸区:金融服务实体
有一种男人以“暖”命名
为一条河命名——在白河源
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
向量垂直在解析几何中的应用