栗佳初,朱永利
(華北電力大學 計算機系,河北 保定 071003)
變壓器作為重要的輸變電設備,其健康狀況直接影響電力系統(tǒng)安全運行[1]。快速且準確地了解變壓器信息,可以提升變壓器檢修和維護的效率[2],進而保證用戶的用電質(zhì)量。
電力變壓器運維方案的制定通常依賴專家經(jīng)驗[3,4],從而導致運維措施可解釋性弱,且效率不高。目前,電力系統(tǒng)已積累了大量的故障處理案例,由于其記錄方式主要為非結構化的文本,故知識的結構化程度不高[5]。因此,有必要設計更精細、豐富的知識表示方法,形成變壓器故障知識表示網(wǎng)絡,以進一步為智能運維提供數(shù)據(jù)支撐及理論支持[6]。
知識圖譜的概念于2012 年被提出,其初衷是為了改善搜索結果。知識圖譜具備強大的學習和推理能力,所以迅速受到了學術界和工業(yè)界的廣泛關注[7-9]。
構建知識圖譜的基礎是信息抽取,即從非結構化的文本數(shù)據(jù)中提取出與事件有關的信息,并以結構化的形式存儲、展現(xiàn)。目前,相關學者對知識圖譜開展了大量研究[10-13]。
信息抽取的準確性直接影響知識圖譜的構建質(zhì)量。文獻[14]提出一種關系抽取神經(jīng)網(wǎng)絡模型,用雙向長短期記憶網(wǎng)絡(Bidirectional long short-term memory network,BiLSTM)模塊進行實體提取,將卷積層用于關系分類,將BiLSTM 層產(chǎn)生的信息傳遞到卷積層以提升關系分類的精度。文獻[15,16]使用BERT(Bidirectional encoder representation from transformers)預訓練模型提取字符的特征,通過軟標簽嵌入進行全局關系預測。文獻[17,18]將關系抽取問題轉化為多頭選擇問題。文獻[19]提出GraphRel 模型,采用LSTM 抽取信息,并使用雙向圖神經(jīng)網(wǎng)絡(Bidirectional graph convolutional networks,BiGCN)進行關系推理,使模型在NYT數(shù)據(jù)集上比之前的模型精度提高了3.2%。
上述研究多是在英文數(shù)據(jù)集上開展的,流程基本固定:用BiLSTM 挖掘字符間的依賴特征,用條件隨機場(Conditional random field,CRF)進行實體的分類,關系提取使用卷積網(wǎng)絡或者將其轉化為多頭選擇問題。
受上述文獻的啟發(fā),本文使用預訓練模型BERT 提取字符特征,然后使用BiLSTM 提取文本上下文特征,用CRF 進行實體識別,用多頭選擇判定實體間關系,以關系矩陣作為節(jié)點特征的鄰接矩陣,最后用BiGCN 根據(jù)鄰接矩陣對節(jié)點特征進行再次更新,糾正錯誤的實體關系。
在人工智能領域,本體這一概念被用于刻畫知識,由類、關系、屬性3 部分組成。
在變壓器故障知識圖譜中,故障診斷的知識由事件邏輯來表達,其語料庫涉及故障現(xiàn)象、故障原因、檢測方法、維修方法。
首先,定義事件參數(shù)。構成事件的元素主要有:對象(object)、觸發(fā)詞(trigger)、狀態(tài)(state)。對象指發(fā)生故障的設備,如鐵芯、套管等。觸發(fā)詞指事件觸發(fā)元素,如出現(xiàn)、導致等。狀態(tài)一般是對發(fā)生故障設備的描述,如受潮、損壞等。
然后,定義事件參數(shù)的類概念和關系。為了保證節(jié)點的一致性,類的屬性也看作節(jié)點。類概念主要描述了事件參數(shù)定義;關系則主要描述了觸發(fā)詞的定義和事件之間的邏輯關系。
變壓器故障事件和參數(shù)模型如圖1 所示。

