聶同攀,曾繼炎,程玉杰,*,馬梁
1. 北京航空航天大學 可靠性工程研究所,北京 100083 2. 航空工業第一飛機設計研究院,西安 710089 3. 可靠性與環境工程技術國防科技重點實驗室,北京 100083 4. 北京航空航天大學 可靠性與系統工程學院,北京 100083
隨科技水平日益發展,飛機系統的復雜程度日益上升,其故障的嚴重性也不斷提高。一次嚴重的飛機系統故障往往會造成巨大的財產損失乃至人員傷亡。為減輕飛機系統故障帶來的嚴重后果,需在故障早期進行快速、準確的故障診斷并予以排除。
飛機電源系統是飛機最重要的系統部件之一,承擔著為飛行控制、導航和無線電通信等裝置提供電力的功能,關系著飛機上各種用電設備的正常運行和飛行安全。近年來,飛機機載設備的電氣化程度越來越高,對作為機載設備能量來源的飛機電源系統提出了越來越高的可靠性要求。目前,飛機電源系統故障診斷方法主要可分為基于數據的方法和基于知識的方法。目前學者們廣泛研究的是基于數據的方法,即通過傳統機器學習或深度學習等方法挖掘數據中的信息,訓練模型以進行故障診斷。基于數據的方法不需要很多的專家知識,在數據充足的情況下模型通常能取得較高的準確度。然而基于數據的方法也存在兩個問題:一個問題是可解釋性,傳統機器學習和深度學習模型對于使用者來說是一個黑盒,無法就輸出的故障診斷結果給出解釋,降低了在實際工程應用中的可信度;另一個問題則是無法有效地利用已有的先驗知識,如故障隔離手冊(Fault Isolation Manual,FIM)等非結構化知識,造成了非結構化數據資源的浪費。
知識圖譜由谷歌公司于2012年提出,是一種從非結構化知識中抽取實體和關系并以有向圖的形式存儲實體及其間關系的知識庫,能實現對非結構化知識的統一規范化表達。知識圖譜是一個由多個節點和多條邊組成的語義圖。每個節點代表一個概念或事物。概念指一類事物的總稱,如學生等;事物是指一個具體的人、事或物,如學生的具體名字。每條邊代表兩個節點之間的語義關系。
知識圖譜自誕生以來得到了廣泛的應用,其應用形式主要包括搜索、問答、推理和推薦等。王萌等考慮到用戶在不能給出明確的查詢意圖時搜索系統難以精準捕獲用戶興趣的問題,提出了人機混合的知識圖譜主動搜索。曹明宇等設計了基于知識圖譜的原發性肝癌知識問答系統,針對成人中常見的原發性肝癌構建了原發性肝癌知識圖譜。張鵬舉等提出了一種新的基于多特征實體消歧的中文知識圖譜問答系統。于娟等提出了基于圖數據庫的人物關系知識圖譜推理方法,以此發現隱含人物關系并檢測人物關系數據中存在的不一致,進而支持組織基于人物關系的管理決策。吳運兵等提出了一種基于路徑張量分解的知識圖譜推理算法。余敦輝等提出了基于知識圖譜和重啟隨機游走的跨平臺用戶推薦方法。李浩等將外部評分和電影自身知識相結合,提出了一種基于循環知識圖譜和協同過濾的電影推薦模型。
借鑒知識圖譜在醫療、社交和影評等諸多領域的成功應用,國外已有相關文獻將知識圖譜引入故障診斷領域,輔助實現系統故障診斷。Liu等指出多種鐵路操作故障及危害因其間的聯系構成了因果網絡;該研究針對鐵路操作故障因果網絡使用知識圖譜探索鐵路操作故障,在異構網絡中描述了故障和危害,揭示了故障的潛在規則并據此提出預防措施。Ou等指出隨電網規模的持續增長和智慧電網的快速發展,電力無線專網的覆蓋率逐漸上升;在這個過程中,如何有效使用電網智慧終端的信息實現無人值守網絡監控和自動運維成為當前需要解決的問題;該研究針對電力無線專網,使用終端信息和故障信息等構建了知識圖譜,以此實現了電力無線專網故障診斷和決策制定。Feng等指出隨著國家電網的物聯網建設,大量異構終端的接入使電網的采集和操作壓力驟增,用電信息采集系統故障運維知識庫(FOM-KB)將難以滿足大量運維信息條件下高效智能決策制定的需求;該研究提出了一種用電信息采集系統的知識問答系統,實現了節點與邊的高效遍歷搜索,提高了推理效率并支持實現高效和智能化的采集與維護故障診斷。在中國,目前知識圖譜在故障診斷領域中的應用尚處于起步階段。劉瑞宏等提出了電信領域的知識圖譜構建方法,該方法將電信網絡領域零散的專家知識及產品、案例知識和故障數據進行了有效關聯,構建了電信領域知識圖譜;他們使用該知識圖譜開展網絡故障智能診斷,輔助解決網絡運維領域的故障問題。李樂樂等研究了面向飛機維修與維護的知識圖譜構建和應用方法,該方法利用知識圖譜和SQLite數據庫構建了飛機維護維修知識庫;他們使用某航空公司提供的相關數據集建立了知識庫,并利用數據庫對飛機故障進行了時間維度和空間維度的分析。然而,這些研究主要集中在知識圖譜構建層面,涉及應用的也只是提出了實現方法,而未能實際應用,尤其是關于飛機電源系統的知識圖譜構建方法及應用尚鮮見報道。
考慮到飛機電源系統在研制生產和運行使用階段會產生包括設計生產數據、運行使用數據、維修保障數據等大量非結構化文本數據,利用知識圖譜技術可從上述非結構化文本中提取知識,實現非結構化知識的統一規范化表達,進而支持電源系統的故障診斷,提高基于知識的故障診斷自主化程度、可解釋性和診斷精度,本文提出了一套面向飛機電源系統故障診斷的知識圖譜構建及應用流程,以利用上述非結構化文本。首先,根據所用飛機電源系統非結構化文本特性及專家知識構建知識圖譜本體;然后,利用BMEO標注后的文本訓練基于雙向長短期記憶網絡模型,實現實體抽取;進一步,利用關系標注后的文本訓練基于注意力機制的雙向長短期記憶網絡模型,實現關系抽取;在此基礎上,根據本體和實體抽取與關系抽取結果構建面向飛機電源系統故障診斷的知識圖譜;最后,基于構建的知識圖譜實現包括搜索、推薦和問答等的智能應用。
知識圖譜的構建可分為自頂向下(Top-down)和自底向上(Bottom-up)兩種方式,其中自頂向下的方式指先構建本體,而后根據本體進行實體和關系的抽取;自底向上的方式指先進行實體和關系的抽取,而后根據抽取結果歸納聚類,抽象出本體。自頂向下的構建方法適合擁有明確知識范圍的專業領域知識圖譜,自底向上的構建方法適合知識覆蓋范圍較廣的通用知識圖譜。由于在故障診斷領域通常具有較為明確的專業領域知識,因此主要針對自頂向下的知識圖譜構建方法進行介紹。
自頂向下的知識圖譜構建方法包含4個步驟:本體構建、實體抽取、關系抽取和圖譜構建,如圖1所示。

