曹 湘 李譽坤 錢 葉 閆晨陽 楊忠光
(上海電力大學計算機科學與技術學院 上海 200090)
如今,短文本分類是自動為預先定義的類別賦予用自然語言編寫的文檔的任務。已經研究了幾種類型的文本分類,其中每種處理不同類型的文檔和類別。隨著社交媒體的普及,短文本分類已成為許多應用中的重要組成部分,例如用于檢測討論主題的主題分類,信息過濾和情感分類以確定產品或電影評論中典型的情感。宋[1]等人表示短文本長度不應超過200個字符,陳[2]等人也證實了這一點,短文應該在150字左右。這也得到了另一項研究中的支持[3],聲稱短文的平均長度大約為100字~249字。投訴文本也是短文本分類的經典問題。隨著中國經濟的不斷發展,電力需求正在逐步增強。國家電網作為基本的社會企業之一,應該改善其電力服務。因此,它已引起許多研究人員的相當大的關注。
由于投訴文本量大,提取有用信息困難,國網實現文本自動分類顯得尤為重要。與一般中文短文的特點相比,電力投訴文本具有以下特點:
1)文本涉及電力領域,其中包含大量的電氣專業詞匯。
2)文本的特征不明顯,需要更多的邊際信息進行分析。
3)文字混合了太多的符號和數字。
然而,在處理較短的文本消息時,傳統技術的表現將不如他們在較大的文本上執行的那么好。這符合我們的直覺,因為這些技術依賴于詞頻。由于單詞出現太小,他們對文本本身沒有足夠的了解。卷積神經網絡(CNN)[4]是計算機視覺領域的著名工具。最近,CNN被應用于自然語言處理(NLP)的問題[5~6]。然而,所有的CNN模型都是基于數據集的,這些數據集具有明顯的文本特征和長的文本長度。對于我們遇到的投訴案例,傳統的CNN模式并沒有取得良好的表現,與此同時,當我們打算使用CNN方法處理電力投訴文本時遇到一些障礙:
1)稀疏特征:機器學習的方法是根據特征進行分類或預測,并在文本分析中構建各種特征以匹配相應的特征。
2)困難的特征表示:句子建模的目的是將句子表示為諸如文本分類之類的任務的有意義的特征。文本越短越簡單,特征表示越難。
為了解決上述問題,我們提出了基于LSTM[7]和CNN的混合神經方法,它包含了LSTM神經網絡的遞歸思想來表示句子中時序規律,學習句子中的句法及語義特征;CNN卷積神經網絡可通過卷積操作,挖掘到文本的更深層次的特征。
同時,我們在數據處理方面做了幾項創新,以加速模型訓練[8~11]。 我們的工作如下:
1)特征提取:我們對合并模型進行了創新,以滿足短文本分類的需要,并使特征提取變得容易。
2)減少維數:在本文中,使用單向矢量,PCA降維,詞匯詞典和匹配向量id,以避免額外的計算。
3)邊緣特征流:為了增加邊緣特征的轉移,首次提出將LSTM與CNN結合的新體系結構。
我們將所提出的模型應用于短文本分類任務,并在各種基準測試中取得了優異的性能。
對于我們遇到的投訴案例,傳統的CNN模式并沒有RNN具有循環的網絡結構,具備保持信息的能力。RNN中的循環網絡模塊將信息從網絡的上一層傳輸到下一層,網絡模塊的隱含層每個時刻的輸出都依賴于以往時刻的信息。RNN的鏈式屬性表明其與序列標注問題存在著緊密的聯系,目前已被應用到文本分類和機器翻譯等NLP任務中。在RNN的訓練中,存在梯度爆炸和消失的問題,且RNN難以保持較長時間的記憶。
LSTM網絡是RNN的擴展,專門設計用來避免長期依賴問題。LSTM的重復神經網絡模塊具有不同的結構,這與樸素RNN不同,存在四個以特殊方式相互影響的神經網絡層,網絡模塊示意圖如圖1所示。LSTM在NLP中的應用實在太廣泛了[12~14],在 Machine Translation,Text Classification,QA等領域都有著成熟的應用,具體通過對RNN的結構進行改進,加入Memory Cell與三個門控單元,對歷史信息進行有效的控制。而不是像RNN一樣每次都將前一時刻的hidden state完全洗掉,從而增強了其處理長文本序列的能力,也解決了vanishing gradient的問題。
如圖1所示,LSTM網絡具有輸入門(input gates)、忘記門(forget gates)和輸出門(output gates)等三種門結構,用以保持和更新細胞狀態。

