褚燕華, 蔣文, 王麗穎, 張曉琳, 王乾龍
(內蒙古科技大學信息工程學院, 包頭 014010)
近年來,隨著智能制造的快速發展與云計算時代的到來,“互聯網+工業”逐漸成為學者的研究重點。互聯網時代對工業發展提出了更高的要求,同時數控機床設備的檢修與診斷面臨著更加嚴峻的難題,克服難題離不開對故障數據的分析和利用。隨著工廠信息化發展,機械工廠中積累了大量的數控機床故障記錄。僅從記錄中深入挖掘數控機床故障信息,很難加以分析和應用,形成滿足用戶需求的知識,幫助用戶找到解決方案。因此,需要通過自然語言處理技術對原始文本進行信息抽取。命名實體識別是信息抽取的主要任務之一,旨在從輸入的文本序列中識別出目標實體,是信息檢索、輿情分析與知識圖譜構建等自然語言處理任務中的基礎性工作。
開放領域的實體識別技術較為成熟,垂直領域諸如數控機床故障領域研究鮮少,實體識別存在一些挑戰。例如,數控機床故障領域的公開數據集匱乏;該領域數據專業化程度高,缺乏統一的規范和標準;針對該領域的研究較少,現存研究大部分針對數控機床特定部件存在的故障[1-2]。
作為自然語言處理領域研究的熱點,命名實體識別的算法也不斷地被領域內專家所優化,其發展經歷了早期的基于詞典和規則的方法,到傳統機器學習的方法,到近年來使用較廣泛的基于深度學習的方法共3個階段。
第一階段是基于詞典或規則的方法,依賴于領域專家手工制定的規則系統,結合命名實體庫,對每條規則進行權重輔助,然后通過實體與規則的相符情況來進行類型判斷。規則往往依賴具體語言領域和文本風格,可擴展性難,難以覆蓋所有的語言現象,并且時間效率低、可移植性弱。
第二階段是基于機器學習的方法,通過數學統計進行建模,例如,Yusup等[3]針對圣訓中敘述者名稱的命名實體識別提出支持向量機方法(support vector machines,SVM);Lay等[4]將隱馬爾科夫模型(hidden markov model,HMM)應用于緬甸語言命名識別任務;Pati等[5]采用條件隨機域方法對馬拉地語文本進行命名實體識別;識別效果得到提升,時間效率提高,而這些方法對人工標注的語料庫的依賴性高,仍需要大量人力參與。
第三階段是深度學習方法,對語料庫的依賴性低,泛化性好,逐漸成為主流。為修正長短期記憶網絡(long short-term memory,LSTM)識別結果,Qin等[6]使用CRF模型對LSTM輸出結果進行約束。Zhao等[7]將BiLSTM-CRF模型對電力領域名詞進行命名實體識別,鄭彥斌等[8]基于雙向門控循環單元(bidrectional gated recurrent unit,BiGRU)與CRF結合的模型識別東盟十國中文新聞數據中的實體。由于BiLSTM能學習上下文的特征,提升了實體識別效果,從而BiLSTM-CRF模型逐漸成為各領域的命名實體識別任務主流模型。Li等[9]采用BiLSTM-CRF模型識別鐵路事故和故障分析報告中的實體;肖瑞等[10]針對中醫文本領域提出了詞級別的BiLSTM-CRF命名實體識別模型,識別效果得到提升,但是詞向量的語義表征能力弱,削弱了識別效果。
Peters等[11]提出引入預訓練語言模型可以提高詞向量的表征能力,從而提升實體識別效果。近年來所提出的Word2vec[12]、ELMO(embeddings from language models)[13]、GPT(generative pre-training)[14]、BERT[15]預訓練語言模型中,BERT模型在命名實體識別效果比其他模型更為理想,例如,崔競烽等[16]在菊花古典詩詞領域采用BERT命名實體識別模型優于其他實體識別模型;田梓函等[17]使用BERT-CRF模型取得較好的實體識別效果,但是文本特征提取程度較淺。
針對上述問題,本文研究在數控機床故障領域引入了BERT-BiLSTM-CRF模型進行命名實體識別,與其他模型進行了對比實驗,發現該模型在數控機床故障語料中召回率和F1均有提升,各實體識別F1差值小,相比其他模型受數據不均衡性影響小。對數控機床故障領域的命名實體方法進行研究,并提出一種性能較好的實體識別模型,以期為數控機床故障領域知識圖譜構建提供理論基礎。
模型主要由三部分構成,分別是BERT編碼層、BiLSTM交互層和CRF推理層。將數控機床故障文本序列輸入到BERT編碼層進行預訓練,得到每個字的向量,生成向量矩陣,將得到的向量矩陣輸入到BiLSTM交互層進行編碼,最終通過CRF推理層進行解碼,獲取概率最大的標簽序列,得到每個字符的類別。模型結構如圖1所示。

