李云紅, 梁思程,任 劼,李敏奇,張 博,李禹萱
(1.西安工程大學 電子信息學院, 陜西 西安 710048;2.國網西安供電公司, 陜西 西安 710032)
當前,互聯網發展迅猛,每時每刻都會產生大量的文本信息。其中,如何將蘊含多主題、多字符的長文本進行有效的分類以及管理,進而快速了解長文本信息的價值,是許多研究者關注的焦點。文本分類主要包括文本表示、分類器的選擇與訓練、分類結果的評價與反饋等工作[1]。其中,文本表示是影響分類結果的關鍵步驟。詞袋模型(bag of word,BoW)在文本表示中應用最為廣泛[2],它將文本表示為高維度,高稀疏的One-hot向量。但One-hot向量因未考慮文本的語序和上下詞之間的聯系,詞之間相互獨立,導致文本信息大量丟失。為了克服詞袋模型文本表示的缺陷,Hinton[3]提出了詞向量(distributed representation)的概念。Bengio等[4]通過神經網絡模型訓練詞向量進行文本表示。Mikolov等[5-6]提出建立Skip-gram和CBoW神經網絡模型,提升了詞向量訓練的效率,提高了短語和句子等短文本分類的性能。Le和Mikolov等[7]提出了PV-DM(distributed memory model of paragraph vectors)神經網絡模型,考慮了文本的語序信息,將文本表示為定長的句向量或者段落向量,使句子級的文本分類研究成為可能,為本文對長文本分類的特征表示提供了依據。
在文本的分類器訓練方面,淺層樸素貝葉斯[8]、支持向量機(SVM)[9]、最大熵模型[10]等機器學習模型在詞、短語和句子等短文本分類中被廣泛應用。Mikolov等人[11]提出了基于時間序列的循環神經網絡(recurrent neural networks,RNN)模型,解決了淺層機器學習模型對關聯性強的樣本分類效果差,無法學習到類別內信息等問題,改進了文本分類的性能。Chung等人[12]針對RNN網絡隨著網絡層數的增加會面臨梯度爆炸或梯度消失的問題,提出了GRU(gated recurrent unit)網絡結構,改善了長文本分類的性能。薛濤等人[13]將卷積神經網絡(convolutional neural network,CNN)用于文本處理,通過共享權重提升了文本分類器的性能。Collobert和Weston等人[14]將詞向量和多層一維卷積結構用于自然語言處理。Kim等人[15]進一步優化了CNN結構,提出了動態窗口與詞向量頻道結合的方法改進文本特征的提取,在文本分類任務中取得了良好的效果。
綜上所述,現有文本分類研究集中在短語、句子等短文本分類,專門針對長文本分類的研究較少。本文針對長文本的分類問題,考慮到長文本的語序對長文本分類的影響,提出基于循環神經網絡變體GRU和卷積神經網絡(CNN)的BGRU-CNN混合模型,經SogouC和THUCNews長文本中文語料集的測試取得了較好的分類效果,提高了分類性能,驗證了論文提出混合模型對長文本分類的有效性。
在文本分類研究中,文本內容的長度一般沒有明確的定義,它只是一個相對概念,但是,其對分類的效果與速度會產生較大的影響。互聯網上的網絡評語、微博等都屬于短文本,新聞文本、科技論文等都屬于長文本。以本文實驗采用的THUCNews和SogouC和數據集為例,其文本長度分布分別如圖1和圖2所示。

圖1 THUCNews文本長度Fig.1 THUCNews text length

圖2 SogouC文本長度Fig.2 SogouC text length
從圖1可見,THUCNews數據集文本長度在500~2 000之間占到了絕大多數。從圖2可見,SogouC數據集文本長度在500~1 500之間占到了絕大多數。因此,從總體來看,本文采用的兩個數據集都屬于長文本。長文本相較于短文本而言,會圍繞主題進行更多的補充性說明和描寫,如“本次調查結果表明”,“幾天之后”等。另外,長文本句子結構完整,語法規范,常常包含許多轉承關系的詞語,如“新華網深圳3月3日電”,“據統計”等這些與主題相關性小的句子,會使分類時產生比較大的分析代價。
詞向量是目前廣泛使用的文本特征表示的方法,長文本分類時,因其句子數、段落數多,僅用詞向量難以表達復雜的文本語義,且訓練耗時過長,結果不理想。因此,本文結合詞向量生成模型,采用PV-DM模型,使用無監督的方法生成文本的段落向量,結構如圖3所示。

