陳 鵬,吳旻榮,蔡 冰,何曉勇,金兆軒,金志剛,侯 瑞
1(國網寧夏電力有限公司,銀川 750001)
2(天津大學 電氣自動化與信息工程學院,天津 300072)
3(華北電力大學 蘇州研究院,蘇州 215123)
4(華北電力大學 經濟與管理學院,北京 102206)
近年來,為響應國家對于傳統產業數字化發展規劃的號召,電力企業采取了一系列措施來實現從傳統電力企業到能源互聯網[1]的轉型升級,并將數字化轉型作為企業管理和運營的工作重心. 數字化轉型是利用新一代信息技術和人工智能技術對管理和運營過程中產生的一系列數據進行采集、傳輸、存儲、處理和反饋. 數字化轉型可以提高各行業內和相互間的數據流動,從而提高行業的運行效率,有利于促進國家構建全新的數字經濟體系. 在數字化管理運營中產生的數據中存在一部分數據擁有更大的價值等待被發掘,我們將其稱之為數字資產. 對于電力行業而言,在電力運行的過程中積累了大量的電力生產、運營數據,可以被發掘出更多的電力數字資產. 電力行業運營的過程中,客服是電力公司和電力用戶溝通交流的重要途徑,客服交流中產生了一系列重要的數據信息. 這些重要的數據信息常常以文本的形式存在,文本數據記錄著電力用戶對電力企業的相關需求,根據將客戶對電力企業的反饋進行有效識別,可以進一步提升電力企業的自動化水平,加速實現數字型轉型.
將不同種類電力相關文本進行合理分類可以為電力數字資產化提供高效的組織管理方式. 電力企業通常采用人工方式來區分這些文本數據,這種方式不僅極大地消耗了電力公司的人力和財力,并且難以為電力客戶提供足夠高效的服務效率. 因此自動識別電力客服文本類型的研究成為電力企業所關注的問題,利用先進信息技術對文本數據進行分析與智能計算[1]不僅旨在緩解電力公司客服人員的工作壓力,還將有效地促進后續對電力數字資產的發掘. 不僅如此,實現電力企業客服文本的高效分類還可以加速電力客戶得到相關客服的及時反饋,提升用戶滿意度.
本文的貢獻在于提出了一種面向電力文本類型識別任務的新方法,記為BW_BiLSTM_ATTN. 該方法基于BERT 全詞遮蓋(whole word masking,WWM)中文預訓練模型的動態語義表示,這種動態語義表示可以使電力文本具有更加符合語義上下文的向量表示,通過利用融合注意力機制的BiLSTM 作為編碼層來對電力文本進行編碼并且捕捉其潛在的文本特征,利用注意力機制可以使得模型自動提高對電力文本類型識別有幫助的特征權重,最終利用Softmax 解碼器實現對電力文本的高效自動化分類.
文本分類[2]本身是自然語言處理領域中的一個重要分支,它的任務是根據文本的特征將其劃分到預先被定義好的固定類別中. 常見的文本分類的應用有垃圾郵件判定、情感分類等. 最早的文本分類是通過判斷文本中是否出現了與類名相同或相近的詞匯來進行劃分類別,但這種方法難以在大體量的數據上得到一個好的分類效果[2]. 隨后出現了基于知識工程的文本分類方法和基于機器學習的文本分類方法,前者是利用專業人員的經驗、人工提取規則來對文本進行類別的劃分,后者是利用計算機高效的自主學習能力、提取一定的規則來進行類別的劃分. 現在,人工智能的快速發展也使得文本分類有了新的研究方向,人們開始把深度學習神經網絡運用到文本分類[3,4]中,有效緩解了傳統文本分類中耗費人力、分類效果差等問題.
電力行業作為社會的必需產業,電力客服作為數字化轉型中的重要數據來源途徑,其客服文本在文本分類研究中一直作為重點研究對象. 楊鵬等人[5]利用循環神經網絡實現對電力客服文本的層次語義理解,關注詞匯和字符的語義,最后提升了客服文本類別劃分效果. 朱龍珠等人[6]利用門控循環神經網絡(GRU)對國網客服中心的重大服務事件進行了有效的分類.劉梓權等人[7]針對電力設備缺陷文本的特點,構建了基于卷積神經網絡(convolutional neural network,CNN)對缺陷文本分類. 李燦等人[8]利用雙向長短期記憶網絡(bi-directional LSTM,BiLSTM)和CNN 相結合的優化模型對電力客服工單進行了類別劃分實驗,得到了較好的效果. 肖禹等人[9]提出一種基于融合注意力機制的BiLSTM,殘差網絡和CNN 的模型來實現對中文文本分類. 顧亦然等人[10]利用BERT 增強了字符的語義表示并利用BERT 生成的動態自向量實現高效的電機領域實體識別. 然而現存的一些工作很少有研究充分發揮BERT 預訓練模型作為嵌入層用于電力文本分類任務的模型. 本文提出的方法考量了BERT 預訓練模型對于電力領域的文本高效向量表達,使用 BERT輸出的字級別的向量表達可以有效避免由分詞帶來的詞表溢出問題,使用融合注意力機制的BiLSTM對電力文本的高效向量表達進行有效的特征提取從而得到對分類任務有作用的特征,通過使用本文提出的模型對最終使用Softmax 函數得到文本類別的概率分布.
BERT[11]由具有多頭自注意機制的Transformer 結構[12]堆疊組成,通過預訓練將大量語料利用自監督任務得到細粒度的語義信息,由于BERT 使用海量的文本進行訓練,所以BERT 本身蘊含這些文本中的語義信息,通過在模型中應用預訓練模型可以將電力相關文本輸入BERT 得到具有上下文語義信息的詞向量從而實現遷移學習. 得到電力文本內容關于BERT 上下文語義表達的向量表示后,利用具有注意力機制的BiLSTM可以有效捕捉對于文本類型識別的潛在特征,相較于傳統的BiLSTM 可以讓模型通過施加注意力機制的權重比例從而使模型更加自主地學習到對電力文本類型識別有效的特征. 最后通過使用Softmax 分類結構解碼輸出文本類別的標簽. 本文實現對電力客服文本類型識別的具體網絡結構BW_BiLSTM_ATTN 模型如圖1 所示.

