關菁華,黃啟亮,呂澤華,譚夢琪
(大連外國語大學 軟件學院,遼寧 大連 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 標簽效果還有待提升??傮w看來,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 消耗的資源很少,可以在便攜式設備上進行訓練。后續工作中,將考慮進行數據增強、數據優化和領域遷移以提升模型性能和泛化能力。