圖3 PV-DM模型結構Fig.3 PV-DM model structure
通過圖3建立PV-DM模型獲得句向量的表示。文本通過神經網絡訓練得到詞向量W,將詞向量W與段落矩陣D拼接在一起。把詞向量序列w1,w2,…,wr所在段落標為dm,則模型的目標最大化平均對數表示為
(1)
使用Softmax分類器進行分類工作,表示為
(2)
其中,yi的計算公式為
y=b+Uh(wt-1,…,wt+k,dm)。
(3)
式(3)中,U,b分別為Softmax分類器的權重和偏置,h由W和D拼接構成。新增段落id可以被看作新的詞,每預測一個詞,就使用該詞所在段落的段落id作為新增加的輸入。在一個文本的訓練過程中,段落id保持不變,共享著同一個段落矩陣。使用隨機梯度下降法訓練所有參數,訓練結束后得到定長的實向量,即段落向量(本文稱為句向量)。
將長文本中長度各異的句子表示為定長的句向量,可以進行句子級的文本分析,提高了長文本分析的速度。
BGRU-CNN混合模型的整體結構如圖4所示。BGRU-CNN混合模型的輸入為文本T,經過循環層捕捉句子上下文信息,卷積層提取文本的關鍵特征,輸出為文本T屬于類別k的概率。

圖4 BGRU-CNN模型架構Fig.4 BGRU-CNN model
1)循環層
采用雙向循環結構捕獲第i個句子Si上文L(Si)和句子下文R(Si)的信息,計算方式為
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句子語義信息組合的權陣,Wl為隱藏層的轉換權陣。f為激活函數。
然后,通過式(6)將上文信息L(Si)、句向量e(Si)和下文信息R(Si)拼接,構成文本特征向量xi作為循環層的輸出。
xi=[L(Si),e(Si),R(Si)],
(6)
雙向循環結構輸出的文本特征向量xi學習了文本上下文的語序信息,作為卷積層的輸入,進一步提取文本語義特征。
2)卷積層
在循環層獲取文本特征向量xi后,使用CNN網絡進行特征yi的提取,計算方式為
yi=f(ω·xi:h+b)。
(7)
其中,卷積核用ω∈Rhk表示,h和k分別表示卷積核的窗口高度和寬度,用來對循環層的輸出xi進行卷積。xi:h表示輸入特征向量第i行到第h行的特征值。b為偏置,f為激活函數。獲取所有yi后,通過式(8),構建關鍵特征圖Y。
Y=[y1,y2,…,yn],
(8)
然后使用最大池化層來確定文本的最佳特征,計算方式如式(9)所示,
y=max(yi),i=1,2,…,n。
(9)
得到最佳特征y,將這些特征輸入分類層分類。分類層采用dropout方式將最佳特征y連接到Softmax分類器中。dropout算法隨機將最佳特征y按一定比例置0,其他沒有置0的元素參與運算。由于每一次輸入特征向量后,置0的方式都是隨機的,因此網絡權重參數每一次都得到了更新。直到所有樣本都被訓練完成。因為每次網絡權重參數都不相同,dropout算法將神經網絡變成了多種模型組合,有效地防止了過擬合,提升了模型預測的精度。
Wc和bc分別表示Softmax分類器的權重參數和偏置項,通過dropout產生的向量記為cd,則其輸出O的計算方式為
O=Wccd+bc,
(10)
最后,預測文本屬于第k類的概率的計算方式如式(11)所示。其中,Ok表示輸出向量O中的第k個元素,N表示類別數。
(11)
論文對長文本進行分類, 在一篇長文本中, 往往包含十幾甚至幾十個句子, 以當前句子為中心, 中距離或者長距離句子的語序與當前句子所要表達的語意相關。 而RNN網絡采用的計算節點無法很好地處理這種依賴, 未能完全學習長文本句子語序特征, 因此, 將RNN網絡的計算節點替換為GRU計算節點, 使模型學習到更完整的長文本句子語序特征。 圖5為所采用的GRU結構, GRU網絡節點通過重置門r和更新門z對輸入信息進行處理。t時刻的激活狀態ht計算方式如式(12)。

圖5 GRU計算節點Fig.5 GRU computing node
ht=(1-zt)?hc+zt?ht-1,
(12)
ht-1是t-1時刻的激活狀態,與ht呈線性關系,?表示向量矩陣對應元素相乘,zt表示t時刻更新門的狀態,計算方式為式(13)。t時刻激活狀態hc的計算方式如式(14),重置門rt的計算方式如式(15)。
zt=σ(Wzxt+Uzht-1),
(13)
hc=tanh(Wxxt+U(rt?ht-1)),
(14)
rt=σ(Wrxt+Urht-1)。
(15)
σ為sigmoid函數,xt是t時刻該節點輸入的句向量,Wz,Wx,Wr和Uz,U,Ur是更新門z、當前候選的激活狀態hc和重置門r要訓練的權重參數。更新門z和重置門r都使用了σ函數,將兩個門的輸出都限定在[0,1]之間。hc使用r來控制包含過去時刻信息的上一個激活狀態的流入,如果r近似于0,那么上一個激活狀態將被丟棄,因此,r決定了過去有多少信息被遺忘。ht使用z來對上一個激活狀態和候選狀態進行更新,如果z近似于0,那么ht不會被更新,z可以控制過去激活狀態在當前t時刻的重要性。
通過GRU計算節點更新門和重置門的設置,改善RNN在學習長文本語序時,無法很好地處理中遠距離句子依賴的問題,學習到更加完整的上下文語序特征。


