吳 超,王漢軍
1(中國(guó)科學(xué)院大學(xué),北京 100049)
2(中國(guó)科學(xué)院 沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 110168)
電力調(diào)度是為了使各類電力生產(chǎn)工作有序進(jìn)行,保證電網(wǎng)對(duì)內(nèi)可以自身安全穩(wěn)定運(yùn)行、對(duì)外能夠可靠供電所采取的一種有效的管理手段.具體工作內(nèi)容是根據(jù)各類信息采集設(shè)備反饋的數(shù)據(jù)信息或監(jiān)控人員報(bào)告的信息,結(jié)合電網(wǎng)在實(shí)際運(yùn)行過(guò)程中的電流、電壓、負(fù)荷、頻率等相關(guān)參數(shù).綜合考慮工作中的各種情況,對(duì)電網(wǎng)運(yùn)行狀態(tài)進(jìn)行判斷,通過(guò)系統(tǒng)或是其他方式自動(dòng)發(fā)布操作指令,指揮現(xiàn)場(chǎng)操作人員或自動(dòng)控制系統(tǒng)進(jìn)行有效調(diào)整,比如調(diào)整發(fā)電機(jī)出力、調(diào)整負(fù)荷分布、投切電容器、電抗器等,使電網(wǎng)能夠持續(xù)安全穩(wěn)定的運(yùn)行[1,2].
電力領(lǐng)域與互聯(lián)網(wǎng)的結(jié)合,使得電力調(diào)度向自動(dòng)化方向發(fā)展的速度加快.長(zhǎng)久以來(lái)形成的電力調(diào)度管理系統(tǒng)在自動(dòng)化的過(guò)程中,需要構(gòu)建電力領(lǐng)域的知識(shí)圖譜.在知識(shí)圖譜的構(gòu)建過(guò)程中,命名實(shí)體識(shí)別(NER)[3]是知識(shí)圖譜構(gòu)建中的一個(gè)重要環(huán)節(jié),該任務(wù)是從互聯(lián)網(wǎng)、電力調(diào)度運(yùn)行數(shù)據(jù)中抽取出電力調(diào)度領(lǐng)域的命名實(shí)體.
命名實(shí)體識(shí)別是自然語(yǔ)言處理中的一項(xiàng)關(guān)鍵任務(wù),在1995年的MUC 會(huì)議上被第一次提出,提出的目的是識(shí)別文本中特定的名稱或者是有意義的短語(yǔ)[4].
早期的命名實(shí)體識(shí)別很多都是基于規(guī)則和統(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法[5,6].最初的時(shí)候,需要相關(guān)的專家制定命名實(shí)體過(guò)程中所需要的規(guī)則以及相關(guān)的知識(shí)庫(kù),然后采用匹配的方式進(jìn)行命名實(shí)體識(shí)別.但是在實(shí)際的應(yīng)用過(guò)程中,首先是規(guī)則的編寫(xiě)非常困難,并且制定的規(guī)則只可以用于特定的任務(wù),并不能重用于其他的任務(wù);并且知識(shí)庫(kù)的編寫(xiě)也是一項(xiàng)很大的工程.因此該種方式的效率比較低下,并不是一種命名實(shí)體識(shí)別的一項(xiàng)有效技術(shù).
在機(jī)器學(xué)習(xí)發(fā)展的過(guò)程中,機(jī)器學(xué)習(xí)模型中的最大熵模型(maximum entropy)[7]、支持向量機(jī)模型(Support Vector Machine,SVM)、條件隨機(jī)場(chǎng)模型(Conditional Random Fields,CRF)、隱馬爾科夫模型(Hidden Markov Model,HMM)等一系列模型別用于命名實(shí)體識(shí)別[8–13].機(jī)器學(xué)習(xí)模型的應(yīng)用在總體上提升了命名實(shí)體識(shí)別的應(yīng)用效率和識(shí)別的準(zhǔn)確率,其中應(yīng)用較多的模型是隱馬爾科夫模型和條件隨機(jī)場(chǎng)模型,這兩個(gè)模型在識(shí)別效果或是在遷移學(xué)習(xí)方面取得的效果都好于之前基于規(guī)則的方式.但是機(jī)器學(xué)習(xí)模型的局限性也是很明顯的,首先根據(jù)任務(wù)提取很多的特征(特征工程,feature engineering),特征的提取對(duì)最后的訓(xùn)練結(jié)果有著直接的影響;在訓(xùn)練的過(guò)程中也需要大量的時(shí)間和大量的資源;而且同規(guī)則一樣還需要特定的知識(shí)庫(kù).因此此后發(fā)展出的深度學(xué)習(xí)為命名實(shí)體識(shí)別提供了更高的效率.
2011 年Collobert 提出基于窗口的深層神經(jīng)網(wǎng)絡(luò)模型,該模型自動(dòng)學(xué)習(xí)輸入句子的特征,不需要像機(jī)器學(xué)習(xí)那樣需要人工提取特征,然后通過(guò)BP 算法訓(xùn)練參數(shù),性能上超過(guò)了前面所提到的算法.但是改模型的局限則是輸入句子的長(zhǎng)度必須是一樣的,而且不能處理文本中句子的上下文相關(guān)信息.因此在解決該問(wèn)題的基礎(chǔ)上,RNN (Recurrent Neural Network,RNN)被用于自然語(yǔ)言處理任務(wù),并且在命名實(shí)體識(shí)別中也取得不錯(cuò)的效果.RNN 基礎(chǔ)上發(fā)展而來(lái)的LSTM 神經(jīng)網(wǎng)絡(luò)的良好的序列記憶能力,成了命名實(shí)體識(shí)別的主要神經(jīng)網(wǎng)絡(luò)[14–20].在此基礎(chǔ)上LSTM與CRF 所結(jié)合形成的LSTM-CRF 模型成為命名實(shí)體的基礎(chǔ)架構(gòu)之一,然后在此模型上進(jìn)行擴(kuò)展或以此模型為基礎(chǔ)進(jìn)行發(fā)展的眾多模型在命名實(shí)體識(shí)別上被用于多個(gè)平行領(lǐng)域或是垂直領(lǐng)域.
本文所使用的Transformer-BiGRU-CRF 模型是以BiLSTM-CRF 模型為基礎(chǔ)進(jìn)行改進(jìn)的模型.因?yàn)锽iLSTM 在訓(xùn)練中,LSTM 結(jié)構(gòu)單元的多個(gè)門(mén)的運(yùn)算復(fù)雜性,訓(xùn)練所需要的時(shí)間和資源都比較大,因此希望可以使用一種既可以達(dá)到BiLSTM 網(wǎng)絡(luò)所能達(dá)到的效果,網(wǎng)絡(luò)的結(jié)構(gòu)也相對(duì)簡(jiǎn)潔,從而取代BiLSTM模型,通過(guò)相關(guān)論文與實(shí)驗(yàn)的證明BiGRU 模型[21]可以達(dá)到相應(yīng)的要求.另外,在以前的模型訓(xùn)練過(guò)程中,首先需要通過(guò)Word2Vec 將文本中的句子轉(zhuǎn)換為詞向量(word embedding),然后將詞向量輸入模型進(jìn)行訓(xùn)練,但是Word2Vec 不能保留文本的上下文信息,而且Word2Vec是基于統(tǒng)計(jì)的模型,因此在本文的模型中使用Transformer 模型[22]代替Word2Vec 模型部分,將文本句子直接輸入Transformer 中,去掉分詞和詞向量部分.整個(gè)模型為T(mén)ransformer-BiGRU-CRF 模型,該模型的訓(xùn)練方式使用了2 種訓(xùn)練方式.第1 種方式是Transformer部分不進(jìn)行訓(xùn)練,直接使用訓(xùn)練好的模型,只訓(xùn)練BiGRU-CRF 部分;第2 種方式是將整個(gè)模型一起訓(xùn)練,不使用Transformer 所訓(xùn)練好的模型,最后得到整個(gè)模型的參數(shù).
Transformer-BiGRU-CRF 模型結(jié)構(gòu)如圖1所示,整個(gè)模型分為3 個(gè)部分.首先通過(guò)Transformer 模型進(jìn)行語(yǔ)料的預(yù)訓(xùn)練得到輸入語(yǔ)料的語(yǔ)義表示的字向量,然后將字向量序列輸入BiGRU 中進(jìn)行語(yǔ)義編碼,最后在CRF 層通過(guò)分類得到標(biāo)簽所屬的類別.
與傳統(tǒng)模型相比,使用Transformer 取代了Word2Vec得到詞向量步驟,不再需要Word2Vec 得到詞向量之前要先進(jìn)行分詞處理,而是直接將語(yǔ)料輸入Transformer模型就可以得到上下文相關(guān)的字向量的表示,可以表征字的多樣性,增強(qiáng)了句子的語(yǔ)義表示;在BiGRU 階段,BiGRU 訓(xùn)練的過(guò)程中需要的內(nèi)存資源相對(duì)于BiLSTM 會(huì)少一些.在訓(xùn)練方式的選擇中,第1 種是固定Transformer 模型的參數(shù),只是訓(xùn)練BiGRU + CRF模型部分的參數(shù);第2 種是將Transformer-BiGRU-CRF做為一個(gè)整體進(jìn)行訓(xùn)練,訓(xùn)練整個(gè)模型的參數(shù).第1 種訓(xùn)練方式少了Transformer 模型部分的參數(shù)訓(xùn)練過(guò)程,只需要訓(xùn)練BiGRU + CRF 模型的參數(shù),因此可以減少整個(gè)模型的訓(xùn)練時(shí)間.

