李冉冉,劉大明,劉 正,常高祥
(上海電力大學計算機科學與技術學院,上海200090)
文本分類是自然語言處理領域的一項基礎任務,在問答系統(tǒng)、主題分類、信息檢索、情感分析、搜索引擎等方面發(fā)揮重要的作用。傳統(tǒng)文本分類方法大部分在向量空間模型的基礎上實現(xiàn),文獻[1]提出一種基于TF-IDF 的改進文本分類方法,文獻[2]提出使用支持向量機的分類方法,文獻[3]提出一種特征加權的貝葉斯文本分類方法。但是,在使用傳統(tǒng)特征提取方法表示短文本時存在數(shù)據(jù)稀疏與特征向量維度過高的問題。
隨著深度學習技術的快速發(fā)展,越來越多的學者們將深度學習模型應用到自然語言處理中[4]。文獻[5]通過構建神經網絡語言模型訓練詞向量來獲得文本的分布式特征。但是,其將詞視為不可分割的原子表征,忽略了詞的結構信息,這一不足引起了部分學者的注意,并對利用詞的結構信息的方法進行了研究。文獻[6-7]在學習過程中使用部首詞典提取字詞特征。文獻[8]提出一種使用筆畫n-gram提取漢字的筆畫序列信息的方法,該方法可以訓練得到含有漢字結構信息的詞向量。深度學習技術在文本分類中也得到廣泛應用,文獻[9]利用卷積神經網絡和預先訓練的詞向量對輸入向量進行初始化,文獻[10]通過使用循環(huán)神經網絡(Recurrent Neural Network,RNN)來提取全局特征,文獻[11]提出使用門控循環(huán)單元(Gated Recurrent Unit,GRU)和注意力機制進行文本分類,文獻[12]提出膠囊網絡并將其應用在文本分類任務中,減少了卷積神經網絡(Convolutional Neural Network,CNN)在池化操作中的特征丟失問題。
本文提出一種結合GRU、注意力機制和膠囊網絡的混合神經網絡模型GRU-ATT-Capsule。使用GRU 提取2 種詞向量的上下文特征,結合注意力機制對GRU提取的特征重新進行權重分配,對文本內容貢獻較大的信息賦予較高的權重,并將重新計算得到的特征進行融合。利用膠囊網絡進行局部特征提取,從而解決CNN 在池化過程中的特征丟失問題。
傳統(tǒng)詞向量表示方式主要基于分布式假設,即上下文相似的詞應具有相似的語義[13]。Word2Vec和Glove 是2 種具有代表性的詞向量訓練方式,由于高效性與有效性得到廣泛應用[5,14]。
漢語詞向量表示方式的研究在早期多數(shù)是參照英文詞向量表示方式:先對中文進行分詞,再在基于英文的方法上進行大規(guī)模語料的無監(jiān)督訓練。但是,該方式忽略了漢字本身的結構信息[15]。因此,漢語學者們針對用于漢語的詞向量進行研究。文獻[16]設計漢字和詞向量聯(lián)合學習模型,該模型利用漢字層次結構信息改進中文詞向量的質量。文獻[7]在學習過程中使用部首詞典提取字詞特征,實驗結果表明在文本分類以及詞相似度上均有所提升。文獻[17]使用卷積自動編碼器直接從圖像中提取字符特征,以減少與生詞相關的數(shù)據(jù)稀疏問題,實驗結果顯示利用字符結構特征進行增強會取得一定的效果。文獻[8]首先對漢字的筆畫特征進行建模,將詞語分解為筆畫序列,然后使用筆畫n-gram 進行特征提取,在文本分類任務上相比于傳統(tǒng)方法提升了1.9%的準確率。
文獻[18]提出膠囊網絡,其思想是使用膠囊來代替CNN 中的神經元,使模型可以學習對象之間的姿態(tài)信息與空間位置關系。文獻[19]提出膠囊間的動態(tài)路由算法與膠囊網絡結構,其在MNIST 數(shù)據(jù)集上達到了當時最先進的性能。
膠囊網絡與CNN 的區(qū)別在于:1)使用膠囊(向量)代替神經元(標量);2)使用動態(tài)路由算法進行低層到高層的參數(shù)更新,而不是使用池化操作,從而避免信息丟失;3)使用壓縮函數(shù)代替ReLU 激活函數(shù)。由于高層膠囊是由底層膠囊通過動態(tài)路由算法利用壓縮函數(shù)計算得出,由多個向量神經元共同決定與整體的關系,因此使得膠囊網絡可以學習到文本的局部與整體之間的關聯(lián)信息。
文獻[12]使用兩個并行的卷積層進行特征提取,并且其中一個卷積層使用ELU 激活函數(shù)進行激活,然后將提取的特征按位置對應相乘,輸入到膠囊網絡,在精度和訓練時間上均取得了較好的效果。
文獻[9]將CNN 應用于文本分類,其使用預先訓練的詞向量來初始化輸入向量,首先在卷積層中利用多個不同尺度的卷積核進行特征提取,然后采用池化操作提取主要特征,最后使用softmax 分類器進行分類。文獻[11]使用門控循環(huán)單元學習文本序列的上下文特征,并結合注意力機制為文本中的特征學習權重分布,相比基于LSTM 的方法在準確度上取得了2.2% 的提升。文獻[20]提出一種結合CNN、雙向門控循環(huán)單元(Bidirectional Gated Recurrent Unit,BiGRU)和注意力機制的文本分類方法,其首先使用CNN 提取局部短語特征,然后使用BiGRU 學習上下文特征,最后通過增加注意力機制對隱藏狀態(tài)進行加權計算以完成特征權重的重新分配,相比基于attention-CNN 的方法與基于attention-LSTM 的方法在準確率與F1 值上均有所提升。
本文提出一種GRU-ATT-Capsule 混合模型用于文本分類。該模型由文本表示、全局特征提取和膠囊網絡分類等3 個模塊組成,結構如圖1 所示。
圖1 GRU-ATT-Capsule 混合模型結構Fig.1 Structure of GRU-ATT-Capsule hybrid model
將文本序列表示為計算機能夠處理的形式,表示方法主要包括離散表示和分布式表示。離散表示將文本中的每個詞用向量表示,向量的維度就是詞表的大小,該方式構建簡單,但是不能表示詞與詞之間的關系,忽略了詞的上下文語義。分布式表示考慮了詞的上下文語義信息并刻畫了詞與詞之間的語義相似度,并且維度較低,主要包括Word2Vec、Glove 等常用的詞向量表示。由于漢語的文字系統(tǒng)與英語為代表的字母語言存在不同,因此為了融合漢字結構特征,采用雙通道輸入策略,利用基于文獻[8]的筆畫n-gram 方法來提取每個字對應的筆畫向量,然后使用Skip-gram 模型進行詞向量訓練獲得CW2Vec。
假定文本序列包含n個詞,將其One-hot 表示為xi=(x1,x2,…,xn),i∈(0,n)作為輸入。首先,利用訓練好的CW2Vec 模型獲取的詞向量作為詞嵌入層a的權重,并隨機初始化詞嵌入層b的權重為,將輸入xi分別與輸入權重W1、W2進行運算,具體過程如式(1)所示:
2.2.1 GRU
循環(huán)神經網絡是一種專門用于處理序列數(shù)據(jù)的神經網絡,通過網絡中的循環(huán)結構記錄數(shù)據(jù)的歷史信息,即當前隱藏層單元的輸出不僅與當前時刻的輸入有關,還依賴上一時刻的輸出。RNN 還可以處理變長序列。本文采用門控循環(huán)單元提取文本特征,它是LSTM 的一種變體,在結構上與LSTM 相似,不同點在于GRU 簡化了LSTM 的門控結構。LSTM 網絡由輸入門、輸出門、遺忘門和記憶單元來實現(xiàn)歷史信息的更新和保留。GRU 將LSTM 中的輸入門和遺忘門合并,稱為更新門zt。此外,重置門為rt,記憶單元為ht。更新門控制當前時間步的信息中保留多少先前時刻的歷史信息。重置門決定了當前時刻的輸入與前一時間步的信息之間的依賴程度。這兩個門控向量決定了哪些信息最終能作為GRU的輸出并被保存,GRU 結構如圖2 所示。
圖2 GRU 結構Fig.2 Structure of GRU
GRU 單元在時刻t的更新過程如式(2)~式(5)所示:
其中:xt為當前時刻的輸入;ht-1為前一時刻GRU的輸出;ht為當前時刻GRU 的輸出;σ是sigmoid 激活函數(shù);Wr、Wz、Wc、Ur、Uz、Uc為權重矩陣;br、bz、bc為偏置項;⊙表示向量間的點乘運算。
通過文本表示模塊,長度為n的語句S可分別表示如下:
將文本表示Sa、Sb輸入GRU 中獲得上下文特征用于后續(xù)的注意力計算。
2.2.2 注意力機制
注意力機制是一種權重分配機制,對于重要的語義信息分配較多的注意力。在文本分類任務中,句子中不同的詞對分類效果的影響是不同的,本文引入注意力機制識別文本中的重要信息。將GRU的隱藏層輸出ht作為輸入,得到:
其中:Wa為權重矩陣;ba為偏置;ui為hi的隱層表示;權重ai為經過softmax 函數(shù)得到的每個詞的標準化權重,然后通過加權計算得到注意力機制的輸出向量vi。
CNN 的池化操作會丟失大量的特征信息使得文本特征大幅減少,其中神經元為標量。在膠囊網絡中使用膠囊(即向量)來代替CNN 中的標量神經元。膠囊網絡的輸入輸出向量表示為特定實體類別的屬性,通過使用動態(tài)路由算法在訓練過程中迭代調整低層膠囊與高層膠囊的權重cij,低層膠囊根據(jù)多次迭代后的權重通過壓縮函數(shù)共同來決定某個高層膠囊表示,并將通過動態(tài)路由得到的所有高層膠囊進行拼接得到最終的高階膠囊表示。
卷積膠囊層的輸入為融合層的輸出,輸出作為分類膠囊層的輸入。動態(tài)路由通過多次迭代路由來調整耦合系數(shù)cij確定合適的權重:
其中:i表示底層;j表示高層。
路由算法利用式(10)中的變換矩陣Wij將低層膠囊進行轉換用于獲得預測向量,通過式(11)獲得來自底層膠囊的預測向量的加權和sj。為使膠囊的模長表示對應類別的分類概率,通過壓縮函數(shù)式(12)進行歸一化得到高層膠囊vj。利用式(13)計算高層膠囊vj與底層預測向量的點積,當?shù)蛯宇A測向量與輸出膠囊vj方向趨向一致時,增加對應的耦合系數(shù)cij。通過多次迭代路由算法對耦合系數(shù)進行調整得到修正后的高層膠囊νj。
為驗證GRU-ATT-Capsule 混合模型在文本分類中的效果,采用基于TensorFlow 的Keras 進行開發(fā),編程語言為Python3.6。數(shù)據(jù)集被隨機打亂。服務器配置如下:CPU 為Intel Core i5-8500 主頻3.0 GHz,內存32 GB,硬盤1 TB,操作系統(tǒng)為Ubuntu16.04,GPU為GeForce RTX 2080 SUPER。
為評估GRU-ATT-Capsule 混合模型的有效性,采用搜狗實驗室的中文新聞數(shù)據(jù)集,該數(shù)據(jù)集包含419 715 條數(shù)據(jù),可被標出類別的共有14 類,去掉4 類樣本數(shù)不足的數(shù)據(jù),保留其中的10 類作為分類文本分解。每類數(shù)據(jù)選擇2 000 條文本,訓練集、驗證集和測試集的劃分比例為8∶1∶1。數(shù)據(jù)集分布如表1所示。
表1 數(shù)據(jù)集樣本類別分布Table 1 Dataset sample category distribution
實驗的預處理部分首先將文本數(shù)據(jù)進行轉碼,然后使用Jieba 分詞工具對每條數(shù)據(jù)進行分詞,再加上對應的標簽。
實驗采用準確率作為評價標準,準確率計算公式如下:
其中:TTP為真正例;TTN真負例;FFP為假正例;FFN為假負例。
使用搜狗語料SogouCA 訓練CW2Vec 詞向量作為第1 個通道的詞向量。窗口n設置為5,詞向量維度設置為200,最低詞頻設為10,用于過濾詞頻較低的詞。在訓練過程中,使用Adam 優(yōu)化器,將學習率設置為0.001,并且在每個epoch 將學習率衰減0.99來降低學習率。GRU 單元數(shù)量設置為64。底層膠囊數(shù)量設置為6,文獻[19]使用了1 152 個膠囊進行圖像分類,之所以進行這種操作,是因為該方法生成的特征圖包含的有效信息不足。高層膠囊數(shù)量設置為10,對應不同類別,膠囊的模長代表所屬類別的概率。為驗證GRU-ATT-Capsule 混合模型的有效性,將TextCNN 模型[9]和BiGRU-ATT 模型[11]作為基線進行對比分析。
從訓練集、驗證集和測試集出發(fā)比較TextCNN、BiGRU-ATT 和GRU-ATT-Capsule 混合模型的文本分類效果,實驗結果如表2 所示。
表2 3 種神經網絡模型的分類準確率對比Table 2 Comparison of classification accuracy of three neural network models %
3 種模型的epoch 設置為40,在訓練集上的準確率均達到98%以上,其中基于GRU-ATT-Capsule 混合模型的文本分類準確率最高,達到99.63%。在驗證集上的分類準確率均達到82%以上,仍是基于GRU-ATT-Capsule 混合模型的文本分類準確率最高,達到89.25%。對于測試集,3 種模型在測試集上的分類準確率明顯低于訓練集和驗證集,但是本文GRU-ATT-Capsule 混合模型的準確率仍為最高,達到87.55%。由此可見,在文本分類任務中,本文提出的GRU-ATT-Capsule 混合模型的分類效果要優(yōu)于TextCNN 模型和BiGRU-ATT模型。
由于卷積神經網絡的池化操作會導致特征信息丟失,因此采用動態(tài)路由機制的膠囊網絡用于獲得合適的權重,將低層膠囊的特征信息傳遞到高層膠囊中,從而更好地捕捉文本序列中的特征信息。為進一步證明本文融合的筆畫特征對文本分類的有效性,設置模型對比實驗進行分類性能驗證。將GRUATT-Capsule 混合模型的輸入分別設置如下:
1)Single:采用單通道輸入,使用隨機初始化的Word2Vec 詞向量作為輸入,在訓練過程中通過模型的反向傳播進行不斷調整。
2)Dual:采用雙通道輸入,一個通道采用包含筆畫特征的CW2Vec 詞向量作為輸入,另一個通道采用隨機初始化的Word2Vec 詞向量作為輸入,在訓練過程中可以通過模型的反向傳播進行不斷調整。
2 種輸入方式下的GRU-ATT-Capsule 混合模型分類準確率對比結果如表3 所示。由表3 可知,本文提出的融合筆畫特征的GRU-ATT-Capsule 混合模型在驗證集和測試集上的分類準確率相比基于單通道輸入的GRU-ATT-Capsule 混合模型分別提高了0.15和0.45 個百分點,由此說明本文所提出的融合筆畫特征的GRU-ATT-Capsule 混合模型相比基于單通道輸入的GRU-ATT-Capsule 混合模型能夠提取包括漢字結構在內的更多的文本特征,從而提高文本分類效果。
表3 2 種輸入方式下的GRU-ATT-Capsule 混合模型分類準確率對比Table 3 Comparison of classification accuracy of GRU-ATTCapsule hybrid model with two input modes %
本文提出一種融合筆畫特征的膠囊網絡文本分類方法。通過2種不同的詞向量來表示文本內容,補充文本的漢字結構特征。使用GRU模型提取全局文本特征,在GRU 后引入注意力機制,并利用注意力機制對詞的權重進行調整進一步提取文本序列中的關鍵信息。融合2種表示結果作為膠囊網絡的輸入,通過膠囊網絡解決了卷積神經網絡池化操作的信息丟失問題。實驗結果證明了GRU-ATT-Capsule混合模型的有效性。后續(xù)將對GRU-ATT-Capsule混合模型的詞向量融合方式進行改進,進一步提高文本分類準確率。