黃秀彬,許世輝,趙 陽,居 強(qiáng),何學(xué)東
(1.國家電網(wǎng)有限公司客戶服務(wù)中心,天津 300306;2.北京中電普華信息技術(shù)有限公司,北京 100031)
電力系統(tǒng)客服是供電企業(yè)和電力客戶間的溝通橋梁,可為電力客戶提供高效便利的服務(wù)。電力客服工單數(shù)據(jù)能夠記錄電力客戶在用電過程中的需求、建議和意見,分析工單數(shù)據(jù)能夠有效地定位用戶類別,并且有利于提升用戶體驗。目前的工單數(shù)據(jù)分類方法,主要由專業(yè)的調(diào)查人員對工單數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,從而判別工單數(shù)據(jù)對應(yīng)的服務(wù)類別。但是這種方法在分析大量的工單數(shù)據(jù)時存在效率偏低的問題,這會影響到電力系統(tǒng)的高效運轉(zhuǎn)和快速發(fā)展。因此,找到一種智能,高效和準(zhǔn)確的工單分析方法對于電力客服系統(tǒng)十分關(guān)鍵。
近年來,電力客服工單分析任務(wù)得到了許多研究人員的關(guān)注,并取得了一些成果。湯寧[1]通過提取詞頻特征并建立了基于K 最近鄰(K-Nearest Neighbor,KNN)及支持向量機(jī)(Support Vector Machine,SVM)的工單分類模型。林溪橋及其團(tuán)隊[2]提出一種基于主成分分析的工單分類方法。楊柳林及其團(tuán)隊[3]使用TF-IDF(Term Frequency-Inverse Document Frequency)算法得到詞頻特征,再通過K-means 聚類算法得到工單分類的結(jié)果。武光華等[4]提出一種改進(jìn) 的TF-IDF 算 法SI-TFIDF(Semantic Influence-Term Frequency Inverse Document Frequency),通過構(gòu)建LDA(Latent Dirichlet Allocation)模型獲得詞向量的權(quán)重。以上基于淺層機(jī)器學(xué)習(xí)的工單分類方法雖然具有易于實現(xiàn)和訓(xùn)練快速的優(yōu)點,但這些模型的特征學(xué)習(xí)能力和泛化能力往往欠缺。
為解決淺層機(jī)器學(xué)習(xí)模型存在的問題,研究者采用了基于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型對分類任務(wù)進(jìn)行研究。目前卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)[5]和雙向長短時記憶網(wǎng)絡(luò)(Bilateral Long-Short-Term Memory network,BiLSTM)[6]被廣泛應(yīng)用于文本識別[7]、語音識別[8]和情感識別[9]。CNN 的優(yōu)勢在于強(qiáng)大的局部信息提取與學(xué)習(xí)能力,但其在全局信息學(xué)習(xí)上存在缺陷[10]。深層的CNN 能夠更好地挖掘樣本包含的信息,但深層卷積網(wǎng)絡(luò)較難獲得有效的訓(xùn)練[11]。殘差網(wǎng)絡(luò)(Residual Convolutional Network,ResNet)可以在提升網(wǎng)絡(luò)模型深度的同時保證訓(xùn)練效率。BiLSTM 的優(yōu)勢在于能夠?qū)μ卣鏖g的上下文關(guān)聯(lián)信息進(jìn)行學(xué)習(xí),能夠挖掘文本信息中的深層語義信息,提升識別性能[12]。因此,該文提出了一種基于ResNet-BiLSTM 的電力客服工單分類模型,該模型利用殘差網(wǎng)絡(luò)學(xué)習(xí)句內(nèi)的細(xì)節(jié)特征,再通過BiLSTM 學(xué)習(xí)句間的上下文關(guān)聯(lián)信息,最終得到工單的類別預(yù)測結(jié)果。
文本的稀疏編碼可將眾多的單詞映射到一個共享空間,但是當(dāng)詞庫中的單詞類別很多時,會導(dǎo)致“維數(shù)災(zāi)難”。為此,Mikolov 及其團(tuán)隊[13]提出了Word2Vec 框架來對單詞進(jìn)行編碼,如圖1 所示。假設(shè)當(dāng)前單詞的上下文表示為V=[v1,v2,…,vc]∈R^(c×D),其中D表示詞向量的稀疏表示的維度,c表示上下文單詞的數(shù)量。Word2Vec 利用共享的線性映射得到低維的隱含表示Vh∈R^(c×V),其中V表示降維后的詞向量維度。最終在Vh的數(shù)量維度上進(jìn)行平均得到Vo∈R^V,即降維后的當(dāng)前單詞的詞向量表示。Word2Vec 不僅是一種有效的降維方法,而且考慮了單詞間的上下文關(guān)聯(lián),因此Word2Vec 不僅能夠避免“維數(shù)災(zāi)難”問題而且還可以減輕語義鴻溝帶來的問題。
何凱明及其團(tuán)隊在2016 年機(jī)器視覺頂會CVPR上提出ResNet[14],用以解決網(wǎng)絡(luò)層數(shù)增加帶來的梯度爆炸、梯度消失以及隨網(wǎng)絡(luò)層數(shù)增加正確率退化的問題[15]。ResNet 的殘差連接形式如圖2 所示,輸出的期望映射H(x)被表示為殘差F(x)與恒等映射x的和。模型學(xué)習(xí)殘差的收斂速率要比傳統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)更快且訓(xùn)練誤差更小。因此,選擇ResNet結(jié)構(gòu)能夠使模型更高效地學(xué)習(xí)到魯棒性強(qiáng)的深層語義特征。ResNet-18 是ResNet 的經(jīng)典架構(gòu)之一,其網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示。ResNet-18 網(wǎng)絡(luò)中的第一個卷積層采用了64 個7×7 卷積核的結(jié)構(gòu),階段1 至階段4 采用了3×3 卷積核的結(jié)構(gòu),并且階段1 至階段4 的卷積核數(shù)量分別為64、128、256 和512,每經(jīng)歷一個階段后會經(jīng)過一個2×2 的池化層來縮小特征圖的大小。ResNet-18 網(wǎng)絡(luò)中的激活函數(shù)全部采用Relu 函數(shù),并且Batch Normalization 應(yīng)用于每個卷積層之后。
長短時記憶網(wǎng)絡(luò)(Long-Short-Term Memory network,LSTM)的門控制和記憶細(xì)胞有效改善了循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的梯度消失和梯度爆炸問題[16]。但是LSTM 只能利用過去和當(dāng)前的信息來對此時間進(jìn)行預(yù)測,無法利用后續(xù)的信息進(jìn)行預(yù)測。對于文本分類任務(wù),文本的上下文關(guān)聯(lián)對于分類結(jié)果至關(guān)重要。因而,可以學(xué)習(xí)雙向語義相關(guān)信息的BiLSTM 被廣泛應(yīng)用于文本語義識別[13]。BiLSTM 的輸入門、遺忘門、輸出門和記憶細(xì)胞的更新公式可表示為:
其中,式(1)、(2)和(3)對應(yīng)于輸入門、遺忘門和輸出門的公式,σ(·)表示sigmoid 激活函數(shù),tanh(·)表示tanh激活函數(shù),Wi、Wf、Wo對應(yīng)于每個門的權(quán)重,bi、bf、bo為每個門的偏置項,Yt-1表示(t-1)時間步的輸出,Xt表示t時間步的輸入,C'表示狀態(tài)變量,Ct-1表示(t-1)時間步的記憶細(xì)胞,Ct表示t時間步的記憶細(xì)胞。
其中,Yt表示t時間步的輸出。BiLSTM 將雙向的最后一個時間步的輸出Yleft和Yright進(jìn)行拼接,并進(jìn)行最后的輸出預(yù)測。
其中,Y為對Yleft和Yright拼接后的輸出,表示經(jīng)過激活層后BiLSTM 的最終輸出結(jié)果。
該文針對電力客服工單分類設(shè)計的ResNet-BiLST 模型主要包括三個部分:Word2Vec 詞嵌入、ResNet 語義學(xué)習(xí)網(wǎng)絡(luò)和BiLSTM 上下文關(guān)聯(lián)學(xué)習(xí)網(wǎng)絡(luò),如圖4 所示。每個工單中的N個語句,分別經(jīng)過Word2Vec 對句內(nèi)的每個單詞進(jìn)行詞嵌入處理,并將句中每個單詞的詞向量拼接成語義矩陣X=[X1,X2,…,XN]。每個句子對應(yīng)的語義矩陣分別輸入至ResNet來學(xué)習(xí)深層次的語義特征。然后將每句提取的深層語義特征輸入至BiLSTM 的不同時間步,通過BiLSTM 學(xué)習(xí)句間的上下文關(guān)聯(lián)信息。最后,將BiLSTM 的兩個方向特征[Xleft,Xright]進(jìn)行拼接,得到最終預(yù)測結(jié)果。
網(wǎng)絡(luò)的實現(xiàn)是通過pytorch 深度學(xué)習(xí)框架實現(xiàn),運行環(huán)境為CPU Intel Core i7-9700F、GPU NIVIDA GTX1060 以及Windows10 64 位操作系統(tǒng)。
實驗數(shù)據(jù)全部來源于電網(wǎng)客服中心記錄的數(shù)據(jù),該數(shù)據(jù)記錄了客戶對電網(wǎng)的需求、建議和意見。并且每條工單以文本的形式記錄,共分為咨詢(C1)、故障報修(C2)、服務(wù)申請(C3)、舉報(C4)、表揚(yáng)(C5)和意見與建議(C6)六類。所有的數(shù)據(jù)進(jìn)行了句停頓劃分和數(shù)據(jù)清洗等預(yù)處理操作。最終將全部數(shù)據(jù)按比例9∶1 劃分為訓(xùn)練集和測試集,并進(jìn)行十折交叉驗證。
Word2Vec 詞嵌入算法的隱含層神經(jīng)元個數(shù)設(shè)置為100,詞向量的維度設(shè)置為200。ResNet 網(wǎng)絡(luò)的架構(gòu)選取為ResNet-18,BiLSTM 隱含層為2,每層的神經(jīng)元個數(shù)分別為64 和32。另外訓(xùn)練參數(shù)設(shè)置如表1 所示,正確率和宏-F1 分?jǐn)?shù)將用來評價客服工單多分類任務(wù)的性能。
表1 訓(xùn)練超參數(shù)設(shè)置
所提出的ResNet-BiLSTM 在測試集上六類工單分類的正確率和宏-F1 分?jǐn)?shù)如表2 所示。根據(jù)表2的實驗結(jié)果ResNet-BiLSTM 取得了90.8%的平均正確率和0.889 的宏-F1 分?jǐn)?shù),證明了所提出的模型能夠準(zhǔn)確地對工單數(shù)據(jù)進(jìn)行分類,并且對于表揚(yáng)(C5)類別的識別正確率最高,達(dá)到96.5%,但是對于舉報(C4)識別正確率最低,只有84.0%。這可能是由于舉報(C4)容易被誤分類至咨詢(C1)或故障報修(C2)等反饋中。
表2 ResNet-BiLSTM的工單分類結(jié)果
在對比實驗中,將所提出的模型與TextCNN,BiLSTM 和ResNet 模型在分類性能上進(jìn)行對比,其結(jié)果如表3 所示。通過表3 的結(jié)果可知,所提出的ResNet-BiLSTM 取得最高的分類性能,相較于其他三種模型分別提升了1.6%,6.2%和10.6%。這是由于所提出的模型,不僅使用ResNet 學(xué)習(xí)句內(nèi)的語義信息,還使用了BiLSTM 對句間的上下文關(guān)聯(lián)信息進(jìn)行了有效地學(xué)習(xí),進(jìn)而提升了模型對工單分類性能。
表3 不同網(wǎng)絡(luò)模型的性能比較
最終,對上述四種模型的訓(xùn)練及測試的時間復(fù)雜度進(jìn)行對比,結(jié)果如表4 所示。所提出的模型雖然在訓(xùn)練時間上速度慢,但是其在測試階段仍要優(yōu)于主流的文本分類模型TextCNN,說明所提出的模型在實時性能方面存在一定的優(yōu)勢。
表4 所有網(wǎng)絡(luò)模型的時間復(fù)雜度對比
該文對電力客服工單數(shù)據(jù)的分類進(jìn)行了研究,所提出的ResNet-BiLSTM 對工單數(shù)據(jù)的句內(nèi)語義和句間上下文關(guān)聯(lián)信息進(jìn)行了有效地建模。通過Word2Vec 得到詞向量并將每一句中的詞向量拼接成語義矩陣,再通過ResNet 對句內(nèi)的語義特征進(jìn)行學(xué)習(xí),并將得到的深層次語義特征輸入至BiLSTM 來進(jìn)行句間上下文關(guān)聯(lián)的表征。所提出的模型在真實電力客服工單數(shù)據(jù)上的分類準(zhǔn)確度達(dá)到90.8%,高于對比模型。且ResNet-BiLSTM 相較于對比模型在分類性能和時間復(fù)雜度方面都具有一定的優(yōu)勢,能夠保證其在線性能的穩(wěn)定。在下一階段的研究中,將重點關(guān)注模型的輕量化,提升工單分類模型的在線性能。