圖1 Transformer-BiGRU-CRF 模型
Transformer是一種基于encoder-decoder 結(jié)構(gòu)的模型,如圖2所示.
在encoder 中,encoder 由6 個(gè)layer 組成,即圖中的Nx,這里為Nx6,layer 就是圖2中的左側(cè)部分.每個(gè)layer 由兩個(gè)sub-layer 組成,它們分別是multi-head self-attention和feed-forward network,每個(gè)sub-layer都有residual connection和normalisation,因此sublayer的輸出可以表示為式(1):

在Decoder 中,有encoder 中的multi-head attention和feed-forward network 部分,除此之外,還比encoder多一個(gè)masked multi-head attention,最后經(jīng)過(guò)Linear和Softmax 輸出i位置對(duì)應(yīng)的的詞語(yǔ)的概率分布.

圖2 Transformer 模型結(jié)構(gòu)圖
Transformer 在數(shù)據(jù)預(yù)處理部分使用的是positional encoding,將encoding 后的數(shù)據(jù)與embedding 數(shù)據(jù)進(jìn)行求和,加入了文本中詞語(yǔ)的相對(duì)位置信息,最后學(xué)習(xí)出一份positional embedding.
在整個(gè)Transformer 模型中,self attention 機(jī)制起到了很大的一個(gè)作用,self attention的表達(dá)式為式(2):