圖1 變壓器故障事件和參數(shù)模型Fig. 1 Transformer fault event and parameter model
從圖1 可知:故障事件包括故障原因事件、故障現(xiàn)象事件、故障檢測事件和故障維修事件。故障原因與故障現(xiàn)象之間的關系是“導致(lead to)”;故障維修方法與故障原因之間的關系是“維修(fix)”;故障檢測事件與故障現(xiàn)象之間的關系是“檢測(detect)”。每個事件包括對應的故障部件和狀態(tài),均為事件的參數(shù)。
變壓器故障語料庫主要由故障事件構成,宏觀上可分為變壓器結構部分和故障描述部分。結構部分主要分為3 個層次:設備、子設備、零件。設備主要指變壓器,子設備主要指鐵芯、繞組、油箱等變壓器的功能部件。零件指螺栓、外殼等不可再分的組件。在對故障事件的描述中,部分故障現(xiàn)象同時也是故障原因,比如絕緣墊塊潮濕造成鐵芯多點接地。墊塊潮濕既是現(xiàn)象又是造成鐵芯多點接地的原因。
概念類被定義之后,類之間就會存在相應的類關系。本文設計的事件關系主要包括:consist_of,lead_to,detect,fix,has_attribute 和appear。其中,consist_of 表示設備結構之間的關系,has_attribute表示設備與屬性之間的關系;這2 種關系描述的是變壓器知識的定性關系。lead_to 表示狀態(tài)間的事件邏輯關系,detect 表示檢測方法與設備故障狀態(tài)之間的關系,fix 表示維修方法與設備故障狀態(tài)之間的關系;這3 種屬于事件邏輯關系。除此之外,設備狀態(tài)值可能會導致設備屬性值發(fā)生變化,因此設備狀態(tài)與設備屬性之間也存在lead_to 關系。
借鑒英文數(shù)據(jù)集的標注方法,將信息提取任務轉化為文本的標注任務。標注包含實體類別層、關系層、關系位置層。實體層采用BIO 的標注方式,B 表示一個實體的開頭,I 表示一個實體的中間和尾部,O 表示非實體。
實體主要包括故障設備、狀態(tài)、檢測方法、維修方法。其中檢測方法和維修方法屬于較長的實體,模型需要具備足夠的記憶能力才能取得好的效果。
根據(jù)上文提出的本體模型,本文共涉及8 個實體類別、7 個關系類別。8 個實體類別分別為:
equipment,sub-equipment,component,state,gas,attribute,detect_method,fix_method。7 個關系類別分別為:appear,lead_to,consist_of,has_attribute,generate,detect,fix。關系類別按尾實體先后位置依次標記在頭實體最后一個字符上,如附錄所示。
網(wǎng)絡模型的輸入為變壓器故障診斷文本,輸出為實體和關系標簽。根據(jù)標簽可以將非結構化的文本轉化為有意義的圖結構。
在收集的案例語料中,每個故障都有其對應的故障原因和故障表示。此外,還存在不同的故障原因可以引起相同或相似的故障現(xiàn)象,以及一個故障原因可以引起多種不同的故障現(xiàn)象的情況。因此當故障相同時,對應的故障原因和故障現(xiàn)象并不完全一致。
本文使用中文BERT 通過微調(diào)學習文本的詞向量,并將其作為堆疊BiLSTM 層的輸入,以捕捉文本的深層語境特征;CRF 用來識別實體;最后,根據(jù)關系矩陣用BiGCN 更新節(jié)點特征。信息抽取模型框架如圖2 所示。