圖1 知識圖譜自頂向下構建流程圖Fig.1 Flowchart of top-down knowledge graph construction
本體是對概念建模的規則,是對客觀世界的抽象描述,是針對概念及概念間的聯系以形式化方式給出的明確定義。在自頂向下的知識圖譜構建流程中,本體構建是從最頂層的概念開始構建本體,細化為實體和關系。本體構建包括確定實體類型和確定關系類型。其中確定關系類型包括確定兩個實體類型之間是否存在關系、確定兩個實體類型之間為何種關系和兩個實體類型中頭尾實體分別是哪個。
實體指現實中的具體事物或概念,在完成本體構建后,根據本體進行實體抽取。實體抽取一般方法為采用機器學習技術,從數據源中自動或半自動抽取實體。將原始數據中一部分劃為訓練集,進行標注后用于訓練實體抽取模型。常用的實體抽取方法包括基于隱馬爾可夫模型(Hidden Markov Model,HMM)的方法、基于條件隨機場(Conditional Random Field,CRF)的方法和基于雙向長短期記憶網絡(Long Short-Term Memory,LSTM)的方法。實體抽取模型的有效性一般通過準確率和召回率等指標進行評判。
關系指實體間的聯系,在完成實體抽取后,根據實體進行關系抽取。關系抽取一般方法為采用機器學習技術從數據源中自動或半自動地抽取關系。常用的關系抽取方法包括基于卷積神經網絡(Convolutional Neural Network,CNN)的關系抽取和基于注意力機制的雙向長短期記憶網絡(Attention-Based Bi-directional LSTM)的關系抽取。關系抽取模型的有效性一般通過準確率和召回率等指標進行評判。
根據抽取出的實體、關系構建圖數據庫完成知識圖譜的構建。常用的構建知識圖譜工具包括Neo4j、ArangoDB和OrientDB。
在構建好的圖譜基礎上,可實現搜索、問答、推理和推薦等知識圖譜應用。
如圖2所示,面向飛機電源系統故障診斷的知識圖譜構建及應用流程包括本體構建、基于雙向長短期記憶網絡算法的實體抽取、基于注意力機制的雙向長短期記憶網絡算法的關系抽取、基于Neo4j的知識圖譜構建及基于知識圖譜的智能應用。