圖1 BW_BiLSTM_ATTN 模型
首先將電力客服文本數據進行預處理,得到每條客服文本的字符序列,將得到的電力客服文本字符序列進行位置編碼和分段編碼,BERT-WWM 將字符的靜態嵌入表達,位置向量和語句的分段信息進行整合,通過使用堆疊Transformer 結構來為每個字符計算其關于上下文的語義向量,得到每個字符的向量表達后使用融合注意力機制的BiLSTM 網絡來捕捉文本分類中潛在的特征,注意力機制通過矩陣的點積計算求得判斷文本類別的特征權重,從而使模型更加側重有效的特征表達. 最終通過使用Softmax 層計算每個類別的概率,得到模型判斷的最大可能性的文本種類,實現對電力客服文本數據的多分類目標.
本文使用的特征與傳統方法相比在于本文使用字符級別特征得到句子的上下文表示,通過使用字符級別特征可以避免分詞過程中低頻率出現的詞組導致詞表溢出的問題,此外利用BERT-WWM 預訓練模型可以通過計算每個字符和前后字符之間相互的作用來模擬句子中的上下文語義影響,從而得到更加符合語義表達的字符表示. BiLSTM 使用邏輯門控的方式來更新和修改細胞的狀態,從理論上解決了傳統循環神經網絡(recurrent neural network,RNN)無法保留較早循環神經網絡單元的輸出結果. 不過BiLSTM 仍有梯度消失和梯度爆炸的現象從而容易損失一些長程的信息,使用注意力機制可以動態調整對BiLSTM 的隱狀態權重從而捕捉文本中對類型識別有效的潛在語義特征,最終使Softmax 層解碼得到更加合理的文本類別.
本文使用BERT 預訓練模型作為詞嵌入層,BERT[11]最早由谷歌提出的利用海量的語料,通過使用大量算力資源進行自監督訓練任務訓練出來的含有詞組的通用語義表達的模型. BERT 的模型結構由多層Transformer結構[12]堆疊而成,Transformer 是一種由多頭自注意力機制和全連接神經網絡相互疊加,融合層歸一化和殘差連接的一種高效神經網絡模型. BERT 的模型結構如圖2 所示.