圖1 LSTM神經網絡單元圖
1)從細胞狀態中忘記信息,由忘記門的Sigmoid層決定,以當前層的輸入xt和上一層的輸出ht-1作為輸入,在t-1時刻的細胞狀態輸出為

2)在細胞狀態中存儲信息,主要由兩部分組成:輸入門的Sigmoid層的結果it作為將更新的信息;由tanh層新創建的向量ct,將添加在細胞狀態中。將舊的細胞狀態ct-1乘以 ft,用以遺忘信息,與新的候選信息it·的和,生成細胞狀態的更新。

3)輸出信息,由輸出門決定。先使用Sigmoid層來決定要輸出細胞狀態的部分信息,接著用tanh處理細胞狀態,兩部分信息的乘積得到輸出的值。

卷積神經網絡(Convolutional Neural Network,CNN)是一種前饋神經網絡,它的人工神經元可以響應一部分覆蓋范圍內的周圍單元,對于大型圖像處理有出色表現。它包括卷積層(convolutional layer)和池化層(pooling layer)。
本文運用LSTM神經網絡與CNN神經網絡結合,其中,卷積窗口的大小設置對最終的分類結果影響較大,借鑒N-gram語言模型的思想[15~17],通過提取相鄰n個詞進行局部特征的提取,從而捕捉上下文搭配詞語的語義信息,對整個文本的語義進行表示。根據這種思想,將卷積窗口大小設置為n*m,n為窗口內詞的個數,m為詞向量維度。
同時使用多個卷積核生成特征映射,再進行最大池化操作,最后使用Softmax進行分類。

圖2 卷積神經網絡原理圖
在文本表示階段,與傳統的文本分類模型不同,基于混合深度神經網絡的文本分類模型采用分布式表示,即以詞為單位進行文本表示形成詞向量,再將詞向量按照詞在句子中出現的順序進行拼接,形成代表句子的矩陣。在詞表示的過程中,可以學習到詞之間的語義相關性,同時詞向量的拼接也考慮了句子中詞出現的順序。在分類階段,由于混合深度神經網絡屬于深度學習模型,因此可以在詞向量的基礎上,實現句子特征的自動提取和學習,從而減少了對人工特征選取的依賴性,也優化了特征選取的效果。
針對電力投訴短文本的特點,文本預處理包括分詞和去停用詞。中文文本不同于英文文本,詞與詞之間沒有空格的自然分界因此在文本表示之前需要對中文文本進行分詞。鑒于數據語料庫,我們首先得到它的詞匯詞典并在語料庫上訓練一個熱點。作為單熱的輸出,矢量id然后用于計算與詞匯id的相關性。對于詞匯表中的每個唯一單詞,首先得到它的詞匯詞典并在語料庫上訓練一個熱點。作為單熱的輸出,矢量id然后用于計算與詞匯id的相關性。對于詞匯表中的每個唯一單詞,找出最相似的id,隨后的PCA維度減少被執行作為連續Skip-gram的輸入。最后,得到了嵌入這個詞。這里是對數據預處理中兩個重要步驟的描述:
1)建立詞匯詞典:建立詞匯詞典的主要目的是減少數據訓練的時間。它通過調用訓練有素的單詞來減少記憶足跡。該操作對后一類的影響起著決定性的作用。
2)計算相關性:通過使用單詞向量對應的id來匹配字典中的單詞向量,然后計算相關性,最高的相似性被識別為連續skip-gram的輸入。
分布式表示由Hinton提出[18],其表示方法基于“詞的語義由其鄰近詞刻畫”的假說[19]。據此,可運用分布式詞向量對詞進行表示。首先,參考Bengio等的神經網絡語言模型(NNLM)[20~21],以大量經過預處理的電力投訴文本為語料庫,訓練出每個詞的詞向量表示,詞向量的各個維度代表通過NNLM學習到的詞的語義特征。以維度為3的詞向量為例,將部分投訴文本的詞向量在特征空間中進行表示。
首先通過Embedding Layer將單詞轉化為詞向量,再輸入LSTM進行語義特征提取,由于原始語料處理時進行了padding的操作,所以在LSTM輸出時乘以MASK矩陣來減小padding所帶來的影響。下一步將LSTM的輸出作為CNN的輸入,進行進一步的特征提取。最后得到分類結果。
利用前向和后向RNN得到每個詞的前向和后向上下文的表示:

這樣詞的表示就變成詞向量和前向后向上下文向量連接起來的形式了,即:

最后再接跟TextCNN相同卷積層,pooling層即可,唯一不同的是卷積層filter_size=1就可以了,不再需要更大filter_size獲得更大視野,這里詞的表示也可以只用雙向RNN輸出。
整個模型的結構如圖3所示。

圖3 混合深度神經網絡結構圖
為研究本文構建的電力投訴短文本分類模型對電力投訴短文本的分類效果,以電力投訴短文本為例進行實驗,選取某電網公司2016年的16000條電力投訴文本記錄數據。進行文本分類任務的訓練和測試時,將所有16000條投訴電力數據隨機排列后,平均劃分為4份,每份包含4000條數據。輪流將其中3份數據作為訓練集,1份數據作為測試集,進行4倍交叉驗證。
在對比文本分類模型的分類效果時,引入“錯誤率”指標反映文本分類出現錯誤的情況,即:

在實際應用中,訓練集句向量、詞向量以及分類器的訓練,均可以提前離線完成并對模型參數進行保存,測試時直接使用即可,無需重復訓練,故在線計算時間僅為測試時間。因此,分別對4次交叉驗證的訓練耗時和測試耗時取平均值,得到“訓練耗時”和“測試耗時”指標,以比較不同分類模型的離線計算和在線計算效率。在測試各個模型的計算效率時,本文實驗的環境是ThinkServer TD350服務器,主要參數CPU:E5-2603v3 1.6GHz,內存為16G,GPU卡:Nvidia GTX1080。操作系統為ubuntu 16.04,64bit。
根據電力投訴文本分類數量,分為以下七種:表揚,服務申請,故障報修,信息查詢,業務咨詢,意見,綜合業務。為驗證該模型針對于電力投訴短文本分類特點,對混合神經網絡模型進行的結構參數改進的效果,本文分別考慮詞向量生成方法、詞向量微調方法、各組別的窗口尺寸這3個主要因素,設置了3個基于卷積神經網絡的對照模型,與所構建的文本分類模型進行對比,具體網絡參數設置如表1所示。

表1 混合神經網絡模型和對比模型參數設置
表2是混合神經網絡文本分類模型分類結果統計。

表2 模型分類結果統計混
本文構建的混合神經網絡分類模型的錯誤率低至3.95%,而傳統分類模型錯誤率最低6.99%,是本文模型的1.8倍;另外,本文構建的分類模型計算耗時比其他對比分類模型稍長,一方面是由于在詞表示階段要通過迭代方法學習詞的語義特征,而傳統分類模型只需進行簡單統計;另一方面是由于混合神經網絡的結構比傳統模型復雜,訓練參數較多,因此計算過程耗時較多。但實際應用中訓練耗時均為離線計算耗時,在線計算耗時僅包括測試耗時,從表2可以看出,4000條測試文本的分類耗時可控制在1s以內,已顯著高于人工分類的效率,在實際電力投訴短文本分類中具有可行性與實用性。
圖4是混合深度神經網絡模型隨著訓練集的增加,準確率的變化圖,由圖4可知本文模型在數據量較大情況,準確率優于傳統的文本分類模型,分類準確率大致在95.96%左右。

圖4 模型準確度隨訓練集大小變化
在電力投訴短文本處理中引入混合深度神經網絡模型,并以錯誤率和分類效率為指標,將混合深度神經網絡文本分類模型與傳統機器學習文本分類模型進行了全面的對比,為電力系統其他中文文本的數據挖掘研究提供了一個新的方法和思路。
以混合深度神經網絡為基礎,結合電力投訴短文本專業性強、長度差異大、混雜文字和數字和數據量大等特點,針對性地構建了混合深度神經網絡文本分類模型,并通過算例展示了本文的模型在分類精度上的顯著優勢和分類效率上的可行性,為提高機器學習的電力文本分類效果提供了有效的手段。
除了將混合深度神經網絡模型應用于電力投訴短文本分類之外,如能將其與數據融合、知識推理等技術相結合,將在投訴文本處理中得到更多應用,進而促進電網的智能化發展。