尹春勇,何 苗
(南京信息工程大學(xué)計(jì)算機(jī)與軟件學(xué)院,南京 210044)
文字作為傳播文化和溝通感情的橋梁,在人類社會(huì)發(fā)展的道路上一直起著至關(guān)重要的作用。隨著網(wǎng)絡(luò)的發(fā)展,大量的文字信息走進(jìn)大眾的生活,新聞、微博、短信、網(wǎng)絡(luò)點(diǎn)評(píng)等不同形式的文本大量地涌現(xiàn)。文本信息中蘊(yùn)含了很多重要信息,對(duì)文本的處理主要包括文本檢索、翻譯、文本分類等。如何快速而準(zhǔn)確地獲取文本信息,文本分類技術(shù)發(fā)揮著重要的作用。
文本分類是指,對(duì)于給定的一些文本集D={d1,d2,…,dn}和一些類別C={c1,c2,…,cM},如何利用分類模型?將D中的文本映射到C中的某一個(gè)類別中。例如將淘寶的評(píng)論分為好評(píng)與差評(píng);微博評(píng)論分為開(kāi)心、憤怒、傷心等情感類型;新聞分為體育新聞、娛樂(lè)新聞、教育新聞、軍事新聞等。文本分類大致經(jīng)過(guò)了3 個(gè)階段:第1 階段代表人物是Maron 和Borko,他們?cè)?0世紀(jì)60年代早期就提出了用標(biāo)引詞代替文本,根據(jù)標(biāo)引詞在類中出現(xiàn)的概率來(lái)確定類別,再將多個(gè)標(biāo)引詞用少數(shù)因子來(lái)代表;第2 階段出現(xiàn)在20 世紀(jì)60 年代中期到70 年代中期,這一階段主要是探索各種可用的分類方法如圖論、統(tǒng)計(jì)、矩陣法等;第3階段就是現(xiàn)階段,將機(jī)器學(xué)習(xí)用于文本分類。
文本分類主要分為文本預(yù)處理和文本分類兩大部分。預(yù)處理就是將文本進(jìn)行分詞,使得文本變成一個(gè)一個(gè)詞組成的數(shù)組,由于有一部分詞沒(méi)有實(shí)際意義,比如“的”“了”“在”“是”“地”等,這就需要建立停用詞庫(kù),將這些停用詞放詞庫(kù),進(jìn)行分詞時(shí),再將它們?nèi)咳コ?,這樣可以降低數(shù)組的維度,增強(qiáng)分類效果。將文本進(jìn)行去停用詞后,所得的文本數(shù)組維度還是太高,這就需要對(duì)詞進(jìn)行特征選擇,選擇出現(xiàn)頻率高或?qū)ξ谋绢愋途哂幸饬x的詞,能夠有效地降低數(shù)組的維度,減少計(jì)算量。由于計(jì)算機(jī)無(wú)法識(shí)別文本類型的數(shù)據(jù),所以還需要對(duì)文本進(jìn)行建模,使文本類型數(shù)據(jù)轉(zhuǎn)化成數(shù)值型數(shù)據(jù)。最后,就是選擇分類器對(duì)文本進(jìn)行分類,傳統(tǒng)的機(jī)器學(xué)習(xí)方法如:王藝穎[1]和鐘磊[2]使用的樸素貝葉斯(Naive Bayesian,NB),殷亞博等[3]和Liu等[4]使用了K-近鄰(K-Nearest Neighbor,KNN),郭超磊等[5]使用了支持向量機(jī)(Support Vector Machine,SVM),姚立等[6]使用了隨機(jī)森林(Random Forest);深度學(xué)習(xí)方法,如:Wei 等[7]使用了卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN),Hu 等[8]使用了循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN),馮國(guó)明等[9]使用了膠囊網(wǎng)絡(luò)(Capsule Network,CapsNet)等。
文本分類屬于自然語(yǔ)言處理范疇,一般是使用機(jī)器學(xué)習(xí)進(jìn)行分類操作的,所以提出了很多關(guān)于機(jī)器學(xué)習(xí)模型和模型的改進(jìn)算法。文本分類中一個(gè)很重要的發(fā)展是由原來(lái)僅通過(guò)簡(jiǎn)單的提取關(guān)鍵字轉(zhuǎn)變?yōu)橥ㄟ^(guò)理解語(yǔ)義和聯(lián)系上下文而獲取文本信息。主題模型能根據(jù)一個(gè)文本提取出多個(gè)主題[5],不受文本的位置和詞語(yǔ)的數(shù)量影響。word2vec 對(duì)于文本分類來(lái)說(shuō)是另一個(gè)重要的突破,Church[10]和薛煒明等[11]使用word2vec有效地解決了文本向量維度過(guò)大問(wèn)題,通過(guò)CBOW(Continuous Bag of Words)或Skip-Gram模型,可以得到既定的詞語(yǔ)和既定詞語(yǔ)上下文中可能出現(xiàn)的詞語(yǔ),word2vec使得每個(gè)詞語(yǔ)的向量表示具有了具體的意義。將word2vec 與CNN、長(zhǎng)短記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)、支持向量機(jī)(SVM)相結(jié)合有效地提高了分類速度,也提高了準(zhǔn)確度。近幾年又出現(xiàn)了膠囊網(wǎng)絡(luò),它在CNN的基礎(chǔ)上進(jìn)行了改進(jìn),用動(dòng)態(tài)路由代替CNN中的池化操作。在實(shí)踐中,膠囊網(wǎng)絡(luò)更是適用于圖片分類和文本分類。Zhao等[12]最先將膠囊網(wǎng)絡(luò)用于文本分類,先使用一層卷積層對(duì)不同位置進(jìn)行特征的提取,再使用兩層膠囊層進(jìn)行訓(xùn)練,最后使用全連接膠囊層輸出每個(gè)文本類型的概率進(jìn)行softmax分類。本文在原有的膠囊網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)行了改進(jìn):先使用一層卷積層對(duì)不同位置的特征進(jìn)行提?。蝗缓笫褂靡粚幽z囊層對(duì)上層的卷積操作的標(biāo)量輸出替換為矢量輸出,從而保留了文本的詞語(yǔ)順序和語(yǔ)義;再使用一層卷積層對(duì)不同位置的特征再次進(jìn)行特征的提取,提取完成后,再次使用膠囊層。
2011 年,Hinton 等[13]首次引入膠囊網(wǎng)絡(luò)。其核心思想是使用膠囊來(lái)代替卷積神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元,使網(wǎng)絡(luò)可以保留對(duì)象之間詳細(xì)的姿態(tài)信息和空間層級(jí)關(guān)系。2017 年,Sabour等[14]在神經(jīng)信息處理系統(tǒng)大會(huì)上發(fā)表論文,進(jìn)一步提出了膠囊間的動(dòng)態(tài)路由算法與膠囊神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。該論文介紹了一個(gè)在MNIST(著名的手寫數(shù)字圖像數(shù)據(jù)集)上達(dá)到最先進(jìn)性能的膠囊網(wǎng)絡(luò)架構(gòu),并且朱娟等[15]在MultiMNIST(一種不同數(shù)字重疊對(duì)的變體)上得到了比卷積神經(jīng)網(wǎng)絡(luò)更好的結(jié)果。張?zhí)熘龋?6]將膠囊網(wǎng)絡(luò)進(jìn)行改進(jìn)用于圖像識(shí)別,在MNIST 數(shù)據(jù)集上準(zhǔn)確率可達(dá)到99.37%。
膠囊網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)不同的地方有:用向量膠囊代替卷積神經(jīng)網(wǎng)絡(luò)中的神經(jīng)元、動(dòng)態(tài)路由代替池化操作、Squash函數(shù)代替ReLU 激活函數(shù)。膠囊網(wǎng)絡(luò)不同于卷積神經(jīng)網(wǎng)絡(luò)的三大部分是標(biāo)量到向量的轉(zhuǎn)化、Squash 壓縮激活函數(shù)和動(dòng)態(tài)路由。膠囊網(wǎng)絡(luò)原理圖如圖1所示,其中,ui表示低層特征,wij表示低層特征與高層特征之間的關(guān)系,uj|i表示高層特征。
圖1 膠囊工作原理示意圖Fig.1 Schematic diagram of capsule working principle
卷積神經(jīng)網(wǎng)絡(luò)接收到神經(jīng)元輸入的標(biāo)量后,將標(biāo)量乘以權(quán)重,然后相加得到總和,最后將總和傳遞給一個(gè)非線性激活函數(shù),生成一個(gè)輸出標(biāo)量,作為下一層的輸入變量。其工作原理可用3個(gè)步驟描述:
1)將輸入標(biāo)量xi乘上權(quán)重wi;
2)對(duì)所有的xi×wi進(jìn)行求和,得到S;
3)將S傳遞給非線性激活函數(shù)f(·),得到輸出標(biāo)量y。
膠囊網(wǎng)絡(luò)不同于卷積神經(jīng)網(wǎng)絡(luò)的是,在進(jìn)行加權(quán)求和時(shí)增加了一步。其工作原理可用4個(gè)步驟描述:
1)將輸入向量ui乘上權(quán)重矩陣wij,得到了新的輸入向量uj|i。
2)將輸入向量uj|i乘上權(quán)重cj|i,其中cj|i由動(dòng)態(tài)路由決定。
3)對(duì)所有的uj|i×cj|i進(jìn)行求和,得到向量Sj。
4)用壓縮激活函數(shù)Squash,將Sj轉(zhuǎn)化向量vj。
激活層就是對(duì)卷積層的輸出結(jié)果做一次非線性映射。本文采用的是ReLU函數(shù),表達(dá)式如式(1)所示:
當(dāng)x大于0 時(shí),ReLU 函數(shù)的導(dǎo)數(shù)恒等于1,所以在卷積神經(jīng)網(wǎng)絡(luò)中不會(huì)導(dǎo)致梯度消失和爆炸問(wèn)題。若負(fù)數(shù)值過(guò)多,由式(1)看來(lái),這部分的值就都為0,這導(dǎo)致了相應(yīng)的神經(jīng)元無(wú)法激活,但是可以通過(guò)設(shè)置學(xué)習(xí)率來(lái)解決。
膠囊網(wǎng)絡(luò)使用的是壓縮激活函數(shù)Squash,Squash 函數(shù)的公式如式(2)所示:
式(2)簡(jiǎn)寫為vj=A·B,Squash 函數(shù)還有功能是使得向量的長(zhǎng)度不超過(guò)1,而且保持vj和Sj同方向。其中A項(xiàng)可以看出Sj的模長(zhǎng)越長(zhǎng),則A項(xiàng)的值越大,則Sj代表的特征就越強(qiáng),輸出值也就越大。B項(xiàng)是將Sj模長(zhǎng)壓縮為1。由式(7)看來(lái),vj的模長(zhǎng)在0~1,方向同Sj同一個(gè)方向。
卷積神經(jīng)網(wǎng)絡(luò)的池化層又稱為下采樣或欠采樣,用于特征降維,減少參數(shù),還起著加快計(jì)算速度和防止過(guò)擬合的作用。主要有最大池化和平均池化兩種方式。本文采用的是最大池化,原理圖如圖2所示。
圖2 最大池化原理Fig.2 Maximum pooling principle
采用最大池化操作,通過(guò)調(diào)整池化窗口參數(shù),提取出每張?zhí)卣鲌D中最具有說(shuō)服力的局部最優(yōu)特征,從而生成每一行是每一篇文本進(jìn)行一次最大池化抽樣的結(jié)果的矩陣。這樣也起到約減參數(shù)的作用,提高了模型的適應(yīng)性。
膠囊網(wǎng)絡(luò)通過(guò)采用動(dòng)態(tài)路由可代替卷積神經(jīng)網(wǎng)絡(luò)中的池化層,對(duì)輸入的特征進(jìn)行聚類,即相似特征越多,這類特征就越強(qiáng),由此進(jìn)行了一次特征選擇過(guò)程,達(dá)到池化層特征選擇的目的。
動(dòng)態(tài)路由偽代碼如下所示。
膠囊網(wǎng)絡(luò)最先開(kāi)始用在圖像上,Zhao 等[12]第一次將膠囊網(wǎng)絡(luò)用在文本分類上,在多分類標(biāo)簽上的效果明顯優(yōu)于卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)。
該模型主要分為4 個(gè)部分:第1 部分是一個(gè)標(biāo)準(zhǔn)的卷積層,通過(guò)多個(gè)不同的卷積核在句子的不同位置提取特征;第2部分為主膠囊層,該層是將卷積操作中的標(biāo)量輸出替換為矢量輸出,從而保留了文本的單詞順序和語(yǔ)義信息;第3 部分為卷積膠囊層,在這一層中,膠囊通過(guò)與變換矩陣相乘來(lái)計(jì)算子膠囊與父膠囊的關(guān)系,然后根據(jù)路由協(xié)議更新上層膠囊層的權(quán)重;第4 部分是全連接膠囊層,膠囊乘上變換矩陣,然后按照路由協(xié)議生成最終的膠囊及其對(duì)每個(gè)類的概率。4 個(gè)部分中包括1層卷積層和3次膠囊層。
本文在Zhao 等[12]的模型基礎(chǔ)上又增加了1 層卷積層,用來(lái)再次提取不同位置上的特征,使得特征提取更加地細(xì)致?;诟倪M(jìn)膠囊網(wǎng)絡(luò)的文本分類模型如圖3所示。
圖3 改進(jìn)膠囊網(wǎng)絡(luò)的文本分類模型Fig.3 Text classification model of improved capsule network
模型主要分成了5 層,分別是N-gram 卷積層、主膠囊層、卷積層、卷積膠囊層和全連接膠囊層。
該層卷積層通過(guò)卷積在文本的不同位置提取N-gram 特征,若X為文本中的一條文本,其長(zhǎng)度為L(zhǎng),詞嵌入大小為V,即X的維度大小為L(zhǎng)×V,Xi為文本X中的第i個(gè)詞語(yǔ),Xi的維度為V。設(shè)N-gram 滑動(dòng)大小為K1,Wα為卷積運(yùn)算操作的濾波器,則Wα的維度為K1×V。濾波器每次移動(dòng)的單詞窗口為Xi至Xi+K1-1,產(chǎn)生的特征為mα,其維度為L(zhǎng)-K1+1,則每個(gè)單詞特征mi的特征如式(3)所示:
其中:b0為偏置項(xiàng);?()為非線性激活函數(shù)。若有B個(gè)濾波器,即α=1,2,…,B,則所得的特征M的維度為(L-K1+1)×B。卷積操作工作原理如圖4所示,其中,w1、w2、w3為u1、u2、u3的權(quán)重系數(shù),b為偏置項(xiàng)系數(shù),這里的u1、u2、u3為底層特征ui的具體舉例。
圖4 卷積操作工作原理示意圖Fig.4 Schematic diagram of convolution operation working principle
設(shè)膠囊的維度為d,pi為N-gram 產(chǎn)生的實(shí)例化參數(shù),Mi為每個(gè)滑動(dòng)窗口的向量,其維度為B,Wb表示為不同的滑動(dòng)窗口的共享濾波器,其維度為B×d。生成膠囊P的維度為(L-K1+1)×d,則pi的表示如式(4)所示:
其中:g()表示非線性壓縮函數(shù);b1為膠囊的偏置項(xiàng)。對(duì)于所有的濾波器C來(lái)說(shuō),膠囊特征P可以表示為式(5)所示結(jié)構(gòu):
其中P的維度為(L-K1+1)×d×C。
再次進(jìn)行卷積操作時(shí),可設(shè)置較少的濾波器的個(gè)數(shù),一個(gè)濾波器提取一個(gè)特征,濾波器的個(gè)數(shù)減少后,特征的個(gè)數(shù)也隨之減少,訓(xùn)練的維度就降低了,節(jié)約了時(shí)間成本。再次使用卷積操作更加細(xì)化了特征的提取過(guò)程,使得提取出來(lái)的特征更有利于文本的分類。
卷積膠囊層的膠囊維度應(yīng)與多標(biāo)簽文本分類的分類數(shù)量相關(guān),每一層都代表了每一個(gè)類型的概率,而主膠囊層的膠囊維度可任意設(shè)置。
卷積膠囊層的被壓扁成一個(gè)膠囊列表,并送入到全連接膠囊層。
全連接層可以學(xué)習(xí)到局部和全局的特征,因?yàn)槠漭斎氩糠譃榫矸e層和動(dòng)態(tài)路由的輸出,卷積層提取的是局部特征,動(dòng)態(tài)路由得到的是全局特征。全連接層的輸出如式(6)所示:
其中:x為神經(jīng)元的輸入;hW,b(x)為輸出;T為W的轉(zhuǎn)置,將輸出節(jié)點(diǎn)送入softmax分類器進(jìn)行概率預(yù)測(cè),完成文本分類任務(wù)。
實(shí)驗(yàn)采用了兩組數(shù)據(jù)集:一組做多標(biāo)簽分類;另一組做二分類問(wèn)題。
多標(biāo)簽分類實(shí)驗(yàn)采用了搜狗實(shí)驗(yàn)室的中文新聞數(shù)據(jù)集,該數(shù)據(jù)集包括了429 819 條新聞,能夠被標(biāo)出類別的有320 045條新聞,共有13類,剔除掉2類因樣本數(shù)不足的數(shù)據(jù),最后保留了其中的11 類作為分類數(shù)據(jù)文本。每類新聞選擇2 000條文本,訓(xùn)練集、驗(yàn)證集和測(cè)試集的劃分比例為16∶4∶5。數(shù)據(jù)集分布如表1所示。
表1 數(shù)據(jù)集分布Tab.1 Dataset distribution
實(shí)驗(yàn)的預(yù)處理部分先將下載好的數(shù)據(jù)進(jìn)行轉(zhuǎn)碼,然后給文本加上標(biāo)簽,分詞選用的是中文文本采用的jieba 分詞工具,由于有些新聞字?jǐn)?shù)太多,為了減少維度的損失,固定文本長(zhǎng)度為100個(gè)字符。
二分類實(shí)驗(yàn)選用了IMDB 數(shù)據(jù)集包含來(lái)自互聯(lián)網(wǎng)電影數(shù)據(jù)庫(kù)12 500 個(gè)正面電影評(píng)論和12 500 個(gè)負(fù)面電影評(píng)論,每個(gè)句子的長(zhǎng)度都固定為150 個(gè)字符,如果長(zhǎng)度大于150 個(gè)字符,則將超過(guò)的部分截掉;如果小于150 字符,則在最前面用數(shù)字“0”填充。
實(shí)驗(yàn)采用了python 作為算法的實(shí)現(xiàn)語(yǔ)言,由于CNN、LSTM 和CapsNet 是最常見(jiàn)的神經(jīng)網(wǎng)絡(luò)模型。所以,先比較CNN、LSTM和CapsNet三種相關(guān)方法的分類效果,再進(jìn)行比較改進(jìn)后的膠囊網(wǎng)絡(luò)與Zhao 等[12]提出的膠囊網(wǎng)絡(luò)的分類效果,實(shí)驗(yàn)最后加入word2vec進(jìn)行文本向量建模,分析實(shí)驗(yàn)結(jié)果。
3.2.1 相關(guān)實(shí)驗(yàn)
在進(jìn)行神經(jīng)網(wǎng)絡(luò)對(duì)比實(shí)驗(yàn)前,先對(duì)比了樸素貝葉斯、支持向量機(jī)、K-近鄰這三種傳統(tǒng)的機(jī)器學(xué)習(xí)方法,在多標(biāo)簽的數(shù)據(jù)集下,樸素貝葉斯的準(zhǔn)確率為84.38%,支持向量機(jī)的分類準(zhǔn)確率為84.41%,而K-近鄰在K值為14 時(shí)的分類準(zhǔn)確率僅為31.47%。實(shí)驗(yàn)證明:K-近鄰明顯地不適合應(yīng)用于文本分類。其他兩種傳統(tǒng)機(jī)器學(xué)習(xí)的方法,樸素貝葉斯和支持向量機(jī)在分類結(jié)果上占取了很大的優(yōu)勢(shì),不僅分類效果好,而且分類的時(shí)間較深度學(xué)習(xí)來(lái)說(shuō)縮短了很多,但是需要人工進(jìn)行特征構(gòu)造,可擴(kuò)展性差;而神經(jīng)網(wǎng)絡(luò)能夠自動(dòng)地學(xué)習(xí)構(gòu)造特征,具有較強(qiáng)的適應(yīng)能力。
CNN在搭建模型時(shí),首先將文本處理成矩陣的形式,作為輸入層的輸入,本文將每個(gè)文本處理成100×200 的矩陣形式。因?yàn)槲谋鹃L(zhǎng)度不一致,所以選取100 作為統(tǒng)一的文本長(zhǎng)度,超過(guò)100的文本截取前100個(gè)詞語(yǔ),不足的長(zhǎng)度的加零補(bǔ)齊。在進(jìn)行詞語(yǔ)獨(dú)熱編碼時(shí),形成了維度為200 的詞向量,這就形成100×200 的矩陣。再通過(guò)1 層卷積層與池化層來(lái)縮小向量長(zhǎng)度,再加一層壓平層將2 維向量壓縮到1 維,最后通過(guò)兩層全連接層將向量長(zhǎng)度收縮到12 上,對(duì)應(yīng)新聞分類的12 個(gè)類(其中標(biāo)簽0沒(méi)有用到)。CNN模型結(jié)構(gòu)如表2所示。
表2 CNN模型結(jié)構(gòu)Tab.2 CNN model structure
由于RNN 只考慮到最近狀態(tài),無(wú)法作用于前期狀態(tài),使得分類效果不佳,后來(lái)進(jìn)行了變形,能夠不僅能夠考慮到之前狀態(tài),還能決定哪些狀態(tài)該保留,哪些狀態(tài)該遺棄,這就是長(zhǎng)短期記憶(Long Short-Term Memory,LSTM)網(wǎng)絡(luò)。LSTM 模型結(jié)構(gòu)如表3所示。
CapsNet 同CNN 一樣的是,都需要進(jìn)行一層卷積層,不同的是經(jīng)過(guò)膠囊層后,輸出的結(jié)構(gòu)仍然是二維矩陣,不需要池化層進(jìn)行池化操作,capsule 層里已經(jīng)使用了動(dòng)態(tài)路由操作,可代替池化操作進(jìn)行特征選取,最后一層,同CNN 一樣,將全連接層輸出結(jié)構(gòu)變成一維矩陣,不同的是使用的激活函數(shù)為Squash函數(shù),該函數(shù)在應(yīng)用中可自行構(gòu)造。CapsNet模型結(jié)構(gòu)如表4所示。
表3 LSTM模型結(jié)構(gòu)Tab.3 LSTM model structure
表4 CapsNet模型結(jié)構(gòu)Tab.4 CapsNet model structure
實(shí)驗(yàn)從訓(xùn)練集、驗(yàn)證集和測(cè)試集三個(gè)方面比較分類效果,實(shí)驗(yàn)結(jié)果如表5所示。
表5 不同神經(jīng)網(wǎng)絡(luò)分類精度對(duì)比Tab.5 Classification precision comparison of different neural networks
三種方法都是經(jīng)過(guò)了3 次迭代過(guò)程,在訓(xùn)練集上的分類精度都達(dá)到了90%以上,其中膠囊網(wǎng)絡(luò)分類精度最高,達(dá)到了98.62%。在驗(yàn)證集上的分類精度都達(dá)到了85%以上,其中還是膠囊網(wǎng)絡(luò)的精度最高,達(dá)到了89.03%。最后比較測(cè)試集,在測(cè)試集上的分類精度明顯低于訓(xùn)練集和驗(yàn)證集,但是,膠囊網(wǎng)絡(luò)的分類精度還是最高,達(dá)到了84.06%。由此可見(jiàn),在文本分類中,膠囊網(wǎng)絡(luò)的分類效果要優(yōu)于卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)。
膠囊網(wǎng)絡(luò)是在卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上提出來(lái),用來(lái)解決池化操作帶來(lái)的特征信息丟失問(wèn)題的??紤]到卷積神經(jīng)網(wǎng)絡(luò)缺失的相對(duì)位置、角度等其他信息的問(wèn)題,膠囊網(wǎng)絡(luò)變標(biāo)量信息為矢量信息,增加了對(duì)位置和角度等信息的提取,從而使得識(shí)別效果有所提升。卷積神經(jīng)網(wǎng)絡(luò)能夠注意到各部分的局部特征,但是卻忽略了位置和角度等主要信息。以圖像人臉為例,卷積神經(jīng)網(wǎng)絡(luò)能夠識(shí)別圖像中的各個(gè)局部特征,如鼻子、眼睛和嘴巴等,但是對(duì)其位置和角度卻不做考慮。若嘴巴在額頭上,眼睛在下巴上,只要鼻子眼睛嘴巴這些局部特征都在,卷積神經(jīng)網(wǎng)絡(luò)會(huì)認(rèn)為該圖片就是一張人臉。所以在進(jìn)行文本分類的過(guò)程中卷積神經(jīng)網(wǎng)絡(luò)只能聯(lián)系各個(gè)局部特征是否存在,并不會(huì)聯(lián)系其內(nèi)部結(jié)構(gòu)問(wèn)題,這就使得了分類效果不如膠囊網(wǎng)絡(luò)。
3.2.2 改進(jìn)膠囊網(wǎng)絡(luò)實(shí)驗(yàn)
從訓(xùn)練集、驗(yàn)證集、測(cè)試集和時(shí)間4 個(gè)方面比較CapNet、文獻(xiàn)[12]模型和本文提出的CapNet 的分類精度,實(shí)驗(yàn)結(jié)果如表6所示。
表6 不同膠囊網(wǎng)絡(luò)分類精度對(duì)比Tab.6 Classification precision comparison of different CapsNets
從表6 的實(shí)驗(yàn)結(jié)果中可以看出,改進(jìn)后的膠囊網(wǎng)絡(luò)比單純的膠囊網(wǎng)絡(luò)的分類精度提高了2.14個(gè)百分點(diǎn),相較于Zhao等[12]提出的膠囊網(wǎng)絡(luò)的分類精度提高了1.17 個(gè)百分點(diǎn)。卷積操作的增加雖然增加了少量的訓(xùn)練時(shí)間,但是特征的提取也更加地細(xì)致,使得分類精度有所增加。隨著卷積操作的一層一層加入特征提取得越來(lái)越細(xì)致。以圖片為例進(jìn)行卷積操作,結(jié)果如圖5所示。
圖5 卷積操作特征提取Fig.5 Convolution operation for feature extraction
圖5 下方的3 張圖分別代表了第1 次卷積操作、第2 次卷積操作和第3次卷積操作后提取的特征。由圖5可以看出:第1次卷積可以提取出低層次的特征;第2次卷積可以提取出中層次的特征;第3 次卷積可以提取出高層次的特征。特征是不斷進(jìn)行提取和壓縮的,最終能得到比較高層次特征。本文進(jìn)行了兩次卷積操作,并沒(méi)有進(jìn)行更加多次的卷積操作,是因?yàn)榭紤]到過(guò)多地卷積操作會(huì)造成訓(xùn)練的過(guò)擬合現(xiàn)象,不僅增加了訓(xùn)練時(shí)間還降低了分類精度。在本文提出的網(wǎng)絡(luò)模型中若再增加一層卷積操作會(huì)出現(xiàn)過(guò)擬合現(xiàn)象導(dǎo)致分類精度的降低,其在測(cè)試集上的分類精度僅達(dá)到了80.82%,相較于本文的改進(jìn)模型分類精度降低了5.38個(gè)百分點(diǎn)。
3.2.3 加入word2vec擴(kuò)展實(shí)驗(yàn)
最后將word2vec加入到本文的方法中,再次進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表7所示。
表7 word2vec實(shí)驗(yàn)結(jié)果Tab.7 word2vec experimental results
從表7 中可以看出,word2vec 的加入使得了文本的分類精度不僅沒(méi)有增加反而減小了0.64 個(gè)百分點(diǎn)。word2vec 從大量文本語(yǔ)料中以無(wú)監(jiān)督的方式學(xué)習(xí)語(yǔ)義信息,即通過(guò)一個(gè)嵌入空間使得語(yǔ)義上相似的單詞在該空間內(nèi)距離很近。其基本思想是把自然語(yǔ)言中的每一個(gè)詞,表示成一個(gè)統(tǒng)一意義統(tǒng)一維度的短向量。但是由于語(yǔ)境的不完善,上下文的聯(lián)系不夠密切,并不能捕捉到全局的信息,這使得分類效果反而降低。
3.2.4 多標(biāo)簽分類實(shí)驗(yàn)結(jié)果總結(jié)
多標(biāo)簽分類問(wèn)題是文本分類的主要部分,本文實(shí)驗(yàn)采用的是搜狗實(shí)驗(yàn)室的中文新聞數(shù)據(jù)集,該數(shù)據(jù)集具有一定的代表性。其實(shí)驗(yàn)結(jié)果總結(jié)如圖6所示。
圖6 多標(biāo)簽分類實(shí)驗(yàn)結(jié)果Fig.6 Experimental results of multi-label classification
實(shí)驗(yàn)對(duì)比了長(zhǎng)短記憶網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、膠囊網(wǎng)絡(luò)、Zhao 等[14]提出的膠囊網(wǎng)絡(luò)和本文提出的改進(jìn)膠囊網(wǎng)絡(luò)(Improved CapsNet)[12]的分類效果。實(shí)驗(yàn)結(jié)果顯示,本文的改進(jìn)膠囊網(wǎng)絡(luò)模型比多標(biāo)簽實(shí)驗(yàn)中的其他4 種模型來(lái)說(shuō)效果更好。
由于多分類實(shí)驗(yàn)的結(jié)果顯示,LSTM并不適用于文本的分類問(wèn)題,所以,二分類實(shí)驗(yàn)并沒(méi)有考慮再次使用其方法進(jìn)行實(shí)驗(yàn)。二分類實(shí)驗(yàn)進(jìn)行了卷積神經(jīng)網(wǎng)絡(luò)、膠囊網(wǎng)絡(luò)、Zhao 等[12]提出的膠囊網(wǎng)絡(luò)和本文改進(jìn)的膠囊網(wǎng)絡(luò)分類實(shí)驗(yàn),其結(jié)果如圖7所示。
圖7 二分類實(shí)驗(yàn)結(jié)果Fig.7 Experimental results of binary classification
從圖7 可以發(fā)現(xiàn)在二分類的電影評(píng)論數(shù)據(jù)集上,改進(jìn)過(guò)后的膠囊網(wǎng)絡(luò)在測(cè)試集上的分類精度達(dá)到了87.03%,單純的卷積神經(jīng)網(wǎng)絡(luò)和膠囊網(wǎng)絡(luò)分別是86%和85.94%,而Zhao等[12]提出的膠囊網(wǎng)絡(luò)的分類精度為86.50%。從測(cè)試集上來(lái)看,改進(jìn)過(guò)后的膠囊網(wǎng)絡(luò)的分類效果還是優(yōu)于其他三類網(wǎng)絡(luò)模型的分類效果。雖然測(cè)試集上的優(yōu)勢(shì)不是很大,但是在驗(yàn)證集上,本文改進(jìn)過(guò)后的膠囊網(wǎng)絡(luò)明顯地優(yōu)于其他網(wǎng)絡(luò)模型,比單純的卷積神經(jīng)網(wǎng)絡(luò)和膠囊網(wǎng)絡(luò)提高了7.28 個(gè)百分點(diǎn)和5.6 個(gè)百分點(diǎn),比Zhao 等[12]提出的膠囊網(wǎng)絡(luò)提高了3.84 個(gè)百分點(diǎn)。
膠囊網(wǎng)絡(luò)有效地克服了卷積神經(jīng)網(wǎng)絡(luò)的池化層操作的弊端,動(dòng)態(tài)路由在效果和理論解釋性上都優(yōu)于最大池化操作,但同時(shí)也增加了網(wǎng)絡(luò)的計(jì)算量。單獨(dú)的膠囊網(wǎng)絡(luò)在文本分類中的分類精度并沒(méi)有達(dá)到最大化,本文將卷積操作與膠囊網(wǎng)絡(luò)進(jìn)行結(jié)合用于文本分類,實(shí)驗(yàn)結(jié)果顯示,無(wú)論是多標(biāo)簽分類還是二分類,本文的方法都比其他方法分類精度要高。膠囊網(wǎng)絡(luò)中的壓縮激活函數(shù)Squash,總體上能很好地解釋其原理,但是第一項(xiàng)中的“1”,并沒(méi)有解釋,在實(shí)驗(yàn)過(guò)程中發(fā)現(xiàn),可用其他小于1的非負(fù)小數(shù)代替“1”,比如0.5,其結(jié)果優(yōu)于Hinton 設(shè)置的“1”。如何設(shè)置Squash 中的實(shí)數(shù)參數(shù),在未來(lái)的研究中有待解決。