聶同攀,曾繼炎,程玉杰,*,馬梁
1. 北京航空航天大學 可靠性工程研究所,北京 100083 2. 航空工業(yè)第一飛機設計研究院,西安 710089 3. 可靠性與環(huán)境工程技術(shù)國防科技重點實驗室,北京 100083 4. 北京航空航天大學 可靠性與系統(tǒng)工程學院,北京 100083
隨科技水平日益發(fā)展,飛機系統(tǒng)的復雜程度日益上升,其故障的嚴重性也不斷提高。一次嚴重的飛機系統(tǒng)故障往往會造成巨大的財產(chǎn)損失乃至人員傷亡。為減輕飛機系統(tǒng)故障帶來的嚴重后果,需在故障早期進行快速、準確的故障診斷并予以排除。
飛機電源系統(tǒng)是飛機最重要的系統(tǒng)部件之一,承擔著為飛行控制、導航和無線電通信等裝置提供電力的功能,關(guān)系著飛機上各種用電設備的正常運行和飛行安全。近年來,飛機機載設備的電氣化程度越來越高,對作為機載設備能量來源的飛機電源系統(tǒng)提出了越來越高的可靠性要求。目前,飛機電源系統(tǒng)故障診斷方法主要可分為基于數(shù)據(jù)的方法和基于知識的方法。目前學者們廣泛研究的是基于數(shù)據(jù)的方法,即通過傳統(tǒng)機器學習或深度學習等方法挖掘數(shù)據(jù)中的信息,訓練模型以進行故障診斷?;跀?shù)據(jù)的方法不需要很多的專家知識,在數(shù)據(jù)充足的情況下模型通常能取得較高的準確度。然而基于數(shù)據(jù)的方法也存在兩個問題:一個問題是可解釋性,傳統(tǒng)機器學習和深度學習模型對于使用者來說是一個黑盒,無法就輸出的故障診斷結(jié)果給出解釋,降低了在實際工程應用中的可信度;另一個問題則是無法有效地利用已有的先驗知識,如故障隔離手冊(Fault Isolation Manual,F(xiàn)IM)等非結(jié)構(gòu)化知識,造成了非結(jié)構(gòu)化數(shù)據(jù)資源的浪費。
知識圖譜由谷歌公司于2012年提出,是一種從非結(jié)構(gòu)化知識中抽取實體和關(guān)系并以有向圖的形式存儲實體及其間關(guān)系的知識庫,能實現(xiàn)對非結(jié)構(gòu)化知識的統(tǒng)一規(guī)范化表達。知識圖譜是一個由多個節(jié)點和多條邊組成的語義圖。每個節(jié)點代表一個概念或事物。概念指一類事物的總稱,如學生等;事物是指一個具體的人、事或物,如學生的具體名字。每條邊代表兩個節(jié)點之間的語義關(guān)系。
知識圖譜自誕生以來得到了廣泛的應用,其應用形式主要包括搜索、問答、推理和推薦等。王萌等考慮到用戶在不能給出明確的查詢意圖時搜索系統(tǒng)難以精準捕獲用戶興趣的問題,提出了人機混合的知識圖譜主動搜索。曹明宇等設計了基于知識圖譜的原發(fā)性肝癌知識問答系統(tǒng),針對成人中常見的原發(fā)性肝癌構(gòu)建了原發(fā)性肝癌知識圖譜。張鵬舉等提出了一種新的基于多特征實體消歧的中文知識圖譜問答系統(tǒng)。于娟等提出了基于圖數(shù)據(jù)庫的人物關(guān)系知識圖譜推理方法,以此發(fā)現(xiàn)隱含人物關(guān)系并檢測人物關(guān)系數(shù)據(jù)中存在的不一致,進而支持組織基于人物關(guān)系的管理決策。吳運兵等提出了一種基于路徑張量分解的知識圖譜推理算法。余敦輝等提出了基于知識圖譜和重啟隨機游走的跨平臺用戶推薦方法。李浩等將外部評分和電影自身知識相結(jié)合,提出了一種基于循環(huán)知識圖譜和協(xié)同過濾的電影推薦模型。
借鑒知識圖譜在醫(yī)療、社交和影評等諸多領(lǐng)域的成功應用,國外已有相關(guān)文獻將知識圖譜引入故障診斷領(lǐng)域,輔助實現(xiàn)系統(tǒng)故障診斷。Liu等指出多種鐵路操作故障及危害因其間的聯(lián)系構(gòu)成了因果網(wǎng)絡;該研究針對鐵路操作故障因果網(wǎng)絡使用知識圖譜探索鐵路操作故障,在異構(gòu)網(wǎng)絡中描述了故障和危害,揭示了故障的潛在規(guī)則并據(jù)此提出預防措施。Ou等指出隨電網(wǎng)規(guī)模的持續(xù)增長和智慧電網(wǎng)的快速發(fā)展,電力無線專網(wǎng)的覆蓋率逐漸上升;在這個過程中,如何有效使用電網(wǎng)智慧終端的信息實現(xiàn)無人值守網(wǎng)絡監(jiān)控和自動運維成為當前需要解決的問題;該研究針對電力無線專網(wǎng),使用終端信息和故障信息等構(gòu)建了知識圖譜,以此實現(xiàn)了電力無線專網(wǎng)故障診斷和決策制定。Feng等指出隨著國家電網(wǎng)的物聯(lián)網(wǎng)建設,大量異構(gòu)終端的接入使電網(wǎng)的采集和操作壓力驟增,用電信息采集系統(tǒng)故障運維知識庫(FOM-KB)將難以滿足大量運維信息條件下高效智能決策制定的需求;該研究提出了一種用電信息采集系統(tǒng)的知識問答系統(tǒng),實現(xiàn)了節(jié)點與邊的高效遍歷搜索,提高了推理效率并支持實現(xiàn)高效和智能化的采集與維護故障診斷。在中國,目前知識圖譜在故障診斷領(lǐng)域中的應用尚處于起步階段。劉瑞宏等提出了電信領(lǐng)域的知識圖譜構(gòu)建方法,該方法將電信網(wǎng)絡領(lǐng)域零散的專家知識及產(chǎn)品、案例知識和故障數(shù)據(jù)進行了有效關(guān)聯(lián),構(gòu)建了電信領(lǐng)域知識圖譜;他們使用該知識圖譜開展網(wǎng)絡故障智能診斷,輔助解決網(wǎng)絡運維領(lǐng)域的故障問題。李樂樂等研究了面向飛機維修與維護的知識圖譜構(gòu)建和應用方法,該方法利用知識圖譜和SQLite數(shù)據(jù)庫構(gòu)建了飛機維護維修知識庫;他們使用某航空公司提供的相關(guān)數(shù)據(jù)集建立了知識庫,并利用數(shù)據(jù)庫對飛機故障進行了時間維度和空間維度的分析。然而,這些研究主要集中在知識圖譜構(gòu)建層面,涉及應用的也只是提出了實現(xiàn)方法,而未能實際應用,尤其是關(guān)于飛機電源系統(tǒng)的知識圖譜構(gòu)建方法及應用尚鮮見報道。
考慮到飛機電源系統(tǒng)在研制生產(chǎn)和運行使用階段會產(chǎn)生包括設計生產(chǎn)數(shù)據(jù)、運行使用數(shù)據(jù)、維修保障數(shù)據(jù)等大量非結(jié)構(gòu)化文本數(shù)據(jù),利用知識圖譜技術(shù)可從上述非結(jié)構(gòu)化文本中提取知識,實現(xiàn)非結(jié)構(gòu)化知識的統(tǒng)一規(guī)范化表達,進而支持電源系統(tǒng)的故障診斷,提高基于知識的故障診斷自主化程度、可解釋性和診斷精度,本文提出了一套面向飛機電源系統(tǒng)故障診斷的知識圖譜構(gòu)建及應用流程,以利用上述非結(jié)構(gòu)化文本。首先,根據(jù)所用飛機電源系統(tǒng)非結(jié)構(gòu)化文本特性及專家知識構(gòu)建知識圖譜本體;然后,利用BMEO標注后的文本訓練基于雙向長短期記憶網(wǎng)絡模型,實現(xiàn)實體抽?。贿M一步,利用關(guān)系標注后的文本訓練基于注意力機制的雙向長短期記憶網(wǎng)絡模型,實現(xiàn)關(guān)系抽?。辉诖嘶A上,根據(jù)本體和實體抽取與關(guān)系抽取結(jié)果構(gòu)建面向飛機電源系統(tǒng)故障診斷的知識圖譜;最后,基于構(gòu)建的知識圖譜實現(xiàn)包括搜索、推薦和問答等的智能應用。
知識圖譜的構(gòu)建可分為自頂向下(Top-down)和自底向上(Bottom-up)兩種方式,其中自頂向下的方式指先構(gòu)建本體,而后根據(jù)本體進行實體和關(guān)系的抽取;自底向上的方式指先進行實體和關(guān)系的抽取,而后根據(jù)抽取結(jié)果歸納聚類,抽象出本體。自頂向下的構(gòu)建方法適合擁有明確知識范圍的專業(yè)領(lǐng)域知識圖譜,自底向上的構(gòu)建方法適合知識覆蓋范圍較廣的通用知識圖譜。由于在故障診斷領(lǐng)域通常具有較為明確的專業(yè)領(lǐng)域知識,因此主要針對自頂向下的知識圖譜構(gòu)建方法進行介紹。
自頂向下的知識圖譜構(gòu)建方法包含4個步驟:本體構(gòu)建、實體抽取、關(guān)系抽取和圖譜構(gòu)建,如圖1所示。
圖1 知識圖譜自頂向下構(gòu)建流程圖Fig.1 Flowchart of top-down knowledge graph construction
本體是對概念建模的規(guī)則,是對客觀世界的抽象描述,是針對概念及概念間的聯(lián)系以形式化方式給出的明確定義。在自頂向下的知識圖譜構(gòu)建流程中,本體構(gòu)建是從最頂層的概念開始構(gòu)建本體,細化為實體和關(guān)系。本體構(gòu)建包括確定實體類型和確定關(guān)系類型。其中確定關(guān)系類型包括確定兩個實體類型之間是否存在關(guān)系、確定兩個實體類型之間為何種關(guān)系和兩個實體類型中頭尾實體分別是哪個。
實體指現(xiàn)實中的具體事物或概念,在完成本體構(gòu)建后,根據(jù)本體進行實體抽取。實體抽取一般方法為采用機器學習技術(shù),從數(shù)據(jù)源中自動或半自動抽取實體。將原始數(shù)據(jù)中一部分劃為訓練集,進行標注后用于訓練實體抽取模型。常用的實體抽取方法包括基于隱馬爾可夫模型(Hidden Markov Model,HMM)的方法、基于條件隨機場(Conditional Random Field,CRF)的方法和基于雙向長短期記憶網(wǎng)絡(Long Short-Term Memory,LSTM)的方法。實體抽取模型的有效性一般通過準確率和召回率等指標進行評判。
關(guān)系指實體間的聯(lián)系,在完成實體抽取后,根據(jù)實體進行關(guān)系抽取。關(guān)系抽取一般方法為采用機器學習技術(shù)從數(shù)據(jù)源中自動或半自動地抽取關(guān)系。常用的關(guān)系抽取方法包括基于卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)的關(guān)系抽取和基于注意力機制的雙向長短期記憶網(wǎng)絡(Attention-Based Bi-directional LSTM)的關(guān)系抽取。關(guān)系抽取模型的有效性一般通過準確率和召回率等指標進行評判。
根據(jù)抽取出的實體、關(guān)系構(gòu)建圖數(shù)據(jù)庫完成知識圖譜的構(gòu)建。常用的構(gòu)建知識圖譜工具包括Neo4j、ArangoDB和OrientDB。
在構(gòu)建好的圖譜基礎上,可實現(xiàn)搜索、問答、推理和推薦等知識圖譜應用。
如圖2所示,面向飛機電源系統(tǒng)故障診斷的知識圖譜構(gòu)建及應用流程包括本體構(gòu)建、基于雙向長短期記憶網(wǎng)絡算法的實體抽取、基于注意力機制的雙向長短期記憶網(wǎng)絡算法的關(guān)系抽取、基于Neo4j的知識圖譜構(gòu)建及基于知識圖譜的智能應用。
圖2 面向飛機電源系統(tǒng)故障診斷的知識圖譜構(gòu)建及 應用流程圖Fig.2 Flowchart of knowledge graph construction and application for fault diagnosis of aircraft power system
首先,根據(jù)飛機電源系統(tǒng)故障診斷語料情況和圖譜需求構(gòu)建本體,確定實體類型和關(guān)系類型。
構(gòu)建本體后,將飛機電源系統(tǒng)故障診斷手冊中部分語料分為訓練集和測試集,對訓練集和測試集進行實體標注。使用訓練集訓練基于雙向LSTM的實體抽取模型,并使用測試集測試實體抽取模型效果。使用訓練好的實體抽取模型抽取故障診斷手冊語料中的實體。
最后,對訓練集和測試集進行關(guān)系標注。使用訓練集訓練基于注意力機制的雙向LSTM的關(guān)系抽取模型,并使用測試集測試關(guān)系抽取模型效果。結(jié)合實體抽取結(jié)果,使用訓練好的關(guān)系抽取模型抽取故障診斷手冊語料中的關(guān)系。
完成實體抽取和關(guān)系抽取后,使用知識圖譜構(gòu)建工具Neo4j,利用抽取出的飛機電源系統(tǒng)故障診斷知識構(gòu)建面向飛機電源系統(tǒng)故障診斷的知識圖譜。
在上述工作基礎上,基于構(gòu)建的飛機電源系統(tǒng)知識圖譜,以智慧搜索與推薦及智能問答等形式實現(xiàn)基于知識圖譜的智能應用。
在構(gòu)建針對某一專業(yè)領(lǐng)域的圖譜時,應根據(jù)專家知識先行構(gòu)建該圖譜的本體,為后續(xù)的實體抽取和關(guān)系抽取提供規(guī)范。本方法為針對特定領(lǐng)域,即飛機電源系統(tǒng)故障診斷的知識圖譜,因而選擇使用專家知識人工構(gòu)建本體。
構(gòu)建本體包括規(guī)定實體類型、規(guī)定關(guān)系類型和規(guī)定關(guān)系類型的頭尾實體類型。
對于飛機電源系統(tǒng)故障診斷知識圖譜,可用的實體類型主要為排故手冊和維修手冊等故障信息,包括故障類型、故障表現(xiàn)、故障原因、故障影響、解決措施等。
在知識圖譜中,實體是其中的一個個節(jié)點。使用非結(jié)構(gòu)化數(shù)據(jù)構(gòu)建一個知識圖譜需先根據(jù)本體對數(shù)據(jù)進行實體抽取。常用的實體抽取算法中,雙向長短期記憶網(wǎng)絡算法能像長短期記憶網(wǎng)絡算法一樣處理長期依賴問題,對于文字這樣字符之間相互影響在距離上跨度較大的數(shù)據(jù)有較好的效果。
2.3.1 雙向長短期記憶網(wǎng)絡算法
雙向LSTM算法是一種常用的實體抽取算法。其原理是將時序方向相反的兩個LSTM連接到同一個輸出。在進行實體抽取時,會同時用到上文和下文的信息。傳統(tǒng)的LSTM算法只能使用上文信息,而無法利用下文信息,難以用于實現(xiàn)準確的實體抽取。雙向LSTM算法通過將時序方向相反的兩個LSTM連接到同一個輸出,實現(xiàn)了上下文信息的利用,解決了LSTM算法無法使用下文信息的問題,改善了實體抽取的效果。雙向LSTM結(jié)構(gòu)圖如圖3所示。
圖3 雙向LSTM結(jié)構(gòu)示意圖Fig.3 Schematic diagram of bi-directional LSTM
構(gòu)成雙向LSTM的兩個不同方向的LSTM之間不共用狀態(tài),即正向LSTM的輸出狀態(tài)只會對正向LSTM產(chǎn)生影響,反向LSTM的輸出狀態(tài)只會對反向LSTM產(chǎn)生影響,它們之間沒有直接的連接,不會互相影響。
每一個時間節(jié)點的輸入會分別傳到正向和反向LSTM,根據(jù)各自的狀態(tài)產(chǎn)生輸出,這兩份輸出會一起連接到雙向LSTM的輸出節(jié)點,共同組合成最終輸出。雙向LSTM中雖然兩個方向的LSTM基本沒有交集,但因它們共同合成了輸出,所以對當前時間節(jié)點輸出的貢獻和造成的損失就可以在訓練中計算出來,并且它們的參數(shù)也會根據(jù)梯度被優(yōu)化到合適的值。
雙向LSTM在訓練時和普通單向LSTM非常類似,因為兩個不同方向的LSTM之間幾乎沒有交集,因此可分別展開為普通的前饋網(wǎng)絡。不過在使用反向傳播算法訓練時,無法同時更新狀態(tài)和輸出。同時正向狀態(tài)在時未知,且反向狀態(tài)在時未知,即狀態(tài)在各自方向的開始處都是未知的,在這里就需要進行人工設置。此外,正向狀態(tài)的導數(shù)在時未知,且反向狀態(tài)的導數(shù)在時未知,即狀態(tài)的導數(shù)在結(jié)尾處未知,這里一般需設為0,代表此時對參數(shù)更新不重要,然后開始正式訓練步驟:
對數(shù)據(jù)做前向迭代操作,先沿著到方向計算正向LSTM的狀態(tài),再沿著到方向計算反向LSTM的狀態(tài),最后獲得輸出。
進行反向迭代操作,即對目標函數(shù)求導的操作,先對輸出求導,然后沿著到方向計算正向LSTM的狀態(tài)導數(shù),再沿著到方向計算反向LSTM的導數(shù)。
根據(jù)求得的梯度值更新模型的參數(shù),完成一次迭代訓練。
輸出層是將雙向LSTM神經(jīng)網(wǎng)絡各個時刻的輸出進行求和取平均,最終得到了對象詞在當前句子環(huán)境下的語義表示,這個向量將作為編碼器的輸出傳遞給分類器。
2.3.2 基于雙向長短期記憶網(wǎng)絡算法的實體抽取流程
基于雙向長短期記憶網(wǎng)絡算法的實體抽取流程分為數(shù)據(jù)集劃分、實體標注、模型訓練、模型測試和實體抽取?;陔p向長短期記憶網(wǎng)絡算法的實體抽取流程圖如圖4所示。
圖4 基于雙向LSTM算法的實體抽取流程圖Fig.4 Flowchart of entity extraction based on bi-directional LSTM
選取部分原始語料,以8∶2的比例劃分為訓練集和測試集。對訓練集和測試集進行BMEO標注。BMEO標注是一種常用的實體標注方法,該方法通過給語料中的每一個字符添加表征其所在實體的位置和實體類型而標注實體。例如:語料中存在“故障模式”實體類型,則標簽“B-故障模式”代表該字符是一個故障模式實體的首字符,B為“Begin”的縮寫;標簽“M-故障模式”代表該字符是一個故障模式實體的中間字符,M為“Middle”的縮寫;標簽“E-故障模式”代表該字符是一個故障模式實體的尾字符,E為“End”的縮寫;標簽“O”代表該字符不在實體中,O為“Outside”的縮寫。
在完成實體標注后,以訓練集語料為輸入,訓練集標注結(jié)果為標簽,訓練基于雙向長短期記憶網(wǎng)絡的實體抽取模型。
使用測試集測試訓練好的模型實體抽取效果,將模型從測試集語料中抽取出的標簽與人工標注的標簽進行對比,計算準確率和召回率:
(1)
(2)
式中:為準確率(Precision);為召回率(Recall);為正類預測為正類(True Positive)的數(shù)量,即被實際抽取結(jié)果為某一標簽,且人工標注也是該標簽的字符數(shù)量;為負類預測為正類(False Positive)的數(shù)量,即實際抽取結(jié)果為某一標簽,但人工標注不是該標簽的字符數(shù)量;為正類預測為負類(False Negative)的數(shù)量,即人工標注為某一標簽,但實際抽取結(jié)果不是該標簽的字符數(shù)量。此外為負類預測為負類(True Negative),即實際抽取結(jié)果不是某一標簽,且人工標注也不是該標簽的字符數(shù)量。、、、的關(guān)系如圖5所示。
圖5 TP、FP、TN、FN之間的關(guān)系Fig.5 Relationship between TP, FP, TN, FN
使用經(jīng)測試后訓練好的模型抽取剩余原始語料中的實體,完成基于雙向長短期記憶網(wǎng)絡算法的實體抽取。
在知識圖譜中,關(guān)系是連接兩個實體之間的邊。在對非結(jié)構(gòu)化數(shù)據(jù)進行實體抽取后,需根據(jù)實體抽取結(jié)果再進行關(guān)系抽取。在常用的關(guān)系抽取算法中,基于注意力機制的雙向長短期記憶網(wǎng)絡因引入了注意力機制,可更好地分配計算資源,提高模型訓練的效果?;谧⒁饬C制的雙向長短期記憶網(wǎng)絡關(guān)系抽取算法是由Zhou等于2016年在自然語言處理(Natural Language Processing,NLP)領(lǐng)域的國際頂級會議Association for Computational Linguistics (ACL)上提出的。Zhou等指出傳統(tǒng)的關(guān)系抽取算法需詞性和最短依賴路徑等高階特征,導致計算量的消耗,同時注意到在待進行關(guān)系抽取的一個句子中,存在對關(guān)系有決定性影響的詞匯,而引入注意力機制可用于找到這個詞語,以此獲取句子中最重要的語義信息。相比于傳統(tǒng)關(guān)系抽取算法,基于注意力機制的雙向LSTM算法可在不使用詞性和最短依賴路徑等高階特征的情況下實現(xiàn)關(guān)系抽取,減少計算資源的消耗。因此選取基于注意力機制的雙向LSTM算法進行關(guān)系抽取。
2.4.1 基于注意力機制的雙向長短期記憶網(wǎng)絡算法
基于注意力機制的雙向LSTM算法是將注意力模型引入雙向LSTM中得到的算法。注意力模型是一種模擬人腦注意力的模型,其核心在于借鑒了人腦在特定時刻對事物的注意力會集中在某一特定的地方、忽略其他部分的特點。注意力模型是一種影響資源分配的模型,其原理是對于關(guān)鍵部分分配較多的注意力,對于其他部分分配較少的注意力,合理利用有限的計算資源,并且還可以去除非關(guān)鍵因素的影響。
基于注意力機制的雙向LSTM為在輸出層和隱藏層之間加入了注意力層,調(diào)整隱藏層輸出的權(quán)重。其結(jié)構(gòu)如圖6所示。
圖6 基于注意力機制的雙向LSTM結(jié)構(gòu)示意圖Fig.6 Schematic diagram of structure of attention-based bi-directional LSTM
圖6中,為雙向LSTM中各自獨立方向最終隱藏層狀態(tài)值的和,稱為雙向LSTM的最終狀態(tài);為所有時刻下隱藏層單元狀態(tài)對于最終狀態(tài)的注意力概率分布,其中的分量表示時刻下雙向LSTM狀態(tài)對最終狀態(tài)的注意力概率,由該時刻下各自獨立方向的狀態(tài)相加而得,為經(jīng)注意力加權(quán)后的文本特征向量。
基于注意力機制的模型一般都包含了兩部分計算過程,一是關(guān)于注意力概率分布的計算過程,二是基于注意力分布的最終特征計算過程。
為時刻下的輸出數(shù)據(jù)對于最終狀態(tài)的注意力概率,其表達式為
(3)
(4)
式中:為時刻下的雙向的隱藏層狀態(tài)值的和;為輸入序列元素的個數(shù);為類別標簽的數(shù)量;為權(quán)重矩陣。式(4)利用softmax函數(shù)作為注意力概率分布的計算方式。
基于注意力分布的最終特征計算公式為
(5)
在得到基于注意力機制的文本特征向量后,通過輸出層的softmax函數(shù),計算得出分類標簽的概率分布,計算過程表示為
(6)
′=
(7)
式中:為模型預測出的類別的概率分布;為模型輸出層的權(quán)重矩陣;′att()為向量′中第個分量值,向量長度與分類標簽的數(shù)量相等。經(jīng)過softmax函數(shù)分類可得基于注意力機制下文本類別概率分布,并與真實類別分布求取交叉熵損失,表示為
(,)=-lg()
(8)
2.4.2 基于注意力機制的雙向長短期記憶網(wǎng)絡算法的關(guān)系抽取流程
基于注意力機制的雙向長短期記憶網(wǎng)絡算法的關(guān)系抽取分為實體抽取、數(shù)據(jù)集劃分、關(guān)系標注、模型訓練、模型測試和關(guān)系抽取。圖7為基于注意力機制的雙向長短期記憶網(wǎng)絡算法的關(guān)系抽取流程圖。
圖7 基于注意力機制的雙向LSTM的關(guān)系抽取流程圖Fig.7 Flowchart of relation extraction based on attention-based bi-directional LSTM
使用基于雙向長短期記憶網(wǎng)絡算法的實體抽取模型抽取原始語料中的實體,生成“頭實體 尾實體 關(guān)系 所在句子”形式的語料,其中因為關(guān)系是有向的,需要區(qū)分頭實體與尾實體,二者在語料中的位置不可互換。如“小明在天安門”中實體“小明”和“天安門”之間的關(guān)系為“所在地點”,則生成的語料為“小明 天安門 所在地點 小明在天安門”。
選取部分生成的語料,以8∶2的比例劃分為訓練集和測試集。對訓練集和測試集進行關(guān)系標注。
完成標注后,以訓練集語料中頭實體、尾實體和所在句子為輸入,關(guān)系為標簽,訓練基于注意力機制的雙向長短期記憶網(wǎng)絡的關(guān)系抽取模型。
使用測試集測試訓練后模型的關(guān)系抽取效果,將模型從測試集語料中抽取出的關(guān)系與人工標注的關(guān)系進行對比計算準確率和召回率,計算方法同實體抽取。
使用測試后訓練好的模型抽取剩余語料中的關(guān)系,完成基于注意力機制的雙向長短期記憶網(wǎng)絡算法的關(guān)系抽取。
在抽取非結(jié)構(gòu)化知識中的實體和其間關(guān)系后,需根據(jù)這些抽取的知識構(gòu)建知識圖譜。
在諸多圖譜構(gòu)建工具中,Neo4j擁有多種優(yōu)點,包括高性能、設計的靈活性和開發(fā)的敏捷性。
Neo4j存儲了原生的圖數(shù)據(jù),可使用圖結(jié)構(gòu)的自然伸展特性設計免索引鄰近節(jié)點遍歷的查詢算法。圖的遍歷是圖數(shù)據(jù)結(jié)構(gòu)具有的獨特算法,即從一個節(jié)點開始,根據(jù)其連接的關(guān)系可快速、方便地找出它的鄰近節(jié)點。這種查找數(shù)據(jù)的方法并不受數(shù)據(jù)量的影響,因此在面對大量數(shù)據(jù)時查找效率更高。
一個系統(tǒng)對數(shù)據(jù)的需求會隨事件和條件的改變而改變。圖數(shù)據(jù)結(jié)構(gòu)的自然伸展特性及其非結(jié)構(gòu)化的數(shù)據(jù)格式使Neo4j的數(shù)據(jù)庫設計可具有很大的伸縮性和靈活性。隨需求的變化而增加的節(jié)點、關(guān)系及其屬性并不會影響原來數(shù)據(jù)的正常使用。
Neo4j數(shù)據(jù)模型設計直觀明了,以其為工具構(gòu)建的知識圖譜更容易進行迭代。
基于以上優(yōu)點,選擇Neo4j作為圖譜構(gòu)建工具。
完成知識圖譜的構(gòu)建后,可通過知識圖譜實現(xiàn)智能應用,包括智慧搜索與推薦及智能問答。
2.6.1 基于知識圖譜的智慧搜索與推薦
智慧搜索指用戶向系統(tǒng)輸入實體名,系統(tǒng)輸出有無該實體。在搜索過程中,用戶輸入的實體名中可能存在錯別字。為解決該問題,本圖譜采用基于相似度的搜索,在沒有完全匹配的實體時,將輸出與輸入實體名相似度較高的實體。常用的相似度算法包括余弦相似度、歐氏距離相似度和最長公共子序列(Longest Common Subsequence,LCS)相似度等。最長公共子序列相似度與兩個字符串間同順序相同字符數(shù)量有關(guān),相同字符越多,相似度越高,因而能更好地處理用戶輸入中存在錯別字的問題。
子序列指一個序列刪除若干個元素得到的新序列,兩個序列的公共子序列指同時是兩個序列子序列的序列,而最長公共子序列則是兩個序列所有公共子序列中最長的序列。
最長公共子序列指將兩個序列分別刪除若干個字符,得到兩個子序列,在所有可能的子序列中相同且最長的一組子序列。計算兩個序列之間的最長公共子序列可使用枚舉法和動態(tài)規(guī)劃法。枚舉法先列舉兩個序列各自所有的子序列,然后將這兩組子序列相互之間一一比較,得到最長公共子序列。枚舉法的算法復雜度與兩個字符串長度之和成指數(shù)關(guān)系,隨序列長度增加運算次數(shù)顯著增加。字符串普遍較長,因此枚舉法不適用于字符串相似度的計算。
動態(tài)規(guī)劃法解決了枚舉法難以解決尋找長字符串最長公共子序列的問題。動態(tài)規(guī)劃法求解兩個字符串之間最長公共子序列示意圖如圖8所示。
利用動態(tài)規(guī)劃法求解字符串“BDCABA”和“ABCBDAB”之間的最長公共子序列的過程如下:
1) 根據(jù)字符串長度,生成7×8的矩陣,令0,=,0=0。計算矩陣中每個位置的數(shù)值,若兩個字符串位置和位置對應字符相同,則,=-1,-1+1;若對應字符不同,則,=max(-1,,,-1)。如位置對應的和兩個字符串的字符均為“B”,則=+1=1;若位置兩字符串對應字符分別為“D”和“B”,則=max(,)=1。
2) 兩字符串間最長公共子序列長度為矩陣右下角位置的值,圖8中長度為4。
3) 從矩陣中位置開始回溯?;厮菀?guī)則為若當前位置為,,選擇-1,、,-1、-1,-1中數(shù)值最大的位置;當最大值有多個時可隨機選取。
圖8 動態(tài)規(guī)劃法示意圖Fig.8 Schematic diagram of dynamic programming
4) 根據(jù)回溯規(guī)則,得到一條回溯路徑→→→→→→→→,=0,回溯結(jié)束。
5) 選取回溯路徑上所有數(shù)值發(fā)生變化前的矩陣位置,即、、、,將這些位置對應的字符按順序排列即可得兩字符串的最長公共子序列“BCBA”?;厮萋窂娇赡懿恢挂粭l,對應的最長公共子序列不止一個。
推薦功能指在進行智慧搜索的同時,圖譜會根據(jù)相似度輸出與其擁有相似關(guān)聯(lián)實體的其他實體。相似度計算方法與智慧搜索相同,為基于最長公共子序列相似度的方法。
2.6.2 基于知識圖譜的智能問答
智能問答指用戶向知識圖譜輸入問題,知識圖譜輸出該問題的答案。智能問答的關(guān)鍵在于問題分類,即用戶需要什么類型的結(jié)果。常用的問題分類算法包括K均值聚類、貝葉斯分類和樸素貝葉斯分類。樸素貝葉斯分類器具有較高的效率和良好的泛化能力,故選擇樸素貝葉斯分類器作為搜索和問答的方法。
樸素貝葉斯分類器是概率分類器中最簡單的分類器,在很多情況下具有相當高的分類準確率,以高效率和良好的泛化能力而著稱。該分類器假設在給定類變量時屬性變量之間條件獨立,即
(9)
式中:()為類邊緣概率;為種不同的問題分類,={,,…,};為從問句中提取的維特征,={,,…,}。在條件獨立性假設下,樸素貝葉斯分類器具有簡單的星形結(jié)構(gòu),如圖9所示。
在樸素貝葉斯分類器結(jié)構(gòu)基礎上的聯(lián)合概率分解形式為
(10)
圖9 樸素貝葉斯分類器結(jié)構(gòu)示意圖Fig.9 Schematic diagram of structure of naive Bayesian classifier
式中:(|)為條件概率。
依據(jù)聯(lián)合概率的分解形式,得到樸素貝葉斯分類器的表示形式為
(11)
使式(11)取最大值的問題分類即為問句所屬問題分類。
在利用樸素貝葉斯分類器完成問題分類后,結(jié)合與知識圖譜中實體匹配得到的問句關(guān)鍵詞,在知識圖譜中進行檢索將得到的答案輸出給用戶,完成智能問答。
案例使用的數(shù)據(jù)來自飛機電源系統(tǒng)故障手冊文檔。該文檔包含飛機電源系統(tǒng)可能發(fā)生的故障、故障表現(xiàn)、故障原因和解決措施。該文檔部分內(nèi)容為
“電源參數(shù)顯示系統(tǒng)顯示發(fā)電機輸出電壓為0V或只有幾伏電壓
可能原因:① 副勵磁機繞組短路。使用萬用表檢查繞組電阻為0,或者用兆歐表檢查絕緣電阻為0;② 主發(fā)電機激磁繞組斷路。
排除方法:① 將發(fā)電機從發(fā)動機上取下來,送往修理廠修理,更換副勵磁機定子組件;② 將發(fā)電機從發(fā)動機上取下來,送往修理廠修理,更換主轉(zhuǎn)子組件?!?/p>
其中“電源參數(shù)顯示系統(tǒng)顯示發(fā)電機輸出電壓為0V或只有幾伏電壓”是故障模式“無刷交流發(fā)電機故障”的故障表現(xiàn);“副勵磁機繞組斷路”為故障模式“無刷交流發(fā)電機故障”的故障原因;“將發(fā)電機…更換主轉(zhuǎn)子組件”為故障模式“無刷交流發(fā)電機故障”的解決措施。
對飛機電源系統(tǒng)故障手冊中的內(nèi)容進行數(shù)據(jù)預處理。具體地,將“可能原因”“故障現(xiàn)象”“排除方法”之后編號項中每一項與其對應的故障模式單獨成句。經(jīng)數(shù)據(jù)預處理后的飛機電源系統(tǒng)故障手冊部分內(nèi)容為
“無刷交流發(fā)電機故障的故障表現(xiàn)為電源參數(shù)顯示系統(tǒng)顯示發(fā)電機輸出電壓為0V或只有幾伏電壓。
無刷交流發(fā)電機故障的可能原因為副勵磁機繞組短路。使用萬用表檢查繞組電阻為0,或者用兆歐表檢查絕緣電阻為0。
無刷交流發(fā)電機故障的可能原因為主發(fā)電機激磁繞組斷路。
無刷交流發(fā)電機故障的排除方法為將發(fā)電機從發(fā)動機上取下來,送往修理廠修理,更換副勵磁機定子組件。
無刷交流發(fā)電機故障的排除方法為將發(fā)電機從發(fā)動機上取下來,送往修理廠修理,更換主轉(zhuǎn)子組件?!?/p>
將該文檔中部分語料劃分為訓練集和測試集,用于實體抽取和關(guān)系抽取模型的訓練和測試。
基于專家知識,案例構(gòu)建飛機電源系統(tǒng)故障診斷知識圖譜的本體,共包含實體類型4個,關(guān)系類型3個。
實體類型包含故障模式、故障原因、故障現(xiàn)象和解決方法。關(guān)系類型及其頭、尾實體類型如表1 所示。構(gòu)建完成的本體可視化結(jié)果如圖10所示。
表1 關(guān)系類型、頭實體和尾實體類型Table 1 Relation types, head entity and tail entity types
圖10 本體可視化結(jié)果Fig.10 Visualization result of ontology
飛機電源系統(tǒng)故障手冊文檔原始語料劃分出的訓練集共有137句,4 344字;測試集共有31句,910字。
根據(jù)構(gòu)建的本體,使用BMEO格式標注訓練集中的實體。共標注實體267個,實體標注結(jié)果如表2所示。
表2 實體標注結(jié)果Table 2 Entity tagging results
例如,“交流發(fā)電機控制保護器故障”的實體類型為故障模式 (Failure Mode),因此其第一個字符“交”對應標簽為“B-故障模式”,最后一個字符“障”對應標簽為“E-故障模式”。
對飛機電源系統(tǒng)故障手冊文檔進行實體標注后,使用開源標注工具brat進行可視化展示,效果如圖11所示。
例如,在圖11原始語料中的句子“交流發(fā)電機控制保護器故障的故障表現(xiàn)為調(diào)壓輸出為0”中,標注出了故障模式實體“交流發(fā)電機控制保護器故障”和故障現(xiàn)象實體“調(diào)壓輸出為0”。
圖11 實體抽取模型訓練集文本標注可視化Fig.11 Visualization of training text annotation for entity extraction model
使用標注后的訓練集文本訓練雙向LSTM實體抽取模型,模型由一個embedding層、一個雙向LSTM層和一個全連接層組成。實體抽取模型參數(shù)如表3所示;模型配置如圖12所示,圖中為語料中最長句子的字符數(shù);為所有BMEO實體標簽的種類數(shù)加2,增加的兩項為雙向LSTM實體抽取所需的標簽〈unk〉和〈pad〉。
表3 實體抽取模型參數(shù)Table 3 Parameters of entity extraction model
圖12 實體抽取模型配置Fig.12 Configuration of entity extraction model
模型輸入為句子中所有的字符,模型輸出為個維向量,每個字符對應一個向量。若某字符對應的向量中數(shù)值最大的維度為,則該字符對應第個實體標簽。根據(jù)每個字符對應的實體標簽提取實體。
進而將測試集文本送入訓練好的模型抽取實體,并與人工標注的實體進行對比。實體抽取模型測試結(jié)果如圖13所示,可看出利用基于雙向長短期記憶網(wǎng)絡的算法成功實現(xiàn)了對測試集文本語料的實體抽取,共910條知識,準確率為99.63%,召回率為71.58%。
圖13 實體抽取模型測試結(jié)果Fig.13 Test results of entity extraction model
完成測試后,使用實體抽取模型抽取原始文檔中的實體,用于知識圖譜構(gòu)建。
關(guān)系抽取訓練集和測試集劃分與實體抽取相同。表4展示了用于進行關(guān)系抽取的訓練集語料。根據(jù)構(gòu)建的本體,以“頭實體 尾實體 關(guān)系 所在句子”的格式整理訓練集中的語料,如表5所示。
例如,在表4中的句子“主交流電源系統(tǒng)故障的故障表現(xiàn)為‘主交流’告警”中,實體“主交流電源系統(tǒng)故障”與實體“‘主交流’告警”之間的關(guān)系為“模式_現(xiàn)象”,因此生成的語料為“主交流電源系統(tǒng)故障‘主交流’告警 模式_現(xiàn)象 主交流電源系統(tǒng)故障表現(xiàn)為‘主交流’告警”。表5展示了關(guān)系抽取語料文本整理結(jié)果。
表4 關(guān)系抽取模型語料Table 4 Corpus of relation extraction model
表5 關(guān)系抽取模型語料文本整理結(jié)果Table 5 Text arrangement results for corpus of relation extraction model
使用開源標注工具brat對飛機電源系統(tǒng)故障手冊文檔中的關(guān)系進行標注,可視化展示效果如圖14所示。
圖14 關(guān)系抽取模型訓練集文本標注可視化效果Fig.14 Visualization of training text annotation for relation extraction model
圖14原始語料中的句子“交流發(fā)電機控制保護器故障的可能原因為接口板故障”中,標注出了實體“交流發(fā)電機控制保護器故障”和實體“接口板故障”之間的關(guān)系“模式_原因”。
使用處理后的訓練集文本訓練基于注意力機制的雙向LSTM關(guān)系抽取模型,模型由1個詞向量embedding層、2個位置向量embedding層、1個雙向LSTM層、1個Attention層、1個關(guān)系向量embedding層和1個softmax層組成。關(guān)系抽取模型參數(shù)如表6所示,模型配置如圖15所示,圖中為本體中關(guān)系類型的數(shù)量。
表6 關(guān)系抽取模型參數(shù)Table 6 Parameters of relation extraction model
圖15 關(guān)系抽取模型配置Fig.15 Configuration of relation extraction model
對于關(guān)系抽取語料中的每個句子,以一個實體的第一個字符在句中的位置為坐標原點,詞向量Embedding層輸入為句子中所有的字符,位置向量Embedding層1輸入為句子的頭實體位置向量,位置向量Embedding層2輸入為句子的尾實體位置向量。其中,實體的位置向量指其所在句子中每個字符距該實體首字符的距離。關(guān)系向量Embedding層輸入為所有關(guān)系類型,每個關(guān)系類型對應一個數(shù)字。
模型輸出為維向量,每個句子對應一個向量。若某句對應的向量中數(shù)值最大的維度為,則該句中頭尾實體之間的關(guān)系為第個關(guān)系。
根據(jù)實體標注結(jié)果,將測試集文本組織成“頭實體 尾實體 所在句子”的格式,將處理后的測試集文本送入訓練好的模型抽取實體關(guān)系,并與人工標注的關(guān)系進行對比。關(guān)系抽取模型測試結(jié)果如圖16所示,可看出利用基于注意力機制的雙向長短期記憶網(wǎng)絡算法成功實現(xiàn)了對測試集文本的關(guān)系抽取,共31條知識,準確率為75.00%,召回率為75.00%。
圖16 關(guān)系抽取模型測試結(jié)果Fig.16 Test result of relation extraction model
完成測試后,使用原始文本的實體抽取結(jié)果將原始文本組織成“頭實體 尾實體 所在句子”的格式,并使用關(guān)系抽取模型抽取原始文檔中的關(guān)系,用于圖譜構(gòu)建。
原始語料中每個實體作為一個節(jié)點,每個關(guān)系作為一條連接其頭實體和尾實體的邊。使用Neo4j將原始文本中人工標注和模型抽取的結(jié)果構(gòu)建為飛機電源系統(tǒng)故障診斷知識圖譜。由于構(gòu)建的知識圖譜整體包含的內(nèi)容較多,為更清晰地展示效果,選取部分知識圖譜內(nèi)容進行可視化展示,如圖17所示。
圖17 飛機電源系統(tǒng)故障診斷知識圖譜部分內(nèi)容可視化展示Fig.17 Visualization of part of knowledge graph for aircraft power system fault diagnosis
構(gòu)建的圖譜共包含實體74個,其中故障模式16個、故障原因34個、故障現(xiàn)象7個、解決方法17個。關(guān)系98條,其中模式_原因76條、模式_現(xiàn)象6條、模式_方法16條。構(gòu)建的知識圖譜詳情如圖18所示。
圖18 飛機電源系統(tǒng)故障診斷知識圖譜詳情Fig.18 Details of knowledge graph for aircraft power system fault diagnosis
經(jīng)人工審核可知,該知識圖譜已將原始文檔中大部分知識抽取并存儲,實現(xiàn)了飛機電源系統(tǒng)故障診斷知識圖譜的構(gòu)建。
完成知識圖譜構(gòu)建后,可通過智能問答系統(tǒng)和智慧搜索與推薦系統(tǒng)進行基于飛機電源系統(tǒng)故障診斷知識圖譜的搜索、推薦和問答。
3.6.1 智慧搜索與推薦結(jié)果
智慧搜索與推薦系統(tǒng)支持對于某一實體的搜索,在知識庫中對該實體的相關(guān)信息進行檢索并輸出;同時還會根據(jù)相關(guān)實體的相似度進行推薦。智慧搜索與推薦效果如圖19所示,可看出智慧搜索與推薦系統(tǒng)能實現(xiàn)對于實體“直流電源系統(tǒng)故障”的搜索及相關(guān)信息展示,并能根據(jù)相似度匹配算法實現(xiàn)具有相同故障原因和相同解決方法的故障模式推薦。
圖19 基于知識圖譜的智慧搜索與推薦Fig.19 Intelligent search and recommendation based on knowledge graph
3.6.2 智能問答結(jié)果
問答系統(tǒng)支持有關(guān)實體數(shù)量、關(guān)系數(shù)量、某一實體相關(guān)信息等的提問。智能問答效果如圖20所示,可看出智能問答系統(tǒng)對于實體數(shù)量、關(guān)系數(shù)量、實體“應急交流電源故障”相關(guān)信息等的提問能給出相關(guān)問題的有效答案。
圖20 基于知識圖譜的智能問答Fig.20 Intelligent Q & A based on knowledge graph
針對現(xiàn)有故障診斷方法對非結(jié)構(gòu)化知識資源利用效率低的問題,借鑒知識圖譜技術(shù)在其他領(lǐng)域成功應用的經(jīng)驗,提出了一套面向飛機電源系統(tǒng)故障診斷的知識圖譜構(gòu)建及應用全流程方法。利用所提方法能對飛機電源系統(tǒng)設計、研制、使用等階段產(chǎn)生的非結(jié)構(gòu)化知識數(shù)據(jù)進行充分挖掘,構(gòu)建的知識圖譜能為故障知識搜索、問答、推理診斷等任務提供豐富的知識基礎。以真實飛機電源系統(tǒng)故障手冊語料為例,對提出的知識圖譜構(gòu)建及應用方法進行了案例驗證,實現(xiàn)了非結(jié)構(gòu)化飛機電源系統(tǒng)故障診斷知識的結(jié)構(gòu)化存儲、基于知識圖譜的智慧搜索與推薦以及智能問答等應用,為知識圖譜技術(shù)在中國故障診斷領(lǐng)域的實際應用提供了有力支撐。
此外,由于航空故障診斷領(lǐng)域語料來源較少,模型訓練語料不充分,僅以飛機電源系統(tǒng)排故手冊作為數(shù)據(jù)源構(gòu)建的知識圖譜體量較小。未來筆者將在飛機的運行使用過程中,利用不斷產(chǎn)生的語料數(shù)據(jù)進一步提高知識抽取模型的精度,并對構(gòu)建的知識圖譜進行動態(tài)知識更新,從而更好地服務于飛機電源系統(tǒng)故障診斷。