圖2 面向飛機電源系統故障診斷的知識圖譜構建及 應用流程圖Fig.2 Flowchart of knowledge graph construction and application for fault diagnosis of aircraft power system
首先,根據飛機電源系統故障診斷語料情況和圖譜需求構建本體,確定實體類型和關系類型。
構建本體后,將飛機電源系統故障診斷手冊中部分語料分為訓練集和測試集,對訓練集和測試集進行實體標注。使用訓練集訓練基于雙向LSTM的實體抽取模型,并使用測試集測試實體抽取模型效果。使用訓練好的實體抽取模型抽取故障診斷手冊語料中的實體。
最后,對訓練集和測試集進行關系標注。使用訓練集訓練基于注意力機制的雙向LSTM的關系抽取模型,并使用測試集測試關系抽取模型效果。結合實體抽取結果,使用訓練好的關系抽取模型抽取故障診斷手冊語料中的關系。
完成實體抽取和關系抽取后,使用知識圖譜構建工具Neo4j,利用抽取出的飛機電源系統故障診斷知識構建面向飛機電源系統故障診斷的知識圖譜。
在上述工作基礎上,基于構建的飛機電源系統知識圖譜,以智慧搜索與推薦及智能問答等形式實現基于知識圖譜的智能應用。
在構建針對某一專業領域的圖譜時,應根據專家知識先行構建該圖譜的本體,為后續的實體抽取和關系抽取提供規范。本方法為針對特定領域,即飛機電源系統故障診斷的知識圖譜,因而選擇使用專家知識人工構建本體。
構建本體包括規定實體類型、規定關系類型和規定關系類型的頭尾實體類型。
對于飛機電源系統故障診斷知識圖譜,可用的實體類型主要為排故手冊和維修手冊等故障信息,包括故障類型、故障表現、故障原因、故障影響、解決措施等。
在知識圖譜中,實體是其中的一個個節點。使用非結構化數據構建一個知識圖譜需先根據本體對數據進行實體抽取。常用的實體抽取算法中,雙向長短期記憶網絡算法能像長短期記憶網絡算法一樣處理長期依賴問題,對于文字這樣字符之間相互影響在距離上跨度較大的數據有較好的效果。
2.3.1 雙向長短期記憶網絡算法
雙向LSTM算法是一種常用的實體抽取算法。其原理是將時序方向相反的兩個LSTM連接到同一個輸出。在進行實體抽取時,會同時用到上文和下文的信息。傳統的LSTM算法只能使用上文信息,而無法利用下文信息,難以用于實現準確的實體抽取。雙向LSTM算法通過將時序方向相反的兩個LSTM連接到同一個輸出,實現了上下文信息的利用,解決了LSTM算法無法使用下文信息的問題,改善了實體抽取的效果。雙向LSTM結構圖如圖3所示。

圖3 雙向LSTM結構示意圖Fig.3 Schematic diagram of bi-directional LSTM
構成雙向LSTM的兩個不同方向的LSTM之間不共用狀態,即正向LSTM的輸出狀態只會對正向LSTM產生影響,反向LSTM的輸出狀態只會對反向LSTM產生影響,它們之間沒有直接的連接,不會互相影響。
每一個時間節點的輸入會分別傳到正向和反向LSTM,根據各自的狀態產生輸出,這兩份輸出會一起連接到雙向LSTM的輸出節點,共同組合成最終輸出。雙向LSTM中雖然兩個方向的LSTM基本沒有交集,但因它們共同合成了輸出,所以對當前時間節點輸出的貢獻和造成的損失就可以在訓練中計算出來,并且它們的參數也會根據梯度被優化到合適的值。
雙向LSTM在訓練時和普通單向LSTM非常類似,因為兩個不同方向的LSTM之間幾乎沒有交集,因此可分別展開為普通的前饋網絡。不過在使用反向傳播算法訓練時,無法同時更新狀態和輸出。同時正向狀態在時未知,且反向狀態在時未知,即狀態在各自方向的開始處都是未知的,在這里就需要進行人工設置。此外,正向狀態的導數在時未知,且反向狀態的導數在時未知,即狀態的導數在結尾處未知,這里一般需設為0,代表此時對參數更新不重要,然后開始正式訓練步驟:
對數據做前向迭代操作,先沿著到方向計算正向LSTM的狀態,再沿著到方向計算反向LSTM的狀態,最后獲得輸出。
進行反向迭代操作,即對目標函數求導的操作,先對輸出求導,然后沿著到方向計算正向LSTM的狀態導數,再沿著到方向計算反向LSTM的導數。
根據求得的梯度值更新模型的參數,完成一次迭代訓練。
輸出層是將雙向LSTM神經網絡各個時刻的輸出進行求和取平均,最終得到了對象詞在當前句子環境下的語義表示,這個向量將作為編碼器的輸出傳遞給分類器。
2.3.2 基于雙向長短期記憶網絡算法的實體抽取流程
基于雙向長短期記憶網絡算法的實體抽取流程分為數據集劃分、實體標注、模型訓練、模型測試和實體抽取。基于雙向長短期記憶網絡算法的實體抽取流程圖如圖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”的縮寫。
在完成實體標注后,以訓練集語料為輸入,訓練集標注結果為標簽,訓練基于雙向長短期記憶網絡的實體抽取模型。
使用測試集測試訓練好的模型實體抽取效果,將模型從測試集語料中抽取出的標簽與人工標注的標簽進行對比,計算準確率和召回率:

