胡新棒,于溆喬,李邵梅,張建朋
(1.中國人民解放軍戰略支援部隊信息工程大學 信息技術研究所,鄭州 450003;2.墨爾本大學,澳大利亞 墨爾本3010)
命名實體識別(Named Entity Recognition,NER)旨在從非結構化的文本中抽取人名、地名、結構名等實體,是自然語言處理中的重要任務之一,也通常被認為是關系抽取[1]、語義解析[2]、問答系統[3]等下游任務的基礎。現有的命名實體識別方法主要分為基于傳統機器學習和深度學習兩種。最大熵模型[4]、隱馬爾科夫模型[5-6]、條件隨機場(Conditional Ramdom Field,CRF)[7]等基于傳統機器學習的命名實體識別方法需要投入大量的人力進行語料標注與特征模板設計,實現成本較高。基于深度學習的命名實體識別方法由于具有強大的泛化能力,因此成為當前的主流方法。對于基于深度學習的中文命名實體識別模型而言,當模型使用字符嵌入時受未登錄(Out-of-Vocabulary,OOV)詞影響較小[8-9],當模型使用詞嵌入時能充分利用詞邊界信息并減少一字多義的干擾。為兼顧兩者的優勢,文獻[10]聯合字符嵌入與詞嵌入,提出Lattice LSTM 模型,通過融合字詞信息,提高了模型的泛化能力。然而,由于無法獲取詞內部信息,該模型在融合過程中存在信息損失的問題,同時,由于長短時記憶(Long Short-Term Memory,LSTM)網絡的單向鏈式結構,模型無法并行計算,因此時間復雜度較高。在此基礎上,各種改進模型不斷被提出。為減少字詞信息融合過程中的信息損失,文獻[11-13]將字詞信息融合過程由鏈式結構轉換為圖結構,分別提出基于協作圖網絡的CGN 模型、增強全局信息捕捉能力的LGN 模型、通過多維圖解決詞典匹配沖突的Multi-digraph 模型。為提高運行速度:文獻[14]通過構建SoftLexicon 策略,將字詞信息融合改為靜態加權方式,降低融合成本;文獻[15]提出LR-CNN 模型,利用卷積神經網絡(Convolutional Neural Network,CNN)的并行化優勢,代替長短時記憶網絡進行特征抽取;文獻[16-17]分別提出FLAT 模型和PLTE 模型,引入transformer 進行序列編碼,提高模型并行能力。
隨著基于字詞聯合的命名實體識別模型不斷被提出,中文命名實體的識別效果得到了較大提升,但仍有一些共性問題難以解決。人名、地名等專有名詞在通用語料中出現頻率較低且構詞方式無固定規律,模型中所用word2vec[18]構建的詞向量對這些低頻詞的覆蓋率不高,相應的未登錄詞會干擾實體邊界的界定。以“代表團視察了約旦河”為例,由于“約旦河”在詞向量中屬于未登錄詞,基于字詞聯合的命名實體識別模型更傾向于將“約旦”識別為一個實體。基于深度學習的命名實體識別模型依賴于大規模訓練語料,而大多數人工標記的實體識別數據集規模相對較小,如何利用小樣本學習方法提升中文命名實體識別的效果有待進一步研究。
為解決上述問題,本文在現有的LR-CNN 模型上進行改進,提出一種基于知識增強的命名實體識別模型AKE。使用改進位置編碼的多頭注意力機制捕捉長距離依賴,彌補傳統注意力機制丟失位置信息的缺陷,以提高模型上下文信息捕捉能力。加入知識增強模塊,在序列編碼過程中融入實體類別、邊界等附加知識,弱化未登錄詞的影響并緩解模型在小數據集上性能表現不佳等問題。
本文提出的AKE 模型的整體結構如圖1 所示,根據功能可大致分為字詞聯合、知識增強、解碼3 個模塊。字詞聯合模塊根據匹配詞長度,對字詞信息進行分層融合。在各層中,首先依據CNN 所用卷積核尺度不同,獲取所在層相應長度的詞組序列;然后經由改進位置編碼的自注意力機制,捕獲序列的長距離依賴;最后與匹配詞進行信息融合,得到本層的字詞聯合結果。知識增強模塊通過查詢基于領域知識等構建的實體詞典,指導字詞聯合模塊中不同層所得信息的整合,在最終的序列編碼中加入實體邊界、類別等附加知識。解碼模塊使用條件隨機場對知識增強后的編碼進行標注,得到標注結果序列。依據處理流程,下文將分別對模型的3 個模塊進行介紹。

