張 棟,王銘濤,陳文亮
(蘇州大學計算機科學與技術學院,江蘇蘇州 215006)
命名實體識別(Named Entity Recognition,NER)是自然語言處理中的一項重要任務[1-2],其目的是在非結構化文本中識別人名、地名和組織名等專有名詞[3]。NER 問題通常被轉換為序列標注問題,即給序列中的每個字或詞打上一個預定義的實體標簽。近年來,基于有監督學習的NER 模型取得較大進展,系統性能得到大幅提升[4-6]。
傳統的NER 系統主要是基于統計機器學習,如最大熵模型[7]、隱馬爾科夫模型[8]和條件隨機場(Conditional Random Field,CRF)模型[9-10]等。這類模型非常依賴手工特征,如上下文特征、前綴詞和后綴詞等。由于語言的多樣性以及領域的差異性,手工特征通常需要重新設計,缺乏可遷移性。隨著深度學習的快速發展,基于神經網絡的方法被廣泛應用于NER 任務。文獻[11]使用前饋神經網絡和卷積神經網絡(Convolutional Neural Network,CNN)作為特征編碼器,文獻[12]使用長短時記憶(Long Short Term Memory,LSTM)網絡作為特征編碼器。這些深度學習模型不僅擺脫了對手工特征工程的依賴,而且命名實體識別性能明顯優于基于統計機器學習的方法。神經網絡的初始化對于深度學習模型性能影響很大,傳統的詞向量在訓練時對上下文中的詞進行預測,得到詞的分布式向量表示。但通過這種方式取得的詞向量都是靜態的,無法體現一詞多義的情況。例如,“自然”在不同上下文中具有“不造作,不呆板”或“理所當然”的含義。為了解決這一問題,文獻[13]在大規模無標注語料上預訓練一個語言模型,將多層上下文的隱狀態通過線性加權作為詞的向量表示,基于該預訓練語言模型得到的上下文相關詞向量在英文NER 任務中取得了較好的效果。
在中文NER 任務中,通常將字作為最小的處理單元,使用大規模無標注語料預訓練字向量。漢字是一種象形文字,其中包含豐富的筆畫、部首等字形信息。具有相似字形的漢字通常具有相似的語義,如“他、你、俺”都有部首“亻”,“亻”是“人”的變體,因此,這些字都包含與“人”相關的意思。雖然在大規模無標注語料上訓練得到的字向量,可以在一定程度上學習到自然語言中的語法和語義特征,但是這種特征表示能力是有限的。一些研究人員嘗試將漢字字形應用于中文NER 任務中,目前已取得了一定成果。文獻[14]將漢字拆分成多個組件,通過雙向LSTM 提取漢字的字形特征,將其與隨機初始化的上下文無關字向量進行拼接并作為漢字的特征表示,該方法的NER 性能得到有效提升。但是,目前較少有學者將預訓練語言模型和漢字字形相結合,從而增強字的語義表達。同時,漢字存在多種字形表現形式,如部首、五筆和筆畫,其中,部首只提供漢字的部分字形信息,筆畫只有橫類、豎類、撇類、點類和折類等,過于簡單,而五筆拆解出的漢字較完整且字形具有一定含義。因此,本文將五筆字形信息引入漢字的向量表示中,以改進中文命名實體識別效果。
為了充分利用大規模無標注語料,本文將中文特有的字形信息和預訓練語言模型相結合,提出2 種結合五筆字形的上下文相關字向量表示方法。第一種方法分別訓練得到2 個語言模型,一是基于字序列訓練一個基于字的語言模型,二是將文本轉換為五筆編碼序列,訓練一個基于五筆的語言模型。第二種方法是將五筆字形作為輔助特征拼接到字向量表示中,將兩者信息直接融合,訓練一個基于字與五筆字形的混合語言模型。通過這2 種方法得到2 種結合五筆字形的上下文相關字向量,并以此構建中文NER 系統。
目前,序列標注任務主要通過基于神經網絡的方法來完成。文獻[11]去掉特征工程和先驗知識,使用語言模型中訓練的詞向量替換手工設計特征,在詞性標注、分塊以及NER 任務上取得了較好的效果。文獻[15-16]分別使用CNN 和雙向LSTM 以捕獲英文單詞內的拼寫特征,結果驗證了字符級特征的有效性。借鑒英文中提取單詞拼寫特征的思想,文獻[14]將漢字拆分成多個組件,通過雙向LSTM提取組件級別的特征,然后和上下文無關字向量相拼接,以改進中文NER 的性能。文獻[17]通過CNN對漢字五筆進行編碼,然后與上下文無關字向量相拼接以作為NER 模型的輸入。此外,為了提取命名實體的前綴和后綴特征,文獻[17]使用多個卷積核模擬傳統的n-gram 特征。由于LSTM 在處理序列時無法并行運算以及傳統卷積感受野受限,因此文獻[18]使用空洞卷積增大感受野從而進行命名實體識別,該方法在未降低識別性能的同時顯著縮短了模型訓練時間。為了降低人工標注語料的成本,文獻[19]提出了一種利用對抗網絡在眾包數據上進行命名實體識別的方法。為了避免分詞錯誤,很多研究人員都以字為處理單元。文獻[20]建立一種Lattice-LSTM 模型來引入序列中所有潛在的詞信息,其在NER 任務中取得了很好的效果。
除了對NER 模型進行改進外,自然語言處理的一個重要任務是學習文本中較好的特征表示。研究表明,在大規模無標注數據上預訓練學習得到的詞向量可以捕獲語法和語義信息,使得預訓練的詞向量成為自然語言處理模型的一個基本組成部分[21]。文獻[22]利用漢字的上下文和部首信息來訓練上下文無關字向量,并將其應用于漢字的相似性計算任務和中文分詞任務中,且取得了較好效果。文獻[23]基于五筆將漢字轉變成五筆序列,使用CBOW 模型預訓練五筆的上下文無關向量,在中文分詞、短文本分類以及網頁排序任務中,該方法的效果優于基于傳統特征的機器學習方法。文獻[24]在SkipGram 和CBOW 模型中,將漢字的組件信息融合到字向量的預訓練中,在文本分類中取得一定效果。文獻[25]在預訓練上下文無關詞向量時,同時考慮詞、字和部首三者的信息,在詞相似性和詞推理任務中的結果驗證了上下文無關詞向量的有效性。文獻[26]根據漢字的圖像表示,通過CNN 提取漢字的可視化特征。上述方法雖然在一定程度上豐富了字向量的表示,但多數是對上下文無關向量的改進。此外,很多研究僅聚焦于字或詞級的語義任務,未在句子、文檔等自然語言處理的高層任務上進行延伸。
文獻[13]提出基于語言模型的上下文相關詞向量表示方法,其在多個英文自然語言處理任務中取得了較好的效果。但是,該方法不能直接應用于中文NER 任務,因此,本文在中文語料上訓練一個基于字的語言模型。此外,為了更好地挖掘中文的字形信息,本文建立2 種結合五筆字形的預訓練語言模型,并在此基礎上分別構建2 種結合五筆字形的上下文相關字向量表示模型。
LSTM-CRF 已經成為命名實體識別中最主要的模型之一。本文采用LSTM-CRF 構建基準系統(baseline),如圖1 所示。整個模型主要由輸入層、編碼層和解碼層3 個部分組成。baseline 模型的輸入為傳統的靜態字向量,使用雙向LSTM 對序列的特征進行編碼。在解碼層,本文使用CRF 模型。