雖然selft attention 機(jī)制沒(méi)有在模型中簡(jiǎn)單直接的使用,但是使用的multi-head attention是由多個(gè)self attention 構(gòu)成的升級(jí)版本,multi-head attention的結(jié)構(gòu)圖如圖3所示,multi-head attention的表達(dá)式為式(3)和式(4):

Multi-head attention 將同一個(gè)詞向量從多個(gè)維度進(jìn)行self attention,從不同的角度的到不同的結(jié)果,最后將不同的結(jié)果合并到一個(gè)結(jié)果中得到一個(gè)張量.

圖3 Multi-head attention 結(jié)構(gòu)圖
使用Transformer 代替Word2Vec.在Word2Vec中是將一個(gè)句子里面的每個(gè)單詞轉(zhuǎn)化為one-hot vector,再將one-hot vecotr 輸入CBOW 模型或是skip-gram模型,然后進(jìn)行降維處理就得到句子中相關(guān)詞的詞向量.但是Word2Vec 得到的詞向量都是長(zhǎng)度固定的向量,在任何語(yǔ)境中都被表達(dá)成同一個(gè)意思;不能夠進(jìn)行多維度的解釋一個(gè)詞語(yǔ).而Transformer 模型中,在encoder 中對(duì)其中的詞向量進(jìn)行multi-head 分析之后,有add&norm 結(jié)果的殘差處理以及l(fā)ayer normaliztion的歸一化處理,最后通過(guò)position-wise feed-forward networks 部分進(jìn)行特征提取和降維,再傳入到decoder中,通過(guò)對(duì)encoder的信息和之前歷史時(shí)刻經(jīng)過(guò)masked multi-head attention 處理過(guò)的output 信息進(jìn)行處理,最后得到i 時(shí)刻的輸出,最后得到學(xué)習(xí)的positional embedding.不僅達(dá)到了對(duì)句子的序列化處理,更是得到了不同維度的信息,解決了Word2Vec 詞向量只能表達(dá)同一個(gè)意思的問(wèn)題.
輸入層的句子通過(guò)轉(zhuǎn)化成字面向量,通過(guò)雙層的GRU 神經(jīng)網(wǎng)絡(luò)模型進(jìn)行標(biāo)記,如圖4所示.
在解決自然語(yǔ)言處理中,通過(guò)引入雙層循環(huán)來(lái)處理序列化數(shù)據(jù).在BiGRU 模型中,其結(jié)構(gòu)模型分成3 層,分別是輸入層(input layer)、隱藏層(hidden layer)、輸出層(output layer),其中在隱藏層部分將雙層的細(xì)胞單元進(jìn)行前后相連,使當(dāng)前節(jié)點(diǎn)的信息可以傳遞到下一個(gè)節(jié)點(diǎn),作為下一個(gè)節(jié)點(diǎn)輸入的一部分,用此方式達(dá)到序列數(shù)據(jù)節(jié)點(diǎn)的“記憶”功能.

