葛天一 楊長春 陳延雪 周 婷
(常州大學阿里云大數據學院 江蘇 常州 213016) 2(常州大學微電子與控制工程學院 江蘇 常州 213016)
復雜設備系統各組成單元之間的關系錯綜復雜,存在各種關聯耦合因素,因此導致其故障原因難以區分?;诒倔w的知識表示方法可以清晰地展現這種復雜的故障領域知識[1]。優質的設備故障知識本體需要本體實例之間擁有豐富而準確的關系。設備故障領域擁有大量相關文本,其中蘊含了大量的領域知識,可以滿足設備故障領域本體實例關系抽取任務的需求[2]。
一個本體實例關系示例可以以三元組形式表達,即(eh,r,et),其中eh與et為本體實例,r為兩實例之間的關系,本體實例關系抽取任務即為抽取出eh與et(后稱目標實例對)之間的關系r。從領域相關文本中可以較深入地挖掘領域知識,抽取本體實例關系,構建質量較高的本體[3]。傳統的基于人工標注的實例關系抽取方法花費的時間、人力成本過高。目前,使用神經網絡模型從非結構化文本中進行實例關系抽取的方法得到了一定的成果。這類方法先定義需要抽取的實例關系,并使用神經網絡訓練一個關系分類模型,將包含目標實例對的句子的特征作為模型的輸入,得到句子中目標實例對的關系,進而通過統計等方法,完成實例關系抽取。
盡管先前的研究已經取得了一定的成果[4-7],但使用神經網絡模型,從非結構化領域文本中抽取故障領域本體實例關系仍然面臨著一些挑戰:當前研究普遍使用單層的神經網絡多分類器進行實例關系抽取,同時也沒有考慮到運用領域本體自身的語義信息,容易將意思相近的關系誤分。同時設備故障領域文本的句子通常比在一般領域的句子要長,因此,目標實例之間的距離往往也較長,獲取目標實例對之間的關系需要較豐富的句子結構信息,因此使用傳統分析方法獲取間隔較遠的實例間的關系較為困難。
本文提出了一種基于分層結構的設備故障領域本體實例關系抽取方法,從非結構化文本中抽取實例關系。在第一層,結合領域本體自身的知識,通過識別目標實例對中實例所屬的類別,為目標實例對匹配可能的關系,有效解決因無法識別實例類型帶來的關系誤分的問題;在第二層,使用預先訓練的基于神經網絡的關系分類器,對目標實例對進行精確關系抽取,在基于神經網絡的關系分類器中使用結合自注意力機制的雙向長短期記憶網絡(Bidirectional Long Short-term Memory,BiLSTM)對目標實例對所在句子進行編碼,以獲取更多的句子結構信息,改善了間隔距離較長的實例之間關系抽取效果,最終通過統計的方法完成實例關系抽取。本文提出的方法能夠有效提高設備故障領域本體實例關系抽取的效果,進而提高構建的故障領域本體的質量。
本體是對概念形式及概念間關系的一種規范、明確的定義[8],利用本體表示設備故障領域知識的方法目前取得了一定的成果[9-12]。文獻[9]通過七步法構建了裝載機故障領域本體,結合推理規則進行故障分析。文獻[10]使用語義網技術收集機床故障診斷知識,并將其導入在線平臺以構建不同機床的故障知識本體,提高了知識集成的效率。
OWL語言是一種本體描述語言,它具有描述類和屬性的強大語義能力[12]。本文使用OWL語言中的OWL DL來描述設備故障領域本體,同時采用Protégé軟件來最終構建并展示設備故障領域本體模型。
在領域本體的構建過程中,實例關系的抽取效果很大程度上決定了該領域本體的質量。目前,在基于非結構化文本的關系抽取的工作中,很多研究使用一個單層的神經網絡關系分類器,將句子作為輸入進行關系抽取。文獻[13]通過將句子的句法依存信息添加至深度神經網絡模型,抽取醫療領域實例關系。文獻[14]根據中文語義中主要以詞為基本單位的特性,使用基于全詞掩模的雙向變形編碼器卷積神經網絡模型來提升在中文心血管疾病領域語料中進行關系抽取的性能。文獻[15]開發了一個BO-LSTM(Biomedical Ontologies LSTM)模型,它從現有的生物領域知識庫提取目標實例對的背景信息,將背景信息與句子結構信息一起加入LSTM模型,以抽取文本中的生物領域實例關系。文獻[16]使用了結合注意力機制的神經網絡模型獲取包含目標實體的句子結構特征,來進行實體關系抽取。
然而,在實際使用傳統的基于神經網絡模型的方法抽取本體實例關系時,容易將意思相近的關系誤分。在本體實例關系抽取任務中,很多意思相近關系的誤分情況是由分類器無法識別實例類型引起的[17]。如關系“SameLevelFaultMode”描述兩個故障模式類實例之間是同一層級關系,“SameLevelEquipment”描述兩個故障組件類實例之間是同一層級關系,這兩種關系表達的意思相近,但是各自連接的實例類型不同,在現有的模型中容易被混淆。同時,由于設備故障領域文中的目標實例對之間的距離往往較長,傳統的RNN(Recurrent Neural Networks)和CNN(Convolutional Neural Networks)無法得到句子中每個詞對輸出的影響,因此使用傳統的方法獲取的句子結構信息不能滿足設備故障領域實例的關系抽取。文獻[15]在解決實例長距離問題方面取得了良好的效果,但是需要高質量的外部知識庫,在本文的研究中難以滿足此要求。文獻[16]考慮到了句子中每個輸入對模型輸出的影響,但是,文中制定的注意力機制的查詢向量僅僅考慮了句子中待抽取實體的特征向量,忽略了句子中其他詞匯之間的關系,獲取的句子的內部結構信息并不充分,因此不能有效捕獲長距離的實體之間的關系。
近期,分層結構(Hierarchical Structure)在處理多分類任務中,取得了一定的進展。文獻[18]提出了一種基于深度卷積神經網絡的下水道缺陷檢測和分類方法,使用采用分層分類的思路,高層檢測任務試圖從正常圖像中區分出有工程缺陷的圖像,低層次分類計算每個缺陷出現的概率。該方法解決了數據不平衡帶來的工程缺陷圖像分類困難的問題。文獻[19]針對有些圖像類別比其他類別更難區分的問題,提出了HD-CNN(Hierarchical Deep CNN)模型,使用簡易分類器來分離能簡單識別的圖像類別與識別困難的圖像類別,接著使用高性能分類器來專門區分識別困難的圖像類別。
自注意力機制是一種改進的注意力機制。傳統的注意力機制無法獲取輸入句子中各個詞語之間的聯系,而自注意力機制通過計算句子中每個詞之間的相似度,可以更容易地捕獲句子中詞與詞的依賴關系,更好地獲取句子內部特征[20]。基于分層結構的思想,本文提出一種基于分層結構的設備故障領域本體實例關系抽取方法,從非結構化文本中抽取實例關系。在第一層,根據領域本體自身的知識(本體類別與實例關系的定義域、值域),通過識別目標實例對中實例所屬的類別,為目標實例對匹配可能的關系,進行初步的關系抽取,有效避免意思相似關系的誤分問題;接著在第二層通過結合自注意力機制的BiLSTM神經網絡模型進行精確分類,改善間隔距離較長的實例的關系抽取效果,最后通過統計的方法完成實例關系的抽取。
本文的研究框架如圖1所示。(1) 預備工作指明確待構建領域本體的和基礎概念類別與類別的層次,結合領域專家指導,為每個概念類別添加相應的實例,制定待構建領域本體實例關系;(2) 輸入待處理的相關文本,完成文本的預處理;(3) 通過基于分層結構的實例關系抽取方法,進行設備故障領域本體實例關系抽取,第一層識別目標實例對中實例的類別,進行初步關系分類,第二層使用基于神經網絡模型的方法,結合統計完成實例關系抽取;(4) 形成最終本體。接下來,本文將詳細介紹該方法的實施過程。

