馮 琳 趙崇帥 李 爽 謝亞波 劉 鵬,4
(1.中國礦業大學信息與控制工程學院 徐州 221116)(2.中國礦業大學經濟管理學院 徐州 221116)(3.淄博礦業集團信息中心 淄博 255299)(4.中國礦業大學礦山互聯網(應用技術)國家地方聯合工程實驗室 徐州 221008)
命名實體識別(Named Entity Recognition,NER)任務最早在MUC-6[1]被提出,是指識別具有特定意義或者代表性較強的實體及其類別。其作為自然語言處理(Nature Language Processing,NLP)的一項基礎性關鍵任務,對NLP 的關系抽取、對話問答系統、知識圖譜構建等任務起到重要基礎作用。
早期的NER 是基于詞典和規則的方法,主要依賴于語言領域專家提供的特定規則模板,對于非詞典中的詞識別的效果較差。為解決此類問題,學者們提出了基于統計機器學習的方法,典型方法如隱馬爾科夫模型(Hidden Markov Model,HMM)、最大熵馬爾科夫模型(Maximum Entropy Markov Models,MEMM)、條件隨機場(Conditional Random Field,CRF)等[2~4]。在基于統計機器學習的方法中,NER 通常被視為序列標注問題,依賴于人工設定的特征且需要大規模的語料來學習標注模型,從而對句子的各個位置進行標注。近年來隨著計算力的大幅度提升,基于深度學習的方法被廣泛應用,常用模型有卷積神經網絡(Convolutional Neural Networks,CNN)、長短期記憶網絡(Long Short-Term Memory,LSTM)、GRU 神經網絡(Gate Recurrent Unit)等。Dong 等[5]在2016 年首次將基于字符向量的BiLSTM-CRF 神經結構用于中文命名實體識別。Chiu 等[6]提出了混合BiLSTM-CNNs結構的NER 模型,消除了特征工程,其在CoNLL-2003 數據集上的F1 值達到91.62%。Gridach 等[7]提出了一種基于BiGRU-CRF 的用于阿拉伯語實體識別的模型,該模型不依賴于大量的人工工程特性且從無標注語料庫中學習的詞嵌入可以顯著提高系統的整體性能。自詞向量被提出后,利用分布式表征將詞或字映射為向量,作為深度學習模型的輸入成為了NLP任務的標準流程,而靜態詞向量如word2vec[8]等無法滿足不同上下文的動態變化,因此動態詞向量預訓練語言模型應運而生,如ELMO、GPT 等[9~10],而2018 年Google 發布的BERT[11](Bidirectional Encoder Representations from Transformers)預訓練語言模型,刷新了11項NLP任務紀錄,是自然語言處理的一個新的里程碑。其后Liu 等[12]提出了增強版的BERT——RoBERTa(Robustly Optimized BERT Approach)。
煤礦安全問題一直是世界范圍的難點與熱點,相比于其他領域,煤礦安全信息化具有一定特殊性,如資料信息的匱乏等為煤礦安全信息化帶來一定難度。而煤礦安全領域的實體識別是構建煤礦領域知識圖譜、問答系統等煤礦智能化工作的重要基礎。不同于通用領域文本,煤礦安全領域的實體包含大量專業概念術語,且無大規模已標注數據集,專業術語之間的關系也紛繁復雜,例如“采煤工作面必須存有一定數量的備用支護材料。嚴禁使用折損的坑木、損壞的金屬頂梁、失效的單體液壓支柱”,在這句話中“采煤工作面”包含了實體“采煤”和“采煤工作面”,如何判定僅標注“采煤”還是全部標注“采煤工作面”,也是煤礦領域實體識別的一大問題,這給煤礦領域NER 工作帶來了很大挑戰。
針對以上問題,本文的主要貢獻在于:1)提出了一種多輪次的半自動化實體標注方法,在保證標注準確性的前提下,最大程度減少人工參與;2)利用多輪次的半自動化實體標注方法,構建了以煤礦安全規程為背景的煤礦安全領域實體數據集;3)提出一種基于RoBERTa-BiLSTM-Attention-CRF(Ro-BAC)的實體識別模型,利用遷移學習彌補數據量小、特征不足等缺點。實驗結果表明本文所提出的實體識別方法在煤礦安全領域優于其他主流實體識別方法,能比較準確地識別煤礦安全領域實體。
將預處理后的句子作為數據輸入喂入模型中,以RoBERTa 預訓練語言模型為Word Embedding層,以BiLSTM 為特征提取層,將RoBERTa 的token向量輸入BiLSTM 中進行進一步學習,讓模型更好地理解文本的上下文關系,并使用Attention對序列中的元素賦以不同權重,突出重要元素,最終使用CRF選擇預測得分最高的標簽序列作為最佳答案,模型整體結構如圖1 所示,每層的具體結構及原理將在后文進行介紹。

