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