張凌慷,仝明磊
(上海電力大學(xué) 電子與信息工程學(xué)院,上海 201306)
隨著互聯(lián)網(wǎng)中海量文本數(shù)據(jù)的不斷涌現(xiàn),文本分類已經(jīng)成為自然語言處理領(lǐng)域(Natural Language Processing,NLP)中的一個(gè)重要研究方向。如何在海量數(shù)據(jù)中高效而精確地理解文本語義,亟需學(xué)術(shù)界進(jìn)一步探索。
隨著深度學(xué)習(xí)的流行,基于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)也被應(yīng)用于文本分類任務(wù),并取得了相對(duì)較好的分類效果[1]。Kim[2]在卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)的基礎(chǔ)上提出了TextCNN網(wǎng)絡(luò),直接對(duì)句子進(jìn)行文本分類。
Zhao等[3]首先在文本分類任務(wù)中引入了膠囊網(wǎng)絡(luò)(Capsule Network),在句子中的不同位置用卷積操作提取局部特征,接著訓(xùn)練兩層膠囊層提取全局特征,最后在全連接層輸出每個(gè)文本類的概率送入Softmax分類器進(jìn)行分類。Kim等[4]將靜態(tài)路由代替動(dòng)態(tài)路由機(jī)制,忽略句子中部分空間信息,達(dá)到簡化路由計(jì)算的目的。
由于動(dòng)態(tài)路由依賴聚類的密集計(jì)算,這導(dǎo)致了訓(xùn)練效率低下,阻礙了膠囊網(wǎng)絡(luò)在實(shí)際任務(wù)中的應(yīng)用。本文采取譜聚類(Spectral clustering)算法來取代原有膠囊網(wǎng)絡(luò)中的動(dòng)態(tài)路由算法,提出SC-Caps膠囊網(wǎng)絡(luò)模型,將低層膠囊輸出的特征向量進(jìn)行降維,減少計(jì)算復(fù)雜度,提高網(wǎng)絡(luò)性能。在搜狗新聞數(shù)據(jù)集SogouCA上進(jìn)行實(shí)驗(yàn),以模型的預(yù)測(cè)準(zhǔn)確率和F1值作為評(píng)價(jià)標(biāo)準(zhǔn),得到了較好的分類準(zhǔn)確率。
CNN在計(jì)算機(jī)視覺、自然語言處理領(lǐng)域都取得了成功。CNN在每次卷積之后,都會(huì)進(jìn)行池化操作對(duì)特征圖進(jìn)行下采樣來簡化計(jì)算并改善局部特征。但池化操作從上一層傳遞到下一層的是標(biāo)量,導(dǎo)致無法考慮一些位置與姿態(tài)的信息。因此CNN在識(shí)別具有空間關(guān)系的特征時(shí)存在很大的局限性。
為了解決CNN中存在的問題,Hinton等[5]于2011年首次提出了“膠囊”的概念。其創(chuàng)新之處就是使用向量膠囊來取代CNN中的標(biāo)量神經(jīng)元,使得膠囊可以保留輸入對(duì)象之間的空間信息?;诖?,Sabour等[6]在2017年進(jìn)一步提出了具有動(dòng)態(tài)路由算法的膠囊網(wǎng)絡(luò)結(jié)構(gòu),該網(wǎng)絡(luò)包括一層卷積層來提取特征;初級(jí)膠囊層將標(biāo)量特征圖編碼為向量膠囊;高層膠囊層進(jìn)行分類。但初級(jí)膠囊層與高層膠囊層之間動(dòng)態(tài)路由算法繁瑣,有待進(jìn)一步完善。為了解決此問題,Hinton等[7]于2018年對(duì)動(dòng)態(tài)路由算法和膠囊網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn),提出基于最大期望算法(Expectation-Maximization,EM)來實(shí)現(xiàn)動(dòng)態(tài)路由的矩陣膠囊網(wǎng)絡(luò)。該網(wǎng)絡(luò)魯棒性強(qiáng),但仍存在計(jì)算量大,復(fù)雜度高的問題。
由于動(dòng)態(tài)路由需要多次迭代通過softmax來獲取相似度,不斷地計(jì)算調(diào)整新的高層膠囊,最后將點(diǎn)劃分到各個(gè)高層膠囊中。因此當(dāng)數(shù)據(jù)量大時(shí),動(dòng)態(tài)路由的計(jì)算開銷是非常大的。而譜聚類是由圖論衍生出的聚類算法[8],它將輸入的高維向量降維達(dá)到簡化計(jì)算的目的。其主要思想就是將所有輸入數(shù)據(jù)視為空間中的點(diǎn),再將所有點(diǎn)連起來構(gòu)成無向帶權(quán)圖。距離近的兩點(diǎn)連成的邊權(quán)重值高,而距離遠(yuǎn)的點(diǎn)連成的邊權(quán)重值低,來構(gòu)建相似度矩陣,之后由K近鄰法構(gòu)建鄰接矩陣。
首先將低層膠囊轉(zhuǎn)換后的預(yù)測(cè)向量X={x1,x2,x3,…,xn},利用下列方法來構(gòu)建對(duì)稱的鄰接矩陣W={Wij}n×t:
再根據(jù)鄰接矩陣構(gòu)建度矩陣Dn×n,度矩陣D為對(duì)角矩陣,其中即為鄰接矩陣的對(duì)應(yīng)行元素之和。
計(jì)算拉普拉斯矩陣L:L=D-W。利用Ncut切法,求出拉普拉斯矩陣L的k個(gè)最小特征值構(gòu)建特征矩陣F:
首先構(gòu)建標(biāo)準(zhǔn)化拉普拉斯矩陣LS:
接著計(jì)算LS的特征值,選取前k個(gè)最小的特征值(k為聚類數(shù)),并求出對(duì)應(yīng)的的特征向量f1,f2,f3,…,fk;最后將上述k個(gè)特征向量作為列向量構(gòu)成的矩陣按行標(biāo)準(zhǔn)化,形成維度為的向量空間;
令hi∈Rk為特征矩陣F的第i行作為新的中間數(shù)據(jù)樣本點(diǎn),其中i=1,2,3,…,n。利用k-means算法將聚類成簇。
將求得的簇送入擠壓函數(shù)得到高層膠囊:
膠囊網(wǎng)絡(luò)最早應(yīng)用于圖像分類任務(wù)中,Zhao等[3]將膠囊網(wǎng)絡(luò)引入到文本分類任務(wù)當(dāng)中,效果明顯優(yōu)于CNN、LSTM。
該模型如圖1所示分為4層:第1層是卷積層,用于提取低層特征;第2層是初級(jí)膠囊層,將標(biāo)量特征轉(zhuǎn)換為矢量特征,保留句子中的詞序和語義信息;第3層是卷積膠囊層,根據(jù)譜聚類結(jié)果得到高層膠囊;第4層是全連接膠囊層,經(jīng)過譜聚類生成最終膠囊概率送入softmax分類器進(jìn)行分類。
圖1 基于譜聚類膠囊網(wǎng)絡(luò)的文本分類模型
1.3.1 卷積層
卷積層利用卷積操作在句子不同位置提取特征。輸入為n×k的矩陣,使用一個(gè)卷積核w與一個(gè)滑動(dòng)窗口xi:i+h-1,產(chǎn)生一個(gè)特征mi。
其中,h為窗口中的單詞數(shù);b0為偏置參數(shù);f(·)為非線性函數(shù)。每一次卷積操作都相當(dāng)于一次對(duì)特征的提取。對(duì)于相同大小的B個(gè)卷積核,可以產(chǎn)生B個(gè)特征,這些特征可以重新排列為:
1.3.2 初級(jí)膠囊層
此膠囊層為第一個(gè)膠囊層,用矢量輸出膠囊替換CNN中的標(biāo)量輸出。膠囊大小為d,使用一個(gè)大小為Mi窗口在標(biāo)量特征上滑動(dòng),Wb表示不同的滑動(dòng)窗口之間的共享濾波器,生成膠囊的實(shí)例化參數(shù)pi。其表達(dá)式如下。
其中:g(·)表示非線性壓縮函數(shù);b1為偏置項(xiàng)。膠囊的特征向量p可以表示:
1.3.3卷積膠囊層
在卷積膠囊層中,每個(gè)膠囊僅連接到局部區(qū)域中的膠囊。該區(qū)域中的膠囊乘上轉(zhuǎn)換矩陣來學(xué)習(xí)低層膠囊跟高層膠囊之間的關(guān)系,然后根據(jù)譜聚類路由來更新高層膠囊的權(quán)重。
令變換矩陣WC屬于RK×C×D×d×d,其中K×C為低層膠囊區(qū)域中的膠囊數(shù),d為低層膠囊發(fā)送到高層膠囊的膠囊數(shù)。預(yù)測(cè)向量由式(9)得出:
1.3.4 全連接膠囊層
卷積膠囊層生成的膠囊在譜聚類路由后,被擠壓成一個(gè)膠囊,并被送入全連接膠囊層中。
全連接膠囊層從譜聚類路由中學(xué)習(xí)到全局特征。
其中:x為輸入;hw,b(x)為輸出;T為W的轉(zhuǎn)置。
最后將全連接膠囊層的輸出送入softmax分類器,完成文本分類任務(wù)。
為了驗(yàn)證算法在文本分類任務(wù)上的效果,采用基于Tensorflow的Keras進(jìn)行開發(fā),編程語言為Python3.6。服務(wù)器配置如下:操作系統(tǒng)為Ubuntu16.04,CPU為Inter Xeon E5-1620,主頻為3.6 GHz,內(nèi)存為16 G,GPU為Nvidia GeForce Titan X。
采用搜狗實(shí)驗(yàn)室SougouCA數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)。SougoCA數(shù)據(jù)集包含429 819條文本,可被標(biāo)出類別的共有14類,去掉4類樣本數(shù)不足的數(shù)據(jù),保留剩下10類樣本作為分類文本分解。每類數(shù)據(jù)都選取2 000條文本,隨機(jī)打亂數(shù)據(jù)集。訓(xùn)練集、驗(yàn)證集和測(cè)試集的劃分比例為8∶1∶1。
實(shí)驗(yàn)的預(yù)處理部分先將下載好的文本轉(zhuǎn)碼,采用jieba分詞工具對(duì)新聞文本數(shù)據(jù)進(jìn)行分詞處理,再加上對(duì)應(yīng)的標(biāo)簽。
本文實(shí)驗(yàn)的性能評(píng)價(jià)指標(biāo)主要包括:準(zhǔn)確率、精確率、召回率、F1值。設(shè)TP為將正確類預(yù)測(cè)為正確類的個(gè)數(shù);TN為將錯(cuò)誤類預(yù)測(cè)為正確類的個(gè)數(shù);FP為將錯(cuò)誤類預(yù)測(cè)為正確類的個(gè)數(shù);FN為將正確類預(yù)測(cè)為錯(cuò)誤類的個(gè)數(shù)。評(píng)價(jià)指標(biāo)的計(jì)算公式如下:
本文進(jìn)行的實(shí)驗(yàn)基于keras框架實(shí)現(xiàn),使用Adam優(yōu)化器,使用訓(xùn)練后的word2vec詞向量作為第一個(gè)通道的詞向量。在SogouCA數(shù)據(jù)集上的實(shí)驗(yàn)?zāi)P蛥?shù)設(shè)置見表1。
表1 實(shí)驗(yàn)參數(shù)設(shè)置
其中高層膠囊個(gè)數(shù)11個(gè),對(duì)應(yīng)10類新聞分類,其中標(biāo)簽0不用,膠囊的模長代表所屬分類的概率。
為了驗(yàn)證本文提出方法的有效性,本文進(jìn)行了3個(gè)實(shí)驗(yàn)。實(shí)驗(yàn)(1)與深度學(xué)習(xí)領(lǐng)域主流實(shí)驗(yàn)?zāi)P瓦M(jìn)行對(duì)比實(shí)驗(yàn),實(shí)驗(yàn)(2)與其他膠囊網(wǎng)絡(luò)論文所提出方法進(jìn)行對(duì)比實(shí)驗(yàn);實(shí)驗(yàn)(3)改變譜聚類k值進(jìn)行實(shí)驗(yàn)。
實(shí)驗(yàn)(1)選取深度學(xué)習(xí)領(lǐng)域主流的模型在SogouCA數(shù)據(jù)集上進(jìn)行比較實(shí)驗(yàn),包括:LSTM、BiLSTM[9]、C-LSTM[10]、SC-Caps。使用上述模型進(jìn)行實(shí)驗(yàn)3次,取平均值。實(shí)驗(yàn)結(jié)果見表2。
表2 實(shí)驗(yàn)(1)數(shù)據(jù)結(jié)果
從表2可以看出,與傳統(tǒng)的CNN、LSTM網(wǎng)絡(luò)相比,本文提出的膠囊網(wǎng)絡(luò)模型在文本分類任務(wù)中表現(xiàn)更好。相較于傳統(tǒng)的LSTM模型,F(xiàn)1值提高了5.76個(gè)百分點(diǎn)。而CNN和LSTM結(jié)合的網(wǎng)絡(luò)中進(jìn)行的池化操作會(huì)導(dǎo)致特征信息丟失,使用膠囊網(wǎng)絡(luò)將標(biāo)量信息轉(zhuǎn)化為矢量信息,通過譜聚類路由將低層膠囊的特征信息傳遞到高層膠囊中,從而更好地捕捉文本中的特征信息。
實(shí)驗(yàn)(2)中將本文提出方法與其他不同路由方式的膠囊網(wǎng)絡(luò)方法進(jìn)行比較,對(duì)比結(jié)果見表3。
表3 實(shí)驗(yàn)(2)數(shù)據(jù)結(jié)果
通過比較可以發(fā)現(xiàn),本文提出的方法相較于文獻(xiàn)[3]提出的模型準(zhǔn)確率提高了0.34個(gè)百分點(diǎn)、F1值提高了2.02個(gè)百分點(diǎn),該模型使用了32個(gè)高層膠囊,模型較為復(fù)雜,訓(xùn)練所需時(shí)間較長。相較于文獻(xiàn)[4]使用的靜態(tài)路由膠囊網(wǎng)絡(luò)準(zhǔn)確率提升了1.75個(gè)百分點(diǎn),F(xiàn)1值提升了0.22個(gè)百分點(diǎn)。由此說明本文提出的SC-Caps文本分類模型實(shí)驗(yàn)(3)中改變SC-Caps中第一次譜聚類的k值,在數(shù)據(jù)集SogouCA上做對(duì)比實(shí)驗(yàn),第二次譜聚類的k值對(duì)應(yīng)類別數(shù)固定為11,實(shí)驗(yàn)結(jié)果如圖2所示。
圖2 不同k值的分類結(jié)果對(duì)比(準(zhǔn)確率)
基于上述實(shí)驗(yàn)結(jié)果,譜聚類中選定的k值對(duì)SCCaps網(wǎng)絡(luò)有一定影響,在k=15時(shí)達(dá)到SC-Caps的最佳效果;但繼續(xù)增加k值后,分類效果反而下降。這是由于當(dāng)聚類數(shù)k值較大時(shí),會(huì)使得聚類不均勻,影響算法的精確性,導(dǎo)致準(zhǔn)確率下降。因此在本文的其他實(shí)驗(yàn)中設(shè)置SC-Caps的譜聚類k值為15,以獲得更好的表現(xiàn)。
本文結(jié)合譜聚類和CapsNet的優(yōu)點(diǎn),提出了一種基于譜聚類膠囊網(wǎng)絡(luò)的文本分類模型。該模型用譜聚類路由取代了原有膠囊網(wǎng)絡(luò)的動(dòng)態(tài)路由機(jī)制,將初級(jí)膠囊層送入的高維特征轉(zhuǎn)化為低維的子特征再送入高層膠囊中,進(jìn)而提高膠囊網(wǎng)絡(luò)的運(yùn)算效率和精度。此外,本文還在搜狗語料庫SogouCA上進(jìn)行了文本分類實(shí)驗(yàn),與其他算法的對(duì)比表明本文提出的SC-Caps文本分類算法表現(xiàn)較好,有效提高了文本分類的準(zhǔn)確率。
本文在路由方式上進(jìn)行了改進(jìn),在一定程度上實(shí)現(xiàn)分類算法的改善,但膠囊網(wǎng)絡(luò)的卷積層特征提取能力和網(wǎng)絡(luò)整體結(jié)構(gòu)有待進(jìn)一步優(yōu)化。下一步研究工作將加強(qiáng)對(duì)特征提取算法和膠囊網(wǎng)絡(luò)模型結(jié)構(gòu)的研究。