張 亮,吳 闖,2,唐希浪,馮少林
(1.空軍工程大學裝備管理與無人機工程學院,西安,710051; 2.95478部隊,重慶,401329)
近年來,隨著航空發動機結構和功能復雜程度越來越高,對故障診斷提出了更高要求[1]。故障發生后,要求一線維修人員根據故障現象或參數變化,及時分析故障原因,定位故障單元,并迅速采取有效的排故措施。如何利用大規模的故障數據信息生成有價值的排故知識,輔助一線維修人員快速定位故障,能夠有效提高航空發動機的戰備完好性、任務成功性,降低航空發動機全壽命周期費用[2]。
在基于知識的故障診斷方法研究領域,Zhou等利用Java Expert Shell系統(JESS)規則引擎對本體知識庫進行推理,以快速找到風機故障的致因[3];Zhou等將故障現象映射到本體中所表示的個體,然后對個體進行本體推理以找出滾齒機的故障原因[4];Medina-Oliva等使用本體來檢索相同艦船或同類艦船的相似故障診斷案例[5];Xu等結合使用本體與規則以推斷裝載機的故障原因[6];Su等提出基于本體對多源、分布式、異構的故障信息進行描述和集成[7]。這些研究表明,基于知識的方法能夠很好地解決系統級別的故障定位問題,應用到航空發動機的故障診斷和監測上具有非常強的潛力,但需要構建完備的故障知識庫。以上現有研究成果的故障知識庫大多是以人工編輯的方式獲取,忽略了自動化獲取故障知識的問題,難以完成大規模知識的獲取和知識庫的構建,制約了該類方法的發展應用。而基于深度學習的知識圖譜獲取技術[8-12]被普遍認為是解決上述問題的重要途徑。
故障知識圖譜的獲取主要包含故障實體識別和實體關系提取兩個方面[11]。其中,發動機故障實體識別是構建故障知識圖譜、開展發動機智能診斷的基礎性工作,是實現航空發動機故障智能維護保障的關鍵。深度學習可以讓計算機自主學習得到相應模式特征,降低對人工特征的依賴程度。基于深度學習的信息抽取方法包括遞歸神經網絡、卷積神經網絡模型、雙向轉換編碼(BERT)表示等模型[13-14]。
綜上分析,本文針對航空發動機多源異構的數據特點,提出了一種基于Bert-BiLSTM-CRF的航空發動機故障實體識別方法,并在某型航空發動機大規模數據集上進行驗證,利用抽取的故障實體構建了滑油壓力故障知識圖譜。
航空發動機故障實體是指描述各類故障現象、診斷方法、排故過程等故障文本中的關鍵信息,如故障的表征信號、故障件、故障狀態等。實體識別關鍵任務就是抽取出文本中關鍵信息,且信息抽取質量對未來故障知識庫的構建起著至關重要的影響。部隊調研發現,航空發動機故障文本廣泛蘊含在發動機全壽命周期內積累的各類故障文檔數據中,包括故障危害性分析文檔、發動機維護保障教材、測試診斷記錄、質量控制軟件數據、維修保障記錄、故障分析與研究報告等,幾乎都是以非結構化數據形式存儲,行文結構無規則且專業術語較多,見圖1。
圖1中藍色表示檢查方法,黃色表示表征信號,紅色表示故障狀態,綠色表示單元。如此定義的實體分類囊括了航空發動機故障文本中大部分有價值的信息,有利于下一階段航空發動機故障知識圖譜的構建。

圖1 某型航空發動機故障報告文本片段
針對故障文本的上述特點,本論文計劃采用監督下的機器學習。對此,首先必須制定規范的故障實體標注體系,從而保證實體標注較高的一致性,確保實體識別的準確性[15]。
本論文邀請了數名有豐富航空發動機維修經驗的行業專家共同參與標注體系的搭建和研究,其中包括2名綜合監控室主任與3名維修專業人員。經過實踐考察和數次技術研討,并與某型航空發動機的維修實踐相結合,將航空發動機各類文本中的故障實體分為5類,見表1。

