張莉, 王穎, 趙陽, 崔涵翔, 劉娟
(1.國家電網有限公司客戶服務中心, 天津 300306; 2.北京中電普華信息技術有限公司, 北京 100031)
電力客服系統是供電企業與電力客戶之間的重要紐帶,用戶投訴成了該系統亟待解決的核心挑戰。用戶在用電過程中提出的投訴內容對于提升用戶體驗和保障電力系統運行質量十分重要。目前,對于電力投訴工單數據的分析方法主要由專業人員對大量的電力投訴工單進行人工數據分析。這種人工分析方法在分析大量的投訴工單時存在效率不足和主觀偏差的問題[1]。因此,需要提出一種基于人工智能技術的電力投訴工單分析模型,以自動、高效和準確地對投訴工單進行分類。
工單分類問題是文本分類問題的分支。近年來,文本分類問題得到了許多研究人員的關注[2]。周慶平等[3]提出了基于采用K最鄰近(KNN)的文本分類算法,使用改進統計量方法對文本特征進行聚類分析。周源等[4]提出一種改進的TF-IDF(Term Frequency-Inverse Document Frequency)文本特征提取方法來解決文本結構信息忽略和特征詞分布的問題。廖列法等[5]提出一種基于LDA(Latent Dirichlet Allocation)的文本分類模型,利用LDA模型對文本語料庫建模來達到分類的目的。陳海紅[6]提出基于多核支持向量機(SVM)的文本分類方法進行文本特征提取。以上基于淺層機器學習的文本分類方法雖然有訓練快速的優點,但在面對長文本分析時,淺層機器學習模型往往欠缺特征學習能力和泛化能力。
為了解決淺層學習模型的限制問題,目前研究中廣泛關注了深度學習模型,包括卷積神經網絡(CNN)和長短時記憶網絡(LSTM)實現文本分類成了研究熱點。張云翔等[7]提出了基于LSTM的電網文本信息的分類模型。李洋等[8]提出了基于CNN和雙向長短時記憶網絡(BiLSTM)融合的文本分類模型,利用CNN提取文本信息再利用BiLSTM學習文本間的上下文關聯。雖然基于深度學習模型的文本分類模型取得了優于淺層機器學習模型的性能,但對于長文本的分析仍是文本分類的難點。因此,本文提出了一種分級信息融合的電力投訴工單分類模型,來提升工單中長文本的分析能力。該模型首先利用BiLSTM來學習單詞間的依賴關系,同時運用TextCNN學習句子間的相互關聯,再將各級學習到的特征利用MLP實現特征層融合,最終得到電力投訴工單的分類結果。
文本的稀疏編碼可以將眾多的單詞映射到一個共享的空間,但當詞匯庫中的單詞類別眾多時,會出現“維數災難”的問題。為了應對這一挑戰,BOJANOWSKI等[9]提出了Word2vec框架用于對單詞進行編碼,如圖1所示。Word2vec不僅是一種有效的降維方法,有助于避免“維數災難”問題,而且由于考慮了單詞之間的上下文關聯,還能夠減輕語義鴻溝帶來的問題。

圖1 Word2vec詞嵌入方法
TextCNN是由KIM[10]在2014年提出并應用至文本分類任務的。TextCNN的網絡結構模型如圖2所示。TextCNN通過不同大小的一維卷積核對輸入矩陣進行不同尺度的語義學習。首先在輸入數據的每個維度上進行不同尺度的一維卷積運算,得到不同尺度的特征圖。對特征圖進行第一次池化得到特征的向量表示以達到信息壓縮的目的。接下來再對得到的所有向量再進行一次池化,并拼接得到包含所有尺度特征的一維特征向量。將得到的特征向量輸入到輸出層,得到當前句子的分類結果。

