顧 澤 雷景生 唐小嵐
(上海電力大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 上海 201300)
自然語言理解包括多種多樣的任務(wù),如文本蘊(yùn)含、問答、語義相似度評估和文檔分類[1]。命名實(shí)體識別是自然語言處理的基礎(chǔ)任務(wù)之一,主要是研究從文本中識別實(shí)體,如人名、地名、時間和組織機(jī)構(gòu)名等。命名實(shí)體識別還被廣泛應(yīng)用于信息提取[2]、問答系統(tǒng)[3]、句法分析[4]和機(jī)器翻譯[5]等應(yīng)用領(lǐng)域,是從文本信息中自動提取潛在知識的第一步,也是信息提取和知識圖領(lǐng)域的重要組成部分[6-7],其研究應(yīng)用范圍廣,具有重要意義。
工商業(yè)領(lǐng)域的迅速發(fā)展,從商業(yè)、財經(jīng)類新聞文本中抽取關(guān)鍵信息,輔助分析當(dāng)前經(jīng)濟(jì)發(fā)展?fàn)顩r和發(fā)展關(guān)系,越來越引起了廣泛關(guān)注。本文目的是識別工商業(yè)領(lǐng)域中重要的幾類實(shí)體,包括公司負(fù)責(zé)人(CPER)、公司名(CORG)和公司地址(CLOC)等,是統(tǒng)計分析商業(yè)經(jīng)濟(jì)發(fā)展詳情的關(guān)鍵概念。例如:“曹萍,于2008年3月5日注冊創(chuàng)辦了蘇州太谷電力股份有限公司,注冊資本達(dá)6 500萬元人民幣,是一家專業(yè)致力于電力行業(yè)電能管理技術(shù)研究的專業(yè)公司,現(xiàn)位于蘇州工業(yè)園區(qū)……”?!疤K州太谷電力股份有限公司”是公司名,“曹萍”是公司法人,“蘇州工業(yè)園區(qū)”是公司位置。
基于神經(jīng)網(wǎng)絡(luò)模型的中文命名實(shí)體識別(NER)依賴于單詞表征,單詞表征又依賴于單詞、字符的任意組合。根據(jù)NER任務(wù)中語料庫的特征,廣泛使用預(yù)先訓(xùn)練好的單詞嵌入來提高一系列NLP任務(wù)的性能已被得到了驗(yàn)證和改進(jìn)。單獨(dú)使用字符嵌入會導(dǎo)致單詞之間的特征關(guān)系缺失,因此單詞嵌入和字符嵌入的組合使用方式被應(yīng)用于NER任務(wù)。
在NER的任務(wù)中,由于中文命名實(shí)體的構(gòu)詞、特殊性,同一個詞在不同的應(yīng)用中有不同的含義。例如“蘋果”是一種常見水果的名稱,也是一家企業(yè)的名字,因此,獲取上下文信息是至關(guān)重要的。最近,Peters等[8]介紹了一種Embeddings from Language Model(ELMo)深語境化的詞表示模型,稱為嵌入語言模型。ELMo模型研究的重點(diǎn)是,根據(jù)一個字在不同句子中的特點(diǎn)生成對應(yīng)的詞向量,且生成的詞向量與放入哪個特定環(huán)境的語義中沒有太多關(guān)聯(lián)。該模型解決了漢語中存在句法結(jié)構(gòu)和語義的關(guān)鍵問題。在不考慮時間成本的情況下,其思想給了后來的研究提供了思路。
在過去幾年中,傳統(tǒng)的機(jī)器學(xué)習(xí)方法如條件隨機(jī)場(CRF)[9]和最大熵[10]已經(jīng)被用于NER任務(wù)。CRF已被證明在自然語言處理(NLP)的許多領(lǐng)域是有效的,包括序列標(biāo)簽任務(wù)和命名實(shí)體識別(NER)。與其他統(tǒng)計模型相比,CRF在主成分分析中使用了具有大量特征的觀察序列,能在特定領(lǐng)域的NER任務(wù)中的提取該領(lǐng)域的知識特征。在最近的神經(jīng)網(wǎng)絡(luò)模型中,特別是LSTM模型,被證明對NER任務(wù)是有效的。LSTM支持自動利用正交特征,能結(jié)合上下文,提取句法特征,并且能從多層結(jié)構(gòu)提取出語義特征。但是,如果訓(xùn)練數(shù)據(jù)缺乏,LSTM模型也很難學(xué)習(xí)完整的標(biāo)記規(guī)則,并且會導(dǎo)致全局序列執(zhí)行不能優(yōu)化處理。文獻(xiàn)[11]提出了單向的GPT,利用Transformer編碼器進(jìn)行預(yù)訓(xùn)練,獲取句子上下文信息。文獻(xiàn)[12]提出BERT,一種多層雙向Transformer微調(diào)的編碼器,使用了self-attention機(jī)制,能依賴于左右兩側(cè)的上下文獲取特征表示,使得模型的上下層直接全部互相連接。BERT的雙向Transformer機(jī)制在11個任務(wù)中均取得了不錯的效果。文獻(xiàn)[13]提出的RoBERTa模型是BERT的改進(jìn)版(A Robustly Optimized BERT)。它在模型規(guī)模、算力和數(shù)據(jù)上,增強(qiáng)了字的語義表示,取消了下一句預(yù)測(NSP)任務(wù),采用動態(tài)Masking,與BERT相比優(yōu)勢更大。
在實(shí)際的應(yīng)用中,用于學(xué)習(xí)這些特定任務(wù)的標(biāo)記數(shù)據(jù)卻很少,而且很難獲得,這導(dǎo)致了模型難以充分運(yùn)行。文獻(xiàn)[1]提出了一種結(jié)合無監(jiān)督預(yù)訓(xùn)練和監(jiān)督微調(diào)的語言理解任務(wù)的半監(jiān)督方法。受此啟發(fā),本文采用半監(jiān)督的訓(xùn)練方法,使用標(biāo)記和未標(biāo)記的數(shù)據(jù)來提高工商業(yè)領(lǐng)域中NER的性能。
本文提出一種基于工商業(yè)領(lǐng)域的半監(jiān)督實(shí)體識別模型ICFNER。ICFNER模型是基于雙向長短期記憶、條件隨機(jī)場組成(BiLSTM-CRF)的基本結(jié)構(gòu),并融合RoBERTa做預(yù)訓(xùn)練時的特征提取,實(shí)現(xiàn)工商業(yè)領(lǐng)域?qū)嶓w識別。實(shí)驗(yàn)表明,ICFNER模型利用較少的標(biāo)記數(shù)據(jù)集,能夠更大限度地提取字與字之間的關(guān)系,更加符合識別工商業(yè)領(lǐng)域中實(shí)體識別任務(wù)的需求。
深度學(xué)習(xí)已經(jīng)成為NER任務(wù)的一個突出應(yīng)用。利用深度學(xué)習(xí)方法可以不再依賴手工制作的數(shù)據(jù)而實(shí)現(xiàn)自動提取復(fù)雜的特征,這些特征同時也具有更豐富的表達(dá)能力。條件隨機(jī)場(CRF)憑借在主成分中的分析的優(yōu)勢已被證明在自然語言處理的許多領(lǐng)域是有效的,命名實(shí)體識別(NER)任務(wù)就是其中之一。
Sobhana等[14]基于條件隨機(jī)場(CRF)開發(fā)了一個應(yīng)用單詞的上下文信息和單詞特征來預(yù)測各種命名實(shí)體(NER)類別的文本任務(wù)系統(tǒng)。
LSTM使用記憶細(xì)胞取代RNN的普通神經(jīng)單元,實(shí)驗(yàn)結(jié)果表明LSTM在處理長時間依賴效應(yīng)問題上表現(xiàn)不錯。這也讓LSTM語言模型能結(jié)合上下文內(nèi)容學(xué)習(xí)到語義更豐富的詞表征。
Limsopatham等[15]設(shè)計的NER的LSTM模型被用于解決推特上短文本的日??谡Z化的問題。Hammerton[16]提出了一種方法,應(yīng)用LSTM來完成命名實(shí)體識別的任務(wù),在實(shí)驗(yàn)結(jié)果上取得了不錯的效果。
許多研究表明,不同學(xué)習(xí)系統(tǒng)的組合是獲得優(yōu)異性能的更好方法。一種是具有序列條件隨機(jī)場的雙向長短記憶神經(jīng)網(wǎng)絡(luò)(BiLSTM-CRF)就是一種新模型。該模型與Huang等[17]提出了一種雙向長短記憶神經(jīng)網(wǎng)絡(luò)(BiLSTM)語境模型相似,通過該模型獲得語境特征,并利用單詞級標(biāo)簽信息,較少依賴于單詞嵌入,獲得了較好的穩(wěn)健性和更高的精度。類似的方式也被應(yīng)用在多個領(lǐng)域,如:Xu等[18]的醫(yī)學(xué)領(lǐng)域中文實(shí)體識別,該方法模型依賴于從監(jiān)督數(shù)據(jù)集訓(xùn)練的字符級單詞表示來學(xué)習(xí)特征;Lample等[19]提供了一種基于LSTM和CRF的混合標(biāo)記模型結(jié)構(gòu),該模型類似于文獻(xiàn)[17]中提出的方法,不僅能從未標(biāo)記語料庫訓(xùn)練的無監(jiān)督單詞表示,而且能從標(biāo)記語料庫訓(xùn)練的字符級單詞表示。
文獻(xiàn)[13]提出一個改進(jìn)的訓(xùn)練BERT模型的方法,我們稱之為RoBERTa,RoBERTa模型包含無監(jiān)督的Pre-train和有監(jiān)督的Fine-tune,改進(jìn)了BERT訓(xùn)練不足。在整個訓(xùn)練過程中,采用了更大的模型參數(shù),嘗試了更大的bacth size和更多的訓(xùn)練集。RoBERTa建立在BERT的語言掩蔽策略的基礎(chǔ)上,修改BERT中的關(guān)鍵超參數(shù),刪除BERT中對結(jié)果影響不大的下一個句子預(yù)測(NSP)任務(wù),采用動態(tài)掩碼方式訓(xùn)練模型,并使用更大的bacth size進(jìn)行訓(xùn)練。RoBERTa也接受了比BERT多一個數(shù)量級的訓(xùn)練,耗時更長。這使得RoBERTa能夠表示比BERT更加豐富的特征信息,而且能更好地推廣到下游任務(wù)中。
雙向長短期記憶神經(jīng)網(wǎng)絡(luò)(BiLSTM)模型和條件隨機(jī)場(CRF)模型的結(jié)合的優(yōu)勢,已在本文的1.3節(jié)中詳細(xì)闡述。本文設(shè)計的ICFNER模型是利用RoBERTa、BiLSTM-CRF模型,結(jié)合半監(jiān)督的訓(xùn)練方式來完成我們的工商業(yè)領(lǐng)域語料庫實(shí)體提取任務(wù),這類似于Yang等[20]提出的框架。
該模型主要包括兩個階段:無監(jiān)督的Pre-train模型學(xué)習(xí)到更加普遍、更適用的表征;模型以很小的Fine-tune預(yù)訓(xùn)練后的模型遷移到一些特定的有監(jiān)督學(xué)習(xí)任務(wù)上。方法概述如圖1所示。
圖1 命名實(shí)體識別的模型框架
在第一階段,將大量被標(biāo)記過數(shù)據(jù)被輸入到預(yù)處理的語言模型中,利用RoBERTa預(yù)訓(xùn)練語言模型對預(yù)料字符進(jìn)行編碼,得到單個字符對應(yīng)的詞向量。在第二階段,將訓(xùn)練好的詞嵌入BiLSTM層,對輸入文本進(jìn)行雙向編碼,增強(qiáng)上下文相關(guān)的語義信息,最后將包含上下文信息的語義詞向量應(yīng)用于下一輪CRF模型層中進(jìn)行解碼,在CRF層中分類器中,輸出概率最大的標(biāo)簽序列,并最終通過該模型獲得測試數(shù)據(jù)的實(shí)體標(biāo)簽。
文獻(xiàn)[12]中的BERT(Bidirectional Encoder Representation from Transformers),一種基于微調(diào)的多層雙向Transformer的編碼器,該模型在預(yù)訓(xùn)練方法上模型提出了創(chuàng)新,采用掩碼語言模型和對下一句預(yù)測分別捕捉詞語和句子級別的表示特征。文獻(xiàn)[13]在文獻(xiàn)[12]的基礎(chǔ)上改進(jìn)了模型,在訓(xùn)練方法的基礎(chǔ)上,從以下幾個方面改進(jìn)了BERT模型:(1) 去掉下一句預(yù)測Next Sentence Prediction(NSP)任務(wù)。(2) 動態(tài)掩碼(mask)。BERT 依賴隨機(jī)掩碼和預(yù)測token。RoBERTa使用了動態(tài)掩碼:每次向模型輸入一個序列時都會生成新的掩碼模式。這樣,在大量數(shù)據(jù)不斷輸入的過程中,模型會逐漸適應(yīng)不同的掩碼策略,學(xué)習(xí)不同的語言表征。(3) 文本編碼。Byte-Pair Encoding(BPE)是字符級和詞級別表征的混合,支持處理自然語言語料庫中的眾多常見詞匯。
Roberta模型進(jìn)一步增加詞向量模型泛化能力,采用Transformer[21]對文本中的字詞進(jìn)行編碼(Encoder)和解碼(Decoder)。Transformer分別有6層Encoder層和6層Decoder層,具有更深的層數(shù)和更好的并行性,在預(yù)測詞的時候能雙向綜合地考慮上下文特征。
基于上述的改進(jìn)方式使得Roberta模型獲得了更高的性能,可以通過無監(jiān)督的方式學(xué)習(xí)到一些特征,再遷移到特定的有監(jiān)督任務(wù)上,適用于從商業(yè)、財經(jīng)類新聞中抽取實(shí)體信息。
2.1.1 輸入表示
RoBERTa模型的輸入表示能夠在一個標(biāo)記序列中清楚地表示單個文本句子或一對文本句子。對于給定的詞,其輸入表示可以通過Token Embeddings、Segment Embeddings和Position Embeddings三個向量求和組成。Embedding的表述如圖2所示。
中文處理過程中可以是詞向量或是字向量,詞向量用Token Embeddings表示,CLS作為第一個詞的分類標(biāo)志,常常用于分類任務(wù)。在應(yīng)對兩個句子為輸入的分類任務(wù)時,Segment Embeddings常被用來區(qū)分句子之間的不同,Position Embeddings常被用來標(biāo)記序列位置所屬信息。Token Embeddings、Segment Embedding和Position Embeddings三個向量組成RoBERTa模型的輸入表示方式。
2.1.2動態(tài)mask
在預(yù)處理時,靜態(tài)mask對每個樣本只會進(jìn)行一次隨機(jī)mask,后續(xù)的每個訓(xùn)練步都采用相同的mask,每一個序列隨機(jī)選擇15%的默認(rèn)遮擋字符(以下稱為Tokens)替換成[MASK],為了消除與下游任務(wù)的不匹配,還對這15%的Tokens進(jìn)行如下遮擋方法:
(1) 80%的時間替換成[MASK];
(2) 10%不變;
(3) 10%的隨機(jī)替換成其他詞。
后續(xù)的每個訓(xùn)練步都采用相同的mask,之后不會再變化。在修改版靜態(tài)mask中,在預(yù)處理時將數(shù)據(jù)集拷貝10次,每次拷貝采用不同的mask。這等價于原始的數(shù)據(jù)集采用10種靜態(tài)mask來訓(xùn)練。
動態(tài)mask區(qū)別于靜態(tài)mask,在一開始沒有預(yù)處理的時候就執(zhí)行mask,把預(yù)訓(xùn)練的數(shù)據(jù)復(fù)制10份,每一份都隨機(jī)選擇15%的Tokens進(jìn)行Masking。也就是說,同樣的一句話有10種不同的mask方式,然后每份數(shù)據(jù)都訓(xùn)練N/10個epoch。動態(tài)mask并沒有在預(yù)處理時執(zhí)行mask,而是在每次向模型提供輸入時動態(tài)生成mask,這就相當(dāng)于在這N個epoch的訓(xùn)練中,每個序列被mask的Tokens是會時刻變化的,其表示方式如表1所示。
表1 動態(tài)mask方式
2.1.3Attention層
文獻(xiàn)[21]中Transformer模型完全拋棄了RNN和CNN等網(wǎng)絡(luò)結(jié)構(gòu),Attention層是RoBERTa模型重要的信息提取方式,經(jīng)過編碼來獲取上下文相關(guān)的語義信息特征是Attention層主要功能任務(wù)。Attention函數(shù)可以描述為映射一個請求和一系列鍵值對到一個輸出,其可以表示為{Ki,Vi|i=1,2,…,m},其中請求向量query(Q),鍵向量key(K),值向量value(V)長度相同,都屬于輸出向量。V是所有values的加權(quán),權(quán)重由query和key計算而來,計算方法分為三步:
第一步,計算比較Q和K的相似度,用f來表示:
f(Q,Ki)i=1,2,…,m
(1)
f函數(shù)可以用點(diǎn)乘方式實(shí)現(xiàn),表示為:
f(Q,Ki)=QTKi
(2)
第二步,將得到的相似度進(jìn)行Softmax操作,進(jìn)行歸一化,表示為:
(3)
第三步,針對計算出來的權(quán)重αi,對V中所有的values進(jìn)行加權(quán)求和計算,得到Attention向量,表示為:
(4)
計算流程如圖3所示。
圖3 Attention三個階段計算過程
Attention幫助解決了字符級詞語邊界區(qū)分難的問題,能夠一步到位捕捉到全局的聯(lián)系,能直接將序列進(jìn)行兩兩比較,其計算量為O(n2)。
應(yīng)用于序列數(shù)據(jù)的RNN是典型的神經(jīng)網(wǎng)絡(luò)模型,是傳統(tǒng)前饋神經(jīng)網(wǎng)絡(luò)的擴(kuò)展。RNN包含一個循環(huán)的隱藏狀態(tài),隱藏狀態(tài)的激活依賴于前一時間的激活。然而,梯度消失和梯度爆炸使得模型難以處理長文本。
LSTM中的門控記憶機(jī)制,能夠緩解長期依賴限制[22]。如圖3所示,LSTM單元包括三個門:一個輸入門i、一個遺忘門f和一個輸出門o。這些門包含一個sigmoid神經(jīng)網(wǎng)絡(luò)層和一個逐點(diǎn)乘法運(yùn)算,并被合并以可選地移除或添加信息。
在每一步時間t,LSTM的輸出被迭代以通過式(5)-式(9)計算。
it=σ(Wxixt+Whihi-1+WciCt-1+bi)
(5)
ft=σ(Wxfxt+Whfht-1+WcfCt-1+bf)
(6)
ot=σ(Wxoxt+Whoht-1+WcoCt+bo)
(7)
Ct=ftCt-1+itanh(Wxcxt+Whcht-1+bc)
(8)
ht=ot?tanh(ct)
(9)
式中:σ表示sigmoid激活函數(shù);?表示元素乘法;xt表示輸入向量。具有不同下標(biāo)的Wt分別表示輸入xt、輸出ot、存儲單元Ct和隱藏狀態(tài)ht的權(quán)重矩陣;b是三個門的偏置矩陣;it、ft和ot分別是時間步長t處的輸入門、遺忘門和輸出門向量,它們都具有與存儲單元向量Ct和隱藏向量ht相同的大小。
雙向長短期記憶BiLSTM是由前向的LSTM與后向的LSTM結(jié)合成,其編碼過程如圖4所示。前向LSTML接收信息形成向量{hL0,hL1,hL2,…},后向LSTMR依次形成向量{hR0,hR1,hR2,…},前向和后向的隱向量拼接得到{h0,h1,h2,…}。
圖4 BiLSTM編碼過程
數(shù)據(jù)中有許多長句,文本序列中提到的每個實(shí)體都可以依賴于長距離信息文本。雙向長短期記憶(BiLSTM)學(xué)習(xí)前一時刻的輸出權(quán)重和當(dāng)前時刻每個序列的輸入。此外,句子序列的過去(向后)和未來(向前)信息可以同時被BiLSTM中的前向網(wǎng)絡(luò)和后向網(wǎng)絡(luò)捕獲,從而獲得句子序列建模過程中的上下文信息。因此,該方法被用于在長句序列建模期間捕獲所有信息?;贚STM的這些特點(diǎn),本文利用BiLSTM來提取文物實(shí)體的長距離相關(guān)性。
LSTM的輸出是每個標(biāo)簽的預(yù)測分?jǐn)?shù),因此可以得到句子中每個單元的預(yù)測標(biāo)簽。然而,在命名實(shí)體識別任務(wù)中,不能保證每次預(yù)測的標(biāo)簽都正確預(yù)測,并且獨(dú)立分類是不充分的,因?yàn)槲谋局芯渥拥纳舷挛木哂性S多標(biāo)記約束。當(dāng)單獨(dú)標(biāo)記每個字符時,序列有它們自己的局限性。例如,總是有必要考慮順序標(biāo)簽之間的相關(guān)性,并對輸出標(biāo)簽之間的相關(guān)性建模[23]。CRF是一個判別概率無向圖模型,CRF考慮了鄰域中標(biāo)簽之間的相關(guān)性[24],它更關(guān)心句子的層次,而不是單個的位置。因?yàn)樵诒疚牡娜蝿?wù)中,并非獨(dú)立地對每個標(biāo)簽進(jìn)行解碼,而是將CRF層添加到BiLSTM-CRF網(wǎng)絡(luò)的BiLSTM層,并利用CRF對輸出標(biāo)簽進(jìn)行聯(lián)合建模。
BiLSTM-CRF網(wǎng)絡(luò)的輸入是序列X={x1,x2,…,xn},其中xi是輸入向量的第i個字,并且預(yù)測的輸出標(biāo)簽序列是Y={y1,y2,…,yn},對于輸入序列X.P,大小為n×k,對應(yīng)于雙向LSTM輸出的分?jǐn)?shù)矩陣,其中k表示輸出標(biāo)簽的數(shù)量。Pi,j表示第i個字符的第j個標(biāo)記的分?jǐn)?shù),該分?jǐn)?shù)定義如下:
(10)
式中:A表示大小為K+2的轉(zhuǎn)換分?jǐn)?shù)的方陣;Ayi表示從標(biāo)記y到標(biāo)記i的轉(zhuǎn)換值。句子的開始和結(jié)束標(biāo)記是y0和yn。
CRF利用一系列潛在函數(shù)來估計輸出標(biāo)簽序列的條件概率分布。公式如下:
(11)
式中:φ(x,y)代表特征向量,w是參數(shù)向量。所有可能的y上P(y|x,w)的累積和是Z(w,x)。
給定的訓(xùn)練集(Y,X)={xi,yi},i=1,2,…,n,用于通過最大化似然條件來訓(xùn)練模型。
w=arg maxwp(Y|X,w)
(12)
給定通過上述方法訓(xùn)練的輸入序列x和參數(shù)w,使模型最大化的標(biāo)簽序列y是訓(xùn)練的CRF的最終預(yù)測。
y*=arg maxyp(y|x,w)
(13)
CRF使用Viterbi算法,該算法可以有效地解決訓(xùn)練和解碼問題,以預(yù)測標(biāo)簽的最佳序列。CRF層考慮了序列之間的限制,可以通過模型訓(xùn)練自動學(xué)習(xí)這些約束,使最終的實(shí)體標(biāo)簽結(jié)果更加有效。
ICFNER模型是以RoBERTa的BiLSTM-CRF架構(gòu),將BiLSTM網(wǎng)絡(luò)和CRF模型結(jié)合起來,模型結(jié)構(gòu)如圖5所示。
圖5 基于語言模型(RoBERTa)的模型架構(gòu)
Tokens列表是模型的輸入,預(yù)測的實(shí)體類型是模型的輸出。預(yù)處理后的RoBERTa與剩余LSTM一起,用于從每個標(biāo)記的字符序列中學(xué)習(xí)信息豐富的形態(tài)學(xué)表示。然后,單詞表示將被傳遞到包含前向LSTM和后向LSTM的BiLSTM層,并通過利用左右上下文信息返回一個序列。BiLSTM網(wǎng)絡(luò)可以給輸出層提供一個序列點(diǎn)完整的上下文信息,這樣的輸出被輸入到通用CRF層。最后在CRF層,標(biāo)簽將被解碼和輸出??偟膩碚f,BiLSTM-CRF模型輸入的是詞向量,輸出的是每個單詞的預(yù)測的序列標(biāo)注。
按照圖5的步驟,ICFNER模型具體實(shí)現(xiàn)過程:
第一步:輸入層輸入文本內(nèi)容,向量表示層進(jìn)行編碼,進(jìn)入RoBERT層獲取字符序列之間的特征信息,編碼方式已在2.1.1節(jié)中詳細(xì)闡述。
第二步:進(jìn)入BiLSTM層,通過學(xué)習(xí)上下文的信息,輸出每個單詞對應(yīng)于每個標(biāo)簽的得分概率score(BiLSTM節(jié)點(diǎn)的輸出得分是一個矩陣)。
第三步:第二步中的score作為CRF層的輸入,CRF層通過學(xué)習(xí)標(biāo)簽之間的順序依賴信息,得到最終的預(yù)測結(jié)果。
第四步:擇優(yōu)比較CRF層最終預(yù)測結(jié)果,(如圖5所示,B-PER、I-PER、I-PER、O、O的最優(yōu)預(yù)測結(jié)果為0.9)得出最終預(yù)判。
數(shù)據(jù)集采用公開的SmoothNLP文本數(shù)據(jù)集,其公開的數(shù)據(jù)集達(dá)到8萬多條。對這些數(shù)據(jù)集中的數(shù)據(jù)文本采用IOB格式(Inside,Outside,Beginning)標(biāo)記方式表示,其中,詞條是一個命名實(shí)體的開始那么就標(biāo)記其為B標(biāo)簽,I標(biāo)簽指詞條在一個命名實(shí)體的內(nèi)部,O標(biāo)簽指詞條在一個命名實(shí)體的外部。標(biāo)注工具采用哈工大開源的產(chǎn)品pyltp,該工具能提供準(zhǔn)確的自然語言處理服務(wù)。在標(biāo)注時候做好標(biāo)簽類別定義(如地址、組織機(jī)構(gòu)等),標(biāo)記時盡量標(biāo)記完全、細(xì)致。對于出現(xiàn)的縮略詞進(jìn)行人工判斷之后直接標(biāo)注,可以實(shí)現(xiàn)直接對應(yīng)。
考慮到在工商業(yè)領(lǐng)域中數(shù)據(jù)集相對匱乏的問題,采用半監(jiān)的訓(xùn)練方式補(bǔ)充大量未標(biāo)記的語料庫來改進(jìn)訓(xùn)練數(shù)據(jù)集。為了避免標(biāo)記錯誤,會采用自學(xué)習(xí)算法,隨機(jī)選取少量標(biāo)記數(shù)據(jù)進(jìn)行預(yù)處理,逐步從非分類樣本中獲得的假設(shè),幫助預(yù)測非分類數(shù)據(jù),保障具有高置信度的樣本被迭代地正確分類。
采用準(zhǔn)確率(P)、召回率(R)以及調(diào)和平均數(shù)F1值作為每一類命名實(shí)體的評價標(biāo)準(zhǔn)。定義如下:
(14)
(15)
(16)
本文采用由Google開源的專門針對GPU加速的神經(jīng)網(wǎng)絡(luò)框架Tensorflow進(jìn)行搭建。在ICFNER模型中,我們不考慮不斷更新整個模型的參數(shù)模型訓(xùn)練方法,而只研究采用固定RoBERTa的部分參數(shù),更新BiLSTM-CRF的參數(shù)的方法來進(jìn)行訓(xùn)練測試。訓(xùn)練時使用SGD(隨機(jī)梯度下降法)以0.01的學(xué)習(xí)率優(yōu)化參數(shù),以5.0為梯度的閾值。BiLSTM-CRF模型用前向和后向LSTM各一個獨(dú)立層,維度各100,并加入了剔除率為0.5的dropout,防止梯度爆炸,輸入維度seq_length和訓(xùn)練集batch_size分別為128和64,具體參數(shù)如表2所示。
表2 參數(shù)設(shè)置
在數(shù)據(jù)集上,采用了CRF、BiLSTM、BiLSTM-CRF、BERT-BiLSTM-CRF、ICFNER模型進(jìn)行性能分析。
1) CRF模型:條件隨機(jī)場通過引入自定義的特征函數(shù),不僅可以表達(dá)觀測之間的依賴,還可表示當(dāng)前觀測與前后多個狀態(tài)之間的復(fù)雜依賴。
2) BiLSTM模型:LSTM依靠神經(jīng)網(wǎng)絡(luò)超強(qiáng)的非線性擬合能力,能應(yīng)對處理長時間依賴效應(yīng)問題。能夠自動提取觀測序列的特征,其缺點(diǎn)是無法學(xué)習(xí)到狀態(tài)序列之間的關(guān)系,比如B(某實(shí)體的開頭)類標(biāo)注后面不會再接一個B類標(biāo)注。為了正確獲得一個詞的表示,有效利用上下文信息。使用兩個LSTM網(wǎng)絡(luò),首先將句子中單詞輸入第一個網(wǎng)絡(luò),然后再將輸出與句子單詞反向輸入第二個網(wǎng)絡(luò),即雙向LSTM,兩個網(wǎng)絡(luò)不同。
3) BiLSTM-CRF模型:CRF的優(yōu)點(diǎn)就是能對隱含狀態(tài)建模,學(xué)習(xí)狀態(tài)序列的特點(diǎn),但它的缺點(diǎn)是需要手動提取序列特征。所以在BiLSTM后面再加一層CRF,以獲得兩者的優(yōu)點(diǎn)。
4) BERT-BiLSTM-CRF模型:BERT模型提出了較為完善的預(yù)訓(xùn)練模型的概念,提高一系列NLP任務(wù)的性能。
5) ICFNER模型的實(shí)驗(yàn)效果圖,包含準(zhǔn)確率、召回率以及調(diào)和平均數(shù)F1,如圖6所示。
圖6 準(zhǔn)確率、召回率以及調(diào)和平均數(shù)F1
可以看出,精確度、召回率和F1得分值在0和1之間較高的值表示更好的性能[25-26]。開始訓(xùn)練階段,精確度、召回率和F1得分的值急劇增高,模型開始發(fā)揮其性能。經(jīng)過一定次數(shù)的充分訓(xùn)練,訓(xùn)練次數(shù)增加到20時,模型性能得到充分發(fā)揮,其性能開始趨于飽和,精確度、召回率和F1得分值三者都開始逐漸平穩(wěn),最終在訓(xùn)練次數(shù)達(dá)到100時,趨于95%。
ICFNER模型的損失函數(shù)曲線如圖7所示。
圖7 損失函數(shù)曲線
可以看出,損失函數(shù)曲線有較為明顯的階段性特征,最后趨于平緩,逼近于0到1之間,符合模型中采用了SGD[27]自動調(diào)節(jié)學(xué)習(xí)率的優(yōu)化效果。將圖6與圖5的曲線圖走勢對比,整體上呈現(xiàn)負(fù)相關(guān)特性。從細(xì)節(jié)中可以看出,在訓(xùn)練次數(shù)達(dá)到20時,loss值開始趨于平緩,當(dāng)訓(xùn)練次數(shù)達(dá)到100時,loss值趨于穩(wěn)定,在整個訓(xùn)練過程中clip參數(shù)的設(shè)置有效避免了梯度爆炸現(xiàn)象的出現(xiàn)。圖5與圖6兩者之間的曲線走勢特性也相互印證了該模型的效果。
公司法人、公司所在地和公司名三類實(shí)體準(zhǔn)確率、召回率、F1值如表3所示。
表3 不同類型命名實(shí)體識別結(jié)果(%)
可以看出,不同類型命名實(shí)體的識別結(jié)果值都比較高。其中,公司名稱的準(zhǔn)確率相較于其他值普遍偏低,猜想是因?yàn)闄C(jī)構(gòu)名稱中的嵌套和簡寫(如:國網(wǎng)、中石化等)較多,會在一定程度上對模型的識別造成干擾。
綜上所述,該模型在命名實(shí)體識別上達(dá)到了較好的結(jié)果,顯示出了該模型的優(yōu)勢。
從表4中可以看出,本文中提出的半監(jiān)督訓(xùn)練的ICFNER模型與其他模型相比,在中文命名實(shí)體識別上獲得了更高的平均精確度、召回率和F1得分值。
表4 模型在SmoothNLP數(shù)據(jù)集上的識別效果對比(%)
對比分析表4和圖8之間的關(guān)系可以分析出,神經(jīng)網(wǎng)絡(luò)模型在中文命名實(shí)體中優(yōu)勢比較明顯,從與CRF模型的對比中可以看出,神經(jīng)網(wǎng)絡(luò)的模型在準(zhǔn)確率、召回率、F1值表現(xiàn)性能都好于CRF模型;雙向長短記憶神經(jīng)網(wǎng)絡(luò)BiLSTM模型能夠獲取更多的上下文信息序列的信息,學(xué)習(xí)能力更強(qiáng),BiLSTM模型再結(jié)合CNN模型實(shí)現(xiàn)標(biāo)簽分類目標(biāo),其準(zhǔn)確率高于CRF模型;在BiLSTM-CRF模型中,若直接通過取BiLSTM輸出的標(biāo)簽概率最大值作為最終預(yù)測輸出,可能會出現(xiàn)I開頭的詞、兩個連續(xù)的B開頭的詞、B-PER和I-LOC連在一起等情況,模型效果將會降低,因此該組合模型中的BiLSTM層充分學(xué)習(xí)上下文序列信息,CRF層可以并修正BiLSTM層的輸出,從而保證預(yù)測標(biāo)簽的合理性,提升了模型性能;BERT模型充分刻畫了文本數(shù)據(jù)中字符間的關(guān)系特征,BERT與BiLSTM-CRF模型得組合,取得了92.54%的準(zhǔn)確率,增幅大,性能優(yōu)勢明顯;RoBERTa模型改進(jìn)了原來的BERT模型方法訓(xùn)練方法,采用動態(tài)掩碼方式,提取字符級和詞級別的信息表征,刪除了作用不大的NSP任務(wù),RoBERTa模型在與BiLSTM-CRF的結(jié)合使用,繼承了BiLSTM-CRF的綜合優(yōu)勢,相比前者在準(zhǔn)確率性能又有了進(jìn)一步的提升,可以看出本文中ICFNER模型,中文命名實(shí)體識別整體性能的提升明顯,可以做進(jìn)一步研究。
圖8 不同模型的準(zhǔn)確率、召回率和平均數(shù)F1
工商業(yè)領(lǐng)域中的命名實(shí)體識別是自然語言處理的重要組成部分??紤]到標(biāo)記的文本數(shù)據(jù)集匱乏,本文提出的命名實(shí)體識別的半監(jiān)督ICFNER模型,屬于以RoBERTa模型為基礎(chǔ)的深度學(xué)習(xí)框架。RoBERTa基于Transformer的并采用動態(tài)掩碼的方式,改進(jìn)了BERT,具有很強(qiáng)的特征提取能力。該模型將文本數(shù)據(jù)和深層網(wǎng)絡(luò)模型訓(xùn)練出來的預(yù)訓(xùn)練模型作為輸入,緩解標(biāo)記數(shù)據(jù)集稀缺的問題,挖掘BiLSTM在學(xué)習(xí)詞語的上下文信息的能力強(qiáng)優(yōu)勢,結(jié)合CRF模型通過全局信息推斷標(biāo)簽的能力,增強(qiáng)字符間的推理能力,使模型充分學(xué)習(xí)文本的特征信息,模型性能有了一定的提升,實(shí)驗(yàn)取得了較為滿意的結(jié)果。相比于傳統(tǒng)的實(shí)體識別方法,ICFNER神經(jīng)網(wǎng)絡(luò)模型的中文命名實(shí)體識別方法提升了實(shí)體識別的效果,接下來的實(shí)驗(yàn)將考慮如何簡化模型大小,提升模型的效率。