(1)

(2)
式中:為準確率(Precision);為召回率(Recall);為正類預測為正類(True Positive)的數量,即被實際抽取結果為某一標簽,且人工標注也是該標簽的字符數量;為負類預測為正類(False Positive)的數量,即實際抽取結果為某一標簽,但人工標注不是該標簽的字符數量;為正類預測為負類(False Negative)的數量,即人工標注為某一標簽,但實際抽取結果不是該標簽的字符數量。此外為負類預測為負類(True Negative),即實際抽取結果不是某一標簽,且人工標注也不是該標簽的字符數量。、、、的關系如圖5所示。

圖5 TP、FP、TN、FN之間的關系Fig.5 Relationship between TP, FP, TN, FN
使用經測試后訓練好的模型抽取剩余原始語料中的實體,完成基于雙向長短期記憶網絡算法的實體抽取。
在知識圖譜中,關系是連接兩個實體之間的邊。在對非結構化數據進行實體抽取后,需根據實體抽取結果再進行關系抽取。在常用的關系抽取算法中,基于注意力機制的雙向長短期記憶網絡因引入了注意力機制,可更好地分配計算資源,提高模型訓練的效果。基于注意力機制的雙向長短期記憶網絡關系抽取算法是由Zhou等于2016年在自然語言處理(Natural Language Processing,NLP)領域的國際頂級會議Association for Computational Linguistics (ACL)上提出的。Zhou等指出傳統的關系抽取算法需詞性和最短依賴路徑等高階特征,導致計算量的消耗,同時注意到在待進行關系抽取的一個句子中,存在對關系有決定性影響的詞匯,而引入注意力機制可用于找到這個詞語,以此獲取句子中最重要的語義信息。相比于傳統關系抽取算法,基于注意力機制的雙向LSTM算法可在不使用詞性和最短依賴路徑等高階特征的情況下實現關系抽取,減少計算資源的消耗。因此選取基于注意力機制的雙向LSTM算法進行關系抽取。
2.4.1 基于注意力機制的雙向長短期記憶網絡算法
基于注意力機制的雙向LSTM算法是將注意力模型引入雙向LSTM中得到的算法。注意力模型是一種模擬人腦注意力的模型,其核心在于借鑒了人腦在特定時刻對事物的注意力會集中在某一特定的地方、忽略其他部分的特點。注意力模型是一種影響資源分配的模型,其原理是對于關鍵部分分配較多的注意力,對于其他部分分配較少的注意力,合理利用有限的計算資源,并且還可以去除非關鍵因素的影響。
基于注意力機制的雙向LSTM為在輸出層和隱藏層之間加入了注意力層,調整隱藏層輸出的權重。其結構如圖6所示。

圖6 基于注意力機制的雙向LSTM結構示意圖Fig.6 Schematic diagram of structure of attention-based bi-directional LSTM
圖6中,為雙向LSTM中各自獨立方向最終隱藏層狀態值的和,稱為雙向LSTM的最終狀態;為所有時刻下隱藏層單元狀態對于最終狀態的注意力概率分布,其中的分量表示時刻下雙向LSTM狀態對最終狀態的注意力概率,由該時刻下各自獨立方向的狀態相加而得,為經注意力加權后的文本特征向量。
基于注意力機制的模型一般都包含了兩部分計算過程,一是關于注意力概率分布的計算過程,二是基于注意力分布的最終特征計算過程。
為時刻下的輸出數據對于最終狀態的注意力概率,其表達式為

(3)

(4)
式中:為時刻下的雙向的隱藏層狀態值的和;為輸入序列元素的個數;為類別標簽的數量;為權重矩陣。式(4)利用softmax函數作為注意力概率分布的計算方式。
基于注意力分布的最終特征計算公式為

(5)
在得到基于注意力機制的文本特征向量后,通過輸出層的softmax函數,計算得出分類標簽的概率分布,計算過程表示為

