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