于 敏
(北方工業(yè)大學,北京 100144)
命名實體識別(Named Entity Recognition,NER)任務是指從非結構化自然語言中識別出特定的重要信息即命名實體,該任務作為自然語言處理的基礎任務,在問答系統(tǒng)、機器翻譯和信息抽取等自然語言處理下游任務中占據(jù)重要作用。命名實體的概念最初是在第六屆MUC會議(the Sixth Message Understanding Conferences,MUC-6)中被首次提出[1],用于識別文本中組織機構、地理位置和人名等信息單元,以及時間和百分比等數(shù)字表達式。早期命名實體識別工作以基于規(guī)則和詞典構建的方法為主,該方法的性能直接由規(guī)則和詞典決定,可移植性較差而且建設周期長。基于統(tǒng)計機器學習的方法則是依賴于標注完備的大量訓練語料,主要使用最大熵模型、隱馬爾可夫模型、支持向量機以及條件隨機場等相關模型,實現(xiàn)了較好的識別效果;然而,識別效果依賴于大量的標注語料的條件限制了該方法在實際生產中的廣泛應用。隨著深度學習的發(fā)展,各種神經網絡漸漸被應用于命名實體識別,神經網絡可以找到命名實體更多非線性的內在聯(lián)系,并能從由有限的標注數(shù)據(jù)中學習有用的數(shù)據(jù)表示,從而達到好的識別效果。
傳統(tǒng)的中文命名實體識別大多是基于中文分詞任務,進而在目標語句上進行詞級別的序列標注任務,從而達到確定命名實體邊界和類型的目的。然而,分詞任務不可避免地會出現(xiàn)錯誤,錯誤傳播會一直延續(xù)到標注任務,最終影響到實體識別的性能。Zhang等[2]1554-1558提出了基于長短期記憶網絡-條件隨機場(Long Short-Term Memory- Conditional Random Field,LSTM-CRF)的網格長短期記憶網絡(Lattice LSTM)模型,在基于字符的序列模型上,引入詞典達到將詞信息集成到基于字的模型的目的。該模型獲得了比以往模型更加優(yōu)秀的效果。然而,模型難以處理潛在匹配詞對的沖突問題,同時由于LSTM鏈式結構的存在,不能充分利用語句序列的全局信息,而且對于遠距離文本信息的特征提取性能會隨著距離的增加而弱化。因此,中文命名實體識別的研究還有很多問題亟待解決。
目前命名實體識別算法可以根據(jù)它們在語句序列中所使用的不同信息特征和模型分為不同的類別。其中包含字符級模型、詞級模型和字符與詞級混合模型。字符級模型將語句序列中的每個字符的嵌入表示作為模型輸入,學習語句序列中字符與字符之間的內在關聯(lián)以獲取命名實體;很多研究工作者探討了基于字符的中文命名實體識別算法,Dong等[3]在基于字符的模型基礎上,通過字根特征獲取字符的嵌入信息以優(yōu)化模型的字符嵌入,JIA等[4]在基于字符的模型基礎上,同時利用BERT與訓練進行實體增強,將文本中的特定實體集成到模型中。詞級模型中,語句序列中的每個詞由其詞嵌入表示,詞信息的使用在英文語言文本中更加便利,英文自然語言本身具有明顯的區(qū)分標志,文獻[5-7]在基于詞的模型基礎上,引入了不同信息特征以提升識別效果,如語句序列中潛藏的時間信息等特征或實現(xiàn)了基于詞嵌入的無監(jiān)督命名實體識別。基于字符的中文實體識別被證明效果要優(yōu)于基于詞的中文命名實體識別[8]。因此,很多研究都嘗試將詞信息集成到基于字符的模型中,Wu等[9]提出了多向圖結構,通過融合文本中的地名索引信息學習字的單詞表示,實現(xiàn)了較好的識別效果。GUI等[10]通過卷積神經網絡獲取上下文多維信息表示,整合了通過預訓練的詞嵌入所包含的詞信息以及字信息,通過反思機制加強信息特征表示,有效地進行了相關命名實體的識別。將字信息和詞信息融合到模型中是實現(xiàn)命名實體識別效果的有效方法。
基于LSTM-CRF的Lattice LSTM模型在字符級模型基礎上引入詞典,以達到將詞信息集成到字符級模型的效果。與基于字的模型相比較而言,該模型顯性利用了詞信息和詞序信息,與基于詞的模型相比較而言,該模型有效避免了分詞任務所引起的錯誤傳播。
Lattice LSTM的門控循環(huán)單元用于控制相鄰字符路徑和潛在匹配詞路徑之間的貢獻值。然而,門控機制有時不能選擇正確的路徑。模型難以處理納入詞典中的潛在匹配詞之間的沖突:1個字符可能對應于詞典中的多個潛在詞對,錯誤的選擇可能會導致網格模型退化為部分基于詞的模型,導致標記錯誤,如圖1所示。
圖1 退化的Lattice LSTM模型
圖1中,“中國駐印尼大使館”“印尼大使館”和“大使館”3個詞語共享詞邊界“館”,3個詞所占權重是模型無法判斷的,故匹配詞沖突問題會導致標記錯誤進而影響模型整體性能;同時,基于LSTM的模型是對語句進行順序編碼,嵌套實體會存在嚴重的歧義問題,并且字符優(yōu)先分配給左邊的詞語。例如,“中國駐印尼大使館”語句序列中,模型可能會優(yōu)先分配“中國”,然后再是“印尼”等標簽,即當前字符并未關注到其后面剩余的字符,缺乏對整個語句序列的語義信息的感知。
為有效減小潛在匹配詞對的沖突問題,充分利用字符之間的內在關聯(lián)性和全局語義信息,筆者通過多頭注意力機制(Multi-Head Attention,MHA),結合優(yōu)化的Lattice LSTM模型,提出MHA-Lattice LSTM模型,在獲取字信息之間內在關聯(lián)的同時,捕獲語句序列的全局信息,提高模型處理遠距離語義信息的能力;注意力機制通過控制不同路徑詞信息到字符的權重,有效提升模型處理潛在詞對的沖突問題,同時將全局語義信息納入考慮,彌補了模型鏈式順序結構的全局語義的缺失問題。
為有效利用語句序列中的字信息和潛在隱藏詞匯所包含的詞信息,筆者提出基于注意力機制和Lattice LSTM的命名實體識別模型。模型使用預訓練詞典信息,避免了由于分詞錯誤所引起的錯誤傳播;模型通過注意力機制可使遠距離有效信息捕獲的可能性變大,有效利用遠距離依賴特征和全局信息,同時,通過控制不同路徑潛在詞匯信息到字符的權重,有效提升了模型處理潛在詞對的沖突問題。MHA-Lattice LSTM模型框架如圖2所示。
圖2 MHA-Lattice LSTM模型框架
基于字的LSTM模型本身并未有效利用語句序列中的詞信息,為此,筆者使用Lattice LSTM模型,同時學習和提取語句序列中的字信息和詞信息。Lattice LSTM可以看作是基于字的模型的擴展,集成了基于潛在詞匯信息的單元和附加門來控制信息流,Lattice LSTM網絡結構如圖3所示。
圖3 Lattice LSTM網絡結構
Lattice模型和基于字符的模型有所區(qū)別,它是通過詞嵌入詞典引入外部詞匯信息,對輸入字符序列以及與字符匹配的潛在詞匯進行編碼,從而有效挖掘語句序列中潛藏的詞信息的。模型單元狀態(tài)的計算公式如下:
(1)
(2)
模型使用不同的優(yōu)化算法會影響模型效果,筆者針對同一模型進行了隨機梯度下降(Stochastic Gradient Descent ,SGD)和Ranger優(yōu)化算法[11-12]2個不同優(yōu)化算法的損失函數(shù)曲線對比實驗,如圖4所示。
圖4 不同優(yōu)化算法損失函數(shù)曲線
通過圖4可以發(fā)現(xiàn),Ranger優(yōu)化算法下降更為平滑,且具有較強的魯棒性,而且Ranger優(yōu)化器結合了RAdam和LookAhead 2個優(yōu)化器的優(yōu)點,需要手動調整的參數(shù)較少,故筆者采用Ranger優(yōu)化算法。
LSTM的鏈式結構在學習過程中會拋棄部分信息,而且隨著語句序列長度的增加,字符之間的關聯(lián)性越來越弱,這就導致模型不能有效利用語句序列的遠距離語義信息。自注意力機制在計算過程中會將語句序列中任意2個字符直接聯(lián)系起來,極大地縮短了遠距離依賴特征之間的距離,使得遠距離有效信息的捕獲可能性變大,有利于有效利用這些特征[13]。注意力機制通過允許模型直接使用來自所有時間步長的信息來克服遠距語義依賴問題,通過獲取語句序列中字符之間的關聯(lián)程度,調整權重系數(shù)矩陣以獲取詞的表征。自注意力機制計算方式如下:
(3)
式(3)中,Q,K,V分別為查詢、鍵和值,三者維度相同;dk為三者維度。通過Q,K,V三者的權重操作獲取語句序列中字符之間的依賴關系,捕捉其內在關聯(lián)性。
多頭注意機制被廣泛應用于神經網絡的融合過程中,通過給相鄰節(jié)點或關聯(lián)節(jié)點分配不同的權值來聚合信息,捕獲語句序列中的全局依賴關系。多頭注意力機制是執(zhí)行n次Q,K,V向量的線性變化,并計算放縮點積注意力,進而拼接n次放縮點積注意力計算的結果,每一次稱為1個head。多頭注意機制計算方式見式(4)和式(5):
MH(Q,K,V)=concat(head1,...,headn)WO
(4)
(5)
多頭注意力機制相對自注意力機制就是多次對Q,K,V三者進行權重操作,最后將結果合并的過程。其中,每個僅計算最終輸出序列的其中1個子空間,占比為頭數(shù)之一,而且子空間之間學習和訓練過程相互獨立。多頭注意力機制如圖5所示。
圖5 多頭注意力機制
頭數(shù)量為初始確定參數(shù)之一,Transformer中頭數(shù)量常設為8頭,筆者使用不同頭數(shù)量進行試驗,最終以8頭獲取到實驗最佳效果。圖6為Resume數(shù)據(jù)集在不同頭數(shù)量下的實驗對比結果,實驗結果顯示Resume數(shù)據(jù)集在頭數(shù)為8時取得最佳效果。
圖6 不同頭數(shù)實驗對比結果
條件隨機場常被應用于序列標注模型中,學習語句序列中的約束條件,以避免某些不合法標簽的出現(xiàn)。例如,命名實體的開頭標簽應為“B-”“O”或者“S-”,而不是“M-”和“E-”等約束條件。為提高預測結果的可靠性,筆者通過條件隨機場(CRF)來界定標簽之間的依賴關系;CRF輸入為隱藏狀態(tài)序列h1,h2,...,hn。對于語句的標簽序列y1,y2,...,yn有:
(6)
式(6)中,y'表示任意標簽序列;Wli和b(li-1,li)為模型參數(shù),分別表示權重矩陣和偏置量。
筆者對不同領域多個數(shù)據(jù)集進行了實驗與分析,以下將詳細介紹數(shù)據(jù)集、模型參數(shù)設置,對相關實驗結果展開討論與分析。
筆者對新聞、社交媒體和金融3個領域的數(shù)據(jù)集進行了實驗與分析。(1)OntoNotes-4.0[14]:新聞領域數(shù)據(jù)集,包含地名(LOC)、組織名(ORG)、行政區(qū)名(GPE)和人名(PER)4種命名實體。(2)Weibo[15]:社交媒體領域,包含地名(LOC)、組織名(ORG)、行政區(qū)名(GPE)和人名(PER)4種命名實體。(3)Resume[2]1559:金融領域,包含地名(LOC)、組織名(ORG)和人名(PER)等多種命名實體。
對于3種數(shù)據(jù)集的標注方式,使用5位序列標記法BMEOS。數(shù)據(jù)集的統(tǒng)計信息如表1所示。
表1 數(shù)據(jù)集統(tǒng)計信息
筆者以準確率(Precision,P)、召回率(Recall,R)和F1-measure(F1)作為評價指標來評價模型的性能。其中,P表示模型正確識別的命名實體個數(shù)占模型識別的所有命名實體個數(shù)之比;R表示模型正確識別的實體個數(shù)占總體命名實體個數(shù);F1值為綜合評價指標,權衡P值和R值,獲取模型最佳效果。評價標準的計算方式如下:
(7)
(8)
(9)
式(7)~式(9)中,TP(True-Positive)和FP(False-Positive)表示真正例和假正例,F(xiàn)N(False-Negative)表示假反例。
為了驗證筆者提出的算法有效性,以Lattice LSTM結果為基線進行對比試驗。針對相應數(shù)據(jù)集作為訓練樣本,使用PyTorch框架對Lattice LSTM模型進行訓練。具體參數(shù)設置如下:字嵌入和lattice LSTM詞嵌入維度大小為50,LSTM隱層大小為200,學習率更新逐步降低,衰減率為0.005,Dropout為0.5。
MHA-Lattice的實驗及相關對比結果詳見表2~表4,其中對照算法為Lattice以及基線模型。
表2 OntoNotes-4.0實驗結果 單位:%
表3 Weibo實驗結果 單位:%
表4 Resume實驗結果 單位:%
從表2~表4中可以看出,MHA-Lattice LSTM算法在不同領域不同數(shù)據(jù)集上整體性能均有所提升;表2中,Ontonote-4.0數(shù)據(jù)集數(shù)據(jù)規(guī)模較大,召回率提升2.51%,整體F1值相對基線模型提升0.49%;表3中,Weibo數(shù)據(jù)集由于包含較多表情及網絡用語,識別效果相對其他數(shù)據(jù)集較差,整體F1值相對基線模型提升0.48%;表4中,Resume數(shù)據(jù)集標注完備,數(shù)據(jù)規(guī)范,識別效果相對較好,精確率和召回率均有提升,整體F1值相對于基線模型提升1.11%。實驗結果充分說明了算法的有效性。模型通過注意力機制,可以更加有效地利用字符特征來克服遠距語義依賴問題,有效提升命名實體識別性能。
針對潛在匹配詞對沖突問題,筆者通過多頭注意力機制結合并優(yōu)化Lattice LSTM模型,捕獲字符之間的內在關聯(lián)信息,同時獲取到語句序列中的遠距離有效信息,將語句中任意2個字符直接聯(lián)系起來,極大地縮短了遠距離依賴特征之間的距離,有利于有效地利用這些特征來克服遠距語義依賴問題。模型在新聞、社交媒體和金融等不同領域的多個數(shù)據(jù)集上性能均有提高。
筆者分析研究了命名實體識別的關于匹配詞對的沖突問題,提升了模型性能,針對特定領域不同數(shù)據(jù)集性能效果差別較大,后續(xù)工作將考慮針對特定領域進行模型優(yōu)化。