(6)
′=
(7)
式中:為模型預測出的類別的概率分布;為模型輸出層的權重矩陣;′att()為向量′中第個分量值,向量長度與分類標簽的數量相等。經過softmax函數分類可得基于注意力機制下文本類別概率分布,并與真實類別分布求取交叉熵損失,表示為
(,)=-lg()
(8)
2.4.2 基于注意力機制的雙向長短期記憶網絡算法的關系抽取流程
基于注意力機制的雙向長短期記憶網絡算法的關系抽取分為實體抽取、數據集劃分、關系標注、模型訓練、模型測試和關系抽取。圖7為基于注意力機制的雙向長短期記憶網絡算法的關系抽取流程圖。

圖7 基于注意力機制的雙向LSTM的關系抽取流程圖Fig.7 Flowchart of relation extraction based on attention-based bi-directional LSTM
使用基于雙向長短期記憶網絡算法的實體抽取模型抽取原始語料中的實體,生成“頭實體 尾實體 關系 所在句子”形式的語料,其中因為關系是有向的,需要區分頭實體與尾實體,二者在語料中的位置不可互換。如“小明在天安門”中實體“小明”和“天安門”之間的關系為“所在地點”,則生成的語料為“小明 天安門 所在地點 小明在天安門”。
選取部分生成的語料,以8∶2的比例劃分為訓練集和測試集。對訓練集和測試集進行關系標注。
完成標注后,以訓練集語料中頭實體、尾實體和所在句子為輸入,關系為標簽,訓練基于注意力機制的雙向長短期記憶網絡的關系抽取模型。
使用測試集測試訓練后模型的關系抽取效果,將模型從測試集語料中抽取出的關系與人工標注的關系進行對比計算準確率和召回率,計算方法同實體抽取。
使用測試后訓練好的模型抽取剩余語料中的關系,完成基于注意力機制的雙向長短期記憶網絡算法的關系抽取。
在抽取非結構化知識中的實體和其間關系后,需根據這些抽取的知識構建知識圖譜。
在諸多圖譜構建工具中,Neo4j擁有多種優點,包括高性能、設計的靈活性和開發的敏捷性。
Neo4j存儲了原生的圖數據,可使用圖結構的自然伸展特性設計免索引鄰近節點遍歷的查詢算法。圖的遍歷是圖數據結構具有的獨特算法,即從一個節點開始,根據其連接的關系可快速、方便地找出它的鄰近節點。這種查找數據的方法并不受數據量的影響,因此在面對大量數據時查找效率更高。
一個系統對數據的需求會隨事件和條件的改變而改變。圖數據結構的自然伸展特性及其非結構化的數據格式使Neo4j的數據庫設計可具有很大的伸縮性和靈活性。隨需求的變化而增加的節點、關系及其屬性并不會影響原來數據的正常使用。
Neo4j數據模型設計直觀明了,以其為工具構建的知識圖譜更容易進行迭代。
基于以上優點,選擇Neo4j作為圖譜構建工具。
完成知識圖譜的構建后,可通過知識圖譜實現智能應用,包括智慧搜索與推薦及智能問答。
2.6.1 基于知識圖譜的智慧搜索與推薦
智慧搜索指用戶向系統輸入實體名,系統輸出有無該實體。在搜索過程中,用戶輸入的實體名中可能存在錯別字。為解決該問題,本圖譜采用基于相似度的搜索,在沒有完全匹配的實體時,將輸出與輸入實體名相似度較高的實體。常用的相似度算法包括余弦相似度、歐氏距離相似度和最長公共子序列(Longest Common Subsequence,LCS)相似度等。最長公共子序列相似度與兩個字符串間同順序相同字符數量有關,相同字符越多,相似度越高,因而能更好地處理用戶輸入中存在錯別字的問題。
子序列指一個序列刪除若干個元素得到的新序列,兩個序列的公共子序列指同時是兩個序列子序列的序列,而最長公共子序列則是兩個序列所有公共子序列中最長的序列。
最長公共子序列指將兩個序列分別刪除若干個字符,得到兩個子序列,在所有可能的子序列中相同且最長的一組子序列。計算兩個序列之間的最長公共子序列可使用枚舉法和動態規劃法。枚舉法先列舉兩個序列各自所有的子序列,然后將這兩組子序列相互之間一一比較,得到最長公共子序列。枚舉法的算法復雜度與兩個字符串長度之和成指數關系,隨序列長度增加運算次數顯著增加。字符串普遍較長,因此枚舉法不適用于字符串相似度的計算。
動態規劃法解決了枚舉法難以解決尋找長字符串最長公共子序列的問題。動態規劃法求解兩個字符串之間最長公共子序列示意圖如圖8所示。
利用動態規劃法求解字符串“BDCABA”和“ABCBDAB”之間的最長公共子序列的過程如下:
1) 根據字符串長度,生成7×8的矩陣,令0,=,0=0。計算矩陣中每個位置的數值,若兩個字符串位置和位置對應字符相同,則,=-1,-1+1;若對應字符不同,則,=max(-1,,,-1)。如位置對應的和兩個字符串的字符均為“B”,則=+1=1;若位置兩字符串對應字符分別為“D”和“B”,則=max(,)=1。
2) 兩字符串間最長公共子序列長度為矩陣右下角位置的值,圖8中長度為4。
3) 從矩陣中位置開始回溯。回溯規則為若當前位置為,,選擇-1,、,-1、-1,-1中數值最大的位置;當最大值有多個時可隨機選取。