圖4 BiGRU 模型
相比于RNN 在處理任意長(zhǎng)度的序列時(shí)可能發(fā)生的梯度消失問(wèn)題以及難以學(xué)習(xí)長(zhǎng)期依賴特征,GRU(Gated Recurrent Unit)首先是一種特殊的RNN 神經(jīng)網(wǎng)絡(luò),并且GRU是在LSTM的基礎(chǔ)上進(jìn)一步發(fā)展而來(lái),因此GRU 可以同LSTM 一樣解決需要解決長(zhǎng)依賴問(wèn)題的問(wèn)題.
如圖5所示,xt表示t時(shí)刻的輸入向量,ht表示隱藏狀態(tài),也是細(xì)胞單元的輸出向量,這個(gè)向量包含前面t時(shí)刻所有的有效信息.zt表示更新門(mén),控制信息進(jìn)入下一個(gè)狀態(tài);因?yàn)閦t經(jīng)過(guò)Sigmoid 函數(shù)激活,所以zt的值為0~1 之間.Rt表示重置門(mén),控制哪些信息需要保留,哪些信息會(huì)被遺棄,這兩個(gè)門(mén)共同決定隱藏狀態(tài)的輸出.在GRU 細(xì)胞中,其中前向傳播計(jì)算公式為式(5)~式(9)

圖5 GRU 細(xì)胞單元


其中,[]表示兩個(gè)向量相連,σ表示Sigmoid 函數(shù),*表示矩陣的Hadamard 積.
在模型的訓(xùn)練過(guò)程中,前向傳播過(guò)程中的公式中需要學(xué)習(xí)的參數(shù)有Wr、Wz、Wh?、Wo,其中公式表示為式(10)~式(12):

在輸出層部分,設(shè)在t 時(shí)刻輸出層的輸入為式(13),輸出層的輸出結(jié)果為式(14),損失函數(shù)為式(15),那么某個(gè)樣本整體在訓(xùn)練過(guò)程中的損失函數(shù)為式(16):

根據(jù)式(13)~式(16)可以推導(dǎo)出式(17)~式(28):

其中,在式(17)~式(23)中,有:


其中,在式(25)~式(27)中的參數(shù) δh,t表示為式(28):