圖2 BERT 結構
BERT 使用遮蓋語言模型的任務和下一句預測的任務一同進行自監督訓練,遮蓋語言模型是指將文本中隨機遮蓋15%的子詞,其中將80%替換成[MASK]標簽,10%替換成隨機詞匯,10%不進行改變. 通過讓模型預測遮蓋住的15%的這些子詞從而讓模型學習到文本的向量表達,中文預訓練模型BERT-WWM 模型[13]與原BERT 不同的是遮蓋的是中文中的整個詞的,通過使用LTP 工具分割語料從而遮蓋完整的詞,通過增進復雜的自訓練任務來加大模型預測難度使模型學習到更加符合語義的表達. 通過遮蓋詞匯例如“線路短路故障和負荷的急劇多變,使變壓器發生故障”中的“變壓器”,模型需要通過理解上下文的語義在自監督的訓練中填出“變壓器”這一詞,通過這樣的自監督訓練可以使模型具有豐富的語義知識. 下一句預測的任務目的是學習到句子之間的關系,通過1:1 的比例設置正確句子順序和錯誤句子順序,在讓模型判斷該順序是否正確的訓練過程中學習到兩段句子的關聯,從而使BERT-WWM 具有判斷句子之間關系的能力.
由于采用多層的Transformer 結構,因此BERT 利用多層累加的多頭自注意力機制來捕捉文本之間的關聯,得到動態的上下文詞向量表達. 通過使用BERT 可以將預訓練模型從海量語料中學習的知識進行遷移,從而計算出的電網客服文本的詞向量都具有上下文的語義特征,高效語義特征也便于編碼層捕捉合適的分類特征. 例如圖1 中句子“客戶查詢電費”,這句話中每個字符都有一個固定的字向量,即token embedding,token embedding 與傳統的詞向量Word2Vec 具有相似的性質,都是靜態的向量表達,不能很好解決一詞多義的問題,比如“查詢”和“查干湖”中的“查”如果用靜態向量表達則會使用相同的向量,這會使模型無法很好捕捉文本的特征,而通過使用BERT 進行上下文語義計算,每個字都和句中的其他字做交互計算,得到上下文相關的字符向量表達. 由于BERT 模型使用堆疊Transformer 結構,使用全自注意力機制需要引入顯式的位置信息,例如“客戶不滿意,舉報”和“客戶滿意,不舉報”具有不同含義,因此本文使用BERT 中訓練的位置信息,經過與字符的字向量相加后輸入BERT 中即可讓BERT模型捕捉到句子中字符出現的前后順序.
BiLSTM[14]是在循環神經網絡的基礎上改進而來的門控神經網絡,通過使用輸入門,遺忘門,記憶門和輸出門來調整對上一時刻和這一時刻的狀態比例,需要模型記住并傳遞對電力分類文本有作用的信息并舍棄冗余信息,從而使神經網絡具有長期記憶的效果.LSTM 的網絡模型如圖3 所示.

圖3 LSTM 結構
遺忘門的計算公式如式(1)所示:

其中,Wf和bf是模型中可訓練的參數,ht?1是上一時刻輸出的隱狀態,xt是當前時刻的輸入,將電力分類文本輸入進入BERT 后輸出電力文本中每個字符的上下文相關向量,得到每個字符的向量作為BiLSTM 的輸入xt,使用激活函數計算得到遺忘門的值ft,遺忘門可以控制模型忘記電力文本中一些對類型識別無關的信息,例如“客戶查詢電費”中“客戶”對模型分類提供的信息非常有限,遺忘門通過控制模型遺忘這類提供信息有限的向量來達到促進類型識別使用高效向量特征.此外,BiLSTM 使用記憶門來控制模型記住一些對電力文本類型識別有幫助的內容,記憶門的計算公式如式(2)所示:

式(2)與式(1)相似,Wi和bi是模型中可訓練的參數,ht?1是上一時刻輸出的隱狀態,xt是當前時刻的輸入,使用激活函數計算得到記憶門的值it,例如“客戶查詢電費”中“查詢”對模型分類到查詢類別提供了決定性的信息,因此通過記憶門來記住這類對分類提供有效信息的向量. 除了遺忘門和記憶門,BiLSTM 為了反映當前時刻的臨時細胞狀態,定義了臨時細胞狀態的計算公式如式(3)所示:

式(3)中,WC和bC是模型中可訓練的參數,ht?1是前一時刻輸出的隱狀態,xt是當前時刻的輸入,使用雙曲正切函數計算得到當前細胞的臨時狀態. 最終利用遺忘門和記憶門作為系數計算得到當前時刻的細胞狀態. 細胞狀態的計算公式如式(4)所示:

式(4)中,Ct?1是前一時刻的細胞狀態,該式表示通過控制遺忘門和記憶門可以達到控制上一時刻的信息流對當前時刻的細胞狀態的影響. 通過使用分別對上一時刻細胞狀態和當前時刻的臨時細胞狀態的加權計算可以得到當前時刻得到這一時刻的細胞狀態后需要通過輸出門的計算來得到隱層的狀態輸出,輸出門的計算公式如式(5)所示:

式(5)中,Wo和bo是模型中可訓練的參數,ht?1是前一時刻輸出的隱狀態,xt是當前時刻的輸入,使用激活函數得到輸出門的值ot,利用輸出門的值可以計算得到隱層的輸出,隱層輸出的計算公式如式(6)所示:

式(6)中,將輸出門與當前時刻細胞狀態的雙曲正切值相乘得到隱層的單向輸出 ,隱層的輸出則蘊含著當前時刻和之前的序列信息,若LSTM 為正向則蘊含著電力文本中正向的分類特征,例如文本“客戶查詢電量”中,正向LSTM 獲得“查詢”的向量時只能獲得“客戶”的特征表達,而使用反向LSTM 時“查詢”只能獲得“電量”的特征表達. 因此只有單向的序列信息往往是不全面的,在文本中往往一個詞的含義與上下文都有關聯,因此采用BiLSTM 可以將電力文本在分類任務中的特征表達更加全面.
注意力機制將對任務有幫助的內容進行高權重關注,這與人類的感官注意力模式非常相像,本文在分類模型中的BiLSTM 層引入注意力層[15]. 傳統方法通過將BiLSTM 前向與后向傳播的最終狀態拼接作為句子本身的特征,但由于BiLSTM 仍存在梯度消失和梯度爆炸的問題,這導致句中的信息不能有效的被輸出表達,若電力文本中對類型識別任務有決定作用的字符處于長句的中部,則當模型訓練不夠充分時LSTM 的正向和反向都難以捕捉到中部的有效信息. 本文將注意力機制作用到BiLSTM 層上,目的是將每個隱層的輸出經過加權的拼接來看作句子整體的嵌入表達,通過使用注意力機制的權重計算,輸出更符合分類器來判別電力客服文本類別的句子嵌入表達. 注意力層的計算過程如圖4 所示.

圖4 自注意力機制
圖4 中表示的運算由以下內容闡明: 對于一個含有n個字符的電力文本句子通過BERT 捕捉上下文語義之后的表達S=(x1,x2,···,xn),其中S代表整個句子,xt代表每個字符通過BERT 之后需要輸入到BiLSTM 的詞向量. 那么LSTM 的隱層輸出可由式(7)–式(10)表示:


式(11)中,Ws2和Ws1是可學習的矩陣,通過一系列運算后可以求得隱狀態矩陣H所需的注意力權重,例如“客戶查詢電費”中,“查詢”的注意力權重在訓練的過程中會增高,通過Softmax 函數來歸一化概率分布. 最終通過A矩陣與H矩陣相乘得到最后使用自注意力機制后的句子級別的嵌入表示M,在得到的嵌入表示中,對分類有效的信息已經通過注意力機制得到更充分的表達,因此通過BiLSTM 編碼層可以獲得電力文本分類任務更高效的特征表達.
將通過自注意力機制進行權重計算后求得的句子級別嵌入表示輸入Softmax 層進行解碼輸出,得到每條句子對應每個類別的概率. Softmax 層可以看做是一個單層的全連接神經網絡,當求得電力文本的句子嵌入表示M后,通過矩陣的線性變換后利用Softmax 函數求得概率分布. 具體計算公式如式(12),式(13)所示:

其中,Ws和bs是可學習的參數,o是概率的權重,k是分類的類別,通過式(13)中的指數冪運算,不僅可以將可能性較大的類別概率所占權重增大,還可以保證所有類別的概率相加值為1,從而保證是合理的概率分布.本文所針對電力客服文本分類任務一共有“報修”“查詢”“以往業務”“投訴”“舉報”“表揚”“建議”和“反映”8 類文本類型. 因此Softmax 層將電力文本的向量表示通過一層神經網絡轉化為符合概率分布的分類向量,最終得到該句電力文本概率最大的類別.
實驗使用計算機的系統配置和主要程序版本如下:Linux 操作系統,Python 3.7,PyTorch 1.2 深度學習框架,16 GB 內存.
本文使用某電網信通公司的標注工單日志作為本實驗的數據集進行實驗,文本由“反映,建議,表揚,舉報,投訴,以往業務,查詢,報修” 8 種類別的工單日志組成. 首先對文本的預處理,刪除了一些亂碼的文本與空文本. 然后經過對數據集進行隨機劃分與統計,數據集的規模和文本最長字符數如表1 所示.

表1 數據集統計信息
實驗所用劃分后的數據集種類數量分布如圖5 所示,其中,train 代表訓練集,dev 代表開發集,test 代表測試集.

圖5 數據集分布圖
如圖5 所示,數據集經過隨機劃分后各種類的數目具有大致相同的分布,訓練集中查詢種類的文本條目最多,表揚種類的文本條目最少.
本文實驗采用的評價指標為類型識別的準確率,精確率(P),召回率(R)和F值. 對于每個單獨的類型來看,其他類型相對于當前類型均為負類,其指標的計算公式如式(14)–式(16)所示:

其中,TP是當模型判斷為正例中判斷正確的數目,FP是當模型判斷為正例中判斷錯誤的數目,FN是模型判斷為負例中錯誤的數目. 將每一個類別的指標相加求平均可得整體的宏平均值,公式如式(17)–式(19)所示:


其中,Pi,Ri,Fi是每個種類所對應的精確率,召回率和F值. 將所有分類正確的數目相加可得整體的準確率.公式如式(20)所示:

其中,TP,FP和FN與上文中將某一個類型當做正例時的含義相同,TN是模型判斷為負例中正確的數目,由于將正例和負例均判斷正確的數量之和在一個分類器中為定值,樣本總數不變,因此對于每個類別求得的準確率均相同,可認為accuracy是模型整體的分類準確率.
為了驗證本文所提出模型的有效性,本文采用了多種模型的對比實驗來進行比較. 在電力客服文本的類型識別任務中,本文使用BiLSTM 作為基線模型,其使用復旦大學開源的Word2Vec 靜態預訓練詞向量[16]作為詞嵌入. 本文還對比了使用Word2Vec 作為詞嵌入的BiGRU 方法[17],BiGRU 融合注意力方法,CNN 方法[18]和Transformer 方法[12],對于使用預訓練模型的方法,本文使用基于全詞遮蓋自監督任務的BERT-WWM 預訓練模型的微調方法(BW),BERT-WWM 融合卷積神經網絡的BW_CNN 方法和BERT-WWM 類型識別結果如表2 所示.

表2 對比實驗結果 (%)
從表2 的實驗結果中可以得出本文提出的模型BW_BiLSTM_ATTN 在宏平均精確率,宏平均召回率,宏平均F值和整體準確率上都取得了最好的效果,分別達到99.05%,97.87%,98.43%,98.81%. 均高于傳統神經網絡模型,其中相比于BiLSTM 基線模型在MacroF值上有4.61%的提高,整體準確率較BiLSTM 有2.65%的提升. BERT 模型本身作為在海量數據體量下預訓練出的高效模型已經可以取得較好的效果,通過級聯傳統神經網絡后可以進一步提升對電力文本類型識別的特征提取與編碼效果,相比于CNN和BiGRU,融合具有注意力機制的BiLSTM 可以更加有效的提取文本的特征,這是因為BiLSTM 本身就利用門控單元求得電力文本每個字符輸出的隱層狀態,通過使用注意力機制可以讓模型自行選擇需要的潛在特征從而得到更好的效果. 為了探究不同編碼器對BERT 的促進作用,本文比較了在中文BERT-WWM預訓練模型上添加不同的編碼器所取得的類型識別效果,如圖6 所示.