圖8 動態規劃法示意圖Fig.8 Schematic diagram of dynamic programming
4) 根據回溯規則,得到一條回溯路徑→→→→→→→→,=0,回溯結束。
5) 選取回溯路徑上所有數值發生變化前的矩陣位置,即、、、,將這些位置對應的字符按順序排列即可得兩字符串的最長公共子序列“BCBA”。回溯路徑可能不止一條,對應的最長公共子序列不止一個。
推薦功能指在進行智慧搜索的同時,圖譜會根據相似度輸出與其擁有相似關聯實體的其他實體。相似度計算方法與智慧搜索相同,為基于最長公共子序列相似度的方法。
2.6.2 基于知識圖譜的智能問答
智能問答指用戶向知識圖譜輸入問題,知識圖譜輸出該問題的答案。智能問答的關鍵在于問題分類,即用戶需要什么類型的結果。常用的問題分類算法包括K均值聚類、貝葉斯分類和樸素貝葉斯分類。樸素貝葉斯分類器具有較高的效率和良好的泛化能力,故選擇樸素貝葉斯分類器作為搜索和問答的方法。
樸素貝葉斯分類器是概率分類器中最簡單的分類器,在很多情況下具有相當高的分類準確率,以高效率和良好的泛化能力而著稱。該分類器假設在給定類變量時屬性變量之間條件獨立,即

(9)
式中:()為類邊緣概率;為種不同的問題分類,={,,…,};為從問句中提取的維特征,={,,…,}。在條件獨立性假設下,樸素貝葉斯分類器具有簡單的星形結構,如圖9所示。
在樸素貝葉斯分類器結構基礎上的聯合概率分解形式為

(10)

圖9 樸素貝葉斯分類器結構示意圖Fig.9 Schematic diagram of structure of naive Bayesian classifier
式中:(|)為條件概率。
依據聯合概率的分解形式,得到樸素貝葉斯分類器的表示形式為

(11)
使式(11)取最大值的問題分類即為問句所屬問題分類。
在利用樸素貝葉斯分類器完成問題分類后,結合與知識圖譜中實體匹配得到的問句關鍵詞,在知識圖譜中進行檢索將得到的答案輸出給用戶,完成智能問答。
案例使用的數據來自飛機電源系統故障手冊文檔。該文檔包含飛機電源系統可能發生的故障、故障表現、故障原因和解決措施。該文檔部分內容為
“電源參數顯示系統顯示發電機輸出電壓為0V或只有幾伏電壓
可能原因:① 副勵磁機繞組短路。使用萬用表檢查繞組電阻為0,或者用兆歐表檢查絕緣電阻為0;② 主發電機激磁繞組斷路。
排除方法:① 將發電機從發動機上取下來,送往修理廠修理,更換副勵磁機定子組件;② 將發電機從發動機上取下來,送往修理廠修理,更換主轉子組件。”
其中“電源參數顯示系統顯示發電機輸出電壓為0V或只有幾伏電壓”是故障模式“無刷交流發電機故障”的故障表現;“副勵磁機繞組斷路”為故障模式“無刷交流發電機故障”的故障原因;“將發電機…更換主轉子組件”為故障模式“無刷交流發電機故障”的解決措施。
對飛機電源系統故障手冊中的內容進行數據預處理。具體地,將“可能原因”“故障現象”“排除方法”之后編號項中每一項與其對應的故障模式單獨成句。經數據預處理后的飛機電源系統故障手冊部分內容為
“無刷交流發電機故障的故障表現為電源參數顯示系統顯示發電機輸出電壓為0V或只有幾伏電壓。
無刷交流發電機故障的可能原因為副勵磁機繞組短路。使用萬用表檢查繞組電阻為0,或者用兆歐表檢查絕緣電阻為0。
無刷交流發電機故障的可能原因為主發電機激磁繞組斷路。
無刷交流發電機故障的排除方法為將發電機從發動機上取下來,送往修理廠修理,更換副勵磁機定子組件。
無刷交流發電機故障的排除方法為將發電機從發動機上取下來,送往修理廠修理,更換主轉子組件。”
將該文檔中部分語料劃分為訓練集和測試集,用于實體抽取和關系抽取模型的訓練和測試。
基于專家知識,案例構建飛機電源系統故障診斷知識圖譜的本體,共包含實體類型4個,關系類型3個。
實體類型包含故障模式、故障原因、故障現象和解決方法。關系類型及其頭、尾實體類型如表1 所示。構建完成的本體可視化結果如圖10所示。