從訓(xùn)練上看,以上訓(xùn)練公式可以知道神經(jīng)網(wǎng)絡(luò)的結(jié)果最后趨于收斂;從結(jié)構(gòu)上比較,GRU 相比LSTM具有更加簡(jiǎn)單的結(jié)構(gòu),門(mén)結(jié)構(gòu)只有了更新們和重置門(mén),因此參數(shù)也更少,可以加快訓(xùn)練的時(shí)間.同時(shí)GRU 具有良好的序列建模能力,因此本文將GRU 用于自然語(yǔ)言處理中的命名實(shí)體識(shí)別.
CRF (Conditional Random Filed)由Lafferty等于2001年提出,結(jié)合了最大熵模型和隱馬爾可夫模型的特點(diǎn),是一種無(wú)向圖模型,在分詞、詞性標(biāo)注和命名實(shí)體識(shí)別等序列標(biāo)注任務(wù)中取得了較好的效果.條件隨機(jī)場(chǎng)是一個(gè)典型的判別式模型,其聯(lián)合概率可以寫(xiě)成若干勢(shì)函數(shù)聯(lián)乘的形式,其中最常用的是線性鏈條件隨機(jī)場(chǎng).若讓x=(x1,x2,···,xn)表示被觀察的輸入數(shù)據(jù)序列,y=(y1,y2,···,yn)表示一個(gè)狀態(tài)序列,在給定一個(gè)輸入序列的情況下,序列標(biāo)注通常公式化為式(29),tk(yi?1,yi,x,i)是一個(gè)轉(zhuǎn)移函數(shù),代表在標(biāo)注序列中,第i–1 個(gè)和第i個(gè)的標(biāo)注與整個(gè)觀測(cè)序列之間的特征關(guān)系;sl(yi,x,i)是一個(gè)狀態(tài)函數(shù),代表標(biāo)注序列中第i個(gè)標(biāo)注于此時(shí)相對(duì)應(yīng)的觀測(cè)序列中的值的特征:λj和μk的值均是從訓(xùn)練數(shù)據(jù)中進(jìn)行估計(jì),較大的負(fù)值代表其對(duì)應(yīng)的特征模板可信度低,而較大的非負(fù)值代表其隊(duì)形的特征事件可信度高,其中Z(x)代表歸一化因子,公式為:

最終的最優(yōu)化輸出序列計(jì)算公式為:

以往的研究表明,特征選擇在傳統(tǒng)的概念抽取中起著重要的作用.NER的性能在很大程度上取決于不用意見(jiàn)的領(lǐng)域知識(shí)的構(gòu)建和研究.
本文數(shù)據(jù)集來(lái)源于某電網(wǎng)公司內(nèi)的電力調(diào)度方面的數(shù)據(jù).該數(shù)據(jù)集包含訓(xùn)練集和測(cè)試集兩個(gè)部分,其中訓(xùn)練集包含34.2 K 個(gè)句子,1547.8 K 個(gè)字;測(cè)試集包含2.9 K 個(gè)句子,109.3 K 個(gè)字.
命名實(shí)體識(shí)別的標(biāo)注策略有BIO 模式、BIOE 模式、BIOES 模式.本文采用BIOES 標(biāo)注策略,其中B(Begin)表示實(shí)體開(kāi)始,I (Intemediate)表示中間部分,O(Other)表示其他與標(biāo)記無(wú)關(guān)的字符,E (End)表示結(jié)束,S (Single)表示單個(gè)字符.
命名實(shí)體識(shí)別的評(píng)價(jià)指標(biāo)有準(zhǔn)確率(P)、召回率(R)和F1 值.公式中的參數(shù)定義如下:Tp為模型識(shí)別正確的實(shí)體個(gè)數(shù),Fp為模型識(shí)別出的不相關(guān)的實(shí)體個(gè)數(shù),Fn為相關(guān)的實(shí)體但是模型沒(méi)有識(shí)別出的個(gè)數(shù),其中公式表示為式(32)~式(34):