圖1 煤礦安全領域實體識別模型架構圖
BERT是在Transformer[13]編碼器的雙向編碼表示之上來進行實現的,編碼器中的核心組成為自注意力層和前饋神經網絡,其結構如圖2 所示。主要實現兩個目標遮蓋語言模型(Masked Language Model,MLM)和下一句預測(Next Sentence Prediction,NSP)。BERT 的MLM 從輸入的句子選擇15%的輸入token 進行替換,再在所選的token 中選擇80%替換為[MASK],10%保持不變,10%替換為隨機選擇的詞匯標記,目的是解決單向性局限問題,使模型在每一個詞上都能夠學習到全局語境下的表征[14]。NSP 用于對兩個句子之間的關系進行推理。BERT這兩個預訓練目標都是為了提高下游任務的性能。

圖2 Transformer編碼器結構圖
RoBERTa 是BERT 的增強版,本文所使用的RoBERTa 為哈工大訊飛聯合實驗室發布的中文基礎版RoBERTa 預訓練語言模型,即RoBERTa-wwm-ext,此版本相較于Google 發布的Chinese-BERT-base,即中文基礎版BERT 的不同之處:1)對其總詞數從4億擴充至54億。2)預訓練階段采用全詞遮蓋[15](Whole Word Masking,WWM)策略進行mask(但沒有實現英文版的動態遮蓋),所謂全詞遮蓋即對組成同一詞的全部漢字進行遮蓋3)取消了NSP。4)不再采用先使用max_len=128的數據預訓練然后再用max_len=512 的數據預訓練的模式,取而代之的是直接使用max_len=512 的數據進行預訓練。5)訓練步數適當延長,共計訓練了1M步。
在LSTM 出現之前,通常使用RNN 處理序列數據,但當序列較長時,將導致梯度消失或爆炸等問題。梯度爆炸問題可以通過梯度裁剪得到一定程度的解決,梯度消失則通過Hochreiter 等[16]提出的LSTM 引入的遺忘門、輸入門、輸出門、細胞狀態得以解決,LSTM的網絡結構圖如圖3所示。

