鐘桂鳳,龐雄文,孫道宗
(1.廣州理工學(xué)院計(jì)算機(jī)科學(xué)與工程學(xué)院,廣東 廣州 510540) (2.華南師范大學(xué)計(jì)算機(jī)學(xué)院,廣東 廣州 530631) (3.華南農(nóng)業(yè)大學(xué) 電子工程學(xué)院,廣東 廣州 510642)
互聯(lián)網(wǎng)飛速發(fā)展,大規(guī)模網(wǎng)絡(luò)文本數(shù)據(jù)分析研究應(yīng)運(yùn)而生,通過(guò)分類,將網(wǎng)絡(luò)中的數(shù)據(jù)進(jìn)行歸檔整理,提高數(shù)據(jù)管理的有效性. 網(wǎng)絡(luò)文本的格式不標(biāo)準(zhǔn)及編碼方式的多樣性[1],以及文本長(zhǎng)度的差異性,使得文本分類的難度提升. 在采用深度學(xué)習(xí)的文本分類中,由于普通文本不同于變量屬性特征,可以直接進(jìn)行輸入并通過(guò)深度學(xué)習(xí)訓(xùn)練而獲得結(jié)果,在文本分類之前,需要通過(guò)向量轉(zhuǎn)換,然后進(jìn)行訓(xùn)練獲得分類結(jié)果,這種方法對(duì)分類精度造成了影響,因此需要進(jìn)一步優(yōu)化深度學(xué)習(xí)算法,以提高深度學(xué)習(xí)對(duì)文本分類的適用度.
當(dāng)前關(guān)于文本分類的研究較多,于游等[2]對(duì)常見(jiàn)的中文文本分類方法做了系統(tǒng)闡述,比較了各類方法對(duì)于不同文本的適用度及優(yōu)缺點(diǎn),給后續(xù)文本分類算法研究提供了借鑒;郭超磊等[3]采用SVM方法進(jìn)行中文文本分類,可以達(dá)到一定的分類效果,但分類準(zhǔn)確度不高,且對(duì)分類樣本的格式要求嚴(yán)格,對(duì)網(wǎng)絡(luò)各種符號(hào)及文字混合的文本分類適用度不高;Shu等[4]對(duì)學(xué)習(xí)推薦開(kāi)展了研究,提出了基于潛在因素模型的CNN文本分類模型,分類精度高,但是基于內(nèi)容的CNN結(jié)構(gòu)存在分類效率及穩(wěn)定性不理想的問(wèn)題. 本文采用卷積神經(jīng)網(wǎng)絡(luò)對(duì)普通文本進(jìn)行分類,為了提高文本分類的性能,引入差分進(jìn)化(differential evolution,DE)算法對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化求解,并對(duì)差分算法的縮放因子采取自適應(yīng)策略,以提高優(yōu)化求解精度,通過(guò)差分進(jìn)化優(yōu)化的卷積神經(jīng)網(wǎng)絡(luò)算法,可以有效提高文本分類精度及RMSE性能.
設(shè)種群規(guī)模為N,屬性維度為D,差分縮放因子為F,交叉速率CR,每個(gè)個(gè)體的取值為[Umin,Umax],則第i個(gè)個(gè)體 的j維屬性可表示為[5]:
xij=Umin+rand×(Umax-Umin),
(1)
式中,i=1,2,…,N,j=1,2,…,D,rand為(0,1)隨機(jī)數(shù).
(2)
式中,i≠r1≠r2≠r3,r1、r2和r3為第G代中除了編號(hào)為i的個(gè)體之外的隨機(jī)3個(gè)個(gè)體.F常見(jiàn)取值[0,2].
個(gè)體交叉方法為[7]:
(3)
(4)
式中,f表示適應(yīng)度函數(shù).當(dāng)達(dá)到最大代數(shù)Gmax時(shí),DE算法停止.
F常見(jiàn)取值[0,2],DE的優(yōu)化過(guò)程與F值密切,F值不合適將會(huì)造成差分進(jìn)化算法的優(yōu)化性能不高的問(wèn)題,因此在計(jì)算時(shí)引入自適應(yīng)F值[8].Fmin和Fmax范圍為[0,2],則:
(5)
F值隨著進(jìn)化代數(shù)G的變化而逐漸變小,前期進(jìn)化追求種群多樣化,后期注重搜索能力,這樣DE算法更容易獲得最優(yōu)個(gè)體.
設(shè)文本樣本集X=(x1,x2,…,xN),m個(gè)文本屬性特征通過(guò)第l層卷積運(yùn)算得[9]:
(6)
式中,klj和blj分別表示l層對(duì)特征j賦予的權(quán)重及偏置,*為卷積,f(·)為:
(7)
對(duì)N個(gè)樣本的m個(gè)特征進(jìn)行卷積,卷積核尺寸(kernel size)h×w,按照公式(8)進(jìn)行:
(8)
令M=N/(h×w),那么原樣本X=(x1,x2,…xN)經(jīng)過(guò)卷積池化后重新得到的樣本為X′=(x1,x2,…,xM).
然后X′進(jìn)行轉(zhuǎn)換運(yùn)算[10]:
(9)
限制條件為:∑aij=1,0≤aij≤1.
根據(jù)公式(9)得到CNN所有連接層,最后選擇分類器預(yù)測(cè)樣本類別.
設(shè)第k個(gè)節(jié)點(diǎn)的訓(xùn)練輸出和實(shí)際值分別為yk和dk,則誤差項(xiàng)δk為:
δk=(dk-yk)yk(1-yk).
(10)
假設(shè)第l、l+1層分別包含L和P個(gè)節(jié)點(diǎn),則第l層節(jié)點(diǎn)j的誤差為[11]:
(11)
式中,hj為輸出,Wjk為神經(jīng)元j到l+1層神經(jīng)元k的權(quán)重,更新方法為:
(12)
式中,η為學(xué)習(xí)率.
偏置Δbk(n)的更新方式為[12]:
(13)
式中,α為偏置更新步長(zhǎng),一般α=1.調(diào)整后的權(quán)重為:
wjk(n+1)=wjk(n)+Δwjk(n).
(14)
調(diào)整后的偏置為:
bk(n+1)=bk(n)+Δbk(n).
(15)
所有節(jié)點(diǎn)的誤差E為:
(16)
當(dāng)E滿足設(shè)定的閾值,迭代停止,獲得穩(wěn)定的CNN模型.
圖1 分類流程Fig.1 Classification process
1.3 DE-CNN模型的分類流程
在運(yùn)用CNN對(duì)文本進(jìn)行分類之前,首先需要對(duì)待分類的樣本數(shù)據(jù)進(jìn)行word2vec轉(zhuǎn)換[13],這主要是為了解決文本屬性的向量化過(guò)程,轉(zhuǎn)換后的Skip-gram便于進(jìn)行CNN的有效輸入. 建立了CNN文本分類模型之后,將隨機(jī)權(quán)重和偏置通過(guò)DE算法優(yōu)化求解,根據(jù)文本分類準(zhǔn)確度函數(shù)建立適應(yīng)度函數(shù),通過(guò)DE的多代進(jìn)化,獲得權(quán)重和偏置最優(yōu)個(gè)體,最后CNN進(jìn)行分類訓(xùn)練獲得文本分類結(jié)果.
為了驗(yàn)證差分進(jìn)化的卷積神經(jīng)網(wǎng)絡(luò)算法在文本分類中的性能,進(jìn)行實(shí)例仿真. 首先,對(duì)不同的差分進(jìn)化算法參數(shù)進(jìn)行性能仿真,其次對(duì)不同卷積核尺寸的性能進(jìn)行仿真,最后將本文算法與常用文本分類算法進(jìn)行性能對(duì)比仿真.
文本分類仿真的數(shù)據(jù)來(lái)源為SST(stanford sentiment treebank)和THUCnews新聞數(shù)據(jù). 其中SST數(shù)據(jù)樣本11 852個(gè),5個(gè)類別;而THUCnews選取了7類共計(jì)10 500個(gè)新聞樣本. 通過(guò)算法對(duì)新聞文檔進(jìn)行分類,從而能夠?qū)崿F(xiàn)新聞自動(dòng)歸檔. 樣本具體分布結(jié)構(gòu)如表1所示.
表1 THUCnews文本集Table 1 THUCnews text set
對(duì)從表1中的文本采用word2vec得到Skip-gram結(jié)構(gòu),從而完成了本文至屬性向量映射,這樣文本樣本就可以進(jìn)行CNN分類訓(xùn)練. 在仿真過(guò)程中,THUCnews和SST樣本集分別按照總樣本容量的7∶2∶1的比例數(shù)量進(jìn)行訓(xùn)練、測(cè)試和驗(yàn)證.
本文DE算法設(shè)置的初值Fmin=0.2,Fmax=0.9,CR=0.1,Gmax=100. CNN卷積核默認(rèn)2*2.
采用不同kernel size的CNN結(jié)構(gòu)分別對(duì)THUCnews和SST樣本進(jìn)行仿真.
從表2可得,選擇卷積核尺寸為3*3效果最佳,THUCnews的數(shù)據(jù)樣本分類準(zhǔn)確率到了92.16%,而SST數(shù)據(jù)樣本分類準(zhǔn)確率達(dá)到了93.27%. 當(dāng)尺寸增大時(shí),2個(gè)數(shù)據(jù)集的分類準(zhǔn)確率和標(biāo)準(zhǔn)差均在下降,這是因?yàn)榫矸e尺寸過(guò)大,造成了卷積粒度大減少了樣本重要屬性參與卷積及轉(zhuǎn)換運(yùn)算的機(jī)會(huì).
表2 分類準(zhǔn)確率Table 2 Classification accuracy
圖2 分類準(zhǔn)確率(卷積核3*3)Fig.2 Classification accuracy(convolution kernel 3*3)
對(duì)比發(fā)現(xiàn),DE-CNN算法對(duì)SST的分類性能優(yōu)于THUCnews數(shù)據(jù)集,這可能是因?yàn)門(mén)HUCnews類別數(shù)較多而不易分類造成的. 當(dāng)卷積核尺寸為3*3時(shí),DE-CNN算法在THUCnews和SST數(shù)據(jù)集的收斂時(shí)間性能如圖2所示.
從圖2得,在卷積核設(shè)置為3*3時(shí),DE-CNN算法在THUCnews數(shù)據(jù)集的分類時(shí)間約為55s,而在SST數(shù)據(jù)集的分類時(shí)間約為50s,這主要是因?yàn)門(mén)HUCnews集的類別比SST集多的原因. 2個(gè)樣本收斂時(shí)的分類準(zhǔn)確率均超過(guò)了0.9.
2.2 DE算法的優(yōu)化性能
為了驗(yàn)證DE算法對(duì)CNN的優(yōu)化性能,分別采用CNN算法和DE-CNN算法對(duì)THUCnews集和SST集的樣本進(jìn)行性能仿真.
表3 CNN和DE-CNN算法的分類性能Table 3 Classification performance of CNN and DE-CNN algorithms
從表3可以看出,在3種不同數(shù)據(jù)集的文本分類中,經(jīng)過(guò)了DE優(yōu)化的CNN算法表現(xiàn)出了更優(yōu)的性能. 對(duì)于3個(gè)樣本集,DE-CNN文本分類的3個(gè)指標(biāo)均超過(guò)了0.9. DE-CNN的最大分類準(zhǔn)確率為93.18%,CNN最大分類準(zhǔn)確率僅為88.96%,準(zhǔn)確率提升明顯. 這主要是因?yàn)榻?jīng)過(guò)DE的權(quán)重優(yōu)化后,CNN獲得了更優(yōu)的權(quán)重和偏置初值,從而獲得了更準(zhǔn)確的文本分類性能,下面將繼續(xù)對(duì)兩種算法的收斂性能進(jìn)行對(duì)比.
從圖3和4得,DE-CNN相比于CNN的收斂性能優(yōu)勢(shì)明顯. 在THUCnews數(shù)據(jù)樣本分類中,DE-CNN收斂時(shí)RMSE約為0.18,而CNN收斂的RMSE值約為2.5;而在SST數(shù)據(jù)樣本分類中,DE-CNN收斂時(shí)RMSE約為0.16,而CNN收斂的RMSE值約為2.2,因此DE-CNN算法相比于CNN算法的分類穩(wěn)定性更好. 在收斂時(shí)間方面,對(duì)于2種不同的樣本集,CNN比DE-CNN收斂的時(shí)間少5s左右,這可能是因?yàn)镈E算法求解最優(yōu)權(quán)重和偏置的時(shí)間消耗,但從整個(gè)DE-CNN分類時(shí)間來(lái)看,DE算法消耗的時(shí)間占比很小,對(duì)文本分類時(shí)間影響較小.
圖3 2種算法的RMSE值(THUCnews集)Fig.3 RMSE values of the two algorithms(THUCnews set)
圖4 2種算法的RMSE值(SST集)Fig.4 RMSE values of two algorithms(SST set)
采用常用樸素貝葉斯(NB)[14]、神經(jīng)網(wǎng)絡(luò)(BP)[15]、LSTM神經(jīng)網(wǎng)絡(luò)(LSTM)[16]和本文算法分別對(duì)THUCnews和SST數(shù)據(jù)集進(jìn)行仿真.
圖6 4種算法的分類準(zhǔn)確率(SST數(shù)據(jù)集)Fig.6 Classification accuracy of four algorithms (SST dataset)
圖5 4種算法的分類準(zhǔn)確率(THUCnews數(shù)據(jù)集)Fig.5 Classification accuracy of four algorithms (THUCnews dataset)
從文本的分類準(zhǔn)確率來(lái)看,DE-CNN和LSTM算法的分類準(zhǔn)確率最高,穩(wěn)定時(shí)兩者的分類準(zhǔn)確率非常接近,且均超過(guò)了0.9,NB的分類準(zhǔn)確率最差,均小于0.8. 從分類時(shí)間方面來(lái)看,對(duì)于THUCnews和SST數(shù)據(jù)集,LSTM算法消耗時(shí)間最長(zhǎng),DE-CNN算法次之,NB算法最省時(shí).
下面繼續(xù)對(duì)4種算法在文本的分類穩(wěn)定性進(jìn)行仿真,驗(yàn)證4種算法的準(zhǔn)確率RMSE性能.
表4 不同算法的準(zhǔn)確率RMSE性能Table 4 Accuracy and RMSE performance of different algorithms
從表4的RMSE性能中可以看出,對(duì)于2種數(shù)據(jù)集,DE-CNN算法的分類準(zhǔn)確率RMSE值最優(yōu),NB表現(xiàn)最差. 相比而言,4種算法在SST集的RMSE性能表現(xiàn)更優(yōu),這可能是因?yàn)镾ST集待分類的類別數(shù)較少,而THUCnews需要分類的類別數(shù)較多,在文本分類時(shí),類別過(guò)多造成了分類準(zhǔn)確率值在多次分類中波動(dòng)較大,這也說(shuō)明分類準(zhǔn)確率RMSE值對(duì)分類類別數(shù)影響敏感. 綜合而言,對(duì)于THUCnews新聞集和SST情感集的文本分類,對(duì)比常見(jiàn)分類算法,在獲得較高分類準(zhǔn)確率的條件下,本文算法仍能獲得較好的分類時(shí)間和RMSE性能.
采用差分進(jìn)化的卷積神經(jīng)網(wǎng)絡(luò)算法應(yīng)用于文本分類,充分利用差分進(jìn)化算法的權(quán)重優(yōu)化求解優(yōu)勢(shì),提高了卷積神經(jīng)網(wǎng)絡(luò)算法在文本分類中的適用度,相比于常用文本分類算法,本文算法在分類準(zhǔn)確率及RMSE性能方面優(yōu)勢(shì)明顯. 后續(xù)研究將進(jìn)一步調(diào)整差分進(jìn)化參數(shù),以提高文本分類時(shí)間性能.