表1 某型航空發動機故障關鍵實體類型
針對航空發動機故障實體識別主要任務,提出了航空發動機故障實體識別整體框架(如圖2)。
首先是故障知識獲取模塊。發動機的故障知識廣泛存在于各家使用單位和維修工廠的維修記錄、故障報告和技術使用說明書等故障文本中,未得到有效的利用。為此,在開展故障實體識別研究之前,從某型發動機的10余家使用單位和2家發動機生產檢修的工廠,共收集了相關文本數據4.6 GB。其次是模型的訓練模塊。從大量文本中挑選出600份故障文本進行人工標注,按照上文定義的5種實體類型,分別標注。利用標注的實體對航空發動機故障實體識別模型進行訓練,并把訓練結果中錯誤實體進行人工校正后,再次加入標注的實體數據集中,反復訓練模型,直至利用訓練模型測試得到的精確率達到80%以上。最后是模型的應用模塊,是從大量故障文本中自動獲取故障知識的關鍵。把模型部署到發動機全壽命數據中心,當維修單位上傳新的故障文本時,能自動提取故障實體,并加入到故障知識庫中,形成更加豐富的故障知識,增加故障檢測的準確度。

圖2 航空發動機故障實體識別方法架構圖
在有監督下的機器學習任務中,必須重視語料標注的一致性和準確性,對模型訓練質量起到至關重要的作用。因此制定了完善的語料標注流程,見圖3。首先從600份發動機故障文本中任意抽取180份,一組標注120份發動機故障文本,其中60份發動機故障文本一樣,用作比較兩組語料標注的一致性。當語料標注的一致性檢驗值達到0.85以上時再標注剩余的發動機故障文本[15];未達標時,則校正2組人員的標注規則,重新標注。在語料標注時,遇到與發動機維修無關以及描述錯誤的內容不進行標注,既能夠提高標注的效率,也可以減少冗余數據的產生。
語料標注一致性評價時,將相同數目(60份)的發動機故障文本分配給2組標注人員標注,并對標注結果按下述流程進行評價:將其中組1標注的故障實體作為基準參數(A1),組2標注的故障實體結果作為預測參數(A2)以及2組標注一致的數目參數(A3),計算相應的準確率(P=A3/A2)、召回率(R=A3/A1)、F值(2P·R/(P+R)),在組1和組2語料標注的一致性檢驗結果(F值)大于0.85時,再進行剩余發動機故障文本的標注。

圖3 標注流程
為提高語料標注的效率和準確性,本文語料標注方法采用BIOES集[9],B(Begin)表示實體開始,I(Inside)表示故障內部,O(Other)表示非實體的其他部分,E(End)表示實體結束,S(Single)表示實體只有一個字。對于航空發動機故障本文定義的4種實體,標記為“B-(實體類型)”、“I-(實體類型)”、“E-(實體類型)”、“S-(實體類型)”以及無關的其他字符均記為O。依據航空發動機故障文本的實體標注示例,見圖4。

圖4 語料標注示例
為準確識別定義的5類航空發動機故障實體,采用了一種基于BiLSTM-CRF的經典模型,同時通過加入BERT預訓練語言模型,將故障文本中的詞語轉換成詞的向量化表示,見圖5。