Transformer-BiGRU-CRF 模型的訓(xùn)練方式有2 種.第1 種方式是將Transformer 模型的參數(shù)進(jìn)行固定,只訓(xùn)練BiGRU和CRF 模型的參數(shù);第2 種方式是訓(xùn)練Transformer-BiGRU-CRF 整個(gè)模型中的所有參數(shù).實(shí)驗(yàn)過(guò)程中會(huì)使用這兩種方式進(jìn)行試驗(yàn)驗(yàn)證.
在第1 種訓(xùn)練方式中,Transformer 模型部分不進(jìn)行訓(xùn)練,只訓(xùn)練BiGRU和CRF 部分,BiGRU的輸入層根據(jù)語(yǔ)料句子的最大長(zhǎng)度設(shè)定為20 個(gè)輸入,但在實(shí)際訓(xùn)練過(guò)程中根據(jù)句子長(zhǎng)度實(shí)際變化,多出的部分直接進(jìn)初始化為0,中間層根據(jù)多次訓(xùn)練嘗試的結(jié)果設(shè)定為40 個(gè)單元,訓(xùn)練的參數(shù)規(guī)模達(dá)到900 MB 級(jí)別,訓(xùn)練的輪次達(dá)到15 000 次.在第2 種方式中,transformer 模型部分也跟著訓(xùn)練,其中共有6 個(gè)encoder和6 個(gè)decoder共12 層,12 個(gè)multi-head attention,共有110 MB的參數(shù)數(shù)量,因此加上transformer 部分的參數(shù),整個(gè)模型的參數(shù)規(guī)模達(dá)到1200 MB 級(jí)別,最后的訓(xùn)練輪次達(dá)到17 500次級(jí)別.但兩種訓(xùn)練方式都進(jìn)行了20 000 輪次的訓(xùn)練,在訓(xùn)練的過(guò)程中記錄下每一輪的訓(xùn)練后的準(zhǔn)確率,最后兩種方式的準(zhǔn)確率如圖6所示.從圖中可以發(fā)現(xiàn),在使用T–1 方式訓(xùn)練的時(shí)候,開(kāi)始時(shí)準(zhǔn)確率比T–2 方式的準(zhǔn)確藥膏,并且可以較快的將模型訓(xùn)練訓(xùn)練完畢;使用T–2 訓(xùn)練方式的時(shí)候,模型的準(zhǔn)確率提升速度較快,并且最后的準(zhǔn)確率高于T–1的訓(xùn)練方式.

圖6 T–1和T–2的準(zhǔn)確率
將該模型與以下幾個(gè)模型進(jìn)行對(duì)比,從表1中的實(shí)驗(yàn)結(jié)果可以發(fā)現(xiàn),基于深度學(xué)習(xí)的LSTM和GRU 模型在總體效果上都好于基于機(jī)器學(xué)習(xí)的CRF 模型.在訓(xùn)練的過(guò)程中發(fā)現(xiàn),基于BiGRU 模型與基于BiLSTM模型在準(zhǔn)確率上差距不大,但是在訓(xùn)練過(guò)程中發(fā)現(xiàn)基于BiGRU 模型訓(xùn)練所需要的時(shí)間比基于BiLSTM 模型所需要的時(shí)間少.最后通過(guò)Transformer 代替Word2Vec最后的準(zhǔn)確率相比BiGRU-CRF 模型有著較大的提升.

表1 各個(gè)模型的對(duì)比結(jié)果(單位:%)
本文通過(guò)將機(jī)器學(xué)習(xí)模型C R F和深度學(xué)習(xí)Transformer、BiGRU 進(jìn)行結(jié)合的Transformer-BiGRUCRF 模型用于電力調(diào)度領(lǐng)域的實(shí)體命名識(shí)別.為了電力調(diào)度專業(yè)領(lǐng)域的命名實(shí)體識(shí)別,使用Transformer的字符級(jí)別向量化代替Word2Vec的詞向量化,可以聯(lián)系文本中字符間的含義;BiGRU 相比于BiLSTM 可以減少模型的訓(xùn)練時(shí)間.最后得到的結(jié)果相比于用于通用領(lǐng)域模型的結(jié)果,該模型具有更好的效果.但是該模型在電力調(diào)度領(lǐng)域沒(méi)有達(dá)到預(yù)期中與通用領(lǐng)域接近效果,為了提高該專業(yè)領(lǐng)域命名實(shí)體識(shí)別更好的效果,以后需要在更多的地方做出改進(jìn).