圖1 本文研究框架
待構建的設備故障領域本體主要描述設備的故障知識。一種故障現象可能不是由一個故障原因引起的,低層級組件的故障不僅會使同一層級的組件產生故障,還會引起更高層級組件的故障。因此,為了處理設備故障知識的復雜性,故障診斷本體模型主要定義了五個類:故障模式、故障組件、故障處理方法、故障現象和主要故障參數。根據文獻[9],本文將設備結構由高層到底層分為設備級、系統級、模塊級和子模塊級4個層級。由于故障模式是發生在相應的故障組件上的,故障模式也需要按上述4層進行分類。因此故障模式類、故障組件類需要進一步各自添加“設備級”“系統級”“模塊級”和“子模塊級”4個子類。圖2為設備故障領域本體的類與類的層次圖。同時,本文結合領域專家的指導,為每個概念類別添加相應的實例。

圖2 故障領域本體類別層次圖
領域本體實例之間的關系(即Object Properties,實例對象屬性)指將實例關聯到實例的屬性,每個實例關系需要定義定義域(domain)與作用域(range),一個本體實例關系的定義域與作用域指向固定的本體類,實例關系起到將其定義域類的實例連接到其作用域類的實例的作用。本文為設備故障領域本體制定了以下實例關系(見表1)。編號1和編號2的實例關系描述故障組件之間的層級關系,如多個低層次組件可以構成一個高層次組件,則這些低層次組件與高層次組件就有“HighLevelEquipment”關系,低層次組件之間可以添加“SameLevelEquipment”關系。編號3和編號4的實例關系描述故障模式的層級關系,如一個高層次故障模式可由數個低層次故障模式引起,那么這個高層次故障模式與低層次故障模式之間就有“HighLevelFaultMode”關系,這些低層次故障模式之間關系為“SameLevelFaultMode”關系。編號5的實例關系描述故障模式引起故障主要參數變化。編號6的實例關系描述故障組件對應的故障參數。編號7的實例關系描述故障模式擁有相應的故障現象。編號8的實例關系描述故障模式能被相應故障處理方法解決。編號9的實例關系描述故障模式發生在相應的故障組件。編號10的實例關系描述故障組件會發生的故障現象。