圖1 LSTM-CRF 模型Fig.1 LSTM-CRF model
假設LSTM-CRF 模型的輸入為一句話s=c1,c2,…,cn,ck表示句子中的第k個字。對每個字ci,通過word2vec 預訓練字向量將其嵌入為連續稠密向量表示,本文使用xk表示LSTM-CRF 模型第k個字向量的輸入,
本層使用LSTM 對特征進行編碼,LSTM 單元能夠處理當前時刻的信息,也可以處理歷史信息,非常適合對序列問題進行建模。LSTM 單元通過輸入門、遺忘門和輸出門來控制單元的隱狀態,可以有效捕獲長距離依賴信息。LSTM 單元的實現方式如式(1)~式(3)所示:

其中,σ是sigmoid 函數,*代表元素乘,W是權重矩陣,b代表偏置。
在序列標注任務中,上下文特征對于標簽決策很重要。由于LSTM 只能對序列的一個方向進行編碼,因此本文使用雙向LSTM(BiLSTM)對輸入進行特征編碼,將BiLSTM 的2 個前后向隱狀態相連接以作為最終的特征編碼。輸入序列(x1,x2,…,xn)經過BiLSTM編碼后可以得到特征序列(h1,h2,…,hn)。
根據BiLSTM 提取到的第k時刻的特征hk,可以直接對每個字的輸出進行獨立的標簽預測。但是,由于標簽之間存在一定的相關性,如B-ORG 后面不能跟著I-PER,因此本文使用CRF 對標簽序列進行一些約束。定義矩陣O是對隱層表示H={h1,h2,…,hn}進行線性變換所得表示第k個字是yk的得分,O的表達式如式(4)所示:

