朱亞明,易 黎
(1.武漢郵電科學研究院,湖北武漢 430074;2.南京烽火天地通信科技有限公司,江蘇 南京 210019)
在文本處理中,通常會重點關注到諸如人名、地名、組織機構名稱等含有特定信息的文本單元,在自然語言處理(Natural Language Process,NLP)中被稱為“命名實體”,而命名實體識別(Named Entity Recognition,NER)[1]則是專門用于識別特定命名實體的NLP 基礎任務之一。
隨著深度學習在各個領域的發展,如今已廣泛應用于NLP 各類任務中。該文以經典模型BiLSTMCRF 為基準模型進行研究,針對中文命名實體識別的任務特性,通過引入預訓練語言模型BERT 以及Lattice LSTM,在語義字向量表示及字詞特征融合處理上進行改進,提升了識別精度,取得了優于基準模型及對比模型的結果。
近年來隨著深度學習的發展,其在計算機圖像處理以及語音識別領域有相當優異的表現,于是NLP 學者將其引入自然語言處理的各類任務中。2011 年Collobert 等在命名實體識別任務中引入神經網絡,實現特征的自動化提取,大大減小了傳統統計方法的特征工程工作量[2]。此后神經網絡逐漸被廣泛應用到命名實體識別研究領域。文獻[3]提出雙向長短期記憶網絡(Bi-directional Long Short Term Memory,BiLSTM)獲取字級特征表示,文獻[4]提出BiLSTM-CRF 結構,使用了拼寫特征、內容特征、詞語向量和詞典特征4 種特征,實驗結果表明,加入的特征能夠提高識別率。文獻[5]提出迭代空洞卷積神經網絡(ID-CNNs)模型作為序列標注部分的編碼器。序列標簽解碼常用的結構和方法包括多層感知機和Softmax 層輸出[5]、條件隨機場(Conditional Random Fields,CRF)[6-7]和RNN[8]等。總的來說,使用深度學習方法處理命名實體識別任務時,RNN-CRF結構得到了普遍應用,尤其是BiLSTM-CRF 模型,成為命名實體識別任務深度學習方法的經典模型。
對于中文命名實體識別,由于中文的特性,字和詞都各含有一定的信息和特征,因此有基于字級和詞級以及結合字詞特征3個方向[9]。文獻[10-12]對比研究了字級和詞級基于統計方法的表現,發現字級的命名實體識別往往表現得更好。同時也有研究人員嘗試在字級命名實體識別結構中加入詞級特征進行綜合訓練[13-15]。其中效果最好的是文獻[16]中提出的Lattice LSTM,融合字級與詞級特征,在MSRA 語料上F1 值達到93.18%。
然而,前述的字級中文命名實體識別不能很好地完全提取出漢字字符所包含的信息,無法處理例如字詞多義等現象。BERT[17]有效地解決了這個問題,由于其在英文自然語言處理領域多個基礎任務上表現優異,且具有優秀的表義能力,從而將其引入中文命名實體識別領域。該文以BERT 作為預訓練語言模型(Pre-Training Language Model,PLM),結合LSTM-CRF 基準結構,并針對中文的字級和詞級特征,使用Lattice LSTM 作為第二部分的語義編碼層,提出BERT-Lattice-CRF 模型結構。
BERT-Lattice-CRF 模型由字向量編碼—語義編碼—標簽預測“三步走”的思想分為3 個部分,分別對應結構中的BERT、Lattice LSTM、CRF 3 個子結構。對比傳統的LSTM-CRF 結構,該文提出的模型主要在兩個方面做了調整:1)在模型頭部加入了BERT 預訓練語言模型,用以加強模型的語義表征能力;2)利用Lattice LSTM 替代傳統的LSTM,這一點主要針對中文命名實體識別任務,因為Lattice LSTM 相較于傳統LSTM 考慮到了中文里字詞關系的影響,融合了字和詞的特征信息,能夠更好地進行語義編碼。模型整體結構如圖1 所示。