h為BiLSTM輸出的隱藏向量;O表示非實體位置;B表示實體起始位置;I表示實體除起始外的位置圖1 BERT-BiLSTM-CRF模型結構Fig.1 BERT-BiLSTM-CRF model structure
BERT編碼層的任務為將文本序列映射成向量矩陣。相比傳統循環神經網絡,BERT模型拓寬了詞向量的泛化能力,通過雙向預訓練學習上下文信息,模型結構如圖2所示。

CLS為classification,用于分類問題;SEP為separator,用于分割句子;Trm為Transformer編碼單元;E為嵌入向量圖2 BERT預訓練語言模型Fig.2 BERT pre-trained language model
輸入文本序列時,在開始和結尾添加[CLS]和[SEP]。輸入向量包含詞嵌入、段嵌入、位置嵌入。詞嵌入將輸入的字符轉換成固定維度的向量,段嵌入用于區分不同句子,位置嵌入有助于解決Transformer無法對輸入序列順序性編碼的問題。
Transformer編碼單元是BERT最重要的部分。單個Transformer塊由自注意力機制和前饋神經網絡兩部分組成,從整體上處理序列而不是依賴過去隱藏狀態,從而允許并行運算,減少訓練時間,提高了性能。
編碼單元最重要的模塊是自注意力部分,計算公式為

(1)
式(1)中:Q、K、V分別為輸入向量矩陣;dk為輸入向量維度;QKT用于計算輸入字向量之間的關系。
此外,Transformer將多個自注意力層連接起來,增大注意力單元的表示子空間,同時通過降低維度減少計算消耗:
MultiHead(Q,K,V)=Concat (head1,
head2,…, headk)W0
(2)

(3)

Transformer中加入了殘差網絡和層歸一化,以改善梯度消失問題與加快收斂,計算公式為

(4)
FFN=max(0,xW1+b1)W2+b2
(5)

與傳統預訓練語言模型不同,BERT是一個多任務模型,由遮掩語言模型(masked language model,MLM)和下一句預測(next sentence predict,NSP)兩個任務構成。遮掩語言模型遮蓋住句子里部分詞,讓模型對其進行預測。具體過程是在輸入的文本序列中隨機掩蓋15%的詞,其中80%以[MASK]替換,10%以隨機詞替換,10%的詞保持不變。下一句預測判斷兩句之間的關系,其處理過程對部分句子隨機替換,通過上一句預測兩句是否為上下句關系。與其他預訓練語言模型相比,BERT能夠充分利用詞上下文信息來獲得更好的詞分布式表示。
BiLSTM交互層的任務是將BERT編碼層得到的向量矩陣作為輸入,捕捉序列中上下文信息,提取文本特征。采用循環神經網絡(recurrent neural network,RNN)的改進模型長短期記憶網絡,是為了解決一般的RNN長期依賴,即梯度消失和梯度爆炸問題。LSTM主要由輸入門、遺忘門、輸出門構成,輸入門決定了當前時刻網絡的輸入有多少保存到單元狀態,遺忘門決定了上一時刻的單元狀態有多少保留到當前時刻單元狀態,輸出門控制當前時刻單元狀態有多少輸出,單元結構如圖3所示。

it、ft、ot、ct、ht分別為在t時刻的輸入門狀態、遺忘門狀態、輸出 門狀態、細胞狀態、隱藏狀態;σ為sigmoid函數;?為點乘運算; tanh為正切函數圖3 LSTM單元結構Fig.3 LSTM unit structure
LSTM計算公式為
ft=σ(Wf[ht-1,xt]+bf)
(6)
it=σ(Wi[ht-1,xt]+bi)
(7)
ot=σ(Wo[ht-1,xt]+bo)
(8)

(9)

(10)
ht=ot?tanhct
(11)
式中:W為權重矩陣。


(12)

(13)

(14)
CRF推理層采用BiLSTM交互層輸出結果作為輸入,通過訓練過程中學習的轉移矩陣,獲取前后標簽之間的依賴關系,從而生成全局最優標簽序列。CRF標記過程形式化為
Et,yt=Wsht+bs
(15)

(16)
式中:Ws和bs為可學習參數;ht為上一層輸入結果;S(X,y)為輸入序列X=(x1,x2, …,xn)與句子標簽序列y=(y1,y2, …,yn)的匹配分數;Et,yt為第t個字符標為yt個標簽的概率;T為轉移矩陣,如Tt,k表示由標簽t到標簽k的轉移概率。
通過Softmax函數進行概率計算,計算公式為

(17)

(18)
預測過程中,由式(19)輸出整體概率最大的一組標簽序列作為最優序列,即y*為最終數控機床故障領域實體識別標注結果。

(19)
實驗數據來自某機械工廠,包含了工廠內數控機床設備故障的整體記錄。對數據集進行清洗和整理,獲得10 148條有效數據,部分語料如表1所示。
依據標注策略對數據進行實體標注,將標注好的語料按6∶2∶2比例進行劃分,即6 088條訓練集,2 029條驗證集、2 031條測試集。數據集中不同實體個數如表2所示。

表1 部分語料展示