(16)
經過神經網絡訓練,找到最小代價的θ,如式(17)所示,

(17)
其中,D為訓練的文檔集,p(classT|T,θ)表示文檔T在參數θ下屬于目標類別classT的概率。在實驗中采用隨機梯度下降方法訓練BGRU-CNN模型,則θ的更新式為
(18)
其中,α為學習率。如果α太小,導致網絡收斂速度太慢,太大會導致無法收斂。經過多次實驗驗證,α設置為0.01時效果最好。
實驗采用THUCNews,SougouC中文語料庫進行文本分類任務,對提出的BGRU-CNN模型進行評估。
1)THUCNews數據集
THUCNews數據集是根據新浪新聞RSS訂閱頻道2005—2011年間的歷史數據篩選過濾生成,劃分了14個不同的類別,包含了74萬篇新聞文稿。實驗選取其中的12個類別作為分類標簽,每個類別標簽選取8 000篇文本,共計96 000篇文本。
2)SogouC數據集
SogouC數據集來自搜狐新聞2012年6~7月期間國內、國際、體育、社會、娛樂等18個頻道的新聞數據。實驗選取10個類別作為標簽,每個標簽300篇文本,共計3 000篇文本。
采用Tensorflow平臺對論文提出的模型進行實驗測試,該平臺集成了多種深度學習模型,如CNN,RNN和LSTM等。由于實驗數據集未進行訓練集、驗證集、測試集的劃分,所以對本次實驗的數據集按照7∶2∶1的比例進行劃分,具體如表1所示。

表1 數據集劃分Tab.1 Data set partition
1)數據集預處理
采用wiki百科中文語料集,通過PV-DM模型訓練句向量,句向量維度為300維。對數據集采用jieba中文分詞進行預處理,對數據集進行分詞,去除停用詞,標點符號。
2)實驗參數設置
BGRU循環網絡的隱層節點數設置為600,學習率為0.01,BGRU的隱層狀態作為CNN卷積層的輸入;CNN卷積網絡模塊的卷積核窗口大小設置為3×150,4×150,5×150;選擇relu作為激活函數。池化層通過采樣,選擇最佳特征;Softmax層采用L2正則項防止過擬合,參數為0.2;dropout參數設置為0.5。具體實驗參數設置如表2所示。
采用文本分類常用評估指標準確率(P)、召回率(R)和F1值對BGRU-CNN模型的有效性進行驗證。令TP,FN,FP和TN分別代表正陽性、假陰性、假陽性和正陰性的分類數量,則評估指標的表示如式(19)所示,

(19)
將BGRU-CNN模型與CNN,LSTM,GRU,B-LSTM,B-GRU這5個文本分類模型在THUCNews數據集和SogouC數據集上采用表2的超參數進行文本分類任務。通過準確率、召回率及F1值等評估指標進行結果分析,證明了BGRU-CNN模型的有效性。

表3 數據集分類準確率Tab.3 Classification accuracy of data sets %

表4 數據集分類召回率Tab.4 Data set classification recall rate %

表5 數據集分類F1值Tab.5 Data set classification F1 value %
通過表3~5的實驗結果可以得出:
1)BGRU-CNN模型與CNN模型的分類結果進行比較。BGRU-CNN模型評估指標均高于CNN模型,得出了GRU模型對文本語義的學習提高了文本分類的結果。
2)BGRU-CNN模型與LSTM,GRU,B-LSTM模型的分類結果進行比較。在SogouC數據集中,BGRU-CNN模型評估指標接近LSTM模型,高于其他兩個模型。在THUCNews數據集中,B-LSTM模型評估指標高于其他3個模型,得出了雙向循環GRU網絡結構提高了文本分類的結果。
3)BGRU-CNN模型和B-GRU模型的分類結果進行比較。在SogouC數據集中,BGRU-CNN模型的分類準確率低于B-GRU模型,但其召回率和F1值卻高于B-GRU模型。在THUCNews數據集中,BGRU-CNN模型的評估指標均高于B-GRU模型,得出了BGRU-CNN模型通過卷積層學習到了更深的文本特征,提高了文本分類的結果。
論文將提出的BGRU-CNN模型應用于中文文本分類,通過中文數據集SogouC和THUCNews進行模型評估,驗證了BGRU-CNN模型的有效性及優越性。在相同超參數下,將BGRU-CNN模型與CNN,LSTM,GRU,B-LSTM,B-GRU等模型進行對比實驗,表明BGRU-CNN學習了文本的語義信息,卷積層優化了循環層提取的文本序列特征,提取了文本關鍵特征。以后的研究將以此為基礎,一方面通過改進卷積層的結構,使其動態提取多個關鍵文本特征;另一方面,計算相對于超參數的梯度,使用梯度下降進行超參數的優化。通過以上兩方面對文本分類模型進行優化,展開進一步的研究。