夏成魁 李少波
(1.貴州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 貴陽(yáng) 550025)
(2.貴州大學(xué)公共大數(shù)據(jù)國(guó)家重點(diǎn)實(shí)驗(yàn)室 貴陽(yáng) 550025)
命名實(shí)體識(shí)別(Named Entity Recognition,NER)是自然語(yǔ)言處理(Nature Language Process,NLP)領(lǐng)域中的一個(gè)重要研究方向,是信息抽取、智能問(wèn)答、機(jī)器翻譯等工作中的基礎(chǔ)任務(wù)。命名實(shí)體識(shí)別的主要目的是識(shí)別出文本中如日期、人名、地名、組織名稱(chēng)等一些具有特殊意義的實(shí)體,并將其劃分到對(duì)應(yīng)的實(shí)體類(lèi)別中[1]。命名實(shí)體識(shí)別技術(shù)早期主要是基于字典和規(guī)則匹配來(lái)實(shí)現(xiàn),這種方法需要由人手動(dòng)去構(gòu)建規(guī)則模版,再?gòu)奈谋局胁樵?xún)并通過(guò)規(guī)則模版篩選出命名實(shí)體,如NLP 框架GATE[2]就是基于模式匹配方法來(lái)開(kāi)發(fā)實(shí)現(xiàn)的。這種方法可以在特定的語(yǔ)料上取得較好表現(xiàn),但是存在工程量大,移植性較差等問(wèn)題。隨著機(jī)器學(xué)習(xí)技術(shù)的發(fā)展,命名實(shí)體識(shí)別任務(wù)開(kāi)始考慮基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)方法如采用隱馬爾科夫(Hidden Markov Model,HMM)模型[3~4]、最大熵(Maximum Entropy,ME)模型[5]、條件隨機(jī)場(chǎng)(Conditional Random Fields,CRF)模型[6]來(lái)實(shí)現(xiàn)。此類(lèi)方法主要根據(jù)概率學(xué)假設(shè)通過(guò)序列標(biāo)注的方式為文本中的字詞分配一個(gè)標(biāo)簽,從而完成命名實(shí)體識(shí)別。近年來(lái),基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)技術(shù)獲得了自然語(yǔ)言處理領(lǐng)域?qū)W者的廣泛關(guān)注,各種神經(jīng)網(wǎng)絡(luò)模型成為了解決命名實(shí)體識(shí)別問(wèn)題的重要手段,并在識(shí)別效果上取得了較大的進(jìn)展。
而相較于英文,中文文本中沒(méi)有明顯的分隔符號(hào),字詞的邊界模糊,同時(shí)其表述中常常會(huì)存在實(shí)體嵌套、中英文混寫(xiě)等問(wèn)題,這導(dǎo)致中文命名實(shí)體識(shí)別技術(shù)的實(shí)現(xiàn)難度要高于英文命名實(shí)體識(shí)別。
隨著深度學(xué)習(xí)技術(shù)不斷發(fā)展,目前中文命名實(shí)體識(shí)別方法主要是采用深度學(xué)習(xí)結(jié)合統(tǒng)計(jì)機(jī)器學(xué)習(xí)的方式來(lái)實(shí)現(xiàn)。Collobert等[7]首先將卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)應(yīng)用到命名實(shí)體識(shí)別任務(wù)中。但CNN 難以捕捉到文本的全局信息。對(duì)此,可以提取時(shí)間序列特征信息的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)被應(yīng)用于提取文本的語(yǔ)義關(guān)系,而在RNN 的基礎(chǔ)上,雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(BiLSTM)和雙向門(mén)控循環(huán)單元神經(jīng)網(wǎng)絡(luò)(BGRU)由于可以進(jìn)一步考慮文本前后的上下文關(guān)系而得到了廣泛使用,如Lample 等[8]將BiLSTM 和CRF 模型結(jié)合起來(lái)使用并在多個(gè)數(shù)據(jù)集上取得較大提升。李綱等[9]提出一種基于BiLSTM-CRF 并結(jié)合外部字典的中文電子病歷命名實(shí)體識(shí)別模型,在CCKS-2017 測(cè)評(píng)任務(wù)中取得了90.41%的F1值。石春丹等[10]提出了一種結(jié)合注意力機(jī)制的BGRU-CRF 模型,可以有效利用詞之間的序列關(guān)系,并在MSRA數(shù)據(jù)集上取得了94.26%的F1值。Ayifu等[11]采用BiGRU-CNN-CRF模型在多語(yǔ)種文本命名實(shí)體識(shí)別上取得較好成績(jī)。但RNN模型由于無(wú)法進(jìn)行并行計(jì)算,存在效率低的問(wèn)題。對(duì)此,谷歌公司的Vaswani 等[12]提出了Transformer模型,并在機(jī)器翻譯等NLP 任務(wù)中有一定的提升,Transformer 模型完全依賴(lài)注意力機(jī)制實(shí)現(xiàn)從而可以進(jìn)行并行化計(jì)算,同時(shí)較好地解決了梯度爆炸,梯度消失等問(wèn)題。如李韌等[13]提出的Transformer-BiLSTM-CRF 模型利用Transformer 模型作為詞嵌入層在橋梁檢測(cè)領(lǐng)域命名實(shí)體識(shí)別中獲得了較好的提升。
2018 年,Google 的Devlin[14]等提出的BERT 預(yù)訓(xùn)練語(yǔ)言模型通過(guò)采用Transformer 編碼和多頭注意力機(jī)制對(duì)大規(guī)模語(yǔ)料進(jìn)行訓(xùn)練,從而得到了表征力更強(qiáng)的預(yù)訓(xùn)練字向量,并使得預(yù)訓(xùn)練模型在NLP領(lǐng)域的應(yīng)用獲得人們的廣泛關(guān)注。BERT模型具有很好的表義能力,可以很好解決一詞多義問(wèn)題,因此常被用于生成文本的初始嵌入矩陣。王傳濤等[15]使用BERT-BiLSTM-CRF 模型在中文簡(jiǎn)歷實(shí)體識(shí)別上取得了最高94.82%的F1 值。Li 等[16]利用BERT-BiLSTM-CRF 模型在CCKS-2017 和CCKS-2018 臨床命名實(shí)體識(shí)別數(shù)據(jù)集上取得較好效果。李妮等[17]使用BERT-IDCNN-CRF 模型在MSRA 數(shù)據(jù)集上取得了F1值94.41%的識(shí)別效果。袁健等[18]利用BERT和CNN 模型提取文本的字符、字形特征向量并融合詞向量從多個(gè)維度提取文本特征,在人民日?qǐng)?bào)數(shù)據(jù)集上的測(cè)試表現(xiàn)優(yōu)于其他模型。
為了解決一詞多義問(wèn)題,本文利用BERT 模型較強(qiáng)的語(yǔ)義表達(dá)能力來(lái)提取文本的動(dòng)態(tài)字符向量,由BiLSTM 模型獲取文本長(zhǎng)距離的語(yǔ)義信息,并引入多頭注意力機(jī)制進(jìn)一步獲取文本局部特征來(lái)解決傳統(tǒng)深度學(xué)習(xí)方法容易忽視文本部分特征的問(wèn)題,最后使用CRF模型來(lái)獲得最佳標(biāo)簽序列。實(shí)驗(yàn)表明,所提方法在MSRA 和人民日?qǐng)?bào)數(shù)據(jù)集上的識(shí)別效果要優(yōu)于其它對(duì)比模型。
本文提出的中文命名實(shí)體識(shí)別模型主要由4個(gè)模塊組成,分別是BERT 層、BiLSTM 層、多頭意力層和CRF 層,整體結(jié)構(gòu)如圖1 所示。BERT 層根據(jù)輸入語(yǔ)料序列以字符為單位訓(xùn)練出對(duì)應(yīng)的低維字向量表示,得到的結(jié)果由BiLSTM 層和多頭注意力層來(lái)學(xué)習(xí)文本序列的上下文特征以及局部特征的權(quán)重信息,最后通過(guò)CRF層來(lái)獲得全局最優(yōu)的標(biāo)簽序列。
圖1 模型框架圖
BERT(Bidirectional Encoder Representation from Transformers)模型是一種預(yù)訓(xùn)練模型,一經(jīng)推出就在11 種自然語(yǔ)言處理任務(wù)中取得了最佳成績(jī)。組成結(jié)構(gòu)上BERT 模型采用雙向Transformer模型作為其主要框架,使得模型對(duì)每個(gè)字的預(yù)測(cè)可以同時(shí)參考前后兩個(gè)方向的文字信息,從而具有良好的特征提取能力。從模型訓(xùn)練上來(lái)看,BERT 是一個(gè)多任務(wù)模型,包含MLM(Masked Language Model)和NSP(Next Sentence Prediction)兩個(gè)自監(jiān)督任務(wù):MLM 任務(wù)是采用類(lèi)似完形填空的形式隨機(jī)將15%的token 使用[MASK]標(biāo)記代替并讓模型去猜測(cè)對(duì)應(yīng)的單詞;NSP 任務(wù)則是將兩個(gè)句子拼接起來(lái)作為上下句來(lái)預(yù)測(cè)兩個(gè)句子是否是相鄰關(guān)系。相比傳統(tǒng)語(yǔ)言模型,BERT 模型可以更充分地表征出字的多義性以及更準(zhǔn)確地判斷句子間關(guān)系。
如圖2 中所示,BERT 模型的輸入矩陣E 包含三個(gè)向量,分別記錄了輸入的字符、上下句以及字符位置信息。通過(guò)多個(gè)維度的特征信息可以使BERT模型更準(zhǔn)確地識(shí)別出語(yǔ)義關(guān)系。
圖2 BERT模型架構(gòu)圖
LSTM(Long Short-term Memory)長(zhǎng)短期記憶網(wǎng)絡(luò)[19]是循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network RNN)的一種變體,對(duì)于訓(xùn)練長(zhǎng)文本序列時(shí)出現(xiàn)的梯度爆炸和梯度消失等問(wèn)題,LSTM 相對(duì)RNN 可以取得更好的表現(xiàn)。LSTM 在RNN 模型的基礎(chǔ)上加入遺忘門(mén)、輸入門(mén)和輸出門(mén)三個(gè)控制單元來(lái)解決長(zhǎng)文本序列遺忘問(wèn)題。具體的計(jì)算公式如下:
其中,it,ft,ot分別代表t時(shí)刻的輸入門(mén),遺忘門(mén)和輸出門(mén),σ代表sigmoid函數(shù),xt代表編碼后的字向量,?t代表t時(shí)刻隱藏層狀態(tài),ct代表t時(shí)刻的記憶單元狀態(tài),b代表偏置向量。而B(niǎo)iLSTM 模型由前向和后向兩個(gè)的LSTM 組成,可以學(xué)習(xí)到當(dāng)前語(yǔ)料的上下文信息,從而獲得更全面的語(yǔ)義特征。它的最終當(dāng)前時(shí)刻t的隱藏狀態(tài)?t可以被表示為
BiLSTM 模型對(duì)于語(yǔ)料的局部特征存在難以提取,易丟失的問(wèn)題。對(duì)此本文引入多頭注意力(Multi-head-attention,MHA)機(jī)制來(lái)從多個(gè)層次提取文本字符間的關(guān)聯(lián)關(guān)系獲取對(duì)應(yīng)的權(quán)重,從而進(jìn)一步提取出文本的局部特征信息。多頭注意力層對(duì)BiLSTM 層輸出的特征向量進(jìn)行h次并行相似度計(jì)算進(jìn)而得到特征向量的權(quán)重分配。計(jì)算公式如下:
其中,attention(Q,K,V) 代表自注意力函數(shù),Q,K,V代表輸入特征向量,除以可以防止Q和K相乘結(jié)果過(guò)大,保證梯度的穩(wěn)定。MHA 代表通過(guò)多頭注意力機(jī)制計(jì)算得到的權(quán)重矩陣。
條件隨機(jī)場(chǎng)(CRF)可以充分考慮到相鄰字符之間的依賴(lài)關(guān)系和約束條件。因此,我們?cè)谀P偷淖詈笠粚硬捎脳l件隨機(jī)場(chǎng)(CRF)對(duì)多頭注意力層輸出的特征信息進(jìn)行約束,確保最終得到的標(biāo)簽之間關(guān)系的準(zhǔn)確性。
當(dāng)給定輸入序列X={x1,x2,x3,…,xn}時(shí),假定輸出序列為y={y1,y2,y3,…,yn}。則輸出序列的得分可以用以下公式表示:
式中,W為轉(zhuǎn)移矩陣,Wyi,yi+1為標(biāo)簽從yi轉(zhuǎn)移到y(tǒng)i+1的得分?jǐn)?shù),Pi+1,yi+1為輸入序列的第i+1 個(gè)字對(duì)應(yīng)的標(biāo)簽yi+1的得分?jǐn)?shù)。對(duì)輸出序列y的概率進(jìn)行計(jì)算,條件概率最大時(shí)的標(biāo)簽序列將作為結(jié)果序列輸出。公式可以表示為
其中,YX表示輸入序列的全部標(biāo)簽序列。
本節(jié)將采用本文方法和幾種最新的中文命名實(shí)體識(shí)別方法在兩個(gè)公開(kāi)中文語(yǔ)料數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)來(lái)評(píng)估本文方法的實(shí)際效果并進(jìn)行分析。
本文分別采用由微軟亞洲研究院公開(kāi)的MSRA 中文語(yǔ)料數(shù)據(jù)集和1998 年《人民日?qǐng)?bào)》語(yǔ)料數(shù)據(jù)集來(lái)對(duì)模型效果進(jìn)行評(píng)估。同時(shí)對(duì)兩個(gè)數(shù)據(jù)集采用BIO 的標(biāo)注方式進(jìn)行標(biāo)注,即用B 標(biāo)簽標(biāo)記命名實(shí)體的首字,而非首字則用I標(biāo)簽標(biāo)記,剩下的非命名實(shí)體用O 標(biāo)簽標(biāo)記。經(jīng)過(guò)數(shù)據(jù)預(yù)處理后,MSRA 數(shù)據(jù)集包含人名(PRE)、地點(diǎn)(LOC)、機(jī)構(gòu)名(ORG)三種類(lèi)別共5 萬(wàn)條語(yǔ)料。而《人民日?qǐng)?bào)》數(shù)據(jù)集包含時(shí)間(DATE)、人名(PRE)、地點(diǎn)(LOC)、機(jī)構(gòu)名(ORG)這四種實(shí)體共計(jì)7.2萬(wàn)條語(yǔ)料。兩個(gè)數(shù)據(jù)集均按8∶1∶1 的語(yǔ)料比例分成對(duì)應(yīng)的訓(xùn)練集、驗(yàn)證集和測(cè)試集進(jìn)行實(shí)驗(yàn)。
本實(shí)驗(yàn)所采用的實(shí)驗(yàn)環(huán)境如表1 所示,主要基于Linux 平臺(tái)并使用Pytorch 框架來(lái)對(duì)算法進(jìn)行開(kāi)發(fā)調(diào)試。
表1 環(huán)境配置
主要的實(shí)驗(yàn)參數(shù)設(shè)置如表2 所示。實(shí)驗(yàn)采用AdamW 優(yōu)化器進(jìn)行參數(shù)優(yōu)化,對(duì)Bert 層和其他層模型采用不同的學(xué)習(xí)率實(shí)現(xiàn),同時(shí)取Dropout 值為0.5來(lái)防止模型過(guò)擬合。
表2 參數(shù)配置
本文采用準(zhǔn)確率(Precision,P),召回率(Recall,R)以及綜合評(píng)價(jià)指標(biāo)F1值這三個(gè)指標(biāo)作為模型識(shí)別效果的評(píng)價(jià)標(biāo)準(zhǔn)[20],其中準(zhǔn)確率代表識(shí)別正確的實(shí)體占識(shí)別出的所有實(shí)體的比例,而召回率代表識(shí)別正確的實(shí)體占所有實(shí)體的比例。其數(shù)值越高,代表模型的精準(zhǔn)率、召回率和綜合性能越好。
為驗(yàn)證文中提出的BERT-BiLSTM-MHA-CRF模型的有效性,本文將該模型與BiLSTM-CRF、BERT、BERT-CRF 以及BERT-BiLSTM-CRF 這四個(gè)命名實(shí)體識(shí)別模型在MSRA 和《人民日?qǐng)?bào)》數(shù)據(jù)集上分別進(jìn)行實(shí)驗(yàn),對(duì)比其精準(zhǔn)率、召回率以及F1值。
由表3 和表4 可以看出,本文模型通過(guò)結(jié)合多頭注意力機(jī)制從多個(gè)層次提取文本局部特征,有效提升了中文命名實(shí)體識(shí)別的準(zhǔn)確率和F1 值。在兩個(gè)數(shù)據(jù)集上相比BERT 模型F1 值提高了1.64%和1.33%,對(duì)比實(shí)驗(yàn)中其它模型,BERT-BiLSTMMHA-CRF 模型的準(zhǔn)確率、召回率以及F1 值均最高。
表3 MSRA數(shù)據(jù)集模型對(duì)比結(jié)果
表4 《人民日?qǐng)?bào)》數(shù)據(jù)集模型對(duì)比結(jié)果
BERT-BiLSTM-MHA-CRF 模型對(duì)MSRA 數(shù)據(jù)集中各實(shí)體類(lèi)別的識(shí)別結(jié)果如表5所示。
表5 不同類(lèi)別識(shí)別結(jié)果
由表5 可知,本文模型對(duì)人名實(shí)體的識(shí)別效果最好,其原因主要是因?yàn)橹形娜嗣臉邮较鄬?duì)較為固定,從而更容易被模型判斷出來(lái)。而機(jī)構(gòu)名實(shí)體識(shí)別的效果最差,其主要是因?yàn)闄C(jī)構(gòu)名實(shí)體的格式不固定,常常出現(xiàn)實(shí)體嵌套等情況,導(dǎo)致模型難以準(zhǔn)確識(shí)別其邊界,導(dǎo)致模型對(duì)機(jī)構(gòu)名實(shí)體的識(shí)別效果較差。
針對(duì)當(dāng)前中文命名實(shí)體識(shí)別任務(wù)中存在的準(zhǔn)確率較低、語(yǔ)義提取不充分、一詞多義等問(wèn)題,本文提出了一種在基于BERT-BiLSTM-MHA-CRF 模型的中文命名實(shí)體識(shí)別方法,通過(guò)結(jié)合預(yù)訓(xùn)練模型、多頭注意力機(jī)制以及傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的不同優(yōu)勢(shì),可以從多個(gè)維度來(lái)更有效地捕捉中文文本中存在的語(yǔ)義信息,從而更好地完成中文命名實(shí)體識(shí)別任務(wù)。最后,為了驗(yàn)證其效果將該方法和其它模型在MSRA 以及人民日?qǐng)?bào)數(shù)據(jù)集上進(jìn)行對(duì)比試驗(yàn)以證明本文提出的方法的有效性。在之后的工作中,將進(jìn)一步研究復(fù)雜語(yǔ)義下如何更有效地進(jìn)行實(shí)體的識(shí)別。