圖1 模型整體結構
BERT(Bidirectional Encoder Represent-ations from Transformers)是由Devlin 等人在2018 年提出的預訓練語言模型。直觀解釋為Transformer的雙向編碼器部分,在預訓練過程中會綜合考慮全部的上下文來調整參數,從而得到深度雙向表示。因而將其作為預處理部分整合到其他的輸出層前部,通過微調用以構建多種任務模型。BERT 模型結構如圖2所示。

圖2 BERT預訓練語言模型
Transformer 有別于傳統的RNN 和CNN,利 用Attention 機制把文本中所有單詞兩兩之間的距離映射為1,從而很好地解決了NLP 難以處理的長文本依賴問題。Transformer 本質上是一個Encoder-Decoder的結構,BERT 只用到了Encoder的結構,如圖3 所示。

圖3 Transformer中Encoder的結構
在Encoder 中,數據首先經過self-attention 模塊得到一個加權特征向量Z:

在Self-Attention 中,每個字詞對應3 個64 維向量:Query、Key和Value,由嵌入向量x乘以3 個512×64 大小的權值矩陣WQ、WK、WV所得。
在Self-Attention 最后采用了殘差網絡中的Short-Cut 結構及層歸一化,來處理模型退化問題:

由式(1)得到加權特征向量Z后,進入Encoder的下一子結構——前饋神經網絡(Feed Forward Neural Network)。其是一個兩層的全連接網絡,第一層為ReLU 激活函數,第二層為線性激活函數,可表示為:

為了解決捕捉順序序列的問題,將位置編碼(Position Embedding)特征信息整合到字詞向量編碼中,使得Transformer 可以對各位置的字詞進行區分。BERT 設計的位置編碼規則為:

其中,pos表示單詞的位置,i表示單詞的維度,dmodel是位置編碼的特征向量長度。
在訓練任務上,BERT 提出一種新的訓練任務:遮掩語言模型(Masked Language Model,MLM),隨機選擇語料中15%的單詞,用[Mask]掩碼代替原始單詞,然后讓模型正確預測被遮掩掉的單詞。而且具體設計上,被遮掩掉的單詞中80%確實被替換成了[Mask]標記,10%被隨機替換成另一個單詞,10%不做任何處理,保持原單詞不變。除了MLM 之外,BERT 模型中還提出了一個“下一句預測”(Next Sentence Prediction)任務,可以和MLM 一起訓練文本句子對的表示。具體為在做語言模型預訓練時,構建句子對中出現兩種情況:1)第二個句子是第一個句子的下一句;2)第二個句子為語料中隨機挑選的其他句子。而BERT 模型需要訓練學習判斷第二個句子是否為第一個句子的下一句。
BERT的問世使得通過預訓練語言模型得到字詞嵌入向量與下游自然語言處理任務之間的關系發生了變化,與其他語言模型相比,BERT 能夠很好地學習到字的上下文信息,獲得更好的字向量表示。
LatticeLSTM 模型整體結構上繼承自LSTM 結構,在對字信息的提取上同原始結構一樣。而對于詞信息,模型先是使用大規模自動分詞獲得詞典,再通過重新設計cell的結構,將句子中的詞信息加入模型中,如圖4 所示。該模型的重點在于cell的設計。

圖4 Lattice LSTM詞典加入模型
2.2.1 字級特征
當詞典中不存在任何以輸入的這個字為結尾的詞時,cell 之間的傳遞與正常的LSTM 相同,即假設無任何詞典信息時,Lattice LSTM 退化為LSTM,其計算公式如下:

其中,cj是當前的輸入,ec是字級別的字向量嵌入字典,就是當前輸入的字向量,、和是輸入、遺忘和輸出門,σ表示sigmoid 函數。
2.2.2 詞級特征
詞級特征分為兩部分,以圖4 為例,假設當前輸入的是“京”字,則它在詞典中匹配到的是“南京”這個詞,那么此時的詞級特征的輸入向量為“南京”這個詞開頭的“南”這個字在模型中的隱向量(即“南”這個字被輸入時的,記為,其中b表示這個詞開頭的字在句子中的開始位置的index)以及“南京”這個詞直接嵌入的向量(記為,其中b、e表示這個詞開頭的字在句子中的開始位置的index 和結束位置的index)。得到兩個輸入向量后,以作為正常LSTM 中的作為正常LSTM 中的進行計算:

對詞級的特征處理不需要輸出門,因為這一步并非所需要的輸出,網絡結構最后將字信息和詞信息融合之后由輸出門控制。而且不加輸出門可以確保這一信息會被使用,即默認分詞信息的加入對模型有所幫助。
2.2.3 字詞級特征融合
以南京舉例,只出現了一個詞,但對部分字來說,可能會在詞典中匹配到很多詞,例如“橋”這個字就可以在詞典中匹配出“大橋”和“長江大橋”。為了將詞、字信息融合,進行一步類似Attention的操作:
對于匹配出的每個詞的向量都進行如下操作,計算屬于它的輸出門:

再使用當前字計算出的輸入門和所有詞的輸入門做歸一計算權重:

最后與通常計算Attention 特征向量相同,利用計算出的權重進行向量加權融合:

對于及其最后輸出的計算同原來的LSTM的計算一致:

Lattice 不能考慮標簽之間的關系,在命名實體識別中,有些標簽遵循著一定的邏輯關系,CRF 能夠充分利用標簽相互間的關系,得到全局意義上的最佳標簽序列。
對于模型而言,CRF 層的參數是一個(k+2)×(k+2)的矩陣A,其中,k是標注集的標簽數,元素Aij表示的是從第i個標簽到第j個標簽的轉移得分,則在標注某個位置時即可考慮其前面位置的標簽進行標注。加2 是因為需要在句首與句末分別加一個表示起始和終止的標簽。若記一個長度等于句子長度的標簽序列y=(y1,y2,…,yn),則模型計算句子x的標簽等于y的打分為:

可以看到整個句子的打分由每個位置的LSTM層輸出Pi,yi與CRF 轉移得分Ayi-1,yi兩部分之和算得。最后用softmax 算得歸一化后輸出的概率:

模型訓練時通過最大化對數似然函數進行參數分析,以得到全局最優解:

模型在預測時使用動態規劃的Viterbi 算法來求解最優路徑:

文中使用的數據集為公開數據集MSRA,該數據集是微軟亞洲研究院公開的中文命名實體識別標注數據集,有3 種命名實體,分別為人名、地名、機構名,使用nr、ns、nt 表示。數據集分為訓練集和測試集,訓練集有46 364 個句子,測試集有4 365 個句子。
在命名實體識別中,有BIO、BIOS、BIOES 3 種較為常用的標注方式。文中采用BIOES 序列標注方式,其中B 標識實體的開始、I 標識實體的中間部分、E 標識實體的結束、S 標識只有單字的實體、O 標識非實體的部分。人名、地名、機構名分別標注為PER、LOC、ORG,則共有11 個標簽待預測:B-PER、I-PER、E-PER、B-LOC、I-LOC、E-LOC、B-ORG、I-ORG、E-ORG、S、O。
該實驗評價指標為查準率(Precision)、查全率(Recall)和F1 值。查準率又叫準確率,是針對預測結果而言的概念,表示的是預測為正確的樣例中有多少是真正的正確樣例;查全率又叫召回率,是針對原樣本而言的概念,表示的是樣本中的正確樣例有多少被預測正確。一般來說希望查準率和查全率都很高,但實際上兩者是相矛盾的,無法做到同時很高,因此出現一個新的指標F1 值。F1 值是查準率和查全率的調和平均值,可以同時考慮并讓兩者同時達到最高,取得平衡。各指標的公式為:

其中,TP表示識別為實體標簽,實際也是實體標簽;FP表示識別為非實體標簽但實際為實體標簽;FN表示識別為非實體標簽,實際也是非實體標簽。
Google 以checkpoint的形式提供了預訓練的模型,包括英語、漢語和多語言等類別模型,對于漢語只有一個版本——BERT-Base,模型詞表中包括簡體字和繁體 字,共12 層,768 個隱單元,12 個Attention head,110M 參數。文本長度閾值設為128個字符,訓練時的batch_size 為16,學習率為5×10-5,dropout為0.5,LSTM 模型的hidden size 設置為200。
該文全部實驗進行的環境:操作系統Windows7、CPUInteli7-9700K、內存16G、GPU Nvidia GTX 1080Ti(8 GB)、Python 3.6、Pytorch 1.2.0+cu92。
BERT-Lattice-CRF 模型的訓練有兩種方式:1)訓練全部參數(BERT-Lattice-CRF-f);2)只訓練Lattice-CRF 參數而保持BERT 參數不變。實驗中選擇以下模型進行對比:1)LSTM-CRF 模型;2)BERTLSTM-CRF 模型;3)Lattice-LSTM-CRF 模型。
兩種訓練方式得到的結果對比如表1 所示。

表1 不同命名實體的識別結果
可以看到,相比于人名和地名,機構名預測準確率偏低,分析原因為在機構名實體中普遍存在著實體嵌套、簡寫縮寫名稱、歧義表述等問題,難以進行準確預測。而訓練全部參數得到的模型比固定BERT 層參數只訓練Lattice-CRF 層參數得到的模型,就識別結果而言預測準確率更高,這是可以預見的,因為訓練全部參數可以針對訓練數據集得到更能表征特征的參數集,從而得到更好的預測結果。
文中使用的模型與對比實驗模型的結果如表2所示。

表2 不同模型的識別結果
與經典的LSTM-CRF 序列標注模型相比,基于BERT 預訓練模型的BERT-LSTM-CRF 模型表現更好;與Lattice-LSTM-CRF 模型相比,文中提出的BERT-Lattice-CRF 模型表現更好,說明BERT 預訓練語言模型能夠更好地獲取到中文字級的語義特征。同時Lattice-LSTM-CRF 相比于LSTM-CRF 模型,識別準確率更高;且BERT-Lattice-CRF 相比于BERT-LSTM-CRF 模型識別準確率更高,說明Lattice-LSTM 結構相較于LSTM 結構來說,能夠融合中文字和詞級的語義信息,對于提升識別性能是有意義的。而文中提出的將BERT 預訓練語言模型與Lattice-LSTM 模型相結合,既能得到更深層次的中文字級語義特征,同時針對中文語言特性、融合字級和詞級特征信息,能夠得到更好的命名實體識別結果。
由于在中文命名實體識別領域,傳統詞向量不能表示多義字詞信息,針對這個問題引入BERT 預訓練語言模型,同時針對中文語料的特點,結合能夠融合字詞信息的Lattice LSTM 結構,提出了BERTLattice-CRF 模 型。BERT 基 于Transformer 中的Encoder 部分構建雙向編碼器結構,配合Masked Language Model 和Next Sentence Prediction 兩個訓練任務,可以得到更強大的字向量語義表示;而Lattice LSTM 獨特的晶格結構融合了中文字級和詞級的特征,在中文命名實體識別任務上能有更好的表現。整體模型優于當前主流的BERT-BiLSTM-CRF 模型,提升了中文命名實體識別的識別率。
但文中提出的模型有其存在的問題。首先,BERT 模型在預訓練時會出現特殊的[MASK],但在下游的fine-tuning 中不會出現,則會產生預訓練階段和fine-tuning 階段不一致的問題;此外Lattice LSTM 將句子的輸入形式從鏈式序列轉換為圖,會大大增加句子建模的計算成本。因此如何解決以上問題,自然成為下一步研究的方向。