其中,Wo和bo是矩陣O的參數。對于標簽序列y={y1,y2,…,yn},本文通過式(5)計算其概率:

其中,T是轉移矩陣表示所有可能的標簽序列。
在訓練過程中,給定N個句子的命名實體識別數據,使用梯度反向傳播算法來最小化損失函數loss,如式(6)所示:

在訓練完成后,需要對模型輸出進行解碼,通過式(7)來找到得分最高的標簽序列:

本文建立2 種上下文相關字向量表示系統。第一種是在基于字的語言模型和基于五筆的語言模型的基礎上所構建,第二種是在基于字與五筆的混合語言模型的基礎上所構建。
將字和五筆的信息分開,分別訓練基于字的語言模型和基于五筆的語言模型,在這2 個語言模型的基礎上構建本文所提第一種結合五筆字形的上下文相關字向量表示系統。
3.1.1 基于字的語言模型
本文使用ELMo(Embeddings from Language Model)作為基于字的語言模型的訓練框架。作為傳統上下文無關詞向量的一種替代方法,ELMo 已經在解決一系列句法和語義NLP 問題上取得了成功。與文獻[11]系統不同,本文系統構建基于字的ELMo 框架。對于字序列(c1,c2,…,cn),前向語言模型通過式(8)計算序列概率:

前向語言模型只能編碼一個字的上文信息,因此,還需要一個后向語言模型來編碼字的下文信息,如式(9)所示:

訓練的目標是最大化前向語言模型和后向語言模型對數似然概率,如式(10)所示:

前向語言模型和后向語言模型互相獨立,即參數不共享。同時,較低的層可以學到更多的語法特征,而較高的層能夠學習上下文特征。因此,本文前向語言模型和后向語言模型均采用兩層LSTM 堆疊的結構,如圖2 所示。

圖2 基于字的語言模型Fig.2 Character-based language model
不同于傳統的上下文無關字向量,上下文相關字向量直到整個句子被構造出來才確定。因此,每個字向量都是上下文相關的,一旦預訓練完成,通過雙向語言模型就可以得到上下文相關字向量。對于第k個時刻,前向語言模型的隱狀態為,后向語言模型的隱狀態為。因此,對于第k個時刻,L層雙向語言模型可以得到2L+1 個向量表示,如式(11)、式(12)所示:



3.1.2 基于五筆的語言模型
在基于五筆的語言模型中,將字轉換為其對應的五筆編碼形式,將句子轉化為五筆編碼序列。如文本表示“愛國家”,其對應的五筆序列表示為“epdc>lgyi>peu”。本文基于五筆的編碼方式將句子轉換為五筆字符串r1,r2,…,rm。漢字的五筆表示包含多個五筆碼元(用英文字母表示),每個五筆碼元刻畫漢字的字形信息,漢字與漢字的五筆編碼之間使用特殊字符“>”分隔。本文不再將字或詞當成一個最小的處理單元,而將五筆的碼元當成最小的語義單元。
預訓練一個基于五筆序列的語言模型(簡稱五筆語言模型),該語言模型的目標是學習一個五筆序列分布p(r1,r2,…,rm),根據前一個五筆碼元序列預測后一個五筆碼元。在基于五筆的語言模型中,對于輸入序列“epdc>lgyi>pe”,其對應的輸出序列為“pdc>lgyi>peu”,與基于字的語言模型類似,基于五筆的語言模型同樣通過堆疊的LSTM 來訓練前后向的語言模型。
與基于字的語言模型得到上下文相關字向量表示不同,本文利用預訓練的五筆語言模型的內部狀態來產生一種新型的上下文相關字向量。在五筆語言模型訓練完成后,根據五筆的前向語言模型和后向語言模型中最后一層的隱狀態創建字的向量表示。圖3 中的“國”對應的五筆編碼“lgyi”,通過前向語言模型中“lgyi”前的“>”隱狀態和后向語言模型中“lgyi”后的“>”隱狀態的拼接,并作為“lgyi”的向量表示。這種字向量在沒有任何明確的字或詞的概念下訓練,從根本上將字建模為五筆碼元序列。此外,其可以隨著上下文碼元的不同而變化。在本文中,對于第k個字,基于五筆語言模型得到的上下文相關字向量為