圖6 基于BERT 的模型效果比較
通過實驗統計了每個類別的F值作為比較的評價標準,從圖6 可以看出本文提出的模型相較原生BERTWWM 的微調模型在每個類別的F值上均有提升,并且相比于BiLSTM 和CNN 作為編碼器,融合注意力的BiLSTM 模型在大多數類別中都有最好的分類表現.實驗結果表明了本文提出的使用BERT-WWM 預訓練模型作為嵌入層,利用融合自注意力機制的BiLSTM作為編碼層,Softmax 層作為解碼層的模型在電力客服文本的類型識別任務上具有較好的分類效果.
為了進一步說明本文提出的模型BW_BiLSTM_ATTN 中每一部分對分類結果的作用,本節做了多組消融實驗來探究每一部分對結果的影響,分別對比了基線模型BiLSTM,去除BERT-WWM 預訓練模型后使用中文Word2Vec 作為嵌入層的BiLSTM_ATTN 模型和去除注意力機制的BW_BiLSTM 模型. 整體的指標比較如表3 所示.
由表3 可得去除BERT-WWM 預訓練模型對本文所提出的模型效果損傷最大,缺少BERT 模型本身攜帶的有效語義信息限制了字符在模型中上下文的語義特征表達,由于Word2Vec 屬于靜態預訓練模型,難以動態為字符分配符合上下文的語義特征表達,宏平均F降低了3.03%,整體的準確率下降了1.92%. 去除注意力機制后對于模型捕捉潛在特征的能力也有所損傷,不能使模型為BiLSTM 輸出的隱狀態信息進行自動賦予權重,從而造成電力文本類型識別時模型對分類信息有效的特征不夠突出,使得相較于原模型宏平均F下降了2.29%,整體的準確率下降了1.17%.

表3 消融實驗結果(%)
本文進一步分析在電力客服文本分類的消融實驗中每個模型對各個種類文本的分類情況,實驗的結果如圖7 所示.

圖7 消融實驗對比圖
圖7 實驗結果表示,本文提出的模型BW_BiLSTM_ATTN 與去掉模型中的任意結構的模型相對比,在每一個類別的文本分類中都表現出最佳的效果. 本文提出的模型在各個種類上的分類結果如表4 所示.

表4 類型分類結果(%)
本文提出的模型在電力文本中的報修,查詢,投訴,反映的文本類型中分類指標都達到了100%,通過和其對應類別的數據條目對比分析,以上4 種分類效果較好的類別均為數據量較為充分的數據類別. 以往業務的種類數量也較多,但是由于以往業務中的細分種類過于繁雜,導致模型對其文本結構特征的捕捉能力較低. 模型在對舉報,表揚,建議這樣數據條目較少的類別分類的能力也略低于其他種類,這是因為神經網絡模型需要從大量的數據中捕捉其共同的特征與特點,當文本特征不明顯或者數據量過少,都會影響模型的學習能力.
本文提出了一種高效的神經網絡模型BW_BiLSTM_ATTN,提升了對電力客服文本類型識別效果. 模型使用字符級別的向量作為特征,通過使用BERT-WWM預訓練模型得到動態的字符語義表達向量,利用融合注意力機制的BiLSTM 模型捕捉文本中潛在的語義特征并對文本的特征進行編碼從而幫助類型識別,最后使用Softmax 層完成對電力客服文本的分類,得到了優于現有方法的結果. 不過由于數據量有限,在一些數據量較少的類別上模型的表現稍有下降,下一步我們將研究在小數量類型上的分類方法. 另一方面,BERTWWM 模型相較于傳統模型的參數量巨大,如何在保證模型分類質量效果的基礎上減少模型參數,這也是我們下一步研究的方向.