王 譚,陳金廣,馬麗麗
(西安工程大學(xué)計算機科學(xué)學(xué)院,陜西 西安 710048)
命名實體識別(Named Entity Recognition,NER)[1]是指從一段非結(jié)構(gòu)化文本中識別、分類和抽取指定的命名實體,是知識庫構(gòu)建[2]、信息檢索[3]和問答系統(tǒng)[4]等自然語言處理任務(wù)的重要基礎(chǔ)。
與英文等具有天然分隔符的語言不同,中文實體的邊界更難界定。研究表明,在中文NER 領(lǐng)域,基于字符的方法優(yōu)于基于詞的方法[5-6]。但是基于字符的方法不能充分利用已知的詞匯信息和詞匯間的序列信息,因此詞典信息的引入對基于字符的中文NER模型的提升最為明顯。Zhang 等人[7]提出的Lattice-LSTM 模型,把所有字符和字符在詞典中匹配到的詞匯編碼為一個有向無環(huán)圖(Directed Acyclic Graph,DAG),后續(xù)通過訓(xùn)練讓模型自主選擇一條正確的路徑。Liu 等人[8]對Lattice-LSTM 進行了修改,提出了WC-LSTM 模型,該模型使用4 種不同策略將詞匯信息進行編碼,并把詞匯信息設(shè)置為固定大小的向量用于批量訓(xùn)練。Ma 等人[9]同樣借鑒了Lattice-LSTM 模型的思想,提出了SoftLexicon 方法,將句子中的字符與詞典中的詞匯進行匹配,用固定長度向量表示的詞匯信息與字符表示相結(jié)合,避免設(shè)計復(fù)雜的序列建模結(jié)構(gòu),達到了更快的推理速度和更好的性能。Li 等人[10]提出了FLAT 模型,該模型使用了一種新的編碼方法對詞匯信息進行編碼,將Lattice結(jié)構(gòu)轉(zhuǎn)化為由跨度組成的平面結(jié)構(gòu)。FLAT 不僅能利用Transformer[11]的位置編碼獲取長距離的依賴,且具有并行化的能力。
近年來,ELMO[12]、GPT[13]、BERT[14]、ERNIE[15]等動態(tài)上下文嵌入表示陸續(xù)被提出,基于Transformer結(jié)構(gòu)的預(yù)訓(xùn)練語言模型在自然語言處理領(lǐng)域被廣泛應(yīng)用,同時體現(xiàn)了遠超傳統(tǒng)方法的性能。但是深度學(xué)習(xí)網(wǎng)絡(luò)的性能嚴重依賴大量的人工標記數(shù)據(jù),在小規(guī)模數(shù)據(jù)集上難以充分學(xué)習(xí)相關(guān)的語義語法知識。Reimers 等人[16]提出了SBERT(Sentence-BERT)模型,用于聚類、基于語義的信息檢索等任務(wù)中,計算2 個句子間的相似程度。使用孿生網(wǎng)絡(luò)和三胞胎網(wǎng)絡(luò)生成具有語義的句子表示,可以通過余弦相似度、曼哈頓距離、歐氏距離等方法尋找語義相近的句子。本文受到SBERT 的啟發(fā),希望將其生成的帶有語義信息的句子嵌入NER 任務(wù)中,通過訓(xùn)練讓模型學(xué)習(xí)從相似的句子中尋找相似實體,幫助模型學(xué)習(xí)相似實體之間的關(guān)系,以獲得更好的實體識別效果。
本文提出的融合詞典信息和句子語義的中文命名實體識別(LS-NER)模型,結(jié)構(gòu)如圖1 所示。該模型首先使用基于大規(guī)模語料庫訓(xùn)練的預(yù)訓(xùn)練語言模型BERT 生成動態(tài)上下文字符嵌入,使用SoftLexicon方法匹配詞典中的詞匯,引入詞匯先驗信息,然后使用SBERT 接受整個句子作為輸入,提取包含語義信息的句子嵌入,作為特征融合層的輸入之一。由于SBERT 常用于計算文本相似度,并未在NER 領(lǐng)域進行應(yīng)用,為了讓模型更好地融合學(xué)習(xí)句子嵌入中的語義信息,本文設(shè)計特征融合層,根據(jù)權(quán)重動態(tài)地進行語義特征和句子信息的融合。
圖1 模型的總體結(jié)構(gòu)
BERT 是當(dāng)前最優(yōu)秀的預(yù)訓(xùn)練語言模型之一,其出色的特征抽取能力為各項任務(wù)帶來的性能提升在多個研究[14]中均已展現(xiàn)。本文使用BERT生成基礎(chǔ)的字符嵌入。對于長度為n的輸入文本其中ci表示文本中第i個字符。將文本中的第i個字符輸入BERT模型得到對應(yīng)字符的動態(tài)上下文嵌入xci:
接下來,使用SoftLexicon 方式引入字符對應(yīng)的潛在詞信息。首先將字符在詞典中匹配到的所有詞匯分為B、M、E、S這4 個集合,其中,集合B包含以當(dāng)前字符為開頭的詞匯,集合M包含當(dāng)前字符在詞匯中部(除去首位的位置)的詞匯,集合E包含以當(dāng)前字符為結(jié)尾的詞匯,如果當(dāng)前單個字符即為一個詞匯,那么集合S包含該詞匯。ci對應(yīng)的集合由公式(2)計算:
其中,wi,k表示以字符ci開頭和字符ck結(jié)尾的詞匯,wj,k表示以字符cj開頭和字符ck結(jié)尾的詞匯,wj,i表示以字符cj開頭和字符ci結(jié)尾的詞匯,L表示詞典。
在獲得當(dāng)前字符對應(yīng)的詞匯集合后,統(tǒng)計在訓(xùn)練集和測試集中各詞匯出現(xiàn)的頻率,將頻率作為權(quán)重進行歸一化處理,并根據(jù)權(quán)重將獲得的詞匯集壓縮為固定維度的向量,例如詞匯集S的向量v(S)計算方式如式(3)和式(4)所示:
其中,ew(w)表示詞嵌入的查找表,z(w)表示詞匯w在詞典中出現(xiàn)的頻率。與式(3)類似,可以將字符在詞典中匹配到的其他3 種詞匯集合轉(zhuǎn)換為向量表示,即:v(B),v(M),v(E)。
連接字符嵌入和潛在詞的向量表示為:
最后得到詞匯信息增強的字符嵌入:
為了信息的完備性以及可恢復(fù)性,在實際訓(xùn)練中,每一個字符都將匹配到對應(yīng)的4 個集合。若集合為空,則向集合中添加特殊符號[NONE]。圖2 展示了字符“京”“長”和“橋”匹配到的4個集合。
圖2 匹配集合實例
常用獲得預(yù)訓(xùn)練句子嵌入的方法有2 種:計算句子中所有標碼輸出的平均值和使用開始標志[CLS]位置的輸出向量。相關(guān)研究[16]中的實驗結(jié)果表明,在計算文本相似度時,這2 種方式得到的句子嵌入表現(xiàn)的效果并不理想。針對該問題,SBERT 對BERT 進行修改,針對不同的訓(xùn)練數(shù)據(jù)分別使用孿生網(wǎng)絡(luò)和三胞胎網(wǎng)絡(luò)更新模型參數(shù),并計算所有標碼輸出的平均值作為整個句子的嵌入表示。
孿生網(wǎng)絡(luò)使用相同的編碼器對2 段文字的特征進行交互。在進行分類任務(wù)時,將文字A、B輸入到同一個BERT 中,使用[CLS]位置向量或者所有字符向量的均值得到A的初始句子向量u以及B的初始句子向量v,拼接u、v和二者的對應(yīng)位置元素的差值向量,進行線性變換后通過一個softmax 層。進行分類任務(wù)時設(shè)定目標函數(shù)為:
其中,Wt∈R3n×k是可訓(xùn)練參數(shù),n是句子嵌入的維度,k是標簽數(shù)量。
計算2 個句子嵌入之間的余弦相似度時,使用均方誤差損失作為目標函數(shù):
三胞胎網(wǎng)絡(luò)的輸入由主句sa、相似文本sp和不相似文本sn這3 個部分組成,網(wǎng)絡(luò)通過訓(xùn)練縮小類內(nèi)距離,增大類間距離。網(wǎng)絡(luò)的訓(xùn)練目標是最小化其損失函數(shù),損失函數(shù)為:
式中,‖ . ‖表示歐氏距離,ò 是邊緣參數(shù),保證sp到sa的距離至少比sn多ò,ò在訓(xùn)練時設(shè)為1。
經(jīng)過微調(diào)后的SBERT 將輸入的整個句子C向量化得到句子嵌入xs:
該句子嵌入具有深層次的句子特征,能夠通過余弦相似度等度量方式判斷句子的相似程度。
SBERT 設(shè)計的最初目的是生成句子嵌入用于計算句子間的相似程度,本文為了將其包含的句子特征用于識別實體,設(shè)計了3 種連接方式完成模型對句子信息的學(xué)習(xí)融合:
1)直接連接,這也是NER領(lǐng)域最常用的方法,使用向量拼接的方式連接2 個特征嵌入,即x=[xc;xs]。這種方式最顯著的特征是,默認2 個嵌入間的信息互不交互。
2)使用基于自注意力的連接方式。通常來說,如果直接進行向量拼接,只是簡單地將2 種信息進行疊加,并不能充分利用句子嵌入中的深層特征,在后文實驗結(jié)果中也體現(xiàn)出直接連接對句子信息的利用率不高。因此這種方式在連接字符嵌入和句子嵌入后的混合嵌入上進行自注意力的計算,通過自注意力層融合句意和詞義特征,進一步增強相似句子中相似實體的關(guān)聯(lián)性:
3)基于權(quán)重的動態(tài)連接。自注意力機制的網(wǎng)絡(luò)較為復(fù)雜,參數(shù)較多,在面對Weibo 這種小數(shù)據(jù)集時,容易造成過擬合。針對該問題,受Lattice-LSTM[7]的啟發(fā),本文提出類似注意力機制的基于權(quán)重的動態(tài)連接方法,具體連接方式為:
其中,w是可學(xué)習(xí)的權(quán)重參數(shù),σ是sigmoid 激活函數(shù),conv是卷積操作。
句子嵌入代表的是整個句子的信息,所以需要在句子層面進行計算分析。但是由于不同的句子中字符數(shù)量不同,導(dǎo)致每個句子的維度也是不相同的。因此,在連接字符嵌入和句子嵌入后,使用一維卷積進行卷積操作,替代一般的矩陣乘法運算,再通過一個全連接層存儲學(xué)習(xí)到的參數(shù),使用sigmoid 函數(shù)控制其輸入結(jié)果在0~1之間,即為權(quán)重值。再根據(jù)注意力權(quán)值,動態(tài)的結(jié)合相關(guān)信息。
在特征融合層的上層,使用BiLSTM-CRF 結(jié)構(gòu)作為LS-NER的序列標記層。雙向長短期記憶網(wǎng)絡(luò)(Bidirectional Long-Short Term Memory,BiLSTM)是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò),更善于發(fā)現(xiàn)和利用輸入文本的雙向長距離依賴。Huang 等人[17]提出了BiLSTMCRF 結(jié)構(gòu)用于標記序列,在英文NER 任務(wù)中,該結(jié)構(gòu)被廣泛應(yīng)用且在多項研究中達到最優(yōu)性能。鑒于以上經(jīng)驗,本文將該結(jié)構(gòu)用于中文NER任務(wù)中。
本文實驗在Linux4.15.0 操作系統(tǒng)下進行,采用Pytorch 框架1.11 版本,硬件顯卡型號為NVIDIA Ge-Force RTX 3070,CUDA 11.3版本。
2.1.1 數(shù)據(jù)集
在4個常用的中文數(shù)據(jù)集上對模型的性能進行評估,包括新浪財經(jīng)收集的金融數(shù)據(jù)集Resume[7],共1027份簡歷摘要,包含8類命名實體;新浪微博收集的社交媒體數(shù)據(jù)集Weibo[18],共1890條微博信息,包含4類命名實體;微軟亞洲研究院標注的新聞領(lǐng)域數(shù)據(jù)集MSRA[19],共5 萬多條標注數(shù)據(jù),包含3 類命名實體;OntoNote 的最終版本OntoNote5.0[20],包括早期的4 個版本的所有內(nèi)容并添加來自新聞、廣播、電話和網(wǎng)絡(luò)數(shù)據(jù)等領(lǐng)域的內(nèi)容。數(shù)據(jù)集的數(shù)據(jù)分布如表1所示。
表1 各數(shù)據(jù)集的數(shù)據(jù)分布 單位:條
2.1.2 實驗參數(shù)
小數(shù)據(jù)集Resume 和Weibo 的隱藏單元數(shù)量設(shè)為200,大數(shù)據(jù)集OntoNotes 和MSRA 的隱藏單元數(shù)量設(shè)為300;Dropout[21]設(shè)為0.5;使用Adam[22]優(yōu)化模型參數(shù),Weibo 的初始學(xué)習(xí)率設(shè)為0.005,其余3 個數(shù)據(jù)集的初始學(xué)習(xí)率均為0.0015;batchsize設(shè)為50。
2.1.3 詞典的獲取
本文與文獻[7]應(yīng)用相同的詞典信息,使用基于Chinese treebank 6.0 語料庫訓(xùn)練得到的詞向量ctb.50d.vec中所有的詞匯信息構(gòu)建外部詞典。
2.1.4 評價指標
本文采用準確率(Precision,P)、召回率(Recall,R)和F1 分數(shù)作為評價指標。其中F1 分數(shù)是準確率和召回率的加權(quán)調(diào)和平均,能夠綜合地評價模型的實際性能。評價指標的計算公式如下:
2.2.1 對比實驗
對比的基準方法包括:Zhang 等人[7]提出的Lattice-LSTM 結(jié)構(gòu),將字符序列中的字符與詞典詞匯進行匹配并根據(jù)一定的權(quán)重連接;Yan等人[23]提出的基于Transformer 的NER 架構(gòu),對字符級特征和詞級特征進行融合建模;Gui等人[24]提出的基于詞典的圖神經(jīng)網(wǎng)絡(luò),融合全局信息用于NER 任務(wù);Cao 等人[25]提出的對抗性遷移學(xué)習(xí)框架,利用任務(wù)共享的邊界信息用于實體識別;Jie等人[26]設(shè)計的依賴引導(dǎo)模型,能夠編碼完整的依賴樹以學(xué)習(xí)句法關(guān)系,同時由于基線模型未在OntoNotes5.0 數(shù)據(jù)集上驗證,本文使用的OntoNotes5.0數(shù)據(jù)集的對比結(jié)果來自于文獻[27]。除了其他研究中的先進模型,本文還將不添加句子嵌入,僅使用融合了詞匯信息的字符嵌入作為輸入的BERT+SoftLexicon模型作為對比基準之一。
首先,本文分別在小型數(shù)據(jù)集Resume、Weibo 和大型數(shù)據(jù)集MSRA、OntoNotes5.0 上與其他先進方法進行對比實驗,定量結(jié)果如表2 和表3 所示,表中的LS-NER在特征融合層使用基于權(quán)重的動態(tài)連接方式。
表2 Resume數(shù)據(jù)集和Weibo數(shù)據(jù)集上的性能
表3 MSRA數(shù)據(jù)集和OntoNotes5.0數(shù)據(jù)集上的性能
在規(guī)模較小的數(shù)據(jù)集中,語義相近的句子往往具有相似的命名實體,在NER 任務(wù)中加入句子嵌入可以使用共有特征提高識別效果。Resume 數(shù)據(jù)集和Weibo 數(shù)據(jù)集分別是金融領(lǐng)域和社交媒體領(lǐng)域的小數(shù)據(jù)集,在沒有外部信息輸入的情況下,本文提出的LS-NER 模型對比之前研究的F1 分數(shù)有了一定的提高,在Resume 數(shù)據(jù)集上較基線最優(yōu)模型高約0.05 個百分點,該模型融合了全局信息。同時,比未添加句子嵌入的BERT+SoftLexicon 模型高出約0.15 個百分點。在Weibo 數(shù)據(jù)集上,LS-NER 模型的F1 分數(shù)較基線最優(yōu)模型高約8.01個百分點,比未添加句子嵌入的BERT+SoftLexicon模型高出約2.26個百分點。
而在大型數(shù)據(jù)集MSRA、OntoNotes5.0 上,LSNER 的性能均低于不添加句子嵌入的模型(BERT+SoftLexicon)。
2.2.2 特征融合方式的選擇
接下來測試模型在特征融合層選擇不同的特征融合方式后在4 個數(shù)據(jù)集上的性能表現(xiàn),其中LSNER-z、LS-NER-selfatt 和LS-NER-att 分別表示在特征融合層使用直接連接、基于自注意力機制連接的特征融合方式和基于權(quán)重的動態(tài)連接方式,定量結(jié)果如表4、表5 所示。同時,測試不同模型的計算速度,結(jié)果如表6所示。
表4 使用不同連接方式的模型性能對比
表5 MSRA數(shù)據(jù)集和OntoNotes5.0數(shù)據(jù)集上的性能
表6 Resume數(shù)據(jù)集和Weibo數(shù)據(jù)集上的性能和測試時的計算速度
相同的特征融合方式對不同的數(shù)據(jù)集會帶來不同程度的影響。在Resume 數(shù)據(jù)集上,使用自注意力機制進行連接的模型(LS-NER-selfatt)效果最優(yōu),但是從表6 中可以看到,采用權(quán)重連接的模型(LS-NER-att)的F1分數(shù)對比最優(yōu)的模型僅下降了約0.48個百分點,并且推理速度在3種方式中最快。在Weibo數(shù)據(jù)集上,使用自注意力機制連接的模型(LS-NER-selfatt)性能下降較大,較直接連接的方式下降了約9.39個百分點。筆者認為可能是由于Weibo 數(shù)據(jù)集的數(shù)據(jù)量較小,而自注意力機制的網(wǎng)絡(luò)較為復(fù)雜,參數(shù)較多,導(dǎo)致模型過擬合。綜上所述,本文建議在小數(shù)據(jù)集上使用權(quán)重連接方式進行特征融合,該方法能兼顧性能和計算速度,并防止在缺少標記數(shù)據(jù)時模型過擬合。
在大型數(shù)據(jù)集上的表現(xiàn),結(jié)果如表5 所示。在MSRA 數(shù)據(jù)集上直接連接句子嵌入的模型(LS-NERz)的F1分數(shù)僅比不添加句子嵌入的模型(BERT+Soft-Lexicon)提高了約0.06 個百分點,而使用基于權(quán)重(LS-NER-att)和基于自注意力機制(LS-NERselfatt)的特征融合方式連接句子嵌入后,甚至對模型的性能造成一定的負面影響。導(dǎo)致對應(yīng)模型的F1分數(shù)分別降低了約0.33和1.01個百分點。同時,這種影響在OntoNotes5.0 數(shù)據(jù)集上也有所體現(xiàn),直接連接句子嵌入模型的F1分數(shù)比不添加句子嵌入的模型提高了約0.29個百分點,而使用權(quán)重和自注意力機制連接句子嵌入的模型的F1 分數(shù)分別降低了約21.41 和12.02 個百分點。在大型數(shù)據(jù)集上,模型通過提供的大量標記數(shù)據(jù)學(xué)習(xí)到充足的特征,因此特征融合層使用直接連接句子嵌入的方式提升有限,同時使用基于自注意力機制連接的特征融合方式和基于權(quán)重的動態(tài)連接方式都會不同程度地對部分信息進行舍棄,從而導(dǎo)致部分信息的丟失,甚至可能擾亂網(wǎng)絡(luò)已經(jīng)訓(xùn)練好的參數(shù),影響模型的識別效果,同時還會增加不必要的計算量。因此在大型數(shù)據(jù)集上不建議添加句子嵌入。
Sentence-BERT 能夠生成帶有語義的固定維度的句子嵌入表示,通過計算2 個句子嵌入之間的距離可以判斷句子的相似程度。本文從相似的句子中尋找相似實體,將Sentence-BERT 生成的帶有句子語義信息的向量作為模型的輸入之一,同時,根據(jù)加權(quán)策略編碼詞典信息并與字符嵌入相融合。為了幫助模型學(xué)習(xí)多級特征,本文設(shè)計了一種類似注意力機制的權(quán)重連接方式。實驗結(jié)果表明,本文提出的LS-NER模型在小數(shù)據(jù)集上得到了較為優(yōu)秀的性能。