圖5 基于BERT-BiLSTM-CRF的故障實體識別模型
模型的第1層是BERT層,它主要負責將原始航空發動機故障文本轉換為向量形式,以便后續的雙向神經網絡進行上下文學習,假設一個句子W中含有n個字,則該句的向量可表示為W=w1,w2,…,wn。其中的最主要的內容是得出一個詞語在整個句子的相應關系,即用向量的方法表示單個詞語在整個語句的關系以及詞語和詞語之間的相互關系。通過向量形式表達的相互關系在一定程度上,可以表現出這句話中不同詞語之間的關聯度和重要性[16]。最終,通過得出的相互關系來改變每個詞相應的權重,獲得的詞向量表征能夠更好地結合上下文的語境。利用該方法,得到的詞向量既能蘊含其他詞與這個詞的關系,還能獲取一些句子級別的特征,更具有全局性。
模型第2層是雙向神經網絡層(BiLSTM),用來自動提取句子的特征。能充分利用發動機故障知識文本的上下文依存關系,故障實體識別采用了BiLSTM模型進行建模。BiLSTM以BERT生成的詞向量當做輸入,通過捕獲上下文特征,獲取更全面的語義信息。長短期記憶網絡[17](LSTM)是循環神經網絡(RNN)的一種變體。和RNN相比較,創造性地引入了記憶單元和門控機制,對上下文歷史信息進行有選擇性的遺忘、更新和傳遞。LSTM單元包含遺忘門、輸入門、輸出門3種門結構,并通過此種結構來控制LSTM單元的狀態。t時刻單元狀態信息更新可由式(1)、(5)得到。
ft=σ(Wf×[ht-1,xt]+bf)
(1)
it=σ(Wi×[ht-1,xt]+bi)
(2)
ot=σ(W0×[ht-1,xt]+b0)
(3)
Ct=ftCt-1+ittanh(Wc×[ht-1,xt]+bc)
(4)
ht=ottanh(Ct)
(5)
式中:σ是sigmoid激勵函數;f分別表示遺忘門;i表示輸入門;o表示輸出門;W和b分別是權重矩陣和偏置項;C表示單元狀態;h表示隱藏層狀態。BiLSTM由一個前向長短期記憶單元與一個后向長短期記憶單元組合,通過把原始有順序的輸入轉換成一正一反的2個輸入,使得整個模型能同時獲得前向和后向的信息,能夠更好地獲取較長距離的雙向語義依賴關系,并解決梯度消失的問題。針對發動機故障實體識別的序列標注任務,擁有更好的優勢。
模型的第3層是條件隨機場(conditional random field,CRF),是發動機故障實體識別模型的最后一部分,主要用于根據前后文語義之間的依賴關系,約束模型學習到前后文標簽之間的內容,在對應輸入條件下,得到最大概率輸出。CRF是一種條件概率分布模型,可以用P(y|x)來表示,為標注的序列賦予對應概率值,有助于選擇出最大似然概率的標注序列。其中:x是輸入變量,表示要被標注的觀察序列;y是輸出序列,表示與x一一對應的標簽序列。其核心原理是:
(6)
式中:f表示特征函數;w表示特征函數對應的權重。
為了準確驗證航空發動機故障實體識別方法的性能優劣,本論文采用準確率(precision,P)、召回率(recall,R)以及F1得分(F1-score,F1)來評價模型性能[15],各評價指標的計算方法如式(7)~(9)。
(7)
(8)
(9)
式中:TP表示為預測正確的故障實體陽樣本數;FP表示為預測錯誤的故障實體陽樣本數;FN表示為預測錯誤的故障實體陰樣本數。將處理好的數據集導入數據庫,針對訓練集上的數據進行參數訓練,得出最優參數:詞向量維度為300,Drop Out值為0.5,一次網絡嵌入的數據大小(batch-size)值為16,代數(epoch)為50,學習率為0.001,優化算法使用Adam。
在航空發動機故障關鍵信息抽取只采用CRF模型時,針對不同標注訓練樣本數進行比較,可以看到當樣本數為50份時,F1值僅為0.571。因此,在建立提取模型時,通過追加雙向神經網絡(BiLSTM)、BERT模型以及樣本數量,故障實體識別的F1值提升到了0.811,F1值對比結果見表2。

表2 不同模型下故障實體識別F1值對比
按故障實體類型評價。統計在單元(U)、表征信號(S)、故障狀態(F)、檢查方法(C)和解決方法(M)這5類故障實體識別上的表現,結果見圖6。

圖6 按類型評估故障實體識別結果
可以看出,單元類、故障狀態類和表征信號類故障實體的識別效果較好,能夠滿足航空發動機故障文本識別任務的準確率要求。但是,檢查方法類和解決措施類實體識別的效果仍不夠理想,主要原因包括:①沒有相關詞典對方法概念進行規范;②大量故障文本的表現形式和維修人員群體聯系緊密,在不同的維修單位的維修人員描述差異較大;③描述方法的語句過長,故障記錄不夠精煉。以上幾點也是我們下一步要繼續提高故障實體識別準確率的主要研究方向。
通過上述方法,從收集到的4.6 GiB文本數據中準確識別了15 246條發動機故障實體。利用抽取到的實體信息,搭建了發動機故障知識圖譜,能夠將復雜的發動機故障實體關系存儲在知識網絡中,其中不同顏色的單元代表不同種類的航空發動機故障實體。圖7為獲得的某型發動機滑油壓力異常的故障知識圖譜。從圖中可以得到滑油系統的重要部件單元之間、故障現象和表征信號之間、以及故障現象和故障單元之間密切聯系;而且該知識圖譜能夠根據后續故障數據的不斷積累,迭代形成更完備的知識庫。

圖7 航空發動機滑油壓力異常故障知識圖譜
為充分利用航空發動機全壽命周期數據,實現基于知識的故障智能診斷,論文以快速準確搭建大規模的發動機故障知識庫為目標,初步構建了一種基于BERT-BiLSTM-CRF的航空發動機故障實體識別方法,并通過某型航空發動機故障數據文本進行驗證,初步解決了從航空發動機故障文本中自主獲取知識并搭建大規模知識庫的問題。下一步將在此基礎上加強對故障實體識別和故障關系的聯合抽取方法研究,并開發航空發動機故障知識圖譜和故障智能問答系統等應用產品,助力航空發動機的智能化保障模式發展。