賈寶惠,姜番,王玉鑫,*,王杜
1.中國民航大學(xué) 交通科學(xué)與工程學(xué)院,天津 300300
2.中國民航大學(xué) 航空工程學(xué)院,天津 300300
民用飛機在運營中,不可避免地會發(fā)生各類意外事故和系統(tǒng)故障,開展面向民用飛機故障診斷的研究工作,是確保民機安全運行和持續(xù)適航的重要前提。故障診斷的目標(biāo)是當(dāng)設(shè)備檢測到故障,維修人員就需要根據(jù)具體情況以及相關(guān)手冊判斷故障原因,從而提出故障修復(fù)方案[1]。而人工排故會在一定程度上受人的主觀因素影響并且浪費維修人員的時間成本。由于對飛機系統(tǒng)進行精準(zhǔn)建模十分困難,目前學(xué)者們廣泛應(yīng)用基于數(shù)據(jù)驅(qū)動的方法,建立傳統(tǒng)機器學(xué)習(xí)或深度學(xué)習(xí)模型挖掘數(shù)據(jù)中的信息,以進行故障診斷[2]。
目前大部分對復(fù)雜系統(tǒng)的故障診斷工作都是基于易于分析的結(jié)構(gòu)化數(shù)據(jù)開展的[3],然而這樣忽略了非結(jié)構(gòu)化數(shù)據(jù)中蘊含的豐富的故障信息。在飛機日常運營中會積累大量的維修記錄,以文本的形式保存在數(shù)據(jù)庫中,包含了故障問題信息、故障檢修方法及故障原因等關(guān)鍵特征[4]。目前這些維修文本數(shù)據(jù)由于自身的復(fù)雜性還未被充分利用,如果從這些數(shù)據(jù)中提取知識,能夠輔助維修人員依據(jù)故障現(xiàn)象快速準(zhǔn)確定位設(shè)備的故障位置及原因,大大降低了人工依賴度,有利于提高基于知識的故障診斷的自主化程度、可解釋性和診斷精度[5],對進一步提升航空安全保障水平具有重要的意義[6]。
中文文本分析技術(shù)主要是從中文文本中抽取和挖掘高質(zhì)量的、有價值的信息。文本分析技術(shù)最早起源于1958年,Luhn[7]選擇了詞頻作為特征并融入了詞語的位置分布的信息進行文本分析,開創(chuàng)了文本分析研究先河。經(jīng)過眾多學(xué)者的不斷探索,文本分析出現(xiàn)了一些經(jīng)典機器學(xué)習(xí)算法,如樸素貝葉斯[8]、支持向量機(Support Vector Machine,SVM)[9]等。直 到2012年,深 度 學(xué)習(xí)算法引起了學(xué)者們的廣泛關(guān)注,它可以實現(xiàn)一種端到端的直接分析過程,避免了傳統(tǒng)機器學(xué)習(xí)方法需要復(fù)雜的特征工程的問題[10]。Abedin 等[11]使用修改后的Basilisk 框架自動增加基礎(chǔ)詞典,生成的詞典在支持向量機分類中用于識別事件原因。在Andrzejczak 等[12]研 究 中 也 使 用 了 根 據(jù) 詞 典來識別事件原因的方法,但是該方法難以捕捉文檔中存在的非常有用的潛在含義。Tulechki[13]將自然語言處理技術(shù)應(yīng)用在與航空安全相關(guān)信息處理框架中,采用SVM 算法構(gòu)造分類器來預(yù)測發(fā)生安全事件類別。Zhang 等[14]建立CNNLSTM-Attention 融合模型學(xué)習(xí)句子的語義和情感信息以及關(guān)系,實現(xiàn)對文本的情感分析。鄭煒等[15]針對軟件安全缺陷報告數(shù)量少、特征復(fù)雜等特點,采用TextCNN-Attention-TextRNN 模型實現(xiàn)對軟件安全問題的預(yù)測。田園和馬文[16]使用引入注意力機制的雙向長短時記憶神經(jīng)網(wǎng)絡(luò)(Bidirectional Long Short-Term Memory,BiLSTM)對電網(wǎng)領(lǐng)域運行設(shè)備形成的故障日志進行故障識別。李新琴等[17]使用組合權(quán)重計算方法將BiGRU 和BiLSTM 的學(xué)習(xí)結(jié)果進行集成,實現(xiàn)對高速鐵路信號道岔設(shè)備故障數(shù)據(jù)的分類。上述研究雖然在一些領(lǐng)域上逐漸實現(xiàn)了文本的自動分析,但仍存在以下問題:
1)基于民機維修文本數(shù)據(jù)的故障診斷還處于人工分析階段,未實現(xiàn)智能診斷。
2)文本挖掘技術(shù)與專業(yè)領(lǐng)域知識結(jié)合較為困難,在預(yù)處理操作時由于專業(yè)詞語較多很難使用分詞技術(shù)做到詞語的精確劃分,這為語義特征的學(xué)習(xí)帶來了難度。
3)當(dāng)處理的數(shù)據(jù)量較大時,所建立的分析模型參數(shù)量較大,運行時占用內(nèi)存多,因此導(dǎo)致了分析時間過長,處理速度慢等問題。
本文提出了一種修正迭代的基于BERTLightGBM 模型的飛機維修記錄故障原因分析流程,實現(xiàn)飛機維修文本數(shù)據(jù)端到端的智能診斷,提升了維修文本的利用率及使用價值;相比于其他文本分析模型本文所提模型在民機維修文本故障原因分析中準(zhǔn)確率較高;在診斷速度上有所優(yōu)化,提升了方法的實用性。從而能夠輔助維修人員依據(jù)故障現(xiàn)象快速準(zhǔn)確定位設(shè)備的故障位置及原因,大大降低了人工依賴度。首先,結(jié)合維修案例文本的特點,對文本預(yù)處理、文本表示、特征提取模型和特征分類模型的構(gòu)建做了具體研究;其次,不斷增加飛機維修文本數(shù)據(jù)驗證所提出的故障診斷流程的有效性,建立BERT 模型用于構(gòu)建全局、雙向的文本特征提取能力,解決民航維修領(lǐng)域文本分詞困難、上下文信息相關(guān)性高的問題;并將LightGBM 作為分類器,以實現(xiàn)并行分析減小模型的參數(shù)數(shù)量,在降低模型復(fù)雜度,增強分析效率方面達(dá)到良好的效果,提升了方法在工程上的實用性;最后,對比其他分類方法,從準(zhǔn)確率及診斷時間方面驗證了使用BERT-LightGBM 模型進行民機維修文本故障原因分析的可行性和優(yōu)越性。
在民航運營過程中會產(chǎn)生大量的維修記錄,維修人員在檢查、維修過程中的信息以文本形式保存在故障數(shù)據(jù)庫中,部分維修記錄如表1 所示。通過分析大量的飛機維修記錄,總結(jié)得出如下特點:
表1 維修記錄Table 1 Maintenance records
1)長度短,數(shù)據(jù)量大。經(jīng)分析飛機維修文本大多數(shù)在100 個字符以內(nèi),但是數(shù)量大。因此存在嚴(yán)重的數(shù)據(jù)稀疏的問題,對文本處理時形成了高維稀疏的特征空間。
2)文本數(shù)據(jù)結(jié)構(gòu)不規(guī)范。不同書寫人員習(xí)慣不同導(dǎo)致同一信息可能因為不同人員書寫方式存在差異。
3)包含大量的專有名詞縮寫和代碼。例如“剎車組件”會縮寫成“剎組”,“發(fā)動機”會縮寫成“發(fā)”。
針對以上特點,使用對短文本分析有較好的效果的BERT 模型進行分析,可以結(jié)合上下文進行區(qū)分同一詞語在不同語句中的不同語義;引入多頭自注意力機制可以克服在航空這種特定領(lǐng)域內(nèi)專業(yè)詞語較多,難以全部收錄在領(lǐng)域詞典里的問題;并且還可以解決維修記錄口語化嚴(yán)重,難以使用傳統(tǒng)分詞技術(shù)進行語義理解的問題;融合LightGBM 模型能夠充分捕捉特征與故障原因標(biāo)簽的關(guān)系,從而獲得更準(zhǔn)確的診斷結(jié)果。
基于預(yù)訓(xùn)練語言模型雙向轉(zhuǎn)換器編碼表示(Bidirectional Encoder Representations from Transformers,BERT)[18]預(yù)訓(xùn)練模型是谷歌2018年提出的大型多任務(wù)語言模型,是一種基于多層雙向Transformer 架構(gòu)[19]的深度學(xué)習(xí)語言表示模型。其模型基本結(jié)構(gòu)如圖1 所示,其中EN為字向量編碼表示,TN指輸出向量。
圖1 BERT 模型基本結(jié)構(gòu)Fig.1 Basic structure of BERT model
BERT 預(yù)訓(xùn)練模型與經(jīng)典的Word2Vec 詞向量訓(xùn)練模型不同之處在于,Word2vec 只能表現(xiàn)詞的獨立語義信息,而BERT 模型不僅在Transformer 的Encoder 中引入多頭注意力機制(Multi-head Self-Attention),并且創(chuàng)新性地提出了遮蔽語言模型(Mask Language Model,MLM)和下個句子預(yù)測任務(wù)(Next Sentence Prediction,NSP)[20],在模型訓(xùn)練時不斷根據(jù)具體任務(wù)調(diào)節(jié)參數(shù),使得其能更好地捕捉并融合全文語義。在實際預(yù)訓(xùn)練中NSP 任務(wù)和MLM 任務(wù)結(jié)合,讓模型能夠更準(zhǔn)確地理解字、詞、句子甚至全文的語義信息[21]。
1)遮蔽語言模型:MLM 任務(wù)是隨機遮蔽每個句子中的15%的詞語,用剩下的詞語來預(yù)測被遮蔽的詞。對于被遮蔽的詞語,其80% 用[MSAK]代替,10% 用一個隨機詞代替,剩下10%的被遮蔽的詞語保持原詞不變。這樣就使得當(dāng)預(yù)測一個詞語時,模型并不知道輸入的是否為正確的詞語,因此就會更多的依賴上下文的信息去預(yù)測詞語,賦予了模型的一定的糾錯能力。
2)下個句子預(yù)測任務(wù):NSP 任務(wù)是從語料庫中隨機選擇50%正確語對和50%錯誤語對進行訓(xùn)練,根據(jù)句子間的語義相關(guān)性,判斷句子間的正確關(guān)系。
BERT 模型實現(xiàn)過程中有預(yù)訓(xùn)練和微調(diào)兩部分:在預(yù)訓(xùn)練過程中通過動態(tài)調(diào)整模型參數(shù),最小化損失,從而使得模型訓(xùn)練得到的特征能夠盡可能地表征出語義的本質(zhì)[22];在微調(diào)階段,根據(jù)具體的任務(wù)實現(xiàn)對訓(xùn)練好的模型參數(shù)不斷進行微調(diào)。因此BERT 模型不僅能夠有效獲取航空領(lǐng)域詞匯的上下文信息,而且能夠充分捕捉語義特征。
輕量級梯度提升機(Light Gradient Boosting Machine, LightGBM)[23]是基于梯度提升決策樹[24](Gradient Boosting Decision Tree,GBDT)的優(yōu)化實現(xiàn)。它的原理與GBDT 相似,是將損失函數(shù)的負(fù)梯度作為當(dāng)前決策樹的殘差近似值,去擬合新的決策樹,使預(yù)測值不斷逼近真實值[25]。
相比于傳統(tǒng)的GBDT,LightGBM 算法中融合了基于梯度的單邊采樣(Gradient-based One-Side Sampling,GOSS)和互斥特征捆綁(Exclusive Feature Bundling,EFB)2 種方法,可以減少信息丟失同時節(jié)省內(nèi)存占用加快運行速度,解決了傳統(tǒng)提升算法在樣本數(shù)據(jù)量較大的環(huán)境下非常耗時的問題,能夠有效提高模型的準(zhǔn)確率和魯棒性。因此本文使用LightGBM 模型實現(xiàn)對所提取的語義特征進行分類。
本文基于民機歷史維修數(shù)據(jù),提出了一種基于BERT-LightGBM 模型的反復(fù)迭代的故障診斷流程,診斷模型建立過程如圖2 所示,分為4 個步驟。
圖2 民機維修文本故障診斷模型建立流程Fig.2 Process of establishing fault diagnosis model for civil aircraft maintenance texts
步驟1構(gòu)建故障數(shù)據(jù)庫和故障原因數(shù)據(jù)庫
由于已有的維修記錄缺少故障原因,因此首先需要將民機原始維修文本根據(jù)專家知識及人工經(jīng)驗人工標(biāo)注故障原因,并將現(xiàn)有的民機維修記錄整理到故障案例數(shù)據(jù)庫和故障原因數(shù)據(jù)庫中。
步驟2故障文本預(yù)處理
由于民機維修記錄是由維修和檢查人員手工記錄的,會存在一定的不規(guī)范。因此在輸入故障診斷模型前,需要將其進行處理使模型更好地提取語義特征。
步驟3故障診斷模型的建立
使用現(xiàn)有的維修記錄對所建的BERTLightGBM 故障診斷模型進行訓(xùn)練,在測試時對預(yù)測結(jié)果錯誤的記錄進行原因修正,形成正確的故障原因;并對未標(biāo)明故障原因的維修數(shù)據(jù)做出故障原因的預(yù)測。
步驟4故障案例數(shù)據(jù)庫和故障原因數(shù)據(jù)庫的更新
將專家修正過的診斷結(jié)果更新到故障案例數(shù)據(jù)庫及故障原因數(shù)據(jù)庫中,使用不斷積累更新的數(shù)據(jù)庫進行故障診斷模型的訓(xùn)練,提高故障診斷結(jié)果的準(zhǔn)確率。
在實際應(yīng)用過程中,將故障數(shù)據(jù)預(yù)處理環(huán)節(jié)與所建立的BERT-LightGBM 故障診斷模型進行集成,維修人員僅需把初始的維修記錄輸入到集成模型中,即可得到故障診斷結(jié)果,以輔助維修人員做出正確的維修決策,有效提高模型的工程實用性。
本文提出的基于BERT-LightGBM 維修文本故障診斷模型主要包括兩部分:首先,建立基于BERT 模型實現(xiàn)維修文本數(shù)據(jù)的向量表示及其特征提??;其次,將BERT 模型所提取的文本特征及其對應(yīng)的故障原因同時輸入到所建立的LightGBM 模型中,以實現(xiàn)特征的分類。故障診斷模型框架如圖3 所示。
圖3 BERT-LightGBM 模型框架Fig.3 BERT-LightgGBM model framework
由于飛機維修文本數(shù)據(jù)量較大,傳統(tǒng)的BERT 模型在文本分類中有著較好的實驗結(jié)果,但消耗資源較大、所需時間較長,在實際工程應(yīng)用較少。因此本文將BERT 和LightGBM 進行融合,在BERT 模型充分提取全文語義特征的同時,利用LightGBM 可以節(jié)省內(nèi)存并加快運行速度的優(yōu)點,解決傳統(tǒng)BERT 模型在大樣本環(huán)境下非常耗時的問題,并且在一定程度上提高了故障診斷準(zhǔn)確,增強了傳統(tǒng)BERT 模型在工程應(yīng)用中的實用性。
由于文本無法直接被模型識別計算,因此首先需要將其進行向量化表示。對維修文本進行以字為單位的分割,但由于維修文本長度不等,而BERT 采用固定長度序列輸入,因此需要首先設(shè)定一個最大句子長度的超參數(shù),句子根據(jù)其設(shè)定進行長截短補。同時為了更好地融合全文語義,將字向量(Token embedding)和句向量(Segment embedding)融合為語義向量,得到向量表示E:
式中:E表示維修文本的融合語義向量;T表示維修文本的字向量;S表示維修文本的句向量。其中,字向量表示每個字的語義信息,句向量用于區(qū)分不同的句子。加入CLS 向量表示整篇文本的語義,可以用于之后的分類任務(wù);加入SEP 向量句末分割符,用于將2 個句子分割開。
為了使模型可以捕捉順序序列,無論句子結(jié)構(gòu)如何變化,該模型都會得到類似的結(jié)果。因此在輸入特征提取模型前引入位置信息的特征即位置向量(Position Embedding),使得不同位置的字向量有差異,并且這種差異蘊含某種關(guān)系,可以從一個位置推斷出另外一個位置。編碼公式為
式中:PE 是位置編碼結(jié)果;pos 是字在句子中的位置;i是指編碼中每個值的索引,即下標(biāo),i=1,2,…,n;dmodel是編碼的維度。
最終,BERT 模型的輸入的向量為
在預(yù)訓(xùn)練階段,Transformer 模型對輸入向量進行訓(xùn)練。其中,CLS 放在句子的首位,經(jīng)過Transformer 模型中多頭注意力機制來獲取句子級別的信息表示得到的整句的表征向量,可用于后續(xù)的分類任務(wù)。
圖4 為在做分類任務(wù)時輸入的向量表示示例,當(dāng)輸入“發(fā)現(xiàn)3 號主輪磨平”,將每個字分割得到每個字的字向量、句向量及位置向量,并在句首形成CLS 向量,且由于輸入只有一個句子,因此只有一個SEP 句末分隔符。
圖4 輸入的向量表示示例Fig.4 Examples of vector representations of inputs
在民機維修記錄文本中,包含大量的特定領(lǐng)域詞匯,為了使模型充分捕捉融合上下文的雙向語義、更加關(guān)注于重點詞匯,因此在模型中引入了12 個雙向Transformer 編碼層,即隱藏層,用以對文本進行特征提取,Transformer 的編碼器也是預(yù)訓(xùn)練模型的核心部分,其編碼層內(nèi)部結(jié)構(gòu)如圖5 所示。
圖5 Transformer 編碼層內(nèi)部結(jié)構(gòu)Fig.5 Internal structure of Transformer encode layer
1)本文采用Multi-head Self-Attention 機制進行特征提?。壕幋a向量分別與多個隨機初始化的矩陣(分別設(shè)為,其 中維度相同)相乘計算出多個新的矩陣Qi、Ki、Vi由于多頭注意力可以在不同的空間中學(xué)習(xí)到相關(guān)信息,使模型更加關(guān)注重點詞匯,但不同的注意力頭之間捕捉的信息存在冗余,因此頭數(shù)過多不僅會增加模型參數(shù)量,準(zhǔn)確率可能也有所降低。因此經(jīng)過查找相關(guān)文獻,本文將向量X分別輸入到8 個自注意力機制中,再把輸出拼接得到最終的注意力向量。
計算公式為
計算每個注意力機制Attention 矩陣,計算出其他字對于該字的一個分?jǐn)?shù)值Si,即為每個詞對于當(dāng)前位置的詞的相關(guān)性大?。?/p>
式中:Dk表示向量Ki的維度。
使用softmax 函數(shù)進行歸一化,計算注意力概率:
之后對注意力概率進行隨機失活:
得到注意力權(quán)重:
把每一個自注意力機制的輸出向量串連拼接起來,得到最終的輸出向量R:
2)加和及歸一化層:首先使用殘差網(wǎng)絡(luò)解決梯度消失問題,并對不同的輸出相加;其次進行層歸一化,計算公式為
式中:LN 為層歸一化后的結(jié)果;m為向量的編碼維度;n表示加和后第n個位置的字向量;μj=β=(β1,β2,…,βn) 和γ=(γ1,γ2,…,γn) 為 待 定向量。
3)使用全連接層進行前饋神經(jīng)網(wǎng)絡(luò)的前向計算,并接一層加和及歸一化層,其輸出綜合了上下文特征的各個詞的向量表示,以防止梯度消失;最后使用Gelu 激活函數(shù)進行非線性映射。
在模型訓(xùn)練的時候,執(zhí)行MLM 和NSP 任務(wù)讓模型盡力去理解上下文關(guān)系。預(yù)訓(xùn)練好的BERT 模型中每個詞都充分融合了上下文信息,CLS 位置包含了句子關(guān)系信息。
在最后一層編碼層之后,經(jīng)池化層和tanh 激勵函數(shù)做一定的變換,將CLS 標(biāo)記對應(yīng)的整句向量表示hi取出來,作為整個序列的表示并返回。模型輸出則是輸入各字對應(yīng)的融合全文語義信息后的向量表示,降低矩陣的維度,增加了模型的泛化能力。最終輸出特征為
式中:mi為輸入序列X的最終特征;W1和W2是權(quán)重矩陣;hi是池化層的輸入;σ是tanh 激活函數(shù)。
BERT 模型在訓(xùn)練過程中會產(chǎn)生O(L×H)個參數(shù),其中L表示詞表矩陣維度;H表示隱藏層參數(shù)矩陣維度;當(dāng)數(shù)據(jù)量較大時,模型參數(shù)量多,占用內(nèi)存較大,訓(xùn)練速度緩慢。為了加快訓(xùn)練速度,在減少參數(shù)量做了如下操作[26]:
1)嵌入層參數(shù)因式分解。不將獨熱編碼向量直接映射到隱藏層,而是將一個高維詞嵌入矩陣分解成2 個低維詞嵌入矩陣,即產(chǎn)生的參數(shù)個數(shù)為O(L×E+E×H),其中E表示嵌入矩陣,當(dāng)E遠(yuǎn)小于H時參數(shù)量減小的很明顯。
2)在不同層的Transformer 編碼器之間共享多頭自注意力機制以及前饋神經(jīng)網(wǎng)絡(luò)中部分參數(shù)。
在下游微調(diào)任務(wù)中,針對本文提出的民機維修文本的故障原因分析問題,是一個多分類的問題。將預(yù)訓(xùn)練學(xué)習(xí)到的語法語義知識遷移到下游任務(wù),利用訓(xùn)練得到網(wǎng)絡(luò)參數(shù),初始化網(wǎng)絡(luò)并對其進行微調(diào),將分類操作轉(zhuǎn)移到預(yù)訓(xùn)練字向量中,并在BERT 模型的輸出端接上分類器,以實現(xiàn)故障原因的分類。
本文使用LightGBM 模型實現(xiàn)語義特征的分類,它是基于梯度提升決策樹的優(yōu)化算法。將BERT 模型提取的維修文本特征以及故障原因標(biāo)簽作為該模型的輸入。在訓(xùn)練過程中根據(jù)梯度差異計算不同葉子節(jié)點不同的權(quán)重,以對應(yīng)于類別的得分,輸出得分最高的類別。相較于softmax 分類器,LightGBM 模型可以實現(xiàn)并行學(xué)習(xí)并且更加充分地學(xué)習(xí)數(shù)據(jù)與標(biāo)簽之間的真實聯(lián)系,利用數(shù)據(jù)特征擬合,以達(dá)到更加高效的分類效果。
LightGBM 算法輸入的訓(xùn)練數(shù)據(jù)集為{(m1,y1),(m2,y2),…,(mn,yn)},其 中mi(i=1,2,…,n)是提取的維修本文的特征向量,yi是對應(yīng)的故障原因。在模型訓(xùn)練添加決策樹時第t步的損失表示形式如式(16),每輪迭代的目標(biāo)為找到一個弱學(xué)習(xí)器ht(m),使得本輪損失函數(shù)L(y,ft(m))最小。
式中:ft-1(m)為上一輪強學(xué)習(xí)器學(xué)習(xí)的結(jié)果。
計算第t輪第i個樣本的損失函數(shù)的負(fù)梯度:
每次訓(xùn)練迭代學(xué)習(xí)rti來擬合殘差。
利用mi和rti進行決策樹最優(yōu)節(jié)點分裂擬合第k棵回歸樹。對于所有葉子節(jié)點中的數(shù)據(jù)樣本,計算出使得損失函數(shù)最小的輸出值cti:
從而得到ht(m):
式中:Rtj(j=1,2,…,J)表示第t棵回歸樹的J個葉子節(jié)點的區(qū)間;I為示性函數(shù)。
則強學(xué)習(xí)器表示為
由于決策樹在計算分割節(jié)點的信息增益時會對每個特征遍歷所有數(shù)據(jù)點,為了快速找到一個最優(yōu)特征分割點作為葉子節(jié)點,使得在分割之后整棵樹的增益值最大,在上述步驟中融合了GOSS 和EFB2 種 方 法。
1)GOSS 使用梯度作為樣本權(quán)重,本文在采樣時重點關(guān)注梯度較大的特征,對于梯度小的特征進行進一步學(xué)習(xí)。之后遍歷樣本并計算信息增益,信息增益越大,樣本梯度就越大,即特征重要度就越高。在節(jié)點d上特征j的信息增益計算公式為[27]
式中:n為使用樣本總數(shù);gi為損失;Hl、Hr、Bl和Br為集合H和B劃分在節(jié)點d左邊(下標(biāo)l)、右邊(下 標(biāo)r)的 特 征 集 合,njl和njr分 別 為Hl∪Bl和Hr∪Br的集合個數(shù);按梯度對特征進行排序,選取前a%個特征形成集合H,從剩下的小梯度特征中選取b%個特征形成集合為小梯度特征的采樣權(quán)重。
2)EFB 使用直方圖算法將特征空間中相互獨立的特征進行合并來減少特征的數(shù)量,當(dāng)特征以獨熱編碼的形式表示時,特征之間是不完全互斥的,因此設(shè)置沖突比對不互斥程度進行衡量,當(dāng)沖突比較小時進行特征合并,此時合并特征不會丟失信息,并且形成了低維特征空間[28]。從而既降低內(nèi)存占用以及時間復(fù)雜度,并且防止了過擬合的問題。
本文所采用的數(shù)據(jù)集來自某航空公司某型號飛機的歷史維修記錄,該數(shù)據(jù)集包含了33 562條維修記錄,其中22 000 條作為訓(xùn)練集,4 781 條作為驗證集,4 781 條作為測試集。實驗環(huán)境為:操作系統(tǒng)Windows10、處理器Intel(R) Xeon(R) Gold 6226R CPU @2.90GHz、Python3.6、Tensorflow1.14。由于原始訓(xùn)練數(shù)據(jù)集缺少故障原因,因此首先需要根據(jù)經(jīng)驗對其故障原因進行診斷標(biāo)注。故障原因及其數(shù)量如圖6 所示,將故障原因分為111 類。維修記錄中主要包括機型、機號、發(fā)生日期、ATA 章節(jié)、故障描述、故障處理及故障原因等信息,其中機型、機號、發(fā)生日期等信息與故障原因的診斷相關(guān)性不大,因此為了降低數(shù)據(jù)的維度本文把這幾列刪除。表2 為標(biāo)注故障原因后的某航空公司飛機部分維修記錄。表中故障原因則為本文分析預(yù)測的目標(biāo),它主要通過使用本文所用方法對故障描述及故障處理兩列進行分析獲得。
表2 標(biāo)注后的某航空公司飛機維修記錄(部分)Table 2 Aircraft maintenance records of an airline after marking (part)
圖6 故障原因及數(shù)量Fig.6 Causes and numbers of faults
由于維修文本的表述與故障映射存在一定關(guān)系,對故障位置及原因表述明確的維修文本數(shù)據(jù),可直接使用文本中的關(guān)鍵字和詞與故障案例數(shù)據(jù)庫進行比對匹配從而實現(xiàn)故障判定和維修決策的生成,使故障原因判別更為直接。如:“3#主輪見線,更換主輪后測試正常”,可通過數(shù)據(jù)庫匹配直接診斷為:“機輪磨損、見線”,以減少資源的占用。
針對存在歧義及表述具有不確定性的維修文本,如:“空中巡航時垂直導(dǎo)航指引消失,自動駕駛B 脫開.幾十分鐘后,PFD 上速度帶出現(xiàn)黃色SPD LIMIT 標(biāo)志.”,可根據(jù)前文總結(jié)的民機維修文本的特點首先文本進行預(yù)處理操作,將其整理為規(guī)范文本,用其進行模型的訓(xùn)練及測試,以提升模型對有用信息的關(guān)注能力,主要進行的處理如下:
1)文本整合
在進行飛機維修文本故障原因分析時,主要使用維修記錄中故障描述及故障處理兩列,因此本文將這兩列數(shù)據(jù)合并成一列,以便進行后續(xù)整體分析。
2)文本隨機化
在構(gòu)建維修文本數(shù)據(jù)集時,如果按類別進行數(shù)據(jù)的存儲,在模型訓(xùn)練在過程中的一段時間內(nèi)會只關(guān)注某一類別的數(shù)據(jù),可能會造成模型過擬合,泛化能力很差,因此本文將維修文本亂序輸入。
3)文本清洗
由于民機維修文本是由維修檢查人員人工進行記錄,常常會存在記錄不規(guī)范的問題。為了使模型更加關(guān)注于字詞本身和語句,因此對文本進行清洗操作。主要包括去除文本中特殊的符號,如:“()”“!”“…”等符號,去除多余的空格及中英文符號統(tǒng)一等步驟。
4)停用詞過濾
在人工描述的維修文本中通常會存在“的”“并且”“和”等出現(xiàn)頻率高但是卻無實際含義的詞,去除這些詞可以在一定程度上降低文本的特征維度。預(yù)處理后的結(jié)果如表3 所示。
表3 部分飛機維修文本預(yù)處理結(jié)果Table 3 Partial results of aircraft maintenance text preprocessing results
將測試集數(shù)據(jù)輸入到用訓(xùn)練集訓(xùn)練好的預(yù)訓(xùn)練模型中,得到最終分類結(jié)果如表4 所示,其中故障原因這一列為診斷模型輸出結(jié)果。為了驗證提出的不斷修正的故障診斷流程可以提高故障診斷結(jié)果的準(zhǔn)確率,逐漸遞增歷史維修記錄并將其輸入到 BERT-LightGBM 模型中,采用準(zhǔn)確率(Accuracy)、精確度(Precision)、召回率(Recall)及 F1 值作為評價指標(biāo),觀察模型輸出評價指標(biāo)的變化情況,最終實驗情況如圖7 所示。
表4 故障診斷結(jié)果Table 4 Fault diagnosis results
由圖7 中的數(shù)據(jù)可以明顯觀察到,當(dāng)故障樣本較少時,可能會使模型欠擬合模型準(zhǔn)確率很低;隨著故障樣本迭代式地增多,準(zhǔn)確率不斷增長,直至維修文本數(shù)據(jù)量達(dá)到20 000 時,準(zhǔn)確率達(dá)到最大值98.93%,精確度、召回率和 F1 值也達(dá)到了較高的值,分別達(dá)到了99.98%、99.98%、99.98%。由此可以說明,所建立的故障診斷模型的準(zhǔn)確率隨著維修記錄數(shù)據(jù)庫中故障樣本的增加而提高,但當(dāng)維修文本達(dá)到一定數(shù)量時,若繼續(xù)增加樣本數(shù)量準(zhǔn)確率基本保持不變,并且還可能會造成計算資源的浪費,因此本文選用數(shù)據(jù)量為20 000 的維修文本數(shù)據(jù)進行后續(xù)研究。
圖7 迭代訓(xùn)練結(jié)果Fig.7 Iterative training results
基于BERT-LightGBM 的故障診斷模型在訓(xùn)練時,選擇的批處理大?。˙atch Size)即一次訓(xùn)練所選取的樣本數(shù)和遍歷次數(shù)(Epoch)都會影響故障診斷的準(zhǔn)確率。因此不斷調(diào)整這2 個參數(shù)以實現(xiàn)最優(yōu)的準(zhǔn)確率,實驗結(jié)果如圖8所示。
由圖8 可知,在Batch Size 相同時,準(zhǔn)確率隨著遍歷次數(shù)的增大而增大;由于在遍歷次數(shù)相同時,Batch Size=16 時準(zhǔn)確率最大。當(dāng)Batch Size=8時,由于模型欠擬合導(dǎo)致模型的準(zhǔn)確率無法隨著遍歷次數(shù)的增大而持續(xù)升高;當(dāng)Batch Size=32時,由于一次訓(xùn)練所選取的樣本數(shù)過大,可能會導(dǎo)致模型過擬合,使其在局部形成最優(yōu)值,因此無法得到最優(yōu)的準(zhǔn)確率。因此本文選擇Epoch=5,Batch Size=16 進行后續(xù)研究。
圖8 不同Epoch 和Batch Size 的準(zhǔn)確率Fig.8 Accuracy of different Epochs and Batch Sizes
為了研究本文所提出的基于BERTLightGBM 方法在民機維修文本故障原因分析的有效性和優(yōu)越性,選擇了文本分類常用模型TextCNN、LSTM 以及BiLSTM 作為對照實驗。基于BERT-LightGBM 模型的訓(xùn)練參數(shù)如表5所示。BERT-LightGBM 模型訓(xùn)練損失如圖9 所示。由圖9 可知,BERT-LightGBM 模型在迭代超過4 500 輪后,訓(xùn)練集上的損失波動幅度變小,逐漸趨于穩(wěn)定,訓(xùn)練集的準(zhǔn)確率基本保持不變,說明模型訓(xùn)練擬合效果已達(dá)最優(yōu)。
圖9 BERT-LightGBM 模型訓(xùn)練損失Fig.9 BERT-LightGBM model training loss
表5 BERT-LightGBM 模型訓(xùn)練參數(shù)Table 5 BERT-LightGBM model training parameters
幾種文本分類模型的對比實驗結(jié)果如表6 所示。BERT-LightGBM 模型(隱藏層維度為768)最后在測試集上進行10 次測試實驗,取其平均值作為模型在測試集上的平均準(zhǔn)確率,約為 98.03%,相較于本文的所采用的對比模型TextCNN 準(zhǔn)確率提高了38.99%,比LSTM 模型(隱藏層維度為768)準(zhǔn)確率提高了22.98%,比BiLSTM 模型(隱藏層維度為768)準(zhǔn)確率提高了18.16%,比BERT 模型(隱藏層維度為768)準(zhǔn)確率提高了0.91%;并且原BERT 模型在表5 的參數(shù)設(shè)置下訓(xùn)練20 000 數(shù)據(jù)集需要12 h,而BERT-LightGBM 模型訓(xùn)練只需要9.8 h,說明BERT-LightGBM 模型對于提高飛機維修文本故障診斷的效果更好,并且訓(xùn)練速度有了很大的提升,因此本文所建立的BERT-LightGBM 模型能夠在一定程度上提高對飛機維修文本故障診斷的效率。
從 表6 可 知,BERT-LightGBM 模 型 與TextCNN、LSTM 和BiLSTM 相比,平均準(zhǔn)確率相差較大,這是因為TextCNN 利用局部卷積的思想只能捕獲相鄰詞之間的語義關(guān)系,缺乏對全局信息的捕獲能力;LSTM 模型只可以融合單向的上下文信息得到特征信息并且會存在記憶退化;BiLSTM 模型在雙向提取語義特征時,能關(guān)注一部分句子的前后信息,然而這些信息是遞歸而來的,可能會丟失某個位置的局部信息,只是在一定程度上解決了長程依賴問題。而本文所建立的BERT-LightGBM 模型可以結(jié)合上下文進行區(qū)分同一詞語在不同語句中的不同語義,直接捕捉上下文信息,使模型充分融合全文的雙向語義、更加關(guān)注于重點詞匯,擁有強大的語義表征能力,因此在飛機維修文本故障原因分析中的表現(xiàn)更優(yōu)。
表6 不同模型的對比實驗結(jié)果Table 6 Comparison of experimental results of different models
在大數(shù)據(jù)背景下,針對目前飛機維修文本中蘊含的豐富的信息但無法充分被利用的問題,本文以真實的民機維修文本數(shù)據(jù)為例,提出了一種不斷修正迭代的故障診斷方法,建立了基于飛機維修文本數(shù)據(jù)的BERT-LightGBM 故障診斷模型。在建立故障診斷模型時,針對飛機維修文本的數(shù)據(jù)特點,提出了以字和整句為單位的理解方式,為了更好地融合理解維修文本的全文語義,在模型中引入了多頭注意力機制,并且針對當(dāng)數(shù)據(jù)量較大時診斷速度慢的問題,采用參數(shù)因式分解及共享的方法減小參數(shù)量。實驗結(jié)果表明:①將不斷遞增的維修文本數(shù)據(jù)輸入到BERTLightGBM 診斷模型并修正,可以提高所提出故障診斷方法的準(zhǔn)確率;②將本文所建立的BERT-LightGBM 模 型 與 原 BERT 模 型、TextCNN 模 型、LSTM 模 型 和BiLSTM 模 型 在相同數(shù)據(jù)集上進行準(zhǔn)確率對比,可以看出本文所建立的模型在維修文本數(shù)據(jù)集上有很好的表現(xiàn);③將改進的BERT-LightGBM 模型與原BERT模型的診斷速度相比,所提出的故障診斷模型可以在一定程度上提高診斷速度。因此本文所提出的方法可以實現(xiàn)飛機維修文本故障原因的智能診斷,輔助維修人員定位故障,便于更快做出正確的維修決策。