圖1 AKE 模型的整體結構Fig.1 Overall structure of AKE model
GUI 等[15]利用CNN 局部特征提取的天然優勢和優秀的并行能力,提出LR-CNN 模型,為字詞信息的融合提供了新的思路。然而,盡管該模型的字詞聯合模塊中,各層CNN 的層內可以充分利用并行計算的優勢,但CNN 層間為串行執行,當CNN 層數較多時,模型依然存在復雜度較高的問題。本文在LR-CNN 模型的基礎上,對其中的字詞聯合模塊進行改進,首先將各層CNN 改為層間并行,各層同時進行特征抽取,提高模型運行速度,然后用基于相對位置編碼的多頭注意力機制捕獲長距離依賴,進一步提高字詞聯合模塊的表征能力。
字詞聯合模塊中各層字詞信息的融合結果,由CNN 所提取的n-gram 的特征信息、對應詞嵌入序列、上一層融合結果經門控網絡得到,其計算過程可分為基于CNN 的n-gram 特征信息提取、字詞信息初步融合、字詞信息融合權重調整3 個步驟。
1.1.1 基于CNN 的n-gram 特征信息提取
在字詞融合模塊中具有3 層CNN,CNN1、CNN2、CNN3的卷積核分別為HC、HD、HT,以輸入序列X={x1,x2,…,xn}長度為n為例。在各層中,CNN分別對1-gram、2-gram、3-gram 的片段進行特征提取,經非線 性變換,得 到C={c1,c2,…,cn}、D={d1,d2,…,dn}、T={t1,t2,…,tn}特征序列,對于時刻τ(1≤τ≤n):

其中:bC、bD、bT為偏置。
受CNN 感受野限制,得到的特征序列C、D、T缺少長距離信息,在LR-CNN 模型中,傳統注意力機制雖然對此問題進行了彌補,但由于位置編碼存在的缺陷,模型會損失距離信息與方向信息。對于命名實體識別等序列標注任務,上文標注內容會影響下文標注結果,距離與方向信息的損失會對模型產生負面影響。為解決上述問題,采用基于相對位置編碼的多頭注意力機制[19-20]構建上下文關系。在新的注意力機制中,對于輸入序列中的時刻t,將時刻j的相對位置嵌入定義如下:

因此,針對不同方向的相對位置τ與-τ,可得到如式(3)所示的相對位置嵌入。顯然,相比傳統注意力機制中的位置嵌入,該位置嵌入方式能夠在表征距離信息的同時保留方向信息。

在改進位置嵌入的基礎上,注意力機制的具體計算如下:對于長度為l、嵌入維度為d的輸入序列I,由式(4)得到注意力機制中嵌入維度為dk的Q、K、V,進而由式(5)計算時刻j對序列中的時刻t的注意力概率分布,由式(6)和式(7)得到整個序列的注意力。

經多頭注意力機制后,將得到的C′、D′、T′送入下一步進行字詞信息的融合。
1.1.2 字詞信息初步融合
各層字詞信息的融合可由式(7)中所提取n-gram 的特征信息C′、D′、T′,對應詞嵌入序列Z、下層融合結果經門控網絡得到。由于word2vec 構建的詞向量會對低頻詞進行過濾,而常用詞一般較短,使得詞長度越長時未登錄詞越普遍,通過在門控網絡中引入下層融合結果,可以緩解上層未登錄詞較多導致詞義偏差過大的問題。
本節以雙字層序列D″={d″1,d″2,…,d″n}的獲取為例,說明各層字詞信息的融合過程,具體計算為:將2-gram 提取到的特征序列D′與雙字詞的詞嵌入序列ZD進行初步融合得到u1,同時引入殘差連接促進前后向信息傳播。融合結果D1的獲取過程如式(8)~式(12)所示:

在得到2-gram 的特征信息與雙字詞詞嵌入序列的融合結果D1后,將字符層序列C″與D1融合,得到字詞信息的初步融合結果

其中:Wg、bg為線性函數中的權重系數與偏置。經過這一步融合,上層序列融入了下層的信息,并不斷向上進行傳遞,緩解了未登錄詞過多導致詞義偏差過大的問題。經過同樣的操作,得到單字層、三字層的初步融合結果中融入了各層的信息。
1.1.3 字詞信息融合權重調整
雖然字詞信息初步融合中操作對字級信息、詞級信息、下層信息進行了融合,但得到時三者融合的權重可能不夠合理。同時,字詞信息初步融合中得到的最高層序列中融入了各層的信息,為緩解上述權重不合理的問題,按照式(15)~式(19),將初步融合結果中最上層序列作為附加輸入,與2-gram提取到的特征序列D′、雙字詞的詞嵌入序列ZD進行融合,調整融合過程中的權重。

現有中文命名實體識別模型難以取得重大突破的重要原因在于:大多數中文人名、常用地名等專有名詞構詞方式無固定規律,實體邊界確定困難;低頻實體在詞向量中存在大量未登錄詞,識別效果較差。因此,解決這些問題是命名實體識別研究的重要內容。但是,中文人名、常用地名、特定領域名詞等實體的數量相對有限,基于這些知識構建實體詞典較為容易。因此,充分利用此類實體詞典,在模型中加入先驗知識,對增強命名實體識別模型的泛化能力、遷移能力,提高在小數據集和特定領域的實體識別效果具有重要意義。然而,如何利用實體詞典存在一定的挑戰。首先,由于新詞引入、統計缺漏、實體劃分粒度差異等問題,基于現有知識構建的實體詞典很難覆蓋領域內所有實體;其次,通過實體詞典得到的匹配結果存在部分錯誤,如“戰爭全方位爆發了”這句話中,“全方”可能被誤識別為人名實體。由于上述缺漏與匹配錯誤的情況,當使用神經網絡中常用的向量拼接、向量相加等特征組合方式,將實體詞典中的知識融入模型時,反而可能因噪聲問題對模型產生負面影響。
受注意力機制的啟發,本文在字詞聯合模塊的基礎上,通過影響不同層序列的權重整合進行知識增強。如圖2 所示,對于經字詞聯合分別得到單字、雙字、三字層序列C″、D″、T″,時刻τ的對應編碼分別為c″τ、d″τ、t″τ,通過加 權求和 各層中 相應位 置的權 重可以得到該時刻的最終編碼xτ′:

對于圖2 中類似“代表團”中的“代”字,因為實體詞典中無匹配項,所以模型將按照式(23)計算各層權重:


圖2 知識增強流程Fig.2 Procedure of knowledge enhancement
由于“約旦河”為輸入序列在實體詞典中的一個匹配實體,且長于匹配詞“約旦”,模型可依據式(24),將Δ與匹配實體所在層對應位置的編碼相乘,計算“約旦河”三字的最終編碼。