圖3 LSTM網絡結構
由于RoBERT 使用的是絕對位置編碼,因此一定程度弱化了文本間的相對位置關系,但對于序列標注任務而言文本的位置性和方向性有助于提升識別能力,因此引入可以同時捕捉上下文信息的雙向LSTM[18](Bidirectional LSTM,BiLSTM)。
對于序列標注問題來說,重要信息可能出現在句子中的任何位置,經過BiLSTM 后的隱向量學習了豐富的上下文信息特征,然而這些特征的權重相同,因此區分實體種類時,存在一定誤差。因此本文所提煤礦安全實體識別模型RoBAC 利用Attention[19]從序列中學習到每一個元素的重要程度,緩解煤礦安全語料特征稀疏的特點,從而提高識別的精度。
對BiLSTM所計算出的標簽分數進行加權重計算,得到帶有重要度的標簽分數,計算公式如下:
式中at為一個可學習的函數用于提供權重,ht為BiLSTM層輸出的隱向量[ ]h1,h2,…,hT,T為輸入的句子長度。
BiLSTM 層雖考慮了上下文信息,但忽略了標簽間的依賴關系,例如BiLSTM 輸出的序列結果可能出現“O I-CM”的結果,因此加入CRF 層,對輸出標簽序列進行約束,減少無效預測標簽序列。
在序列標注問題中通常使用線性鏈條件隨機場,且CRF 為判別模型,假設輸入觀測序列為X,對應的輸出狀態序列為Y。在學習算法中,用打分函數s(X,Y)為所有可能標簽序列打分,并利用softmax 歸一化函數得到概率,最后利用最大似然估計正確標簽序列的概率最大化,計算公式如下:
在預測算法中,利用維特比算法計算出所有可能序列中的概率最大的狀態路徑,計算公式如下:
煤礦安全一直是安全生產的重要領域[20],煤礦安全規程是煤礦安全領域公認的標準,在煤礦安全領域甚至是整個煤礦行業都具有通用性,因此本文以煤礦安全規程作為語料背景。通過爬蟲技術和網絡搜索等方式,獲取近220 萬字的煤礦安全規程相關文檔,其中包括如《煤礦安全規程2016》、《新版煤礦安全規程實施手冊》等文檔,通過閱讀篩選從中選取約125 萬字的內容作為煤礦安全實體識別數據集的生語料。
首先將文檔解析為文本格式(txt 格式),以便使用python腳本進行批量操作,其次使用正則表達式對文本進行數據清洗,去除不可見字符和特殊符號等,最后按句號、小標題號、條款號等將文本進行句子切分,并觀察如圖4 所示的句子長度分布情況,僅少量句子長度超過510 字,由于RoBERTa 能接收的最大句子長度為512字,其中[CLS]和[SEP]需占兩位,故再將超出510 字句子進行切分,形成待標注的數據文本。

圖4 句子長度直方圖
在命名實體識別任務中有多種標注體系,如BIO、BIOES 等。本文采用BIO 的標注體系對煤礦安全實體進行標注,B(Begin)表示開始;I(Inside)表示實體除開頭以外的字;O(Outside)表示實體外部,即非實體。標注是以字為單位對實體進行標注,例如“采煤工作面必須存有一定數量的支護”,這句話對應的標注序列為“B-CM I-CM I-CM I-CM I-CM O O O O O O O O O B-SDE I-SDE”。經過深入分析大量煤礦安全規程的文本特征后,本文提出了一種多輪次的半自動化標注方法用于標注煤礦安全領域實體,可在保證標注準確性的前提下,最大程度地減少人工參與。
首先參照國家標準GB/T 15663《煤礦科技術語》并結合煤礦專家意見對實體進行類別設定,分為9個類別,具體類別設定見表1,并對其中的詞匯按類別整理形成字典,利用腳本對待標注的數據文本進行反向標注,即以設定的9 個類別形成的字典為匹配項,對生語料進行匹配,完成第一輪次的標注任務。

表1 煤礦安全實體類別
在第二輪次的標注中,先選取600 條第一輪次標注后的句子進行人工實體擴充標注,作為種子數據,再使用CRF++算法自動化地完成對剩余句子的擴充標注,具體做法如下:1)利用jieba 分詞工具對種子數據的文本序列進行分詞處理,并利用BMES邊界標注方法按分詞進行邊界標注,形成詞邊界序列;2)利用jieba paddle 模式下的詞性標注功能,獲取種子數據文本序列對應的詞性序列;3)利用python 的cnradical 庫,獲取種子數據文本序列對應的偏旁序列。通過上述步驟分別獲取了種子數據文本序列對應的詞邊界序列、詞性序列、偏旁序列,具體示例見表2,獲取詞邊界序列、詞性序列、偏旁序列的目的是增加序列特征。修改CRF++的特征模板,將種子數據的上述三種序列、人工擴充標注后的BIO 實體序列同文本序列一同輸入CRF++中進行訓練,訓練完成后將第一輪次除種子數據外剩余的句子喂入模型,完成第二輪次的擴充標注,擴充標注效果如利用字典反標后為“金O 屬O 頂B-CM梁I-CM”,使用CRF++算法后可擴充為“金B-CM屬I-CM頂I-CM梁I-CM”。