表1 設備故障領域本體的實例關系
實例關系抽取任務需要的相關文本主要來自于互聯網或相關制造商公開的電子文檔,主要為設備結構說明書、故障分析手冊和FMECA(Failure Mode, Effects and Criticality Analysis,故障模式、影響和危害性分析)報告等。這些資料包含豐富的領域知識,可以滿足故障領域本體的構建需求。
文本處理階段需要過濾掉無用的符號和單詞。使用自然語言處理(NLP)工具用于解析輸入文本中的每個句子。本文根據句子分隔符“。”“,”“!”等來分割中文文本。在獲得單個完整的句子后,使用分詞工具(Jieba)對這些句子進行分詞、去除停止詞、詞性標注等工作。
由于相關文本中含有大量專業詞匯,普通的分詞方法可能會帶來一定的錯誤。為了提高分詞的準確性,本文將領域實例的名稱總結為一個txt文件格式的中文領域詞典,該詞典能夠直接導入分詞工具(Jieba),以提高分詞的準確性,保證之后實例關系抽取的質量。
進一步地,使用Word2vec工具訓練分詞后的詞語集,得到各詞語的向量化表示。
經過文本處理階段,可以得到處理后的詞語集合、詞語向量化表示、分句后的句子集合。
本文的實例關系抽取由兩個層次組成,第一層通過對目標實例對中實例類型進行識別,進行初步分類;第二層根據第一層的結果,選擇相應的神經網絡分類器進行判別,最終通過統計的方法完成實例關系的抽取。本文對每個針對實例關系訓練一個基于神經網絡的二分類器,以進行精確的關系抽取。選用二分類器可以滿足實例關系抽取任務的靈活性,當有新的關系需要加入抽取任務時,可以通過添加新的二分類器來處理新關系。
2.3.1基于實例類型識別的實例關系抽取
在第一層,本文通過識別實例對中實例的類型,進行初步關系抽取。在本體實例關系抽取任務中,由于每個實例關系都有定義域與作用域,因此通過識別目標實例對中實例的類別可以解決很多意思相近關系的誤分情況(如“HighLevelEquipment”與“HighLevelFaultMode”容易誤分,“HighLevelEquipment”的定義域與作用域都指向故障組件類,而“HighLevelFaultMode”的定義域與作用域都指向故障模式類)。同時一些實例關系也只會在特定類別的實例之間產生,如關系“HighLevelEquipment”只能發生在高層級故障組件與低層級故障組件之間,即該關系只能發生在屬于不同子類的故障組件類實例之間。因此通過識別目標實例對中實例的類別,可以得到目標實例對可能存在的實例關系。本文根據每個實例關系的定義域與作用域指向的本體類別,以及設備故障領域本體類別與類的層次,設計了如表2的關系模板,通過對目標實例對中兩個實例所屬的類別進行識別,進行初步的關系分類,接著自動地選擇該實例對可能存在的實例關系所對應的神經網絡分類器,進行下一層的精確分類。如識別到目標實例對(“后小齒輪組”“中間軸”),其中的兩個實例都屬于“模塊級故障組件”類,因此選擇“SameLevelFaultMode”關系對應的分類器進行第二層的精確分類。本文將實例一一配對,組成多個目標實例對。通過該分類方法,一個實例對之間最多存在一種可能的實例關系,即最多匹配一個神經網絡分類器;實例對中兩個實例的類型如果可以被模板匹配到可能的實例關系,則進入第二層的精確分類,如果無法被模板匹配,則直接判斷這兩個實例之間不存在領域本體中定義的關系。

