姚貴斌,張起貴
太原理工大學 信息與計算機學院,山西 晉中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語言模型中進行更深層次的特征提取,該方法可以得到更為精確的詞向量表示。
傳統的語言模型不能有效表達句子中上下文的關系,長期依賴性差,并且數據稀疏嚴重。隨著深度學習的發展,神經網絡語言模型更能準確地用結構化數據表示文本。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
命名實體識別任務可以在字向量和詞向量上分別進行特征提取,中文詞語中包含了更加豐富的語義信息,但分詞結果會對識別結果產生影響,將字向量和詞向量進行拼接是常規做法,殷章志等[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
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框架為核心,通過引入循環機制和相對位置編碼,可以充分利用到上下文語義信息,挖掘出隱藏在初始文本向量內部的潛在關系,獲得更為準確的詞向量表示。
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循環結構以達到對上下文信息的共同編碼。
理論上雙向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為偏差矩陣,這樣可以將損失函數表示為:

本文采用的是《人民日報》1998年1月份數據集,大約35 980條句子,其中各個實體類別的數量如表2所示,并且將數據集按8∶1∶1分為了訓練集、驗證集和測試集。

表2 實驗數據集Table 2 Experimental data set
2.2.1 環境配置
實驗用到的運行環境如表3所示。

表3 環境配置Table 3 Environment configuration
2.2.2 參數配置
實驗中的參數配置如表4所示。

表4 參數配置Table 4 Parameter configuration
命名實體識別作為標簽序列分類模型中的一項基礎任務,其評價指標通常以準確率(P)、召回率(R)和F值作為評判標準。其公式為:

其中,correct為識別到正確實體標簽的個數,wrong為識別到錯誤實體標簽的個數,miss為未識別出實體標簽的個數。
為了驗證本文提出的模型的優良性,根據提出的網絡結構,首先用不同的語言模型設置了五組不同的實驗,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個百分點。驗證了本文所提模型在處理命名實體識別任務上的有效性。
本文對目前中文命名實體識別性能作了改善,從字的語義表示方面著手,提出了基于XLnet語言模型的CAW-XLnet-BiGRU-CRF網絡框架,并在《人民日報》1998年1月份數據集上用不同的語言模型設置了五組實驗進行了對比分析,驗證了本文提出的CAW-XLnet-BiGRU-CRF模型在處理中文命名實體識別任務上的優越性。還分別從字向量和詞向量級別上作了實驗對比,驗證了本文提出的從字向量特征預測提取詞向量特征的有效性。但研究也存在不足之處,從數據中可以看出在識別嵌套命名實體方面,尤其在機構名類別中,優秀的語言模型還是不能妥善的解決此問題,研究人員下一步試圖從規則方面入手,將深度學習網絡和人工制定規則結合起來,并在實體關系抽取上做進一步研究。