圖2 TextCNN的網絡結構模型
在文本分類任務中,文本的上下文關聯信息對于分類結果起著至關重要的作用[11]。因此,廣泛應用了能夠學習雙向語義相關信息的雙向長短時記憶網絡(BiLSTM)在文本語義識別中[12]。BiLSTM的輸入門Gi、遺忘門Gf、輸出門Go、記憶細胞更新、t時間步的輸出可被表示為
Gi=σ(WiYt-1+UiXt+bi)
(1)
Gf=σ(WfYt-1+UfXt+bf)
(2)
Go=σ(WoYt-1+UoXt+bo)
(3)
C′=tanh(WcYt-1+UcXt+bc)
(4)
Ct=Gf×Ct-1+Gi×C′
(5)
Yt=Go×tanh(Ct)
(6)
其中,σ(·)表示Sigmoid激活函數,Wi、Wf、Wo分別對應每個門的權重,tanh(·)表示tanh激活函數,Yt-1表示(t-1)時間步的輸出,Xt表示t時間步的輸入,Wi、Wf、Wo分別對應前一個時刻輸出到每個門的權重,Ui、Uf、Uo分別對應當前時刻輸入到每個門的權重,bi、bf、bo分別為每個門的偏置項,Xt表示t時間步的輸入,C′表示狀態變量,Ct-1表示(t-1)時間步的記憶細胞,Ct表示t時間步的記憶細胞。BiLSTM將文本序列兩個方向的最后一個時間步的輸出Yleft和Yright進行拼接,并進行最后的輸出預測Y。
Y=Softmax(concatenate(Yleft,Yright))
(7)
其中,concatenate(·)表示拼接2個輸出Yleft和Yright,Softmax(·)表示激活函數Softmax。

本文網絡結構在CPU Intel Core i7-9700F和GPU NIVIDA GTX1060的平臺上運行程序。數據集是從電網客服中心的記錄中獲取的,包含了3萬個投訴工單樣本。這些工單記錄了客戶對電網的反饋信息,共分為5類:服務投訴(C1)、營業投訴(C2)、停送電投訴(C3)、供電質量投訴(C4)和電網建設意見(C5)。在數據準備階段,已經進行了句子分割、數據清洗等預處理操作。最后,將整個數據集劃分成了訓練集和測試集,比例為9∶1,以便進行模型的訓練和評估。
Word2vec詞嵌入算法的隱含層神經元個數設置為200,詞向量的維度設置為100。TextCNN的卷積核大小分別3×1、4×1和5×1,每一種卷積核的數量為100。BiLSTM隱含層為2,每層的神經元個數分別64和32。損失函數為交叉熵函數,優化算法選取adam,學習率為0.001,隨機失活率設計為0.3,迭代次數設置為100,批訓練樣本數量為64。
根據表1可知,本文提出的分級信息融合模型在測試集上對5類工單分類表現出了良好的性能。平均正確率達到0.922,宏-F1分數為0.930,這表明該模型能夠相對準確地對投訴工單數據進行分類。此外,對于停送電投訴(C3)的分類正確率最高,達到0.960,顯示出了在該類別上的出色性能。然而,對于營業投訴(C2)的分類正確率最低,僅為0.884。這可能是因為文本內容的復雜性和相似性,而造成一些舉報被誤分類為服務投訴(C1)或供電質量投訴(C4)等其他類別中。為了進一步提高對營業投訴的分類性能,可以考慮進一步優化模型或者增加更多的特征工程。

表1 分級信息融合模型的工單分類結果
在比較實驗中,將本文提出的模型與TextCNN、BiLSTM和深度置信網絡(DBN)等模型在分類性能上進行比較,根據表2可以看出,本文提出的分級信息融合模型在分類性能上表現出了明顯的優勢。相對于其他3個模型,該模型分別提升了1.9%、5.3%和13.5%。這個顯著的性能提升可能是由于本文所提出的模型綜合運用了多個策略,包括使用TextCNN有效地學習語句級的語義信息,使用BiLSTM對單詞級的上下文關聯進行了有效的學習,最后應用MLP實現了多級信息融合。這些策略的組合提高了對投訴工單的分類性能,使得模型在這項任務上表現出色。

表2 不同網絡模型的性能比較
本文對電力投訴工單數據的分類進行了研究,針對投訴工單數據中的長文本提出了分級信息融合模型,有針對性地學習了單詞級和語句級的語義特征并進行了分級信息的融合。首先通過Word2vec得到詞向量和語義矩陣,再通過TextCNN學習語句級的語義特征,同時應用BiLSTM學習單詞間的上下文關聯,將語句級和單詞級的深度特征進行特征層融合,最終輸入至多層感知機,得到投訴工單的預測結果。