表2 實例關系模板
2.3.2基于神經網絡的實例關系抽取
在第二層,本文為每個實例關系訓練一個基于神經網絡模型的二分類器,對進入第二層的目標實例對進行精確關系抽取。具體的,先找出所有包含該目標實例對的句子,針對每個句子,得到該句的局部特征,使用結合自注意力機制的BiLSTM模型對句子的局部特征進行分析,獲取句子整體特征,通過句子整體特征得到該句子中目標實例對之間存在該分類器對應關系的概率,接著通過統計的方法,完成目標實例對的關系抽取。該部分的技術框架如圖3所示。

圖3 基于神經網絡的實例關系抽取技術框架
1) 句子局部特征。設待包含目標實例對的一個句子為:s(w1,w2…,c1,…,c2,…,wn-2),其中wi為句子詞匯,句子中一共有n個詞匯,c1、c2為目標實例對中的實例。為了獲取句子的局部特征,需要對句子詞匯進行向量化處理。在關系抽取的任務中,通常與目標距離越近的詞語對抽取任務起著越重要的影響。因此,本文將句中詞語與兩個實例的距離與本身的詞向量進行拼接,完成句子的向量化,得到句子的局部特征。如句子“電源過熱導致系統主計算機死機”,有目標實例對的實例為c1“電源過熱”與c2“主計算機死機”,詞語“導致”與c1的距離為-1,與c2的距離為2,拼接后得到該句子的局部特征(見圖4)。

圖4 例句局部特征
2) 構建BILSTM。LSTM模型可以批量處理向量化的文本信息。在單個時間狀態上,LSTM的輸入來自當前狀態的輸入xt和前一個狀態的輸出ht-1,以及上一個狀態產生的歷史信息ct-1。一個LSTM單元由三個控制門組成,分別為一個輸入門i、一個輸出門o和一個遺忘門f。一個LSTM單元的各狀態特征值可以由式(1)~式(6)表示,w為各狀態下的權值矩陣,b是各狀態下的配偏置向量,σ為一個激勵函數,見式(7)。
ft=σ(wf·[ht-1,xt]+bf)
(1)
it=σ(wi·[ht-1,xt]+bi)
(2)
(3)
(4)
ot=σ(wo·[ht-1,xt]+bo)
(5)
ht=ot·tanh(ct)
(6)
(7)
如圖5所示,一個BiLSTM由前后雙向的LSTM構成,彌補了前向LSTM無法編碼從后到前的信息的缺點,因此其可以較為充分地獲取句子中的上下文信息。句子局部特征S{x1,x2,…,xi,…,xn}作為輸入,其中xi為向量化處理的句子詞語,n為句子中的詞語數量。如圖5所示,輸入前向LSTM得到的特征值記為L{L_h1,L_h2,…,L_hn},后向LSTM得到的特征值記為R{R_h1,R_h2,…,R_hn},最終得到的特征是將前向與后向LSTM得到的特征值拼接而成,即hi=[L_hi,R_hi],最終結果為H{h1,h2,…,hn}。