圖3 基于五筆的上下文相關字向量表示Fig.3 Contextualized character embeddings representation based on Wubi
將上述基于字的語言模型和基于五筆的語言模型相拼接,得到本文第一種結合五筆的上下文相關字向量表示
將字信息和五筆信息相結合,基于字和五筆混合語言模型構建本文所提第二種上下文相關字向量表示。在混合語言模型的訓練過程中,字的嵌入表示和五筆編碼表示相拼接作為語言模型的輸入。對于句子c1,c2,…,cn,第k個時刻的輸入包含字的嵌入表示和五筆表示,字的嵌入表示不作介紹,本文主要關注五筆表示。
圖4 所示為五筆信息的獲取方式,將句子中的每個漢字表示成五筆編碼形式,如“愛國家”對應的五筆形式為“epdc lgyi peu”。對于“國”的五筆編碼“lgyi”,利用多個卷積核從不同角度對其進行卷積以提取特征,然后通過最大池化進一步提取特征。為了防止網絡過深導致梯度彌散從而難以訓練,本文加入高速網絡,高速網絡的輸出即為五筆編碼的最終表示。

圖4 五筆信息的獲取方式Fig.4 The way of obtaining Wubi information
混合語言模型的訓練同樣是最大化前向語言模型和后向語言模型的概率分布。在混合語言模型訓練完成后,通過類似ELMo 的方式獲得第k個時刻包含五筆和字信息的上下文相關字向量
4.1.1 實驗數據
本文實驗數據分為無標注數據和命名實體識別數據2 類。對于無標注數據,使用Gigaword(https://catalog.ldc.upenn.edu/LDC2003T09)訓練基于word2vec的上下文無關字向量和語言模型。對于命名實體識別數據,為了從不同領域評估本文模型的性能,選取來自新聞領域的數據集Ontonotes 和社交媒體領域的數據集Weibo,2 個數據集的句子數和字數統計如表1 所示。

表1 數據集信息統計結果Table 1 Statistical results of datasets information
4.1.2 評價指標
實體識別需要同時識別實體的邊界和類別,只有當實體邊界和類別都識別正確時結果才算正確。本文實驗使用綜合指標F1 值來衡量模型性能,F1 值計算公式如下:

其中,N表示模型預測出的實體數目,M表示模型預測正確的實體數目,K表示標注數據中包含的實體數目。
4.1.3 標簽框架
實驗采用BIO 標簽框架,B 即Begin,表示當前字是實體的第一個字,I即Inside,表示當前字是實體內的字,O 即Other,表示其他。對于某種具體類型(Type),某個字可選標注集合為{B-Type,I-Type,O}。
4.1.4 模型訓練和參數設置
實驗采用pytorch 深度學習框架,使用NVIDIA GeForce GTX 1080 Ti 加速模型訓練。在BiLSTMCRF 模型中設置LSTM 隱層維度為200。采用Adam優化器更新神經網絡的參數,對LSTM 輸入向量和輸出向量采用dropout 策略,概率設置為0.5。為防止模型過擬合,總訓練輪次設置為50 輪,當連續迭代10 輪模型在開發集上的性能不再提升時模型停止訓練。預訓練語言模型均采用2 層BiLSTM,Embedding 映射維度為512,負采樣窗口大小設置為8 192。其中,基于字與五筆的混合語言模型中使用256 個n-gram 卷積濾波器進行特征抽取。預訓練語言模型的迭代次數設置為10,當模型困惑度在開發集上不再明顯降低時停止訓練。
本文實驗中的對比模型具體如下:
1)LSTM-CRF:即本文baseline 模型,其將雙向LSTM 作為編碼器,CRF 作為解碼器,輸入為傳統字向量,即
2)LSTM-CRF-char:在baseline 的基礎上,輸入增加基于字語言模型得到的上下文相關字向量,即輸入為
3)LSTM-CRF-wubi:在baseline 的基礎上,輸入增加基于五筆語言模型得到的上下文相關字向量,即輸入為
4)LSTM-CRF-concat:在baseline 的基礎上,增加基于字的語言模型和基于五筆的語言模型得到的2 個上下文相關字向量的拼接,對應本文所提第一種結合五筆的上下文相關字向量表示,即輸入為xk=
5)LSTM-CRF-hybrid:在baseline 的基礎上,輸入增加基于字和五筆的混合語言模型得到的上下文相關字向量,對應本文所提第二種結合五筆的上下文相關字向量表示,即輸入為
表2、表3 所示為Ontonotes 和Weibo 2 個數據集上的實驗結果。從表2、表3 下半部分可以看出,模型在增加上下文相關字向量(LSTM-CRF-char)后,命名實體識別的性能在Ontonotes 和Weibo 數據集上分別提升9.04 和6.19 個百分點。從表2、表3 最后兩行可以看出,本文所提2 種結合五筆的上下文相關字向量(LSTM-CRF-hybrid 和LSTM-CRF-concat)在2 個數據集上的F1 值相比基于字的上下文相關字向量(LSTM-CRF-char)有了進一步提高,在Weibo 上尤為顯著,最高提升3.03 個百分點,說明在預訓練語言模型中引入五筆字形信息具有有效性。此外,LSTM-CRF-concat 比LSTM-CRF-hybrid 效果更好,原因是基于五筆的語言模型不僅可以學習到漢字本身的字形信息,而且可以學習到上下文的碼元信息。