表1 關系類型、頭實體和尾實體類型Table 1 Relation types, head entity and tail entity types

圖10 本體可視化結果Fig.10 Visualization result of ontology
飛機電源系統故障手冊文檔原始語料劃分出的訓練集共有137句,4 344字;測試集共有31句,910字。
根據構建的本體,使用BMEO格式標注訓練集中的實體。共標注實體267個,實體標注結果如表2所示。

表2 實體標注結果Table 2 Entity tagging results
例如,“交流發電機控制保護器故障”的實體類型為故障模式 (Failure Mode),因此其第一個字符“交”對應標簽為“B-故障模式”,最后一個字符“障”對應標簽為“E-故障模式”。
對飛機電源系統故障手冊文檔進行實體標注后,使用開源標注工具brat進行可視化展示,效果如圖11所示。
例如,在圖11原始語料中的句子“交流發電機控制保護器故障的故障表現為調壓輸出為0”中,標注出了故障模式實體“交流發電機控制保護器故障”和故障現象實體“調壓輸出為0”。

圖11 實體抽取模型訓練集文本標注可視化Fig.11 Visualization of training text annotation for entity extraction model
使用標注后的訓練集文本訓練雙向LSTM實體抽取模型,模型由一個embedding層、一個雙向LSTM層和一個全連接層組成。實體抽取模型參數如表3所示;模型配置如圖12所示,圖中為語料中最長句子的字符數;為所有BMEO實體標簽的種類數加2,增加的兩項為雙向LSTM實體抽取所需的標簽〈unk〉和〈pad〉。

表3 實體抽取模型參數Table 3 Parameters of entity extraction model

圖12 實體抽取模型配置Fig.12 Configuration of entity extraction model
模型輸入為句子中所有的字符,模型輸出為個維向量,每個字符對應一個向量。若某字符對應的向量中數值最大的維度為,則該字符對應第個實體標簽。根據每個字符對應的實體標簽提取實體。
進而將測試集文本送入訓練好的模型抽取實體,并與人工標注的實體進行對比。實體抽取模型測試結果如圖13所示,可看出利用基于雙向長短期記憶網絡的算法成功實現了對測試集文本語料的實體抽取,共910條知識,準確率為99.63%,召回率為71.58%。

圖13 實體抽取模型測試結果Fig.13 Test results of entity extraction model
完成測試后,使用實體抽取模型抽取原始文檔中的實體,用于知識圖譜構建。
關系抽取訓練集和測試集劃分與實體抽取相同。表4展示了用于進行關系抽取的訓練集語料。根據構建的本體,以“頭實體 尾實體 關系 所在句子”的格式整理訓練集中的語料,如表5所示。
例如,在表4中的句子“主交流電源系統故障的故障表現為‘主交流’告警”中,實體“主交流電源系統故障”與實體“‘主交流’告警”之間的關系為“模式_現象”,因此生成的語料為“主交流電源系統故障‘主交流’告警 模式_現象 主交流電源系統故障表現為‘主交流’告警”。表5展示了關系抽取語料文本整理結果。

表4 關系抽取模型語料Table 4 Corpus of relation extraction model

表5 關系抽取模型語料文本整理結果Table 5 Text arrangement results for corpus of relation extraction model
使用開源標注工具brat對飛機電源系統故障手冊文檔中的關系進行標注,可視化展示效果如圖14所示。

圖14 關系抽取模型訓練集文本標注可視化效果Fig.14 Visualization of training text annotation for relation extraction model
圖14原始語料中的句子“交流發電機控制保護器故障的可能原因為接口板故障”中,標注出了實體“交流發電機控制保護器故障”和實體“接口板故障”之間的關系“模式_原因”。
使用處理后的訓練集文本訓練基于注意力機制的雙向LSTM關系抽取模型,模型由1個詞向量embedding層、2個位置向量embedding層、1個雙向LSTM層、1個Attention層、1個關系向量embedding層和1個softmax層組成。關系抽取模型參數如表6所示,模型配置如圖15所示,圖中為本體中關系類型的數量。

表6 關系抽取模型參數Table 6 Parameters of relation extraction model