其 中,Δ=ΔLOC且Δ取值為1.05~1.35。由于公 式0、x>0 時,函數單調遞增。因此,在本例中,相比式(23)中權重計算方式,在“約旦河”的權重計算過程中,模型能夠給予三字層中相應字更高的權重,使得到的最終編碼更貼近“約旦河”的向量表示,而雙字層“約旦”的詞向量和單字層的字向量對模型的影響權重降低。在這個過程中,潛在實體得到了模型的更多關注,利于發現未識別實體,提高模型召回率。同時,增強過程引入的詞邊界信息能在一定程度上緩解邊界識別錯誤的影響。“對最長匹配實體進行增強”的規則減少了類似圖2 中“約旦”這樣的嵌套實體對詞邊界判定的干擾。對于上文中所提到類似“全方”這樣的匹配錯誤問題,由于不同類別的實體詞典在不同語料中導致的匹配錯誤比例存在差異,因此處理過程中模型在1.05~1.35 范圍內隨機產生增強權重,防止匹配錯誤對結果影響過大,并通過模型訓練得到所用語料中各實體類型的最佳增強權重。對于缺漏實體問題,模型將按照式(23)中方式計算各層權重,即不進行知識增強,消除了實體匹配缺漏對模型產生的影響。
條件隨機場是序列標注任務中常用的解碼器。對于知識融合后的輸出序列,若其對應的標注序列為Y={y1,y2,…,yn},所有可能的標注序列集合為L(X′),則標注序列y的概率如下:

其中:ψi(yi-1,yi,X′)=exp(WiX′+bi);Wi與bi為標簽對(yi-1,yi)對應的權重和偏置。在模型訓練過程中,本文采用預測值和真實值的最大化對數似然作為優化目標:


為充分評估本文模型的識別效果,除常用的Resume[10]、MSRA[21]、Weibo[22-23]等評估數據集外,本文引入OntoNotes5.0[24]、People Daily[25]、Boson 等 公開數據集,使得數據集的規模大小、語料來源、劃分粒度覆蓋更全面,評估結果更客觀。Resume、MSRA、Weibo 數據集與Lattice LSTM[10]中使用相同且有分詞信息;OntoNotes5.0 在OntoNotes4.0 的基礎上加入了更多的數據,實體類別劃分更細,也含有分詞等附加信息;People Daily 來源于1998 年的人民日報;Boson 來自bosonnlp 提供的公開數據集。
在實驗過程中,OntoNotes5.0 依據官方提供的代碼進行數據集切分;People Daily 與fastnlp 提供的切分相同;Boson 數據集按照8∶1∶1 的比例進行數據集切分。表1 給出了實驗中各數據集詳細統計信息。

表1 數據集詳細統計信息Table 1 Detailed statistics of datasets
與Lattice LSTM[10]相同,本文采用由word2vec訓練得到的字符向量與詞向量[26],并在訓練中進行微調。實驗所用PER、ORG、LOC 等實體詞典來源于公開數據。在實驗過程中,模型使用Adamax[27]作為優化函 數,并設置0.5 的dropout[28]防止過擬合。按照語料規模,將MSRA、OntoNotes5.0、People Daily歸類為大數據集,將Boson、Resume、Weibo 歸類為小數據集。對于3 個大數據集,設定隱藏層節點數為300,CNN 層數為5;對于3 個小數據集,設定隱藏層節點數為200,CNN 層數為4。Weibo 語料來源于社交媒體,口語化比較嚴重,模型收斂較慢,學習率設為0.005;MSRA 語料較為規范,學習率過大容易導致模型無法收斂,實驗中學習率設置為0.000 5;其他數據集學習率設為0.001 5。對于實驗中的各對比模型,超參數設置都參考其原始的論文描述,以MSRA、Resume 為基準,分別設置在大數據集和小數據集上的超參數。
命名實體識別通常被作為序列標注任務,其標注規范包括BIO、BMESO、BIOES 等多種形式。實驗采用BMESO 標注方法,對于數據集中的實體,根據長度與類別,將單字實體標注為S-TYPE,將多字實體的開始、中間、結尾字符分別標注為B-TYPE、M-TYPE、ETYPE,其中,TYPE 為實體類別,其他字符標注為O。
將準確率(P)、召回率(R)和F1 值(F)作為評價指標,具體定義如下:

其中:Tp為模型識別出的實體數量;Fp為模型誤識別的實體數量;Fn為模型未識別出的實體數量。
相對于LR-CNN 模型,本文主要做了提高模型并行能力、使用改進位置編碼的多頭注意力機制替代傳統注意力機制、添加知識增強模塊融入先驗知識3 個方面的改進。提高模型并行能力的改進主要影響模型效率,為評估其他兩種改進策略對模型性能的影響,分別做了僅改進注意力機制(AKE w/o K)、改進注意力機制且進行知識增強時的模型性能評估(AKE)。同時,對于有分詞信息的OntoNotes5.0、Weibo 兩個數據集,分析分詞信息對模型的影響(AKE with seg)。此外,與近兩年的主流模型,包括基于字詞聯合的Lattice LSTM 模型[10]、LGN 模型[12]、SoftLexicon 模型[14]、LR-CNN 模型[15]、FLAT 模型[16]、基于字的TENER 模型[19]在 多個數據集上進行對比。取3 次實驗結果的平均值作為最終結果,相關評估結果如表2、表3 所示,其中,“—”表示相關論文未列出實驗結果或數據集不支持進行相應實驗,最優指標值用加粗字體標示。下文從改進策略對模型識別性能影響、模型整體識別性能與魯棒性、模型復雜度3 個角度,分別對多頭注意力及知識增強對模型識別性能的提升、不同模型處理來源各異且規模不等數據集的能力、各模型的時間與空間成本等方面進行分析。

表2 大數據集上命名實體識別性能對比Table 2 Comparison of NER performance on big datasets %

表3 小數據集上命名實體識別性能對比Table 3 Comparison of NER performance on small datasets %
2.3.1 改進策略對模型識別性能的影響分析
通過對表2、表3 進行分析,可得出以下結論:1)在改進注意力機制對模型性能的影響方面,在使用改進位置編碼的多頭注意力機制之后,模型的召回率、F1 值均有明顯提高,準確率在多個數據集上也有更好表現,證明了在實體識別等序列標注任務中文字距離與方向信息的重要性,也驗證了改進位置編碼的多頭注意力機制的有效性;2)關于知識增強的改進,在進行知識增強后,模型的召回率有了進一步的提高,通過融入先驗知識,模型識別出了更多的實體,雖然受實體詞典錯誤匹配所產生噪聲的干擾,準確率在部分數據集上有所下降,但總體F1 值依然有所增加;3)在分詞信息對模型性能的影響方面,在加入分詞信息后,OntoNotes5.0、Weibo 數據和其子集的識別效果都得到了提高,證明了詞邊界在命名實體識別任務中依然是非常重要的,分詞信息的加入在一定程度上減緩了字詞聯合模塊中詞邊界確定困難的問題。
為進一步探究知識增強過程中實體詞典對數據集中標記實體的覆蓋率(entity coverage)、實體詞典錯誤匹配所產生的噪聲比率(noise rate)、數據規模、實體劃分粒度等對模型召回率與F1 值的影響,將知識增強對模型性能提升情況與上述覆蓋率與噪聲比率依據數據規模作折線圖如圖3 所示。

圖3 實體詞典匹配對模型識別性能提升的影響Fig.3 The effect of entity dictionary matching on the improvement of model recognition performance
結合表1 中各數據集詳細信息,對圖3 進行分析可以得出以下結論:
1)在總體上,在進行知識增強后,隨著數據集規模變化,模型的F1、召回率提升值與實體詞典對數據集中標記實體的覆蓋率呈現一定的正相關性,進一步驗證了知識增強提高了模型發現實體的能力。
2)在數據規模影響方面,相對于大數據集,知識增強在小數據集上對模型性能的提升效果更為明顯。在工程應用中,由于人工標注成本高、特定領域數據量小、數據受隱私保護等原因,大規模標注數據的獲取往往較為困難,因此本文提出的知識增強方式通過在模型中融入領域先驗知識提高模型性能,在實際工程應用中具有重要意義。
3)在實體類別劃分粒度上,由于People Daily 實體種類較少、數據規模較大,模型訓練較為充分,雖然知識增強提高了模型的召回率,但對模型整體F1 值的提升效果不夠明顯。相比之下,盡管OntoNotes5.0 數據集規模更大,但實體類別劃分粒度較細、語料中有大量口語化的內容,模型識別能力有進一步提升空間,知識增強對模型的性能提升更為明顯。
4)在抗噪聲干擾方面,由于Weibo 數據集的子集WeiboNAM 與WeiboNOM 的實體個數較少,模型訓練不充分,同時實體詞典匹配到的噪聲比率較高,模型的性能受影響波動較大。
5)從實體詞典對數據集中標記實體的覆蓋率、實體詞典錯誤匹配所產生的噪聲比率來看,雖然本文知識增強模塊在一定程度上提高了模型性能,但標記實體的覆蓋率總體不高,同時處理過程中所用降噪方法仍較為簡單。
在后續任務中,如何擴充實體詞典提高對標記實體的覆蓋率、改進知識增強模塊降低對匹配噪聲的影響,將是需重點研究的內容。
2.3.2 模型整體識別性能與魯棒性分析
為分析模型的性能及魯棒性,以Lattice LSTM 模型為基準,計算各模型的F1 值的相對提升幅度,如圖4所示。為保證圖像的差值范圍,將TENER模型在People Daily 數據集上的F1 提升值設為0。