圖2 信息抽取模型框架Fig. 2 Framework of information extraction model
CRF 被用來劃分全局最優(yōu)標簽序列,基于字符依賴性特征序列M,輸出標簽序列Y。標簽序列和特征序列的聯(lián)合概率分布如式(1)所示。
式中:A為標簽之間的轉移概率矩陣,由訓練得到;Yi為第i個字符的預測標簽。
從式(2)中可以得到M和Y的條件概率。
式中:Y′為一個可能的標簽序列;f(M)為所有可能的標簽序列的集合。
在訓練CRF 時,以最大似然估計作為損失函數(shù)來最大化P(Y|M),如公式(3)(4)所示。
在實體類別預測過程中,使用維特比算法預測最佳標簽序列。
為了緩解錯誤的實體分類對關系識別造成的影響,將BiLSTM 的輸出特征與預測標簽向量進行拼接,記為向量Z。關系概率計算為:
式中:δ為sigmoid 激活函數(shù);p(ci,r,cj)為字符ci與cj之間存在關系r的概率;“⊕”表示計算各個關系的概率值;Wv,W f,Wb分別為全連接層權重矩陣、前向關系權重矩陣、后向關系權重矩陣。
在訓練過程中,最小化交叉熵損失作為優(yōu)化目標,如式(6)。
式中:n為字數(shù);m為關系類別的數(shù)量;q(ci,r,cj)為實體ci和cj之間存在關系的概率;p(ci,rk,cj)為實體ci和cj之間的每個關系的概率。
常規(guī)的信息抽取方法沒有考慮關系對實體識別的影響。考慮到關系的確定能夠幫助模型更好地識別實體,例如關系類別如果為“fix”則頭尾實體分別為“fix_method”和“state”,因此本文引入了BiGCN,將字符的深度上下文特征作為節(jié)點特征,以上一階段對關系的預測結果作為鄰接矩陣,再次進行實體關系的聯(lián)合抽取。
傳統(tǒng)的GCN 無法建模方向,但是知識圖譜三元組中定義了頭實體和尾實體。根據(jù)關系的方向,鄰接矩陣被分為前向鄰接矩陣和后向鄰接矩陣,如公式(7)—(9)所示。
BiGCN 運算后的節(jié)點特征先與鄰接矩陣相乘,再經(jīng)過激活函數(shù)。節(jié)點特征最終的更新公式如式(10)所示。
考慮關系概率對節(jié)點特征更新影響的優(yōu)點是,可以有效糾正模型前期積累的錯誤特征,增強模型的識別能力。
本文的實驗環(huán)境:操作系統(tǒng)為Win10,CPU為intel core i5-7300,GPU 為2080ti;軟件python 3.7,pytorch1.7.0。
電力變壓器公開的運維文檔與事故處理報告較少。本文從《電力設備預防性試驗規(guī)程》等文獻中摘取與變壓器運維相關的描述故障原因和故障現(xiàn)象的語句。
在此基礎上,進一步標注實體關系,得到數(shù)據(jù)集,含2 456 條語句,63 070 個字符。將其中80%用作訓練,其他用作測試。具體數(shù)據(jù)統(tǒng)計如表1 所示。
模型的參數(shù)直接決定著模型的識別能力。本文參數(shù)通過搜索確定。搜索范圍和最終選定的參數(shù)(加黑)如表2 所示。

表1 數(shù)據(jù)統(tǒng)計信息Tab. 1 Data statistics

表2 模型參數(shù)設置Tab. 2 Model parameter settings
3.3.1 對比實驗
為了驗證本文方法的優(yōu)越性,選擇算法1[18]和算法2[19]作為對比算法。以準確率P和F1分數(shù)作為評價指標。實驗結果如表3 和圖3 所示。

表3 實驗結果Tab. 3 Experimental results %

圖3 各算法F1 分數(shù)及損失對比Fig. 3 Comparison of F1 scores and losses of each algorithm
從表3 和圖3 可以看出,本文提出的模型在變壓器運維文本的信息抽取任務中具有明顯的優(yōu)勢。
結果分析:
相比算法1。本文算法將BiLSTM 的輸出特征與預測標簽向量進行拼接,緩解了錯誤的實體分類對關系識別造成的影響,且考慮關系概率對節(jié)點特征更新的影響,可以有效糾正模型前期積累的錯誤特征。
相比算法2。本文算法使用預訓練模型BERT獲取詞向量,更好地考慮了上下文字義和語境意義;針對本文語料,通過微調(diào)模型獲得更優(yōu)的性能。
3.3.2 消融實驗
為了驗證BiGCN 對模型信息提取能力的影響,選擇BERT-BiLSTM-CRF(算法3)作為對比算法。相比本文模型,算法3 僅去掉BiGCN 更新節(jié)點特征的過程,其他參數(shù)設置、模型結構與本文模型保持一致。
消融實驗結果見表4。

