曹 暉 徐 楊,2*
1(貴州大學大數(shù)據(jù)與信息工程學院 貴州 貴陽 550025) 2(貴陽鋁鎂設計研究院有限公司 貴州 貴陽 550081)
命名實體(Named Entity,NE)概述為包含人名、地名、組織機構名、特定領域專有名詞等的短語[1]。命名實體識別(Named Entity Recognition,NER)是自然語言處理核心基礎任務之一,它的目標是準確劃分實體邊界并將其正確分類。NER采用的傳統(tǒng)機器學習研究方法包括隱馬爾可夫模型、最大熵模型和條件隨機場等,但這些方法通常都需要領域專業(yè)知識和進行大量人工特征標注工作[2-3]。
近年,基于深度神經(jīng)網(wǎng)絡的方法顯著提升了自然語言處理任務的效果。詞向量工具的出現(xiàn)實現(xiàn)了字轉化為稠密向量的功能,詞向量比人工選擇的特征蘊含更豐富的語義信息,有助于提升下游任務的性能。word2vec[4]、GloVe[5]和BERT[6]在NER任務中被廣泛應用,明顯地提升了整體模型的訓練效率。長短期記憶網(wǎng)絡[7](Long Short Term Memory,LSTM)在處理長序列標注任務上有更好的表現(xiàn),它解決了循環(huán)神經(jīng)網(wǎng)絡[8](Recurrent Neural Networks,RNN)在訓練過程中易發(fā)生梯度消失和梯度爆炸的問題。基于LSTM+CRF[9]構建的端到端的模型在英文命名實體識別任務中取得了較好的成績。
細粒度命名實體識別任務旨在更精細地識別出非結構化文本中的實體類型,這對實體邊界劃分以及如何充分利用文本潛在詞語的信息提出更高要求[10]。最近,將字符信息嵌入到詞向量表示中的英文NER模型獲得很大的效果提升。與英文不同,中文文本沒有明確的詞語劃分邊界,一種直觀的做法是先進行分詞,再進行序列標注工作。可是一旦分詞有誤,這種錯誤會傳播到NER中,影響模型的識別性能[11]。
針對以上問題,本文提出一種融合詞語信息的中文細粒度命名實體識別模型。通過將句子與外部詞典進行匹配,映射獲取到句中潛在的詞語信息,再將這部分信息嵌入到字級別的表示中形成網(wǎng)格結構。與單純基于字的方法相比,這種結構不僅包含更多語義信息而且避免了分詞錯誤傳遞的問題;通過Self-Attention計算權重的機制可捕獲句中任意元素間的關系信息。在細粒度實體語料CLUENER2020上驗證了本文模型的有效性。
Zhang等[12]首次提出Lattice LSTM模型用以解決命名實體識別問題,其結構如圖1所示。
圖1 Lattice LSTM結構
Transformer是Encoder-Decoder網(wǎng)絡結構。Encoder包括Self-attention和Fully connected feed-forward兩個子層。Decoder比Encoder多一層Encoder-Decoder Attention。每一子層都附加了殘差連接和正則化。Encoder結構如圖2所示。
圖2 Encoder結構
Self-Attention[13]是Encoder結構以及Transformer的核心組件,如式(5)所示。其思想是要從特征向量中學習到每一個元素對其余元素的影響程度,通過這種機制得到每個元素考慮了全局信息之后的新表達。
式中:當給定輸入向量X,Q=XWQ、K=XWK、V=XWV,WQ、WK、WV是可訓練參數(shù),X∈Rn×d,WQ、WK∈Rn×dk,WV∈Rn×dV,dk是K的維度。
Transformer中使用了多頭注意力機制處理輸入向量,然后將每頭注意力的計算結果拼接和線性變換。這樣做不僅擴展了模型關注不同位置的能力,而且給注意力層帶來更多“表示子空間”。
為了使Transformer可以捕捉輸入序列的字順序信息,在輸入向量中加入了位置編碼(Positional Encoding)用來對序列中的元素位置以及任意兩個元素之間的距離建模。第j個元素位置編碼p可表示為:
p(j,2i)=sin(j/10 0002i/d)
p(j,2i+1)=cos(j/10 0002i/d)
(6)
式中:i表示字或詞的維度;d表示模型的維度。
本文提出的模型結構如圖3所示,可分為三個部分,輸入部分為詞向量與基于BERT-wwm構建的增強型字向量拼接而成的數(shù)據(jù),經(jīng)過扁平化的Lattice Transformer對輸入及相關位置信息進行編碼,最后通過CRF層計算出最大概率標簽。
圖3 模型結構
模型的輸入向量包含詞向量表示和字向量表示。詞向量通過詞典匹配的方式獲取,即將輸入的語句與中文詞典進行匹配獲取到句中潛在的詞語集合,再通過查找預訓練的向量矩陣,映射得到每個匹配詞語的向量表示。
BERT具有強大的語義表征能力,其內部的雙向Transformer網(wǎng)絡結構可結合字左右兩側的上下文,動態(tài)地獲取字的深層語義。但BERT是以字為單位對中文語料進行訓練的,沒有考慮到中文分詞。BERT-wwm使用哈工大LTP分詞,在訓練時對組成一個詞語的全部字都Mask,因此該模型更適合處理中文任務?;贐ERT-wwm,本文構建一種增強型字向量表示方法,用以將句中潛在的分詞信息加入到字向量中。
如圖4所示,將詞語集合{“南京”,“長江”,“長江大橋”,“大橋”}按照{B,I,E,S}的格式歸類到每個字,其中:B集合包含以當前字作為開頭的詞語;I集合包含當前字在詞內部的詞語;E集合包含以當前字作為結尾的詞語;S集合包含當前字,如果集合中沒有匹配的詞語則用None表示。通過式(7)計算得到每個字對應的分詞集合的向量表示es(B,I,E,S):
es(B,I,E,S)=[vs(B)⊕vs(I)⊕vs(E)⊕vs(S)]
(7)
式中:vs(S)代表S集合中所有詞語的加權向量;ew代表詞向量映射表;z(w)代表詞語w在數(shù)據(jù)集中出現(xiàn)的次數(shù)。最后,將es(B,I,E,S)與對應的由BERT-wwm產(chǎn)生的字向量拼接組成增強型字向量表示。
圖4 增強型字向量表示
針對Lattice LSTM無法充分利用遠距離時序依賴關系和計算速度慢的問題,本文引入了一種扁平化的Lattice Transformer(下文使用FLT簡寫)[14]結構。首先,通過為所有元素(字或詞語)構建頭指針head和尾指針tail的方式將原網(wǎng)格結構平面化,其中:head表示元素首字的索引,tail表示元素尾字的索引,單個字的head和tail相同,結構如圖5所示。
圖5 Lattice Transformer結構
其次,任意兩元素間可能存在的位置關系有三種:相交、包含和相離,為了使Transformer可編碼任意元素的相對位置關系信息,設計一個稠密的向量來對元素關系進行建模。式(7)-式(10)的四種相對距離可以表示任意兩元素間的關系:
Pd由式(14)獲得。
最終,考慮了相對位置信息的Self-Attention計算式為:
μTExjWK,E+νTRijWK,R
(15)
在模型的頂部,加入條件隨機場(CRF)用以對輸入序列進行標簽順序推理。假設記W為轉換分數(shù)矩陣,Wyi,yi+1表示從yi標簽轉移到y(tǒng)i+1標簽的得分;記pi,yi為序列中的第i個元素在yi標簽處的得分。那么,對于給定長度為n的輸入序列X=[x1,x2,…,xn],標簽序列y=[y1,y2,…,yn],則計算該標簽的得分公式為:
然后進行歸一化處理,得到y(tǒng)的概率分布,其中YX代表所有可能的標簽序列:
解碼時,概率最高的序列y*即為最優(yōu)輸出標簽序列:
本文采用維特比算法求解最優(yōu)序列。
本文實驗采用細粒度命名實體識別數(shù)據(jù)集CLUENER2020,包含人名、地址、組織機構、書名、公司、游戲、政府、電影、職位和景點10個類別。訓練集包含10 748個句子,測試集包含1 343個句子。表1給出了詳細的實體數(shù)目統(tǒng)計。Lample等[15]在實驗中采用的BIOES標注策略表明顯示的邊界標記有助于提升模型性能,本文采用相同的標注方法,其中:B表示實體開始;I表示實體內部;O表示不是實體部分;E表示實體結束;S表示單個字的實體。
表1 實體數(shù)目統(tǒng)計
在實驗結果評估上,采用精確率(Precision,P)、召回率(Recall,R)、F1值作為評價模型性能的指標。
實驗的環(huán)境配置如表2所示。
表2 實驗環(huán)境
為了驗證本文FLT-CRF模型的效果,設置了以下模型的對比實驗:
(1) BiLSTM-CRF。該模型是經(jīng)典的序列標注模型。輸入使用Skip-gram模型預訓練的字向量,LSTM隱藏單元數(shù)為128,層數(shù)為2,dropout為0.5。
(2) Lattice-LSTM-CRF。該模型的輸入字向量來自于預訓練的詞典gigaword_chn.all.a2b.uni.ite50.vec,它是基于大規(guī)模標準分詞后的中文語料庫Gigaword使用word2vec工具訓練得到的,共包括704 400個字符和詞。詞向量來自ctb.50d.vec,它是基于CTB6.0(Chinese Treebank 6.0)語料訓練得到的。LSTM隱藏單元數(shù)為200,層數(shù)為2,向量維度為50,dropout為0.5,學習率為0.015,優(yōu)化器使用SGD。
(3) FLT-CRF。該實驗輸入的字向量和詞向量及使用的詞典與Lattice-LSTM-CRF保持一致。參數(shù)設置Transformer為1層,學習率為0.001,Attention頭數(shù)為8,維度為20,優(yōu)化器使用Adam。
表3列出了不同模型的實驗結果。
表3 不同模型實驗結果(%)
實驗結果表明,本文模型FLT-CRF在細粒度命名實體數(shù)據(jù)集上的效果要優(yōu)于目前主流的中文命名實體識別模型。從表3可以看出,與基于字的BiLSTM-CRF模型相比,Lattice-LSTM-CRF模型精確率提高了3.79百分點、召回率提高了5.07百分點、F1值提高了4.45百分點,這是因為Lattice-LSTM模型引入了外部詞典,將潛在的詞語信息融入了字特征表示中,表明了詞信息在命名實體識別任務中的重要性。與Lattice-LSTM-CRF模型相比,FLT-CRF模型的精確率提高2.15百分點、召回率提高1.49百分點、F1值提高1.81百分點,這是因為Self-Attention比LSTM對遠距離依賴關系具有更強的抽取能力,并且能夠利用任意元素間的相對位置信息,因此在識別精確度上有較大提升。
為了發(fā)現(xiàn)FLT-CRF在運行效率方面的表現(xiàn),表4給出了在本文實驗環(huán)境配置下Lattice LSTM-CRF和FLT-CRF每次epoch運行所需的平均訓練時間。將Lattice LSTM-CRF的batch_size設為1,FLT-CRF的batch_size設為16。
表4 運行時間對比
可以看出,FLT-CRF訓練運行效率比Lattice LSTM-CRF高出10.57倍。這是因為Lattice LSTM是有向無環(huán)圖結構模型,無法進行批處理,導致模型運行速度較慢。而FLT-CRF用Self-Attention代替了循環(huán)神經(jīng)網(wǎng)絡,將網(wǎng)格結構展開成一種平面的形式,可以充分利用GPU的并行計算資源,因此計算效率得到很大的提升。
為了驗證本文構建的增強型字向量表示有助于提升FLT-CRF模型效果,設計了以下三組對比實驗:
方案1將BERT-wwm-CRF模型作為基線模型。
方案2將BERT-wwm與FLT-CRF模型結合,輸入的字向量表示僅由BERT-wwm產(chǎn)生。
方案3將本文2.1節(jié)構建的增強型字向量作為FLT-CRF模型的字向量輸入。
方案2和方案3的詞向量都通過詞典映射獲取,使用的詞典和參數(shù)保持一致,實驗結果如表5所示。
表5 不同輸入字向量實驗結果(%)
實驗結果表明,將BERT-wwm運用到FLT-CRF模型中,與基于詞典映射的方法相比,F1值由76.42%提升到了82.17%,這一方面是由于BERT-wwm的強大特征表示能力,對輸入可以進行深層次的語義表達,另一方面是因為FLT-CRF可以更充分地建模這些語義信息,使得結果得到提升。方案2使用增強型字向量將模型效果提升到了82.80%,表明了將可能存在的分詞信息嵌入到字向量中可以增強字向量表示有助于提升FLT-CRF的識別效果,例如在測試句子“住房和城鄉(xiāng)建設部部長”中,“住房和城鄉(xiāng)建設部”整體是政府部門實體,在沒有引入增強型字向量時因未能正確劃分實體邊界,將“城鄉(xiāng)建設部”標記為一個實體,忽略了“住房和”三個字,但引入增強型字向量后,由于嵌入了潛在分詞“住房和城鄉(xiāng)建設”“住房和城鄉(xiāng)建設部”的信息,從而使得該實體被正確地識別出來。
針對現(xiàn)有基于字的模型無法充分利用句子詞語信息的問題,本文提出一種基于扁平化Lattice Transformer且融合詞語信息的細粒度命名實體識別模型FLT-CRF,在識別性能和計算效率上比已有方法得到較大提升。結合BERT-wwm可取得更好的實驗結果。下一步考慮將Lattice Transformer結構結合到復雜的實體識別任務中,比如嵌套實體識別和跨域實體識別,并探索該模型在其他領域的識別性能。