圖5 BiLSTM網絡架構
3) 自注意力機制。自注意力是一種改進的注意力機制,其使用一句句子中的每個詞來和句中所有詞計算相似度,在此條件下句中任意兩個詞語都可以捕獲其之間的依賴關系,因此結合BiLSTM可以獲取較豐富的句子內部結構信息,有助于抽取句中兩個距離較遠的目標實例之間的關系。自注意力計算公式如式(8)所示。
(8)
式中:Q為查詢矩陣(Query Matrix),K為鍵矩陣(Key Matrix),V為值矩陣(Value Matrix),dk為矩陣的維度。Q、K和V通過把輸入分別乘以三個矩陣Wq、Wk和Wv得到。
將BiLSTM模型輸出的H作為輸入,使用式(8)對其進行計算,進而得到句子的新的特征值,記為F={f1,f2,…,fn},句中第i個詞語得到的新的特征值記為fi。
4) 二分類。將得到的句子特征F進行最大池化操作,得到最終的該句子的整體特征向量G。將G輸入二分類器進行關系分類,存在該二分類器對應關系的可能性的計算方法見式(9),其中:P為該句中目標實例對存在關系的可能性,we為二分類器的權值參數,be為偏置向量。
P(G)=σ(we·G+be)
(9)
通過統計的方法完成最終的關系抽取,具體的,將每個包含該目標實例對的句子輸出的可能性P進行累加,并取平均值,作為該目標實例對存在此二分類器對應關系的最終可能性,如果該值超過設定閾值β,則判斷該目標實例對之間存在此二分類器對應關系,否則不存在。
本文采用梯度下降算法來優化模型,代價函數J(θ)計算如式(10)所示,其中:θ為模型中的訓練參數,n為樣本數量,yi為第i個樣本的結果。
(10)
此步驟主要功能是形成最終的目標本體。在實例間使用抽取到的實例關系進行關系擴展,形成最終的目標本體。
本文以汽車變速箱故障知識為例,在實驗過程中,首先從中國工控網、中國電子論壇等相關領域網站通過手動下載或半自動網頁爬取等方法,收集有關變速箱的結構與故障維保方面的文章。為了建立訓練和測試數據集,本文建立了一個的變速箱故障中文實例集。實例集中實例的類型僅限于變速箱的故障模式、故障組件、故障處理方法、故障現象和主要故障參數。本文為實例集中每個實例制定所屬的領域本體類別,并在實例之間標注表1中制定的實例關系。本文將一款7AT變速箱的所屬實例與實例之間的關系作為測試集。表3為該變速箱的部分實例。

表3 某7AT變速箱部分本體實例
本文使用精確率P(Precision)、召回率R(Recall)和F1值來評估本文方法,計算公式如式(11)-式(13)所示。True 表示預測正確的數目,Output表示所有輸出的預測數目,All_num表示測試集的數據數目。
(11)
(12)
(13)
在實例關系抽取任務中,詞向量的維度設定為100,神經網絡的隱藏層節點數目為280。訓練輪數為500,批次大小為10,學習率設定為0.05,每個二分類器對應的值域各不相同(訓練參數參考文獻[17])。
本文使用一個基于自注意力機制的BiLSTM多分類模型作為對比方法之一,該模型(SaBiLSTM)用于檢測第一層的基于實例類型識別分類方法的作用。針對第二層,本文引入LSTM與BiLSTM(HS_LSTM、HS_BiLSTM)作為對比方法,檢測引入自注意力機制的BiLSTM的效果??傮w實例關系抽取結果見表4,表5為本文模型在訓練集中抽取的10類實例關系的結果,本文以實例關系“SameLevelEquipment”對應的抽取結果對比各種方法的效果(見圖6)??梢钥闯?由于基于實例類型的識別分類方法可以預先為目標實例對排除無關的關系,以及能有效解決意義相近的關系造成的誤分問題,因此相比傳統方法(SaBiLSTM),本文提出的基于分層結構的關系抽取的方法可以在保證召回率的條件下,取得較好的精確率。LSTM與BiLSTM雖然解決了RNN的長距離依賴問題,但是,引入自注意力機制的BiLSTM(HS_SaBiLSTM)由于可以更好的獲取句子的內部結構關系,效果更優。

表4 4種方法在實例關系抽取的實驗結果(%)

表5 10類實例關系的抽取結果(%)

圖6 4種方法抽取關系“SameLevelEquipment”的P-R曲線
使用Protégé5.2工具構建并展示最終的故障知識本體。圖7給出了7AT變速箱故障知識本體的部分可視化展示。

圖7 7AT變速箱故障本體的部分可視化展示
本文提出了一種基于分層結構的設備故障領域本體實例關系抽取方法,第一層使用基于實例類型的識別分類方法進行初步分類;第二層使用融合自注意力機制的神經網絡模型對句子進行解析,通過統計的方法完成實例關系抽取。該方法有效解決了由于無法識別實例類型帶來的關系誤分問題,改善了故障領域文本中間隔距離較長的實例的關系抽取效果。
目前,本文的研究方法仍然存在一些不足,并且制定的實例關系較為簡單。在以后的工作中,我們會進一步地融入snowball的機制,減少標注實例關系的成本,同時也需要引入更多的外部知識,進一步改善實例關系抽取的效果。本文的實例關系抽取方法取得了較好的效果,但仍需制定相應的推理規則,進一步驗證該方法在基于本體的故障推理方法的效果。