圖15 關系抽取模型配置Fig.15 Configuration of relation extraction model
對于關系抽取語料中的每個句子,以一個實體的第一個字符在句中的位置為坐標原點,詞向量Embedding層輸入為句子中所有的字符,位置向量Embedding層1輸入為句子的頭實體位置向量,位置向量Embedding層2輸入為句子的尾實體位置向量。其中,實體的位置向量指其所在句子中每個字符距該實體首字符的距離。關系向量Embedding層輸入為所有關系類型,每個關系類型對應一個數字。
模型輸出為維向量,每個句子對應一個向量。若某句對應的向量中數值最大的維度為,則該句中頭尾實體之間的關系為第個關系。
根據實體標注結果,將測試集文本組織成“頭實體 尾實體 所在句子”的格式,將處理后的測試集文本送入訓練好的模型抽取實體關系,并與人工標注的關系進行對比。關系抽取模型測試結果如圖16所示,可看出利用基于注意力機制的雙向長短期記憶網絡算法成功實現了對測試集文本的關系抽取,共31條知識,準確率為75.00%,召回率為75.00%。

圖16 關系抽取模型測試結果Fig.16 Test result of relation extraction model
完成測試后,使用原始文本的實體抽取結果將原始文本組織成“頭實體 尾實體 所在句子”的格式,并使用關系抽取模型抽取原始文檔中的關系,用于圖譜構建。
原始語料中每個實體作為一個節點,每個關系作為一條連接其頭實體和尾實體的邊。使用Neo4j將原始文本中人工標注和模型抽取的結果構建為飛機電源系統故障診斷知識圖譜。由于構建的知識圖譜整體包含的內容較多,為更清晰地展示效果,選取部分知識圖譜內容進行可視化展示,如圖17所示。

圖17 飛機電源系統故障診斷知識圖譜部分內容可視化展示Fig.17 Visualization of part of knowledge graph for aircraft power system fault diagnosis
構建的圖譜共包含實體74個,其中故障模式16個、故障原因34個、故障現象7個、解決方法17個。關系98條,其中模式_原因76條、模式_現象6條、模式_方法16條。構建的知識圖譜詳情如圖18所示。

圖18 飛機電源系統故障診斷知識圖譜詳情Fig.18 Details of knowledge graph for aircraft power system fault diagnosis
經人工審核可知,該知識圖譜已將原始文檔中大部分知識抽取并存儲,實現了飛機電源系統故障診斷知識圖譜的構建。
完成知識圖譜構建后,可通過智能問答系統和智慧搜索與推薦系統進行基于飛機電源系統故障診斷知識圖譜的搜索、推薦和問答。
3.6.1 智慧搜索與推薦結果
智慧搜索與推薦系統支持對于某一實體的搜索,在知識庫中對該實體的相關信息進行檢索并輸出;同時還會根據相關實體的相似度進行推薦。智慧搜索與推薦效果如圖19所示,可看出智慧搜索與推薦系統能實現對于實體“直流電源系統故障”的搜索及相關信息展示,并能根據相似度匹配算法實現具有相同故障原因和相同解決方法的故障模式推薦。

圖19 基于知識圖譜的智慧搜索與推薦Fig.19 Intelligent search and recommendation based on knowledge graph
3.6.2 智能問答結果
問答系統支持有關實體數量、關系數量、某一實體相關信息等的提問。智能問答效果如圖20所示,可看出智能問答系統對于實體數量、關系數量、實體“應急交流電源故障”相關信息等的提問能給出相關問題的有效答案。

圖20 基于知識圖譜的智能問答Fig.20 Intelligent Q & A based on knowledge graph
針對現有故障診斷方法對非結構化知識資源利用效率低的問題,借鑒知識圖譜技術在其他領域成功應用的經驗,提出了一套面向飛機電源系統故障診斷的知識圖譜構建及應用全流程方法。利用所提方法能對飛機電源系統設計、研制、使用等階段產生的非結構化知識數據進行充分挖掘,構建的知識圖譜能為故障知識搜索、問答、推理診斷等任務提供豐富的知識基礎。以真實飛機電源系統故障手冊語料為例,對提出的知識圖譜構建及應用方法進行了案例驗證,實現了非結構化飛機電源系統故障診斷知識的結構化存儲、基于知識圖譜的智慧搜索與推薦以及智能問答等應用,為知識圖譜技術在中國故障診斷領域的實際應用提供了有力支撐。
此外,由于航空故障診斷領域語料來源較少,模型訓練語料不充分,僅以飛機電源系統排故手冊作為數據源構建的知識圖譜體量較小。未來筆者將在飛機的運行使用過程中,利用不斷產生的語料數據進一步提高知識抽取模型的精度,并對構建的知識圖譜進行動態知識更新,從而更好地服務于飛機電源系統故障診斷。