劉 斐,文 中,吳 藝
(三峽大學電氣與新能源學院,湖北 宜昌 442003)
保障電力安全有助于社會穩定運行,但由于電力系統規模龐大,所處環境復雜,電力行業安全事故頻發[1]。根據國家能源局2012—2022年事故通報,月均安全事故6 起[2],其中多起為同類型事故,因事故發生后缺乏相關經驗而導致處理不當,造成較大經濟損失。準確識別事故類型,妥善處理事故后果,并從類似事故中汲取經驗,可有效減少事故處理時間,一定程度上降低經濟損失[3-4]。因此,對電力事故報告的文本智能分析至關重要。
相關事故單位對于發生的安全事故,會有較為詳細的總結分析,報告文本構成大量非結構化事故報告,對后期同類型事故的預防和處理具有較強的借鑒意義。目前,電力事故處理方式主要依靠現場人員經驗,容易導致事故處理效率降低,且不能及時發現仍然存在的安全隱患。利用人工智能技術可以快速挖掘有效信息[5],得到同類型事故的處理方案和預防措施[6]。目前,相關領域內對電力事故報告的文本智能分析已有一些研究:文獻[7]應用Apriori算法挖掘電力事故誘因間的深度關聯規則,根據事故不同突出點,建立電力行業事故誘因分析體系,在短文本事故報告領域取得不錯效果,但對于長文本的分析效果并不明顯;文獻[8]通過Word2vec訓練事故文本的詞向量,以熱力圖記錄泛化權重,對相似性文本構建事理圖譜,從而達到對相似電力事故的走向預測,取得一定效果,但Word2vec訓練文本無法解決文本中存在的一詞多義問題,致使其準確率較低;受限于電力事故存在的長文本、聯系緊密和語義復雜特點,考慮對文本構建序列標注,利用深度學習對文本處理,從而實現文本分類,該類方法目前在文本識別領域取得較好效果;文獻[9]為解決序列標注中大量詞類的分類問題,結合機器學習和深度學習模型進行標簽識別,構建TB-LSTM-CRF雙向長、短期記憶句子級別標簽,提高序列標注準確率,但效率有所降低。
本文在相關領域內部分學者研究基礎上,引入BERT預訓練模型,其與過去使用的CBOW 方法不同[10],在向量基礎上添加語言掩碼模型,避免數據過擬合[11],但在文本語義聯系上,單獨BERT模型處理效果并不理想[12-13],通過閱讀國內外相關的文本分析發現,使用混合模型進行特征提取,可獲得更好的綜合效果[14-16]。鑒于電力行業事故特點,嘗試建立BERT-BILSTMCRF混合模型,引入雙重注意力機制,解決預訓練中因隨機Mask 字符之間可能存在關聯的問題,通過構建的《電力事故文本分析》詞典,在詞和字符級上進行特征抽取,解決一詞多義問題,進一步提高文本識別效率和準確率,實現對文本標簽的預測。最后,與現行的其他4種深度學習模型進行比較分析,結果表明:本文提出的混合模型明顯優于4 種現行模型,具有較強魯棒性;該方法可為電力行業事故報告文本分析提供新思路。
本文BERT模型采用雙向Transformer編碼器,可以高效學習字符級、詞級和句子級間的詞義特征。同時,由于電力事故文本具備上下聯系緊密的特點,在分析句子特征時,通過特定詞匯,如斷路器、變壓器等,實現對整個文本序列進行并行分析,首先輸入文本序列E={E1,E2,…,En},然后將詞向量Tr經過雙向Transformer編碼器進行特征提取后,生成具有特定信息的字符級向量T=(T1,T2,…,Tn),其預訓練結構如圖1所示。
圖1 BERT預訓練結構示意Fig.1 Schematic diagram of Bert pre-training structure
Transformer通過預設的注意力機制收集經過分詞后詞語的相關情境信息,對相似情景向量進行編碼,在遇到文本語句中其他相關詞語時,該模型能夠通過自主學習,對于相似文本進行同樣處理,從而減少重復學習時間,提升處理效率。為使本文模型高質量識別序列特征,研究構建2 個預訓練任務,其具體實施步驟如圖2所示。
圖2 帶掩碼語言模型工作流程Fig.2 Workflow of masked language model
第1 步,采用masked language model訓練其識別缺欠文字能力:隨機隱藏文本中部分文字,通過訓練模型判斷隱藏部分,使其達到可識別字級特征能力,并提升識別精確度。具體做法為:輸入1 個序列文本,80%概率用Mask 代替,10%概率被隨機隱藏,10%概率保持原序列輸入;第2 步,使用NSP任務訓練模型捕捉事故報告文本中互相聯系的特征,將序列進行切分,然后與實體進行匹配,將正確匹配的實體標記,即可將序列中最長實體切分出來,從而使其達到具備雙向最大匹配能力。每1 個序列文本,均由序列A+序列B組成,若序列B為序列A連接部分,則標注IsNext,否則標注“NoNext”,用[cls]表示標識序列開始,[sep]表示標識序列A、B間分割。
在上文預訓練任務中,隨機隱藏部分可能存在與其他內容相關聯情況,會導致字級之間關鍵語義丟失,為減少出現該類問題概率,提出1 種基于Transformer的解碼器。在解碼器間加入卷積門控單元,并增加1 個多頭注意力子層(mask multi-head self-attention),加大對編碼器輸出的關鍵信息篩選,增強模型信息識別靈敏度。文本經過編碼器和門控單元處理后,作為解碼器的輸入,將2 部分融合,雙重解碼器框架如圖3所示,最后利用殘差將所有子層連接起來。
圖3 雙重解碼器框架Fig.3 Dual decoder fr amework
通過上文處理,將輸入序列生成字級特征t和詞典級特征d,然后將2 種特征t和d 進行向量拼接,得到w,w=t⊕d,而后w作為訓練好的輸出,輸入到BILSTM層進行特征提取。由于BILSTM在處理中不會考慮標簽相關性,詞向量處理準確度較差,容易出現誤差,而CRF可以彌補該類誤差產生,其基本算法為:訓練學習過程中,將所有出現的實際值標記為y,其發生的概率如式(1)所示:
式中:矩陣p 為BILSTM的輸出;T表示輸入的原始文本;X表示文本序列;y表示實際值;y′代表理想的標記值;Yx表示所有可能出現的BIO標記集合。
標記序列函數如式(2)所示:
由式(2)得到最佳標記序列,根據式(3)所示,得到輸出概率分數最高的1 組序列。
經過3 層處理,得到最優標簽標記,使該模型具有較強的魯棒性。引入BERT預訓練模型后,完整框架圖如圖4所示,hi表示輸入到CRF層的序列向量,“B”表示文本名稱的開端,“I”表示文本名稱的內部,“O”表示非文本實體部分。該模型采用transformer encoder作為參數層,共有112 個網絡層數,768 個隱藏層,其中包括12 個注意力頭數,文本最大長度為512,共計1.1 億個模型參數。
圖4 模型框架Fig.4 Model framewor k
為保證文本準確性,采用Python 在國家能源局、中國電力網、北極星電力網等權威網站,獲取2011—2021年間電力行業通報的事故報告文本,構建文本數據集。并根據收集的數據集按以下步驟處理:
1)構建專業電力詞典。通過收集電力行業專有名詞,如“電纜”、“短路”、“雷擊跳閘”等,形成電力詞典。
2)文本分詞。使用中科院開發的NLPIR分詞系統,對特有名詞進行分詞。
3)文本清洗。由于文本中存在大量語氣詞,需要對事故的文本進行清洗、去噪,去除與文本無關但對訓練有干擾的無用數據,提高模型識別能力。
4)BERT生成關鍵信息詞向量。通過BERT預訓練產生的詞向量作為BILSTM-CRF的輸入。
5)BILSTM-CRF進行B-I-O處理。文本經過處理后,將文本中事故類別輸出,構建電力事故標簽,具體事故標簽分類見圖5所示,并對模型進行算法優化。
圖5 數據集事故原因分布Fig.5 Accident causes distribution in data set
6)事故標簽識別。將收集的數據集輸入到模型中,并對整個模型標簽識別效果進行檢測。
7)模型評價。模型采用通用命名實體識別的4 個評價指標,分別是精確率P,召回率R,F1值(查準率)和平均加權F1average值,從而驗證模型識別的準確率。
本文研究實驗環境基于Intel(R) Core(TM)i5-11400H,CPU 3.8GHz處理器,16 GB內存,GPU NVIDIA 3050Ti,Windows 11 操作系統。使用Python3.6 編程語言,參數設置為迭代次數50,批處理參數32,單個句子最長不超過150 個單詞,dropout為0.2,BILSTM 隱藏層為768。4 類指標及其可能出現的結果見表1所示。
表1 指標標簽Table 1 Indicator labels
實際中存在標簽預測誤差情況,如在案列[17]:“2021年6月18日,青海華電諾木洪風力發電有限公司運維人員在檢查海西州都蘭縣諾木洪風電場SVG裝置模塊異常告警過程中,1 名作業人員違章作業,擅自卸下SVG功率柜隔板螺栓,在設備未停電情況下進行作業,導致發生觸電,經搶救無效死亡”。在該類案中,按照事故原因標簽歸屬于“觸電”,但在預測結果中,會將該類歸為“工人誤操”,即屬于誤差標簽,導致預測不準確,需要重新召回分類。
實驗評價標準具體計算如式(4)~(7)所示:
式(4)~(7)中:Tc表示真實值;Fc表示真實值中出現的誤差值;Fi表示誤差值中存在的真實值;Si表示事故標簽類型為i的樣本數量,個;n 為標簽總數,個;n表示事故標簽類別,類(本文研究中共分為8 類,所以取值為8);D表示所有事故數據容量,條。
F1最高值為1,表示評價最好,最低值為0;加權值F1average與具體標簽和數據集容量緊密相關,僅在數據集出現差值較大時,需計算加權值,樣本容量D共1 000條,根據式(4)~(6)得到BERT-BILSTM-CRF模型實驗結果矩陣統計表,如表2所示。
表2 模型混淆矩陣統計Table 2 Statistical table of model confusion matrix
由表2數據,再根據式(6)計算可知,電纜故障和雷擊跳閘標簽預測最好,F1值達到1;桿塔倒塌標簽識別率較低,F1值為0.93,這是因為桿塔倒塌除非人為因素外,有部分是由違規操作所導致;另外,所有標簽的F1值均在0.9 以上,且在“雷擊跳閘”標簽中,召回率和精確度均達到最高,這是因為雷擊跳閘作為電力詞典專有名詞,其固有的特性所導致,同時也驗證本文模型準確率較高。
本文研究是在BERT層構建2 個預訓練任務,并在解碼器上引入雙重注意力機制,為進一步驗證本文研究模型在電力行業實體標簽識別性能,與目前主流的文本識別技術進行對比分析。保持本文實驗環境不變,與CNN-BILSTM-CRF、BERT、BERT-CNN、BILSTMCRF 4 種模型(記作模型A,B,C,D)作為對照組,按照上文數據集處理步驟7)模型評價方法進行評估。評價效果統計如表3~6 所示。
由表3~6 可以看出,本文提出的模型綜合效果高于其他對照組,在標簽識別方面有較強優越性;同時注意到單獨使用BERT模型(模型B)時,F1值明顯低于另外4 組模型,模型B識別時間均低于其他模型,這與BERT模型對語句順序依賴低,在同樣環境中,處理關聯點之間關系速度更快是吻合的,而單一模型難以兼顧效率與質量2 個方面均達到較高值,進一步說明模型在融合了BERT模型,且引入雙重注意力機制后,可以提高文本識別效率和精度。此外,雖然CNN-BILSTM-CRF模型識別效果較好,但是其原理是通過抽取文本局部特征,再通過預訓練從而得到字向量后,作為BILSTM 輸入。其相對運行時間更長,對于本文中的數據集表現并不明顯,但對于更大容量集的數據集而言,處理效率會大大降低。綜上所述,BERT-BILSTM-CRF模型在事故標簽識別效果中綜合性能較好,與本文對照組4 種模型中表現最好的一組(模型A)相比,識別精確率、召回率和F1值分別提高了0.02,0.03,0.02,且耗時最短。
表3 模型精確度對比Table 3 Model accuracy comparison
表4 模型召回率對比Table 4 Model recall rate comparison
表5 模型F1 值對比Table 5 model F1 value compar ison
表6 模型耗時對比Table 6 Model time comparison
1)本文模型在引入BERT后,先構建2 個預訓練任務,再基于Transformer解碼器引入雙重注意力機制,一方面保證識別準確率,另一方面提高運行效率。使得文本分析更加智能化,為電力行業事故命名標簽體系識別提供1 種新思路。
2)與相關領域內常使用單一的BERT模型相比,本文模型將F1值提高了0.1,相較于本文列舉4 種其他現行深度學習模型,準確率、召回率和F1值均為最大,且耗時最短,表明提出的混合模型性能在文本識別和分類方面具有更好的效果。