李云紅, 梁思程,任 劼,李敏奇,張 博,李禹萱
(1.西安工程大學(xué) 電子信息學(xué)院, 陜西 西安 710048;2.國(guó)網(wǎng)西安供電公司, 陜西 西安 710032)
當(dāng)前,互聯(lián)網(wǎng)發(fā)展迅猛,每時(shí)每刻都會(huì)產(chǎn)生大量的文本信息。其中,如何將蘊(yùn)含多主題、多字符的長(zhǎng)文本進(jìn)行有效的分類以及管理,進(jìn)而快速了解長(zhǎng)文本信息的價(jià)值,是許多研究者關(guān)注的焦點(diǎn)。文本分類主要包括文本表示、分類器的選擇與訓(xùn)練、分類結(jié)果的評(píng)價(jià)與反饋等工作[1]。其中,文本表示是影響分類結(jié)果的關(guān)鍵步驟。詞袋模型(bag of word,BoW)在文本表示中應(yīng)用最為廣泛[2],它將文本表示為高維度,高稀疏的One-hot向量。但One-hot向量因未考慮文本的語序和上下詞之間的聯(lián)系,詞之間相互獨(dú)立,導(dǎo)致文本信息大量丟失。為了克服詞袋模型文本表示的缺陷,Hinton[3]提出了詞向量(distributed representation)的概念。Bengio等[4]通過神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練詞向量進(jìn)行文本表示。Mikolov等[5-6]提出建立Skip-gram和CBoW神經(jīng)網(wǎng)絡(luò)模型,提升了詞向量訓(xùn)練的效率,提高了短語和句子等短文本分類的性能。Le和Mikolov等[7]提出了PV-DM(distributed memory model of paragraph vectors)神經(jīng)網(wǎng)絡(luò)模型,考慮了文本的語序信息,將文本表示為定長(zhǎng)的句向量或者段落向量,使句子級(jí)的文本分類研究成為可能,為本文對(duì)長(zhǎng)文本分類的特征表示提供了依據(jù)。
在文本的分類器訓(xùn)練方面,淺層樸素貝葉斯[8]、支持向量機(jī)(SVM)[9]、最大熵模型[10]等機(jī)器學(xué)習(xí)模型在詞、短語和句子等短文本分類中被廣泛應(yīng)用。Mikolov等人[11]提出了基于時(shí)間序列的循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN)模型,解決了淺層機(jī)器學(xué)習(xí)模型對(duì)關(guān)聯(lián)性強(qiáng)的樣本分類效果差,無法學(xué)習(xí)到類別內(nèi)信息等問題,改進(jìn)了文本分類的性能。Chung等人[12]針對(duì)RNN網(wǎng)絡(luò)隨著網(wǎng)絡(luò)層數(shù)的增加會(huì)面臨梯度爆炸或梯度消失的問題,提出了GRU(gated recurrent unit)網(wǎng)絡(luò)結(jié)構(gòu),改善了長(zhǎng)文本分類的性能。薛濤等人[13]將卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)用于文本處理,通過共享權(quán)重提升了文本分類器的性能。Collobert和Weston等人[14]將詞向量和多層一維卷積結(jié)構(gòu)用于自然語言處理。Kim等人[15]進(jìn)一步優(yōu)化了CNN結(jié)構(gòu),提出了動(dòng)態(tài)窗口與詞向量頻道結(jié)合的方法改進(jìn)文本特征的提取,在文本分類任務(wù)中取得了良好的效果。
綜上所述,現(xiàn)有文本分類研究集中在短語、句子等短文本分類,專門針對(duì)長(zhǎng)文本分類的研究較少。本文針對(duì)長(zhǎng)文本的分類問題,考慮到長(zhǎng)文本的語序?qū)﹂L(zhǎng)文本分類的影響,提出基于循環(huán)神經(jīng)網(wǎng)絡(luò)變體GRU和卷積神經(jīng)網(wǎng)絡(luò)(CNN)的BGRU-CNN混合模型,經(jīng)SogouC和THUCNews長(zhǎng)文本中文語料集的測(cè)試取得了較好的分類效果,提高了分類性能,驗(yàn)證了論文提出混合模型對(duì)長(zhǎng)文本分類的有效性。
在文本分類研究中,文本內(nèi)容的長(zhǎng)度一般沒有明確的定義,它只是一個(gè)相對(duì)概念,但是,其對(duì)分類的效果與速度會(huì)產(chǎn)生較大的影響。互聯(lián)網(wǎng)上的網(wǎng)絡(luò)評(píng)語、微博等都屬于短文本,新聞文本、科技論文等都屬于長(zhǎng)文本。以本文實(shí)驗(yàn)采用的THUCNews和SogouC和數(shù)據(jù)集為例,其文本長(zhǎng)度分布分別如圖1和圖2所示。
圖1 THUCNews文本長(zhǎng)度Fig.1 THUCNews text length
圖2 SogouC文本長(zhǎng)度Fig.2 SogouC text length
從圖1可見,THUCNews數(shù)據(jù)集文本長(zhǎng)度在500~2 000之間占到了絕大多數(shù)。從圖2可見,SogouC數(shù)據(jù)集文本長(zhǎng)度在500~1 500之間占到了絕大多數(shù)。因此,從總體來看,本文采用的兩個(gè)數(shù)據(jù)集都屬于長(zhǎng)文本。長(zhǎng)文本相較于短文本而言,會(huì)圍繞主題進(jìn)行更多的補(bǔ)充性說明和描寫,如“本次調(diào)查結(jié)果表明”,“幾天之后”等。另外,長(zhǎng)文本句子結(jié)構(gòu)完整,語法規(guī)范,常常包含許多轉(zhuǎn)承關(guān)系的詞語,如“新華網(wǎng)深圳3月3日電”,“據(jù)統(tǒng)計(jì)”等這些與主題相關(guān)性小的句子,會(huì)使分類時(shí)產(chǎn)生比較大的分析代價(jià)。
詞向量是目前廣泛使用的文本特征表示的方法,長(zhǎng)文本分類時(shí),因其句子數(shù)、段落數(shù)多,僅用詞向量難以表達(dá)復(fù)雜的文本語義,且訓(xùn)練耗時(shí)過長(zhǎng),結(jié)果不理想。因此,本文結(jié)合詞向量生成模型,采用PV-DM模型,使用無監(jiān)督的方法生成文本的段落向量,結(jié)構(gòu)如圖3所示。
圖3 PV-DM模型結(jié)構(gòu)Fig.3 PV-DM model structure
通過圖3建立PV-DM模型獲得句向量的表示。文本通過神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到詞向量W,將詞向量W與段落矩陣D拼接在一起。把詞向量序列w1,w2,…,wr所在段落標(biāo)為dm,則模型的目標(biāo)最大化平均對(duì)數(shù)表示為
(1)
使用Softmax分類器進(jìn)行分類工作,表示為
(2)
其中,yi的計(jì)算公式為
y=b+Uh(wt-1,…,wt+k,dm)。
(3)
式(3)中,U,b分別為Softmax分類器的權(quán)重和偏置,h由W和D拼接構(gòu)成。新增段落id可以被看作新的詞,每預(yù)測(cè)一個(gè)詞,就使用該詞所在段落的段落id作為新增加的輸入。在一個(gè)文本的訓(xùn)練過程中,段落id保持不變,共享著同一個(gè)段落矩陣。使用隨機(jī)梯度下降法訓(xùn)練所有參數(shù),訓(xùn)練結(jié)束后得到定長(zhǎng)的實(shí)向量,即段落向量(本文稱為句向量)。
將長(zhǎng)文本中長(zhǎng)度各異的句子表示為定長(zhǎng)的句向量,可以進(jìn)行句子級(jí)的文本分析,提高了長(zhǎng)文本分析的速度。
BGRU-CNN混合模型的整體結(jié)構(gòu)如圖4所示。BGRU-CNN混合模型的輸入為文本T,經(jīng)過循環(huán)層捕捉句子上下文信息,卷積層提取文本的關(guān)鍵特征,輸出為文本T屬于類別k的概率。
圖4 BGRU-CNN模型架構(gòu)Fig.4 BGRU-CNN model
1)循環(huán)層
采用雙向循環(huán)結(jié)構(gòu)捕獲第i個(gè)句子Si上文L(Si)和句子下文R(Si)的信息,計(jì)算方式為
L(Si)=f(Wl,L(Si-1)+Wsl,e(Si-1)),
(4)
R(Si)=f(Wr),R(Si+1)+Wsr,e(Si+1))。
(5)
式(4)中,e(Si-1)表示句子Si-1的句向量,L(Si-1)表示句子Si-1的上文信息,Wsl表示Si句子和Si-1句子語義信息組合的權(quán)陣,Wl為隱藏層的轉(zhuǎn)換權(quán)陣。f為激活函數(shù)。
然后,通過式(6)將上文信息L(Si)、句向量e(Si)和下文信息R(Si)拼接,構(gòu)成文本特征向量xi作為循環(huán)層的輸出。
xi=[L(Si),e(Si),R(Si)],
(6)
雙向循環(huán)結(jié)構(gòu)輸出的文本特征向量xi學(xué)習(xí)了文本上下文的語序信息,作為卷積層的輸入,進(jìn)一步提取文本語義特征。
2)卷積層
在循環(huán)層獲取文本特征向量xi后,使用CNN網(wǎng)絡(luò)進(jìn)行特征yi的提取,計(jì)算方式為
yi=f(ω·xi:h+b)。
(7)
其中,卷積核用ω∈Rhk表示,h和k分別表示卷積核的窗口高度和寬度,用來對(duì)循環(huán)層的輸出xi進(jìn)行卷積。xi:h表示輸入特征向量第i行到第h行的特征值。b為偏置,f為激活函數(shù)。獲取所有yi后,通過式(8),構(gòu)建關(guān)鍵特征圖Y。
Y=[y1,y2,…,yn],
(8)
然后使用最大池化層來確定文本的最佳特征,計(jì)算方式如式(9)所示,
y=max(yi),i=1,2,…,n。
(9)
得到最佳特征y,將這些特征輸入分類層分類。分類層采用dropout方式將最佳特征y連接到Softmax分類器中。dropout算法隨機(jī)將最佳特征y按一定比例置0,其他沒有置0的元素參與運(yùn)算。由于每一次輸入特征向量后,置0的方式都是隨機(jī)的,因此網(wǎng)絡(luò)權(quán)重參數(shù)每一次都得到了更新。直到所有樣本都被訓(xùn)練完成。因?yàn)槊看尉W(wǎng)絡(luò)權(quán)重參數(shù)都不相同,dropout算法將神經(jīng)網(wǎng)絡(luò)變成了多種模型組合,有效地防止了過擬合,提升了模型預(yù)測(cè)的精度。
Wc和bc分別表示Softmax分類器的權(quán)重參數(shù)和偏置項(xiàng),通過dropout產(chǎn)生的向量記為cd,則其輸出O的計(jì)算方式為
O=Wccd+bc,
(10)
最后,預(yù)測(cè)文本屬于第k類的概率的計(jì)算方式如式(11)所示。其中,Ok表示輸出向量O中的第k個(gè)元素,N表示類別數(shù)。
(11)
論文對(duì)長(zhǎng)文本進(jìn)行分類, 在一篇長(zhǎng)文本中, 往往包含十幾甚至幾十個(gè)句子, 以當(dāng)前句子為中心, 中距離或者長(zhǎng)距離句子的語序與當(dāng)前句子所要表達(dá)的語意相關(guān)。 而RNN網(wǎng)絡(luò)采用的計(jì)算節(jié)點(diǎn)無法很好地處理這種依賴, 未能完全學(xué)習(xí)長(zhǎng)文本句子語序特征, 因此, 將RNN網(wǎng)絡(luò)的計(jì)算節(jié)點(diǎn)替換為GRU計(jì)算節(jié)點(diǎn), 使模型學(xué)習(xí)到更完整的長(zhǎng)文本句子語序特征。 圖5為所采用的GRU結(jié)構(gòu), GRU網(wǎng)絡(luò)節(jié)點(diǎn)通過重置門r和更新門z對(duì)輸入信息進(jìn)行處理。t時(shí)刻的激活狀態(tài)ht計(jì)算方式如式(12)。
圖5 GRU計(jì)算節(jié)點(diǎn)Fig.5 GRU computing node
ht=(1-zt)?hc+zt?ht-1,
(12)
ht-1是t-1時(shí)刻的激活狀態(tài),與ht呈線性關(guān)系,?表示向量矩陣對(duì)應(yīng)元素相乘,zt表示t時(shí)刻更新門的狀態(tài),計(jì)算方式為式(13)。t時(shí)刻激活狀態(tài)hc的計(jì)算方式如式(14),重置門rt的計(jì)算方式如式(15)。
zt=σ(Wzxt+Uzht-1),
(13)
hc=tanh(Wxxt+U(rt?ht-1)),
(14)
rt=σ(Wrxt+Urht-1)。
(15)
σ為sigmoid函數(shù),xt是t時(shí)刻該節(jié)點(diǎn)輸入的句向量,Wz,Wx,Wr和Uz,U,Ur是更新門z、當(dāng)前候選的激活狀態(tài)hc和重置門r要訓(xùn)練的權(quán)重參數(shù)。更新門z和重置門r都使用了σ函數(shù),將兩個(gè)門的輸出都限定在[0,1]之間。hc使用r來控制包含過去時(shí)刻信息的上一個(gè)激活狀態(tài)的流入,如果r近似于0,那么上一個(gè)激活狀態(tài)將被丟棄,因此,r決定了過去有多少信息被遺忘。ht使用z來對(duì)上一個(gè)激活狀態(tài)和候選狀態(tài)進(jìn)行更新,如果z近似于0,那么ht不會(huì)被更新,z可以控制過去激活狀態(tài)在當(dāng)前t時(shí)刻的重要性。
通過GRU計(jì)算節(jié)點(diǎn)更新門和重置門的設(shè)置,改善RNN在學(xué)習(xí)長(zhǎng)文本語序時(shí),無法很好地處理中遠(yuǎn)距離句子依賴的問題,學(xué)習(xí)到更加完整的上下文語序特征。
(16)
經(jīng)過神經(jīng)網(wǎng)絡(luò)訓(xùn)練,找到最小代價(jià)的θ,如式(17)所示,
(17)
其中,D為訓(xùn)練的文檔集,p(classT|T,θ)表示文檔T在參數(shù)θ下屬于目標(biāo)類別classT的概率。在實(shí)驗(yàn)中采用隨機(jī)梯度下降方法訓(xùn)練BGRU-CNN模型,則θ的更新式為
(18)
其中,α為學(xué)習(xí)率。如果α太小,導(dǎo)致網(wǎng)絡(luò)收斂速度太慢,太大會(huì)導(dǎo)致無法收斂。經(jīng)過多次實(shí)驗(yàn)驗(yàn)證,α設(shè)置為0.01時(shí)效果最好。
實(shí)驗(yàn)采用THUCNews,SougouC中文語料庫進(jìn)行文本分類任務(wù),對(duì)提出的BGRU-CNN模型進(jìn)行評(píng)估。
1)THUCNews數(shù)據(jù)集
THUCNews數(shù)據(jù)集是根據(jù)新浪新聞RSS訂閱頻道2005—2011年間的歷史數(shù)據(jù)篩選過濾生成,劃分了14個(gè)不同的類別,包含了74萬篇新聞文稿。實(shí)驗(yàn)選取其中的12個(gè)類別作為分類標(biāo)簽,每個(gè)類別標(biāo)簽選取8 000篇文本,共計(jì)96 000篇文本。
2)SogouC數(shù)據(jù)集
SogouC數(shù)據(jù)集來自搜狐新聞2012年6~7月期間國(guó)內(nèi)、國(guó)際、體育、社會(huì)、娛樂等18個(gè)頻道的新聞數(shù)據(jù)。實(shí)驗(yàn)選取10個(gè)類別作為標(biāo)簽,每個(gè)標(biāo)簽300篇文本,共計(jì)3 000篇文本。
采用Tensorflow平臺(tái)對(duì)論文提出的模型進(jìn)行實(shí)驗(yàn)測(cè)試,該平臺(tái)集成了多種深度學(xué)習(xí)模型,如CNN,RNN和LSTM等。由于實(shí)驗(yàn)數(shù)據(jù)集未進(jìn)行訓(xùn)練集、驗(yàn)證集、測(cè)試集的劃分,所以對(duì)本次實(shí)驗(yàn)的數(shù)據(jù)集按照7∶2∶1的比例進(jìn)行劃分,具體如表1所示。
表1 數(shù)據(jù)集劃分Tab.1 Data set partition
1)數(shù)據(jù)集預(yù)處理
采用wiki百科中文語料集,通過PV-DM模型訓(xùn)練句向量,句向量維度為300維。對(duì)數(shù)據(jù)集采用jieba中文分詞進(jìn)行預(yù)處理,對(duì)數(shù)據(jù)集進(jìn)行分詞,去除停用詞,標(biāo)點(diǎn)符號(hào)。
2)實(shí)驗(yàn)參數(shù)設(shè)置
BGRU循環(huán)網(wǎng)絡(luò)的隱層節(jié)點(diǎn)數(shù)設(shè)置為600,學(xué)習(xí)率為0.01,BGRU的隱層狀態(tài)作為CNN卷積層的輸入;CNN卷積網(wǎng)絡(luò)模塊的卷積核窗口大小設(shè)置為3×150,4×150,5×150;選擇relu作為激活函數(shù)。池化層通過采樣,選擇最佳特征;Softmax層采用L2正則項(xiàng)防止過擬合,參數(shù)為0.2;dropout參數(shù)設(shè)置為0.5。具體實(shí)驗(yàn)參數(shù)設(shè)置如表2所示。
采用文本分類常用評(píng)估指標(biāo)準(zhǔn)確率(P)、召回率(R)和F1值對(duì)BGRU-CNN模型的有效性進(jìn)行驗(yàn)證。令TP,F(xiàn)N,F(xiàn)P和TN分別代表正陽性、假陰性、假陽性和正陰性的分類數(shù)量,則評(píng)估指標(biāo)的表示如式(19)所示,
(19)
將BGRU-CNN模型與CNN,LSTM,GRU,B-LSTM,B-GRU這5個(gè)文本分類模型在THUCNews數(shù)據(jù)集和SogouC數(shù)據(jù)集上采用表2的超參數(shù)進(jìn)行文本分類任務(wù)。通過準(zhǔn)確率、召回率及F1值等評(píng)估指標(biāo)進(jìn)行結(jié)果分析,證明了BGRU-CNN模型的有效性。
表3 數(shù)據(jù)集分類準(zhǔn)確率Tab.3 Classification accuracy of data sets %
表4 數(shù)據(jù)集分類召回率Tab.4 Data set classification recall rate %
表5 數(shù)據(jù)集分類F1值Tab.5 Data set classification F1 value %
通過表3~5的實(shí)驗(yàn)結(jié)果可以得出:
1)BGRU-CNN模型與CNN模型的分類結(jié)果進(jìn)行比較。BGRU-CNN模型評(píng)估指標(biāo)均高于CNN模型,得出了GRU模型對(duì)文本語義的學(xué)習(xí)提高了文本分類的結(jié)果。
2)BGRU-CNN模型與LSTM,GRU,B-LSTM模型的分類結(jié)果進(jìn)行比較。在SogouC數(shù)據(jù)集中,BGRU-CNN模型評(píng)估指標(biāo)接近LSTM模型,高于其他兩個(gè)模型。在THUCNews數(shù)據(jù)集中,B-LSTM模型評(píng)估指標(biāo)高于其他3個(gè)模型,得出了雙向循環(huán)GRU網(wǎng)絡(luò)結(jié)構(gòu)提高了文本分類的結(jié)果。
3)BGRU-CNN模型和B-GRU模型的分類結(jié)果進(jìn)行比較。在SogouC數(shù)據(jù)集中,BGRU-CNN模型的分類準(zhǔn)確率低于B-GRU模型,但其召回率和F1值卻高于B-GRU模型。在THUCNews數(shù)據(jù)集中,BGRU-CNN模型的評(píng)估指標(biāo)均高于B-GRU模型,得出了BGRU-CNN模型通過卷積層學(xué)習(xí)到了更深的文本特征,提高了文本分類的結(jié)果。
論文將提出的BGRU-CNN模型應(yīng)用于中文文本分類,通過中文數(shù)據(jù)集SogouC和THUCNews進(jìn)行模型評(píng)估,驗(yàn)證了BGRU-CNN模型的有效性及優(yōu)越性。在相同超參數(shù)下,將BGRU-CNN模型與CNN,LSTM,GRU,B-LSTM,B-GRU等模型進(jìn)行對(duì)比實(shí)驗(yàn),表明BGRU-CNN學(xué)習(xí)了文本的語義信息,卷積層優(yōu)化了循環(huán)層提取的文本序列特征,提取了文本關(guān)鍵特征。以后的研究將以此為基礎(chǔ),一方面通過改進(jìn)卷積層的結(jié)構(gòu),使其動(dòng)態(tài)提取多個(gè)關(guān)鍵文本特征;另一方面,計(jì)算相對(duì)于超參數(shù)的梯度,使用梯度下降進(jìn)行超參數(shù)的優(yōu)化。通過以上兩方面對(duì)文本分類模型進(jìn)行優(yōu)化,展開進(jìn)一步的研究。