表2 詞邊界序列、詞性序列、偏旁序列示例
以上步驟可極大減少人工成本,最后再人工進行校對,對部分應標注而未標注的進行標注,對錯標的進行更正,完成第三輪次的標注,最終構建完成煤礦安全領域實體數據集,整體流程見圖5。

圖5 多輪次半自動化標注方法流程
將數據集中的句子隨機打亂并大致按6∶2∶2分配為訓練集、驗證集、測試集,其中訓練集4086條、驗證集1139 條、測試集1377 條,各類實體分布見表3。

表3 9類實體數量分布
本文采用機器學習中常用的精確率(Precision,P)、召回率(Recall,R)、F1 值對每一類實體進行計算,并且考慮到實體類別數量分布不平衡,如煤礦電氣類和煤礦測量類的實體數量偏少,因此采用微平均(Micro Average)作為模型性能的整體的評估指標,即不考慮分類,計算所有類別的總的P和R,然后再計算出來的F1值,計算公式如下:
本文在Ubuntu 16.04、GPU GTX1080Ti(11G *2)、Python 3.6.12,TensorFlow-GPU 1.14.0 的環境下進行實驗。使用上文所提的哈工大訊飛聯合實驗室發布的中文基礎版RoBERTa 預訓練語言模型,即RoBERTa-wwm-ext作為詞嵌入層,其中主要參數包括使用了12 層Transformer Encoder,768 個隱藏變量維度,12 個注意力頭,雙層BiLSTM 網絡設置為256 維,最大句子長度設置為512 字,batch_size 為8,epoch 為50,同時為防止模型過擬合,設置dropout為0.4。
使用以上環境和參數對本文所提的RoBERTa-BiLSTM-Attention-CRF(RoBAC)煤礦安全領域實體識別模型進行訓練,通過驗證集不斷對模型進行優化,完成50 輪訓練后,在測試集測試模型效果,通過P、R、F1值對其進行評估,煤礦安全實體的9個類別識別效果如表4所示。
通過表4 的實驗表明,該模型對不同類別的實體識別效果差異較大,如礦山測量和煤礦電氣類,F1 值僅為70.42%和81.36%,相較于其他類別實體的識別精度差距較大,識別精度較低,可能存在的原因是,本身標注的數據量較少,訓練模型過程中未能完全學習到其特征。
為探究本文所提模型結構各層在煤礦語料上的有效性,進行如下的消融實驗達到對比驗證目的,設置4 組對比實驗,分別為BiLSTM、BiLSTM-CRF、BERT-BiLSTM-CRF、RoBERTa-BiLSTM-CRF,結果如表5。