圖4 6 種模型在不同數據集上相對Lattice LSTM 模型的F1 值提升情況Fig.4 The improvement of the F1 value of the six models relative to the Lattice LSTM model on different datasets
通過對圖4 進行分析可得出以下結論:1)基于字的TENER 模型總體表現不如其他基于字詞聯合的模型,證明基于字詞聯合的模型相對于基于字的模型能夠捕捉更多的上下文信息,具有較大優勢;2)TENER 模型在不同數據集上F1 值波動較大,在People Daily 數據集上表現較差,魯棒性不強;3)在字詞聯合模型中,LGN 模型與LR-CNN 模型表現一般,相對基線模型提升不夠明顯,且識別性能提升幅度受數據集影響較大;4)SoftLexicon 模型在各數據集上表現穩定,具有較強的魯棒性,但由于該模型中字詞信息融合采用靜態方式,在具體語境中可能會出現偏差,影響識別效果;5)FLAT 模型在多個數據集上均有優異表現,但由于參數量較多,在Resume、Weibo 等小數據集上學習不充分,模型魯棒性有待提高;6)本文模型相對其他模型在多個數據集上取得了最好的識別效果,且在不同數據集上表現較為穩定,具有一定的魯棒性。
2.3.3 模型復雜度分析
除上述性能評估外,為對模型有更全面的分析,實驗中以Lattice LSTM 模型為基準,對比各字詞聯合模型在OntoNotes5.0 數據集上的推理速度與計算資源占用情況,對比結果如圖5 所示,其中,FLAT 模型批大小為10,其他模型均為1。

圖5 字詞聯合模型推理速度與計算資源占用情況對比Fig.5 Comparison of reasoning speed and computing resource occupancy of character-word joint models
由圖5 可以看出:相比Lattice LSTM 模型,FLAT模型雖然使用并行化提高了推理速度,但計算資源占用激增;其他模型大多在推理速度方面提升不大,資源占用稍有增加;本文AKE 模型由于字詞融合模塊中多頭注意力機制的使用和知識增強模塊的加入,推理速度稍有下降,資源占用量相對較多,后續有較大的改進空間。
本文在LR-CNN 模型的基礎上,提出一種基于知識增強的命名實體識別模型。通過改進字詞聯合模塊,提高模型并行性與上下文信息捕捉能力。加入知識增強模塊融入實體邊界、實體類別等先驗知識,緩解未登錄詞影響和模型在小數據集上學習不充分的問題。實驗結果表明,相比基于字詞聯合的命名實體識別主流模型,本文模型能夠提高實體識別的召回率與F1 值,同時具有較強的魯棒性和泛化能力。此外,通過使用不同領域的實體詞典,融入相應先驗知識,賦予模型較強的遷移能力,并且所提出的知識增強思想在其他自然語言處理任務中也具有一定的借鑒意義。下一步將重點改進模型的知識增強策略,減少實體詞典匹配錯誤所產生的噪聲干擾,優化字詞融合模塊,降低模型復雜度。