表4 消融實驗結果Tab. 4 Ablation experimental results %
由表4 可知,加入BiGCN 模塊的模型獲得了3.1 個百分點的聯(lián)合F1分數(shù)提升。BiGCN 可以推斷和糾正錯誤的實體關系,聯(lián)合抽取提高了實體識別和關系識別兩個子任務的相關性,性能獲得明顯的提升。
將通過上述方法提取到的三元組存儲在neo4j 圖數(shù)據(jù)庫中。該庫以節(jié)點和關系為對象存儲圖結構數(shù)據(jù),可以使用Cypher 語言進行快速查詢。
同時開發(fā)線上網(wǎng)站,提供知識圖譜自動化構建服務。用戶輸入要處理的文本,后端會調(diào)用模型進行信息抽取,然后返回構建好的圖譜。
在關系查詢界面,支持3 種查詢方式:根據(jù)頭節(jié)點、關系查詢尾節(jié)點,根據(jù)頭節(jié)點、尾節(jié)點查找最短路徑,根據(jù)關系、尾節(jié)點查找頭節(jié)點。
針對變壓器運維過程中信息關聯(lián)性弱及決策生成效率低的問題,為提高決策生成服務能力,系統(tǒng)首先將輸入問題轉化為查詢圖,將其表述為狀態(tài)和動作的搜索問題。查詢圖由4 種類型的節(jié)點組成:基礎實體,存在變量,λ變量,聚合函數(shù)。基礎實體是存在于知識圖譜中的實體。存在變量和λ變量不是基礎實體。最終將可以映射到λ變量的所有實體作為答案。聚合函數(shù)旨在對實體進行過濾。首先從知識圖譜中檢索基礎實體及關系,構造查詢圖[20]。以“鐵芯發(fā)生過熱故障的處理方法?”為例,查詢邏輯形式為:
λx.?y.method(x,y) ∧appear(鐵芯,過熱)∧
fix(y,過熱) ∧detect(y, 過熱)
鐵芯和過熱為2 個基礎實體,之間的關系為“appear”。y表示存在變量,描述構造關系。x表示λ變量,即答案節(jié)點,用于映射查詢檢索到的實體。聚合函數(shù)的約束是返回的節(jié)點類型,為fix_method。x、y都是方法實體,代表鐵芯過熱的維修措施或者需要進行的檢修試驗。檢索到的實體由聚合函數(shù)篩選,返回鐵芯過熱的維修措施給運維人員。運維人員核驗與完善生成的處理方法,生成運維報告。
本文基于電力變壓器運維相關文獻,提出一種基于BERT-BiLSTM-CRF-BiGCN 的知識圖譜構建方法,主要結論如下:
1)設計了變壓器故障知識圖譜本體層,包含8 種本體、7 種關系。基于本體對故障診斷文本進行標注,建立了實體和關系聯(lián)合提取數(shù)據(jù)集。
2)提出實體和關系聯(lián)合提取方法,首先通過BERT 預訓練模型學習詞向量,堆疊BiLSTM 模塊,根據(jù)深度語境更新字符特征,再使用BiGCN結合關系矩陣糾正錯誤的實體關系。模型聯(lián)合F1分數(shù)可以達到89.94%,明顯優(yōu)于對比模型。
3)開發(fā)軟件提供線上知識圖譜自動化構建、實體查詢、關系查詢和決策生成的服務,提升變壓器運維決策生成的效率。