表2 Ontonotes 數據集上的實驗結果Table 2 Experimental results on Ontonotes dataset %

表3 Weibo 數據集上的實驗結果Table 3 Experimental results on Weibo dataset %
在表2 中,文獻[27]模型使用一種基于中英雙語語料的方法,LSTM-CRF-char 在沒有借助英文語料的情況下F1 值仍然比其高0.6 個百分點,說明上下文相關字向量能大幅提升語義表征能力。文獻[27]模型通過結合基于多種手工特征以及外部資源的CRF 和基于神經網絡的LSTM-CRF 模型,使得命名實體識別性能達到76.40%。相比之下,LSTMCRF-concat 完全沒有使用手工設計特征和模型融合,但是F1 值僅比文獻[29]模型低0.56 個百分點。在表3 中,文獻[31]模型和文獻[20]模型分別利用分詞和外部詞典來更好地判斷實體邊界,本文方法的F1 值比文獻[31]模型高4.32 個百分點。Weibo 數據集來自社交媒體領域,文本的表達通常是非正式的,包含很多噪聲,從表3 可以看出,模型在Weibo 數據集上的結果與Ontonotes 結果一致,說明結合五筆增強的上下文相關字向量在社交媒體領域同樣有效,而沒有因為領域的不同導致命名實體識別系統性能下降。
4.2.1 五筆信息與WC-LSTM 相結合對識別結果的影響
基于字的命名實體識別方法雖然取得了較好的效果,但是其未利用句子中詞的信息。詞的邊界往往也是命名實體的邊界,詞的邊界信息可以幫助基于字的命名實體識別方法確定命名實體的邊界。文獻[33]提出一種可以同時整合字和詞信息的WCLSTM(Word-Character LSTM)模型。為了進一步驗證本文所提方法的有效性,在WC-LSTM 模型的輸入中增加結合五筆的上下文相關字向量表示,從而同時對五筆、字和詞的多個層面進行特征表示。
從表4 可以看出,增加了基于五筆的上下文相關字向量的WC-LSTM 模型,命名實體識別性能進一步提升,性能優于表2 中的文獻[29]模型,這說明詞、字、五筆攜帶的信息不同,對中文命名實體識別具有不同的作用。

表4 Ontonotes 數據集上的模型性能對比Table 4 Performance comparison of models on Ontonotes dataset%
4.2.2 訓練數據規模對識別結果的影響
為了驗證在訓練不充分的情況下基于五筆的上下文相關字向量對命名實體識別性能的影響,本文從Ontonotes 訓練數據中分別隨機選取5%、10%、20%、50%和100%比例的數據作為訓練集,固定驗證集和測試集,然后進行對比實驗。從表5 可以看出,訓練數據規模越小,基于五筆的上下文相關字向量對模型性能提升越大,這說明基于五筆的上下文相關字向量可以在一定程度上緩解模型在小數據集上的欠擬合問題。

表5 數據規模對模型性能的影響Table 5 The impact of data size on models performance%
中文預訓練語言模型在命名實體識別時僅對字符進行建模而較少關注中文特有的字形信息。本文考慮中文五筆字形的優勢,將其作為額外的輸入信息,提出2 種融合字形信息的上下文相關字向量表示方法。第一種方法在預訓練語言模型中引入額外的五筆編碼器以豐富字向量表示,第二種方法對五筆序列進行建模從而抽取字向量表示。實驗結果表明,2 種方法在實體識別任務中取得了較高的F1 值,且結合五筆的上下文相關字向量表示方法的性能優于基于字的上下文相關字向量表示方法。語言模型BERT[34]具有更強的特征編碼能力,在各項識別任務中取得了較好效果。下一步考慮在BERT 中結合五筆編碼特征提取來增強語義表達,以獲取更高的命名實體識別性能。