表5 消融實驗
通過表5 的結果,對消融實驗結果進行分析:1)BiLSTM-CRF 相比于BiLSTM,F1 值從79.44%提升到82.61%,雖然BiLSTM 可以省去繁雜的特征工程,但無法學習到標注上下文的特點,但由于在NER 中標簽之間有一定關系,比如存在著標簽“B”后不會再接“B”、一句話的起始標簽不會是“I”等潛在限定規則,故加入CRF 層后識別效果會有提升,起到一定的標簽約束作用;2)BERT-BiLSTM-CRF相對于BiLSTM-CRF 加入BERT 語境化預訓練語言模型,F1 值提升到86.29%,BERT 在大規模數據集學習了大量的語義特征,利用遷移學習的思想彌補煤礦安全領域數據集語料不足的缺點;3)將Word Embedding 層換為RoBERTa 預訓練語言模型后,因改進版的RoBERTa相較于BERT擁有更大訓練集等優勢可以更好地學習語境關系,使F1 值提升到86.85%;4)本文所提的RoBERTa-BiLSTMAttention-CRF 相對于RoBERTa-BiLSTM-CRF 再加入了Attention層,因煤礦語料具有特征稀疏的特點,在很長一段文本中才有一個實體,Attention 機制可以有效緩解這一問題,為句中的字賦予不同的權重,進一步突出重要的字詞增強特征,使F1 值提高了1.02%。
為驗證本文所提模型在煤礦安全領域實體識別效果的優越性,在相同實驗環境和同一數據集的條件下,將本文所提模型與當下主流模型進行對比實驗,包括以下幾種方法:1)Dong 等[5]提出的基于字符向量的BiLSTM-CRF 神經結構;2)Chiu 等[6]提出的混合BiLSTM-CNNs 結構的NER 模型;3)陳劍等[17]提出的基于BERT-BiLSTM-CRF 的多層次識別模型;4)Qin 等[21]提出的基于BERT 嵌入的BiGRU-CRF 的中文實體識別模型。對比實驗結果見表6,各類別實體識別F1值如圖6所示。

表6 對比實驗結果

圖6 對比實驗各類實體F1值
觀察表6 和圖6 的實驗結果可知,本文所提出的RoBAC 模型在煤礦安全領域實體數據集上的識別效果優于當前主流模型,
且在9 類實體上的識別效果處于較高水平,均優于其他模型,具體分析如下:
1)從整體上看,采用預訓練語言模型的陳劍等[17]、Qin等[21]和本文所提方法,效果均優于未使用預訓練語言模型的方法,再次證明了BERT 等預訓練語言模型的強大之處。
2)Dong等[5]的方法性能低于其他方法,導致這種結果的原因可能是通過隨機初試化的字向量無法在有限的迭代中充分學習到最優值,未能擬合真正的上下文語境。Chiu等[6]的方法相較于Dong等[5]的效果有所提升,原因在于Chiu等[6]的方法將字符級別的特征經過多層CNN 和詞級別的特征進行合并,利用更復雜的模型,更好地學習到了語義特征。
3)陳劍等[17]和Qin等[21]分別使用BiLSTM和Bi-GRU作為特征提取層,雖然GRU相較于LSTM有更加簡單的結構和更少量的參數,但通過實驗結果可以得出LSTM更適用于煤礦安全領域的實體識別,在相同實驗環境和相同迭代次數下,F1值提升了1.02%。
4)本文所提的RoBAC 模型相較于陳劍等[17]的方法不同之處在于,以改進后的RoBERTa 作為Word Embedding層,同時引入了Attention機制突出語義重點,使模型在煤礦安全實體數據集上取得了更好的效果。同時,本文所提的RoBAC 模型對于稀疏實體,如礦山測量(MMS)和煤礦電氣(CMEE)的識別效果也優于其他模型,但仍有優化空間。
本文針對煤礦安全領域數據集的構建提出了一種多輪次的半自動化實體標注方法,并自建數據集,該標注方法在其他領域上同樣具有通用性。針對煤礦領域標注數據量少、實體識別困難等問題提出一種基于RoBERTa-BiLSTM-Attention-CRF 的實體識別模型,在P、R、F1 值這三個指標中相較于其他模型均有所提升,其中引入的Attention機制可以有效緩解煤礦語料特征稀疏的特點,但在對稀疏實體方面的識別效果仍有待提升。需要說明的是,本文的煤礦安全領域數據集是以《煤礦安全規程2016》等煤礦安全規程語料為背景進行的構建,同時以國家標準GB/T15663《煤礦科技術語》為類別進行標注,因此在煤礦領域內具有較高的權威性和通用性,對后續煤礦領域文本的關系抽取、知識圖譜構建等信息智能化工作可起到一定的基礎支撐作用。