徐會芳,張中浩,談元鵬,韓富佳
(中國電力科學研究院有限公司,北京市100192 )
近年來,隨著我國電網運營與智能控制技術、信息技術的日益深度融合,電網呈現出自動化需求日益增長、信息化水平不斷提升的特點。作為電網的管控中樞,電網調度業(yè)務積累了大量的運行管理數據知識,為了保障電網調控的高可靠性,實現調控經驗知識傳承,需要投入大量的人力進行資料存檔、多源異構數據處理,而調度領域體系復雜、規(guī)模龐大的專業(yè)知識給工作人員造成了巨大挑戰(zhàn)。
知識圖譜作為一種以圖結構形式存儲管理知識的技術,可根據業(yè)務以結構化的形式描述實體、關系、屬性,優(yōu)化知識管理邏輯。在調度領域,根據強規(guī)則、海量知識的特點定制化地設計知識圖譜,有助于固化調度規(guī)程、故障預案等經驗知識,輔助支撐點位進行運行監(jiān)視、異常處置等應用。
構建知識圖譜,首先需要針對業(yè)務進行實體、關系、屬性的抽取。其中,電網調度領域數據中的關系、屬性規(guī)則性較強,且有大量專家經驗知識的積累,通過繼承現有規(guī)則庫基本上可滿足當前需求。而實體由于數量大、類型多,難以簡單通過規(guī)則或人工進行提取,作為知識圖譜的核心要素,實體識別效果對知識圖譜的整體質量影響重大,因此相關人員針對實體識別工作機制開展了大量研究。
在電網調度領域,根據文本中專業(yè)知識的邏輯關聯性,一些研究者采用了基于規(guī)則的實體識別方法。文獻[1]通過系統(tǒng)的配置文件、實時數據庫、歷史數據庫、相關程序的編譯文件等獲得D5000系統(tǒng)業(yè)務知識,根據業(yè)務數據體量固定、更新較慢的特點,采用基于規(guī)則與詞典的方法進行實體的識別。文獻[2]依據規(guī)則對表名、列名、主外鍵等進行結構化抽取,進而通過自然語言處理技術提取詞元,實現實體識別與新詞發(fā)現?;谝?guī)則的方法在特定業(yè)務領域取得了較好的效果,但結果高度依賴大量人工制定的規(guī)則,當領域數據分布差別較大時,往往無法直接遷移,泛化能力較弱。
為了減少實體識別中建立規(guī)則對人工的需求,一些研究者采用了統(tǒng)計的方法。針對電網調度規(guī)則、日志等文本用語特點,文獻[3]提出建立調度專業(yè)詞語的語料庫和語義模型,然后借助自然語言處理技術對調度操作規(guī)程、故障處置預案、日志等文本數據進行實體抽取。文獻[4]通過詞典和隱馬爾可夫模型(hidden Markov model,HMM)分詞,并進而對分詞進行詞典匹配,完成實體抽取?;诮y(tǒng)計的方法需要手工設計并構造特征,需要具有一定的語言學基礎且經驗豐富的專家參與工作,人力成本依然較大。
隨著神經網絡特別是深度學習的發(fā)展,基于神經網絡的方法在中文分詞、序列標注和實體識別[5-9]中取得了較好的效果。相比于基于統(tǒng)計學習的方法,深度學習的方法極大地節(jié)省了人工定義特征的繁瑣,易于進行語言、領域間的移植和復用。常用實體識別技術有長短期記憶網絡(long short-term memory,LSTM)、卷積神經網絡(convolutional neural networks,CNN)、雙向長短期記憶網絡(bi-directional long short-term memory,BiLSTM)及基于注意力機制的神經網絡模型[10]等。在醫(yī)學、軍事、新聞等領域,研究人員采用雙向長短期記憶網絡-條件隨機場(conditional random field,CRF)(BiLSTM-CRF)模型進行實體識別研究[11-14]。研究發(fā)現,BiLSTM在對文本進行編碼時可以同時考慮上下文信息,能夠有效地提取長距離特征,可以避免梯度爆炸或者梯度消失等問題,而且只需考慮隱藏層參數,模型較為簡單,但主要針對詞向量特性;對于字符級局部特征,CNN模型可以通過采用各種長度不同的窗口進行提取,從而得到各種組合的局部特征,實現對BiLSTM實體識別效果的有益補充。
電網調度領域實體類型多樣、領域專業(yè)化程度高,且存在大量縮寫、嵌套、別名等問題,對現有實體識別算法提出巨大的挑戰(zhàn)。本文提出基于BiLSTM-CNN-CRF的電網調度領域實體識別方法,不同于文獻[13],針對CNN池化層處理后部分語義信息不完整的問題,本文采用無池化層的CNN,使模型能夠有效利用局部信息及全局信息,從而提升電網調度領域實體識別的效果。
文本文字無法通過算法直接進行計算,為了挖掘文本中的信息,首先需要對文本進行向量化處理。本文采用Word2Vec模型中的CBOW模型,先將文本進行one-hot向量轉化,然后將特征詞上下文相關的詞對應的詞向量輸入神經網絡進行訓練,輸出特定詞的詞向量,使模型具有更好的向量表示能力。文本在模型中的處理流程為:1)編碼層,模型輸入上下文單詞的one-hot向量;2)隱層,所有one-hot向量分別乘以共享的輸入權重矩陣;3)解碼層,隱層向量乘以輸出權重矩陣再通過Softmax激活函數得到所有詞的概率分布,概率分布中最大概率的單詞為預測出的中間詞。
CNN可有效地獲取詞的形態(tài)信息,如前綴、后綴等,在局部特征提取方面表現優(yōu)異[13]。因此可用于提取基于字的特征并將其編碼到神經網絡。CNN的池化層有助于特征壓縮降維、減小運算律,但同時也容易導致一些特征信息損失,本文為確保語義信息的完整性,考慮采用去池化層的CNN。
LSTM是一種特殊的循環(huán)神經網絡(recurrent neural networks,RNN),其通過引入記憶單元和門限機制解決了RNN梯度消失問題。LSTM模型具有3個門結構,使得循環(huán)網絡在訓練過程中可以在記憶單元內保留對任務有用的信息,避免了RNN在獲取遠距離信息梯度消失的問題。
BiLSTM的結構如圖1所示,在處理序列數據時,BiLSTM比一般的LSTM增加了一個反向計算的過程,此過程可以利用序列的下文信息,最后把正向和反向2個方向計算的值同時輸出到輸出層,從而獲取一個序列的全部信息,該模型已在多種自然語言處理任務中得到應用[15-18]。
圖1 BiLSTM模型Fig.1 BiLSTM model
CRF由Lafferty等人于2001年提出,是一種無向圖模型,其融合了最大熵模型和隱馬爾可夫模型特點,在詞性標注、實體識別等自然語言處理序列標注時具有較好的結果[19-20]。作為典型的基于概率圖的統(tǒng)計模型,其可利用上下文信息添加多種特征,并實現全局歸一化,可取得全局最優(yōu)解,解決標記偏差問題。其聯合概率可以寫成若干勢函數相乘的形式,然后使用最大似然估計完成CRF模型訓練。對于序列標注模型,只考慮2個連續(xù)標簽之間的相互作用,訓練和解碼過程采用Viterbi算法。
由上文可知,BiLSTM具有較強的序列建模能力,可以捕獲較遠的上下文信息。CRF計算的是一種聯合概率,優(yōu)化的目標是整個序列。而CNN能夠有效獲取詞的形態(tài)信息,對于局部特征識別效果更佳。為了在電網調度領域實體識別時充分利用各個模型的特有優(yōu)勢,本文構建了BiLSTM-CNN-CRF組合模型。其中,BiLSTM及CNN處理了特征抽取的問題,避免了大量模板的建立工作;CRF建模了標簽間連續(xù)關系的同時,還適用于處理涉及電網語料隱含指示詞的相關推理。模型結構如圖2所示,主要可分為:輸入層、Embedding層、CNN層、BiLSTM中間層、CRF輸出層。首先輸入層和Embedding層將文本表示成由字向量和額外的特征向量拼接的特征向量,作為模型的輸入;CNN層針對拼接向量開展計算,獲取向量的初步特征分析結果;中間層使用包含前向和后向2個方向的LSTM神經網絡層對輸入的向量建模,主要是利用雙向的具有LSTM單元的循環(huán)神經網絡對輸入序列信息進行特征提取,最終將2個方向的LSTM結果進行連接,輸入到CRF層;最后采用CRF層作為模型的輸出層生成對應的類別標簽序列 。
圖2 BiLSTM-CNN-CRF模型Fig.2 BiLSTM-CNN-CRF model
下面結合電網調度領域數據,對模型各層展開詳細介紹。
1)數據輸入層。
以“康家二線停電”句子為例,其文本字序列與理想標注序列如表1所示。
表1 實體識別示例Table 1 Examples of entity recognition
其中B-Bus表示類型為線路的實體的開始字,I-Bus表示線路實體中間或者末尾字,O表示該字不屬于任何需要識別的實體。
2)Embedding層。
Embedding層將文本表示轉化為計算機可以理解的數學表示,從而使得神經網絡能夠進行訓練,該層將n個漢字的字序列w=[w1,…,wn]映射為向量序列X:
X=[x1,x2,…,xn]∈Rn×d
(1)
式中:d表示向量維度,向量可通過預訓練模型獲取。
3)CNN層。
模型的第3層為CNN層,CNN中常在卷積層后加入池化層,目的是降低數據采樣率,并提取重要的特征,但是會丟失部分信息。以“康家二線停電”為例,經過卷積層對文本對應的向量序列計算后,得到了帶有語義特征信息的高維數據,一般地,卷積層后連接池化層,通過平均池化或最大池化等方式對數據進行降采樣,保留卷積層得到的高維數據中的主要信息,對影響較小的信息進行去除,提升了算法的計算速率,降低了過擬合風險。但是由于語義特征本身數據維度較低,在圖像領域池化層的優(yōu)勢在實體識別中卻容易導致語義信息的缺失,如導致“康家”、“二線”、“停電”等實體中文字關系、文字含義信息的丟失。為了獲取文本的全量信息,本文采用去池化層CNN,通過卷積層、全連接層等處理,抽取輸入向量的局部特征,提供至BiLSTM層進行計算。與采用池化層的常規(guī)CNN相比,本文去池化的操作方法具有保留完整的文本信息、語義關聯關系的優(yōu)勢,有助于提升電力調度領域實體識別準確度。
4)BiLSTM層。
(2)
(3)
(4)
式中:“:”表示拼接操作,即將2個維度為m的向量拼接成維度為2m的向量。
打分層將雙向LSTM的隱藏狀態(tài)序列輸入至一個線性層,將隱藏向量從m維映射至k維,得到各個字對應的標簽打分S:
S=[s1,s2,…,sn]∈Rn×k
(5)
式中:k表示標注集當中標簽的數量,按照“BIO”標簽框架,k=2Ne+1,Ne表實體類型數量,每個實體類型對應一個“B”標簽、一個“I”標簽和一個非實體的“O”標簽;si∈Rk,sij表示輸入文本中的字wi對標注集中分類標簽j的打分值。
5)CRF層。
CRF層,用于對句子級別的序列標注。CRF層的參數是一個(k+2)×(k+2)的矩陣A,Aij表示從第i個標簽到第j個標簽的轉移得分,CRF轉移矩陣的引入可以在為一個位置進行標注的時候充分利用此前已經標注過的標簽,提高模型標注的準確率。
對于輸入長度為n的標簽序列Y,其中yi表示第i個字對應的標簽:
Y=[y1,y2,…,yn]
(6)
模型對于句子W對應標簽Y的整體打分為:
(7)
整個序列打分為句子中各個位置打分之和,每個位置由2部分組成,一部分是由各個字自身的打分si決定,另一部分則由CRF的轉移矩陣A決定。進而可以歸一化得到序列預測概率:
(8)
式中:Y′表示任意一個長度為n的標簽序列。模型訓練時通過最大化似然函數進行優(yōu)化,即給定訓練樣本(X,Y),其損失函數為:
J(X,Y;θ)=logP(Y|X)
(9)
式中:θ表示模型的可訓練參數。
為驗證本文中模型的性能,在電網事故處理預案數據集上進行實驗。故障預案數據采用的是《國網冀北電力有限公司調控中心2018年迎峰度冬期間冀北電網事故處理預案》原始語料,從中選取覆蓋唐山、廊坊及秦皇島三地,共計60篇預案文本,對其中廠站、母線、交流線路、發(fā)電機、變壓器、斷路器、電網、調度機構等實體進行標注,標注結果作為實驗數據。語料標注采用BIO表示法以字符為最小標注單位進行標注,其中B表示實體開始、I表電力實體的內部,O表示不屬于實體。
本文采用實體識別任務中通用的評價方法作為評價標準,即正確率P、召回率R和F1值,定義如下:
(10)
(11)
(12)
式中:TP為模型正確識別的實體數;FP為模型識別出的不相關實體數;Fn為樣本中未被模型識別出的實體數。正確率和召回率的取值都在0和1之間,數值越接近1,正確率或召回率就越高,在實際的模型性能評價中,通常綜合考慮它們的加權調和平均值,即F1值。
2.3.1參數設置
采用交叉驗證方式,標注數據隨機分成5組,選取4組數據用來訓練模型,1組數據用來測試。訓練過程中發(fā)現,迭代次數這一參數對實體識別準確率有著明顯影響。對LSTM-CRF、BiGRU-CRF(bi-directional gated recurrent unit conditional random field)、BiLSTM-CRF、BiLSTM-CNN-CRF、CNN-CRF多個模型訓練中的損失函數值進行對比,如圖3所示。當迭代次數大于50后,各方法損失函數收斂到一個較低的數值,并且識別效果達到相對理想的結果。為節(jié)約訓練時間,本文實驗迭代次數設置為50,學習率設為0.003。
圖3 不同模型訓練中的損失函數值Fig.3 Loss value in different model training
2.3.2實驗結果
具體地,本文編碼器分別采用BiGRU、LSTM、BiLSTM、CNN模型,分類器采用CRF及Softmax開展實驗,匯總不同模型組合的實驗結果如表2和表3所示。
表2 Softmax分類器實體識別結果Table 2 Entity recognition results of Softmax classifier %
表3 CRF分類器實體識別結果Table 3 Entity recognition results of CRF classifier %
如表2所示,采用Softmax分類器時,BiLSTM+Softmax準確率最高,但由于局部字符特征提取不充分,導致召回率不夠理想。加入CNN后,充分利用各種粒度特征,召回率得到顯著提升。因此,在略微損失準確率的前提下,由于BiLSTM+CNN+ Softmax方法效果在準確率與召回率方面更均衡,是本文采用Softmax分類器進行實體識別試驗的基準方法。
如表3所示,采用CRF分類器時,除CNN+CRF方法與CNN+Softmax的準確率基本持平外,其余各項指標都有明顯提升。尤其BiLSTM+CNN+CRF模型,充分利用長序列記憶能力,綜合CNN模型對不同粒度特征的處理能力以及CRF模型的序列編碼能力,在準確率、召回率方面都取得了最好的效果,對電網調度領域實體識別的效果達到一個更理想的水平。
為了直觀對采用兩種分類器的識別結果進行分析,對比采用兩種分類器的不同方法的F1值,如圖4所示。結果表明,使用相同的編碼器,相較于Softmax分類器,采用CRF分類器的綜合指標F1值明顯優(yōu)于前者。
圖4 分類器對應的F1值Fig.4 The corresponding F1 of classifier
最后,對比BiLSTM+CNN方法采用Softmax和CRF兩種分類器的識別效果,如圖5所示,相較于BiLSTM+CNN+Softmax方法,BiLSTM +CNN+CRF在準確率、召回率、F1值上的結果比前者分別高出2.62%、1.96%、2.24%,是本文進行實體識別工作時的首選方法。
圖5 最優(yōu)模型結果對比Fig.5 Result comparison of optimal models
針對電網調度領域文本數據特征,本文對CNN進行去池化層操作,輸出直接連接雙向長短期記憶網絡,保留了完整的文本信息、語義關聯關系。相比文獻[13]方法,本文方法對電網調度領域實體識別的效果有明顯提升,如表4所示。
表4 實體識別結果Table 4 Entity recognition results %
根據具體識別的實體結果,發(fā)現在縮略短語的識別效果方面,BiLSTM-CNN-CRF仍有較大提升空間,比如難以識別“#2變”、“雙馬一”等實體。主要原因一是縮略語本身攜帶語義信息不容易被捕獲,二是受訓練模型的語料規(guī)模限制,縮略短語的標注樣本不足而影響算法精度,后期隨著語料規(guī)模的擴展,算法效果將會得到進一步提升。
對于電網調度領域,傳統(tǒng)實體識別方法需要大量人工選擇特征和引入外部信息,本文提出的基于BiLSTM、CNN及CRF的識別模型無需人工提取特征,針對電網調度領域文本數據特征,本文將CNN進行去池化層操作,有效利用文本的局部和全局特征,便于遷移到不同類型的實體標注中。通過在調度領域故障預案文本數據集上與其他實體識別方法進行對比,本文提出的基于去池化層的BiLSTM-CNN-CRF方法在準確率、召回率、F1值方面表現更優(yōu),能夠較好地對電網調度領域實體進行抽取,有效地支撐電力知識圖譜構建。