蘇展鵬 李洋 張婷婷 讓冉 張龍波 蔡紅珍 邢林林③
(?山東理工大學(xué)農(nóng)業(yè)工程與食品科學(xué)學(xué)院 淄博255000)
(??山東理工大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 淄博255000)
命名實(shí)體識別作為自然語言處理中關(guān)鍵部分,是信息抽取的基礎(chǔ),其主要作用是在無序的文本中按不同的需求提取出特定有意義的命名實(shí)體。現(xiàn)廣泛應(yīng)用于智能回答、機(jī)器翻譯、知識圖譜等方面。同時(shí)命名實(shí)體識別技術(shù)是通用領(lǐng)域和特殊領(lǐng)域進(jìn)行信息抽取加快信息化發(fā)展的基礎(chǔ)。
目前命名實(shí)體識別在通用領(lǐng)域中已經(jīng)得到了優(yōu)良的效果[1],主要得益于通用領(lǐng)域的數(shù)據(jù)集的完善和模型方法的不斷優(yōu)化。起初主要是基于規(guī)則字典方法,這種方法耗時(shí)長、性能差、效果不佳,之后提出的基于統(tǒng)計(jì)的方法[2],像隨機(jī)條件場模型(conditional random field,CRF)和隱馬爾科夫模型(hidden Markov model,HMM),這類方法依靠通用領(lǐng)域精確的特征條件得到不錯(cuò)的訓(xùn)練結(jié)果[3-4]。但因?yàn)槠湫枰藶閰⑴c操作多、成本高,逐漸被深度學(xué)習(xí)方法所取代。深度學(xué)習(xí)方法在降低人工成本的同時(shí),也具有很強(qiáng)的領(lǐng)域適應(yīng)性,可以在不同領(lǐng)域取得不錯(cuò)的訓(xùn)練效果。因此深度學(xué)習(xí)方法現(xiàn)已成為自然語言處理(natural language processing,NLP)領(lǐng)域的主流方法。Hammerton[5]將長短期記憶模型循環(huán)神經(jīng)網(wǎng)絡(luò)(long-short term memory,LSTM)模型應(yīng)用在了命名實(shí)體識別任務(wù)中,取得了理想的實(shí)驗(yàn)結(jié)果。Huang等人[6]提出了雙向長短期記憶模型循環(huán)神經(jīng)網(wǎng)絡(luò)(bi-directional gate recurrent unit,BILSTM)搭配CRF模型,同時(shí)還融合了其他語言學(xué)特征以提升模型性能。王潔等人[7]將字向量作為輸入,利用雙向門控循環(huán)單元(bi-directional gate recurrent unit,BIGRU)搭配CRF 模型提取會議名稱的語料特征,發(fā)現(xiàn)與LSTM 相比GRU 的訓(xùn)練時(shí)間減少了15%。Ma 和Hovy[8]提出了一種基于IDCNN-LSTM-CRF 的模型在不需要數(shù)據(jù)預(yù)處理的情況下可以提取字向量和字符向量并在conll 2003 數(shù)據(jù)集中得到了91.21%的準(zhǔn)確率。Yue 和Jie[9]提出lattice LSTM 模型將字符向量和字向量融合來解決一詞多義問題,使模型更易識別實(shí)體邊界。Radford 等人[10]提出OpenAI 生成式預(yù)訓(xùn)練(generative pre-training,GPT) 模型,用Transformer 編碼代替LSTM 來捕捉長距離信息,但是因?yàn)槭菃蜗虻?無法提取上下文語義特征。Devlin 等人[11]提出了能夠更好獲取字符、詞語和句子級別關(guān)系特征的變壓器雙向編碼器表示法(bidirectional encoder representation from transformers,BERT)預(yù)訓(xùn)練語言模型。通過BERT 利用Transformer 模型提升自身模型的抽取能力,能夠更好地明確實(shí)體邊界。
李妮等人[12]提出BERT-IDCNN-CRF 模型來解決BERT 微調(diào)過程中訓(xùn)練時(shí)間過長的問題并在MSRA 語料上F1 值能夠達(dá)到94.41%。顧亦然等人[13]提出了BERT-BILSTM-CRF 模型來解決專業(yè)電機(jī)領(lǐng)域中出現(xiàn)的小規(guī)模樣本特征信息不足和潛在語義特征表達(dá)不充分的問題。
檢驗(yàn)檢測行業(yè)作為近幾年出現(xiàn)的一個(gè)新興服務(wù)業(yè),到目前為止檢驗(yàn)檢測領(lǐng)域還沒有相關(guān)的公開數(shù)據(jù)集,進(jìn)行檢驗(yàn)檢測領(lǐng)域的命名實(shí)體識別訓(xùn)練缺乏訓(xùn)練數(shù)據(jù)。同時(shí)由于檢驗(yàn)檢測領(lǐng)域的特殊性,使得檢測文本識別過程中存在以下難點(diǎn):(1)檢驗(yàn)檢測領(lǐng)域?qū)嶓w搭配規(guī)則不明確,檢測項(xiàng)目冗雜繁多;(2)檢測組織在檢驗(yàn)檢測文本中存在大量縮寫和簡稱;(3)檢測儀器實(shí)體中存在含有功能、結(jié)構(gòu)等多種名詞疊加的長實(shí)體,這類實(shí)體難以準(zhǔn)確識別實(shí)體邊界。根據(jù)以上問題本文提出了BERT-BIGRU-CRF 融合模型,在BIGRU-CRF 輕模型的基礎(chǔ)上引入了BERT預(yù)訓(xùn)練模型,通過BERT 模型提前在大規(guī)模的中文語料庫中進(jìn)行訓(xùn)練,學(xué)習(xí)中文語義特征,以此來解決小規(guī)模數(shù)據(jù)集存在的語義特征不足的缺點(diǎn),讓模型可以在本文自行搭建的檢驗(yàn)檢測小數(shù)據(jù)集上取得更好的效果。同時(shí)BERT 的Transformer 模型可以提升模型的抽取信息能力,可以更好地識別檢測實(shí)體邊界,確定檢測實(shí)體類型。而BIGRU-CRF 模型可以在不降低性能的前提下減少模型訓(xùn)練時(shí)間。實(shí)驗(yàn)結(jié)果表明本方法可以較好地解決檢驗(yàn)檢測領(lǐng)域識別的難點(diǎn),準(zhǔn)確識別出檢驗(yàn)檢測領(lǐng)域?qū)嶓w,同時(shí)縮短訓(xùn)練時(shí)長。
模型主要是由BERT 語言預(yù)訓(xùn)練層、BIGRU 編碼層和CRF 推理層3 部分組成。首先將字符序列傳入到BERT 預(yù)處理模型中。BERT 會依據(jù)字符的位置向量、字向量和文本向量3 部分加和得到最終的輸入向量。經(jīng)過編碼獲取到上下文語義信息,把融合后的向量輸入給BIGRU 網(wǎng)絡(luò)模型。經(jīng)過BIGRU 的雙向編碼后,最終輸出給CRF 選擇出最合理的標(biāo)簽序列輸出。BGC 模型結(jié)構(gòu)如圖1 所示。
圖1 BGC 檢驗(yàn)檢測領(lǐng)域?qū)嶓w識別模型結(jié)構(gòu)
BERT 作為一個(gè)預(yù)訓(xùn)練模型在處理特殊領(lǐng)域的命名實(shí)體識別任務(wù)時(shí)有著很好的語義表征效果,BERT 主要模型結(jié)構(gòu)是由多組雙向的Transformer 編碼構(gòu)成。其無監(jiān)督的方法,使得BERT 可以通過預(yù)訓(xùn)練學(xué)習(xí)中文語義特點(diǎn),通過遷移學(xué)習(xí)的方法轉(zhuǎn)移到檢驗(yàn)檢測領(lǐng)域中來,以此來解決檢驗(yàn)檢測領(lǐng)域語料匱乏數(shù)據(jù)量少導(dǎo)致的文本特征信息不全面的問題。同時(shí)引用注意力機(jī)制對文本的上下文進(jìn)行理解關(guān)聯(lián)。因?yàn)槠涮厥獾臉?gòu)造使得其可以使訓(xùn)練的結(jié)果更好反映出上下文語義關(guān)系,提取出檢驗(yàn)檢測領(lǐng)域特征信息,解決實(shí)體嵌套和冗雜的問題。同時(shí)雙向的Transformer 結(jié)構(gòu)要比傳統(tǒng)LSTM 模型可以更好地處理長期依賴問題。其作為編碼器擁有強(qiáng)大的語言表征能力和特征提取能力[14],其結(jié)構(gòu)如圖2 所示。
圖2 Transformer 編碼器結(jié)構(gòu)
本文利用Transformer 本身引入的多頭注意力機(jī)制,來多次計(jì)算學(xué)習(xí)不同的表示子空間,從而獲取相關(guān)信息來提高模型在不同位置的專注度。經(jīng)過BERT 預(yù)處理模型對句向量處理后,通過多頭注意力機(jī)制使句子向量在向量映射的不同情況下出現(xiàn)權(quán)重得分對比,使實(shí)體邊界更易被識別。同時(shí)為了彌補(bǔ)自注意力機(jī)制不能抽取時(shí)序特征的問題,對詞語中的位置進(jìn)行編碼:
其中,pos表示詞語在其句中位置;d是PE的維度;dk是輸入向量的維度;Q、K、V都是自注意力機(jī)制(Self-Attention)計(jì)算出的字向量矩陣,QK的乘積表示了此中某個(gè)詞在整個(gè)句子中的關(guān)注程度。為了計(jì)算出向量在每一個(gè)映射的注意力向量:
將Self-Attention 機(jī)制對之前的輸出部分做一次殘差連接和歸一化處理將共享前饋神經(jīng)網(wǎng)絡(luò)在多個(gè)子空間中計(jì)算向量相似度:
最后為了使BERT 在NLP 任務(wù)中得到更好的表征效果,采用表征詞語無監(jiān)督方式的Masked 語言模型和下一句預(yù)測2 種任務(wù)方法[14]。Masked 語言模型采用隨機(jī)屏蔽15%的信息,將被屏蔽的信息區(qū)分處理,把其中80%的信息替換成Masked,10%的被遮擋信息會被任意詞替換,10%的遮擋信息保持不變,以此來保證訓(xùn)練過程中模型可以更加準(zhǔn)確獲得詞間信息。下一句預(yù)測則是采用二分類方法把任務(wù)中的句子分成上下連貫句子和非連貫句子2 類。讓模型預(yù)測判斷兩個(gè)句子間的關(guān)系,最后作出Is-Next 和NotNext 2 種判斷結(jié)果并進(jìn)行標(biāo)記,以此來獲得句子間的上下關(guān)系。因此BERT 模型可以在其他小數(shù)據(jù)領(lǐng)域中獲得更好的全局表達(dá)效果,使得模型可以應(yīng)用在檢驗(yàn)檢測這種語料匱乏的領(lǐng)域中。
GRU 和LSTM 模型可以解決循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)模型無法長期記憶和反向傳播中的梯度消失問題。但GRU 作為LSTM 的變體模型,其在保留了LSTM 效果的基礎(chǔ)上將遺忘門和輸入門合并成了更新門,簡化了模型參數(shù)。本文LSTM 引入了3 個(gè)函數(shù)來控制輸入值記憶值和輸出值,而GRU 則是通過重置門和更新門2 個(gè)門控制新的輸入和記憶輸入[15]。在BERT 后搭配BIGRU模型,來增強(qiáng)模型訓(xùn)練速度和泛化性能,表達(dá)公式如下:
式中,zt為更新門t時(shí)刻的輸出,rt代表重置門t時(shí)刻的輸出,σ為sigmoid 函數(shù),和ht分別表示t時(shí)刻的記憶內(nèi)容和隱藏狀態(tài)。GRU 結(jié)構(gòu)如圖3 所示。
圖3 GRU 單元結(jié)構(gòu)
在單向的神經(jīng)網(wǎng)絡(luò)中,信息總是由前往后獲取,只能采集到上游信息,為了讓下游信息也能被獲取,所以采用兩條單向的GRU 組成的正反兩層的BIGRU 模型,加強(qiáng)模型語義挖掘能力,能更好地理解前后文依存關(guān)系。
雖然BIGRU 模型的輸出也能夠評分出最優(yōu)標(biāo)簽,但是只能在標(biāo)簽內(nèi)判別。所以會出現(xiàn)很多錯(cuò)誤標(biāo)記和無用標(biāo)記的問題。為此需要在BIGRU 后加入一個(gè)CRF 層來考慮標(biāo)記信息間的依存關(guān)系。增加約束來確保預(yù)測標(biāo)簽的合理性,減少非法序列出現(xiàn)的概率。
對于最開始的輸入字符序列x進(jìn)行預(yù)測標(biāo)簽分布得到的標(biāo)簽序列y;對于BIGRU 層的輸出矩陣p,其大小由一個(gè)句子中的單詞數(shù)n和標(biāo)記種類k所決定,其中Pi,j、Ai,j分別為第i詞在第j個(gè)標(biāo)簽的得分和轉(zhuǎn)移矩陣中標(biāo)簽i到標(biāo)簽j的概率得分。最終序列y的得分如式(8)所示。
然后利用Softmax 歸一化處理得到最大的輸出概率為
最后利用Viterbi 算法[16]求得到所有序列上的預(yù)測中最優(yōu)解作為檢測實(shí)體結(jié)果,其公式為
當(dāng)前國內(nèi)對檢驗(yàn)檢測領(lǐng)域的命名實(shí)體識別研究較少,缺少訓(xùn)練所需要的數(shù)據(jù)集。因此本實(shí)驗(yàn)通過網(wǎng)絡(luò)爬蟲的方法爬取了近10 年來檢驗(yàn)檢測領(lǐng)域機(jī)構(gòu)的檢測類文本。整合檢測類文本的特點(diǎn)和常用關(guān)鍵詞,將命名實(shí)體分成以下4 類,即檢測項(xiàng)目、檢測儀器、檢測標(biāo)準(zhǔn)和檢測組織。檢驗(yàn)檢測實(shí)體分類定義如表1 所示。
表1 檢測實(shí)體識別類型及定義
根據(jù)其中68 家網(wǎng)址的檢驗(yàn)檢測相關(guān)文本,總共搜集出5.5 萬條數(shù)據(jù),為了搭建出本文命名實(shí)體識別所需要的數(shù)據(jù)集,經(jīng)過了數(shù)據(jù)清洗和數(shù)據(jù)去重工作,得到有用數(shù)據(jù)條數(shù)10 812 條。將得到的數(shù)據(jù)條數(shù)以8 ∶1 ∶1 的比例分成訓(xùn)練集、測試集和驗(yàn)證集。同時(shí)本次實(shí)驗(yàn)采用的是BIO 方法,命名實(shí)體以B 為始端,I 為實(shí)體中間部分,O 為非實(shí)體部分。本文將實(shí)體分為了4 類,因此出現(xiàn)的標(biāo)注類別有B-M、I-M、B-S、I-S、B-P、I-P、B-E、I-E、O 共9 種。數(shù)據(jù)中各實(shí)體類別數(shù)量在數(shù)據(jù)集中的比例如表2 所示。
表2 不同實(shí)體在各數(shù)據(jù)集中的數(shù)量統(tǒng)計(jì)
實(shí)驗(yàn)室硬件設(shè)備為CPU 采用Intel(R) Xeon(R) Gold 6242R,GPU 采用NVIDIA Tesla T4,內(nèi)存為425 GB。實(shí)驗(yàn)室虛擬環(huán)境采用Python3.6 的版本搭配Tensorflow 1.14.0 的版本對模型進(jìn)行訓(xùn)練和測試。本次實(shí)驗(yàn)采用BERT-Base 模型,其含有12 個(gè)Transformer 層、768 個(gè)隱含層和12 個(gè)多頭注意力機(jī)制。為了使得下梯度下降的方向更加明確,減少訓(xùn)練時(shí)間。將批尺寸參數(shù)數(shù)值設(shè)置為16,迭代輪次設(shè)置為30。同時(shí)為了保證模型不會過擬合,將刪除比例參數(shù)的數(shù)值設(shè)置為0.5,學(xué)習(xí)率設(shè)置為1 ×10-5。
本文采用準(zhǔn)確率(precision,P)、召回率(recall,R)以及F1(F1-sorce,F1)值作為模型性能的評價(jià)指標(biāo),具體公式為
其中,TP表示模型預(yù)測為正確且識別正確的樣本個(gè)數(shù),FP表示模型預(yù)測為正確卻未能識別的樣本個(gè)數(shù),FN表示預(yù)測為錯(cuò)誤的樣本個(gè)數(shù)。
為了驗(yàn)證在檢驗(yàn)檢測領(lǐng)域中本實(shí)驗(yàn)?zāi)P蛯?shí)體識別能力,在相同的實(shí)驗(yàn)環(huán)境下,本次實(shí)驗(yàn)加入了3 個(gè)對照模型BILSTM-CRF、BILSTM、HMM。通過搭建好的檢驗(yàn)檢測數(shù)據(jù)集進(jìn)行模型訓(xùn)練,采用P、R、F1測試結(jié)果進(jìn)行評估,每個(gè)模型在不同檢測實(shí)體的實(shí)驗(yàn)結(jié)果如表3 所示。
表3 不同訓(xùn)練模型的對比結(jié)果(%)
通過實(shí)驗(yàn)結(jié)果發(fā)現(xiàn)BGC 模型是所有實(shí)驗(yàn)?zāi)P屠锩娴梅肿罡叩?相較于其他模型得分有了明顯提升。其中在4 種實(shí)體中得分較高的實(shí)體是檢測標(biāo)準(zhǔn)。其F1 值達(dá)到了85.67%的分?jǐn)?shù),這類實(shí)體構(gòu)成相對簡單,在本次實(shí)驗(yàn)中取得了不錯(cuò)的識別得分。而其他類實(shí)體得分略遜色于檢測標(biāo)準(zhǔn)實(shí)體。而BILSTM-CRF 模型、BILSTM 模型、HMM 模型中BILSTM-CRF 模型的4 個(gè)實(shí)體F1 得分更高,其識別效果僅次于BGC 模型。
在加入BERT 預(yù)訓(xùn)練模型后,BERT-BIGRUCRF 和BERT-BILSTM-CRF 2 種模型進(jìn)行對比實(shí)驗(yàn),觀察實(shí)驗(yàn)結(jié)果和訓(xùn)練時(shí)長(min)如表4 所示。
對比BERT-BIGRU-CRF 模型和BERT-BILSTMCRF 模型,發(fā)現(xiàn)除了檢測組織F1 得分外,其余實(shí)體得分都略高于BERT-BILSTM-CRF 模型。而BGC 模型的訓(xùn)練時(shí)間縮短了6%,證明模型簡化后的性能依舊可以得到保證。
對其中表現(xiàn)較好的BILSTM-CRF 模型和BGC模型的測試結(jié)果分析發(fā)現(xiàn),BGC 模型的F1 得分高的原因,在于其可以準(zhǔn)確識別以下3 種情況實(shí)體:(1)檢測組織實(shí)體中存在的組織縮寫如華測檢測、島澤測試等;(2)檢測儀器實(shí)體中存在的長實(shí)體如電渦流式覆層厚度測量儀、溶體流動速率測定儀等;(3)檢測項(xiàng)目中出現(xiàn)長實(shí)體如維卡軟化溫度檢測、熔體流動速率測定等。而BILSTM-CRF 模型在測試時(shí),在出現(xiàn)第1 種縮寫問題時(shí)多次錯(cuò)誤地將檢測組織標(biāo)注成檢測項(xiàng)目。而在后2 種情況出現(xiàn)時(shí),BILSTM-CRF 模型標(biāo)注結(jié)果中出現(xiàn)實(shí)體標(biāo)注不全的問題。對比發(fā)現(xiàn)BGC 模型在融合了BERT 預(yù)訓(xùn)練模型和BIGRU 輕模型后,通過分析學(xué)習(xí)上下文語義,結(jié)合學(xué)習(xí)的語料特征,使得模型可以結(jié)合上下文識別出檢測組織的縮寫,同時(shí)消除了歧義問題,明確實(shí)體邊界使得檢測項(xiàng)目和檢測儀器實(shí)體中存在的一詞多意和嵌套實(shí)體都被精準(zhǔn)識別并區(qū)分出來。在本次小型檢驗(yàn)檢測數(shù)據(jù)集的訓(xùn)練情況下,BGC 模型得到了相對更好的訓(xùn)練結(jié)果。說明了本模型可以很好地解決檢驗(yàn)檢測領(lǐng)域中實(shí)體邊界模糊和句式冗雜的問題。
同時(shí)發(fā)現(xiàn),4 類實(shí)體中檢測項(xiàng)目實(shí)體的F1 得分相對較差,而檢測項(xiàng)目實(shí)體又在檢驗(yàn)檢測領(lǐng)域中舉足輕重。通過對測試結(jié)果整理分析后發(fā)現(xiàn)其主要原因是檢測項(xiàng)目復(fù)雜多變。模型對檢測項(xiàng)目中出現(xiàn)的新詞的識別還有待加強(qiáng)。針對此實(shí)體特點(diǎn)后續(xù)可以再擴(kuò)充檢驗(yàn)檢測數(shù)據(jù)集。在數(shù)據(jù)集內(nèi)實(shí)體更加豐富的情況下,對檢測項(xiàng)目類實(shí)體進(jìn)一步定義區(qū)分。可以從檢測范圍、檢測方法和檢測產(chǎn)品角度去定義,更細(xì)致地劃分檢測項(xiàng)目實(shí)體,改善檢測項(xiàng)目實(shí)體目前識別得分較低的情況。
本文從解決檢驗(yàn)檢測領(lǐng)域的命名實(shí)體識別問題出發(fā),針對檢驗(yàn)檢測領(lǐng)域存在的語料匱乏、句式冗雜等問題提出了結(jié)合BERT 預(yù)訓(xùn)練模型和BIGRUCRF 輕模型的檢驗(yàn)檢測領(lǐng)域命名實(shí)體識別方法BGC。通過在BGC 模型中加入BERT 預(yù)訓(xùn)練模型后更好地識別出復(fù)雜實(shí)體的邊界,對比未加入BERT 的模型,該方法在4 類實(shí)體中的P、R、F1 結(jié)果有了顯著的提升。而BGC 模型使用BIGRU 輕量模型后使得BGC 模型比BERT-BILSTM-CRF 模型的訓(xùn)練時(shí)間縮減了6%,同時(shí)性能仍然優(yōu)良。研究表明BIGRU 模型確實(shí)可以在性能保持不變的情況下提高訓(xùn)練速度,減少訓(xùn)練成本。兩個(gè)實(shí)驗(yàn)證明了BGC模型在檢驗(yàn)檢測領(lǐng)域的可行性。在后續(xù)數(shù)據(jù)集進(jìn)一步補(bǔ)充、優(yōu)化檢驗(yàn)檢測領(lǐng)域?qū)嶓w分類和定義后,將針對檢驗(yàn)檢測領(lǐng)域數(shù)據(jù)中更復(fù)雜的問題進(jìn)行進(jìn)一步的研究。