表2 數據集實體個數
數控機床故障領域的命名需要有一套命名規范,而數控機床需要系統化的機械知識作為基礎,僅依靠通用知識是難以進行有效標注。常用機械故障領域實體類型為設備和故障,而設備的定義范圍廣泛,剝離了設備內部構件之間的關系,所以本文研究對設備進行細分類,定義實體類型為部件、零件、故障。從定義上看,故障實體顯然比前兩者更容易區分,而部件與零件實體邊界模糊,若未經過機械知識的學習,難以區分兩者。對此,本文研究對目標實體進行詳細定義,如表3所示。
結合實體定義,采用BIO標注方法進行人工標注,其中B、I、O定義參考1.1節。預測實體位置的也需要預測其實體類型,因此待預測標簽包含7種,分別為B-Par、I-Par、B-Spa、I-Spa、B-Fau、I-Fau與O,標注形式如表4所示。

表3 數控機床故障領域實體定義

表4 實體標注形式
采用Intel xeon Gold619版本CPU,NVIDIA GeForce RTX 2080Ti版本GPU,11G顯存,編譯環境python3.7,Tensorflow-gpu1.12.0。BERT采用base版本,優化器為Adam,其他超參數設置如表5所示。

表5 BERT-BiLSTM-CRF模型超參數設置
采用命名實體識別常用評價指標,即準確率P、召回率R和綜合評價指標F1對衡量實體識別結果的性能,具體計算公式為

(20)

(21)

(22)
式中:TP為預測正確的實體數量;FP為預測無關的實體數量;FN為未能預測到的實體數量。
通過對比幾種數控機床故障領域命名實體識別方法的實驗效果,以此評估本文方法的有效性。
為了驗證BiLSTM-CRF模型的性能,對主流模型進行了40輪實驗。從表6可看出,BiLSTM-CRF模型識別效果比僅使用BiLSTM層的識別效果好,主要原因是CRF可以捕捉標簽之間的約束關系。BiGRU相對BiLSTM參數減少,但在數控機床故障領域的提取特征能力仍不足。在對比實驗模型中,BiLSTM-CRF模型準確率與F1高于其他模型,整體識別效果較為理想。
在BiLSTM-CRF模型上引入BERT預訓練語言模型,為驗證模型性能,分別對基于BERT的模型進行了10輪實驗。從實驗結果表7可看出,該組模型識別效果較主流模型得到明顯提升,主要原因為BERT預訓練語言模型能夠獲取上下文的雙向特征。BERT-BiLSTM-CRF模型在各項實體識別指標上優于其他模型,進一步表現了BiLSTM-CRF在實體識別領域上具有的優勢,同時說明了BERT與BiLSTM-CRF互補作用性強。
為了使所提出模型的實體識別效果得到更直觀的表示,將各個實體識別結果列出(表8)。由實驗結果來看,部件的實體識別各項指標均優于其他實體,F1達到了87.19%,主要原因在于部件是語料中標注最多的實體類別,并且專業化程度高,特征明顯。由實驗結果可以看出,故障的實體識別效果均差于其他兩類,主要原因是故障專業程度低,特征不明顯,并且本身存在實體數目少、種類繁多、情況復雜、部分存在歧義、縮略詞干擾等情況。

表6 主流模型命名實體識別結果

表7 基于BERT的模型命名體識別結果
為了驗證所提出模型在各個實體識別上具有的優勢,對比BiLSTM、BiLSTM-CRF、BERT-BiLSTM-CRF 3種模型在每個實體上的F1,如圖4所示。BiLSTM-CRF識別效果明顯優于BiLSTM模型,所提出模型在部件、零件、故障的實體識別F1比BiLSTM模型提高大于5%,相比BiLSTM-CRF模型提高大于2%。結果表明在BiLSTM加入CRF層,可以學習標簽之間的依賴關系,從而使實體識別效果更優;在BiLSTM-CRF模型上引入BERT預訓練語言模型,使得字的語義信息可以聯系上下文,得到更好的表示,提升了實體識別效果。BERT-BiLSTM-CRF模型在每個實體識別效果均優于其他模型,3類實體識別F1差值較小,受數據不均衡性影響小,進一步驗證了該模型在數控機床故障領域命名實體識別較其他深度學習模型所具有的優勢。

表8 BERT-BiLSTM-CRF對各個實體的識別結果

圖4 3種模型各個實體上的F1Fig.4 F1 value on each entity of the three models
針對數控機床故障領域的命名實體識別問題,制定相應的標注策略,提出BERT-BiLSTM-CRF模型。采用BERT編碼層將輸入序列編碼成向量,使用BiLSTM交互層提取上下文特征,通過CRF推理層對實體標簽進行預測。在某機械工廠故障數據集下的實驗結果表明,BERT-BiLSTM-CRF模型能夠有效處理命名實體識別問題,較現有模型性能好。所提出模型為數控機床故障領域的實體標注策略提供了參考,同時也為其他垂直領域的命名實體識別提供了一種有效的學習思路。數控機床故障領域的命名實體識別性能的提高,有助于構建領域內知識圖譜,在未來的工作中將聚焦于數控機床故障領域的知識圖譜構建。