冼廣銘,王魯棟,曾碧卿,梅灝洋,陶 睿
(華南師范大學 軟件學院,廣東 佛山 528225)
文本分類是指從原始文本數據中提取特征,并根據這些特征預測文本數據的類別。在過去的幾年里,人們提出了大量的文本分類模型,從機器學習到深度學習。分類算法可以說是機器學習領域中人們研究的最多的一個部分,有很多成熟的算法,比如KNN[]和支持向量機[2]等。隨著神經網絡的興起,各種深度學習算法也應用在文本分類中[3-6]。
文獻[7]針對短文本的長度短,特征稀疏的問題,提出了一種基于局部語義特征與上下文關系融合中文短文本分類算法。文獻[8]盡可能多地蘊含文本語義和語法信息,同時降低向量空間維度,提出了一種結合詞向量化與GRU的文本分類算法。文獻[9]結合Word2vec,改進型TF-IDF和卷積神經網絡三者的CTMWT文本分類模型,相比于傳統的機器學習算法具有更好的分類效果。文獻[10]在LDA主題模型的基礎上,利用神經網絡擬合單詞-主題概率分布,解決了較難權衡分類準確率與計算復雜度間的關系的問題。文獻[11]基于Word2vec模型對短文本進行詞嵌入擴展解決了稀疏性,并將詞向量轉換成了概率語義分布來測量語義關聯性。文獻[12]利用雙向GRU提取文本特征,采用貝葉斯分類器分類,改進了單向GRU對后文依賴性不足的缺點。文獻[13]改進了TF-IDF計算方法,在新聞數據集上兼顧了新聞標題和正文,效果有較大的提高。文獻[14]通過詞嵌入法并融合LDA主題模型擴展評論信息的特征表示方法來解決短文本數據稀疏,特征不明顯等問題。
通過以上方法的分析,該文提出基于LDA和BiGRU的文本分類模型。相比于傳統單一的神經網絡,創新在于LDA和TF-IDF特征加權的Word2vec詞向量融合,使用雙向GRU捕捉文本上下文信息特征,最后經過softmax進行分類。
LDA主題模型由Blei等[15]提出,是一種文檔主題生成模型,也稱為一個三層貝葉斯概率模型,它包含了詞、主題和文檔的三層結構。文檔到主題和主題到詞都是多項式分布,如圖1所示。

圖1 LDA主題模型
圖1各個字符多代表的含義為:M表示文本個數,V表示詞個數,K表示主題個數,W表示詞。Z表示詞的主題分配,α表示文檔集合中隱含主題間的相對強弱,β表示所有隱含主題自身的概率分布,其中θ表示文本主題的概率分布,φ表示特定主題下特征詞的概率分布。
構建LDA模型需要對模型參數的估計,使用Gibbs抽樣,基于Gibbs抽樣的參數推理方法實現簡單且容易理解。因此,LDA模型抽取算法主要是用Gibbs抽樣算法。最后經過抽樣算法得到主題-詞分布矩陣φ和文本-主題分布矩陣θ,公式如下所示:
(1)
(2)
式中,φk,t表示主題k中詞項t的概率;θm,k表示文本m中主題k的概率。
詞向量矩陣生成后,采用基于最大概率主題下的填充方式,來解決文本特征不足的問題。
文本是由每個單詞構成的,在深度學習中,是用詞向量表示詞的,通常也被認為是詞的特征向量。而談起詞向量,one-hot是最簡單的詞向量,用一個很長的向量來表示一個詞,向量的長度為詞典的大小,向量的分量只有一個1,其他位置為0。但是用獨熱編碼表示會有一些缺點:(1)隨著維數的增加,計算量會呈指數級增長,尤其是用在深度學習網絡;(2)存在“詞匯鴻溝”現象,不能很好地表示詞與詞之間的相似性。2013年提出的Word2vec[16]很好地解決了獨熱編碼存在的問題。
Word2vec通過embedding層將one-hot編碼轉化成低維度的連續值,即稠密向量,而且將其中具有相近意思的詞映射到向量空間中相近的位置,解決了獨熱編碼的詞匯鴻溝和維度災難的問題。Word2vec有CBOW和Skip-Gram兩種模型。CBOW是在已知上下文預測當前詞,而Skip-Gram相反,根據當前詞預測上下文的詞。該文采用Skip-Gram模型。
TF-IDF是一種統計算法,是用來評估一個字詞在其文件的重要程度。它的重要程度與其出現在文件中的次數成正比,但與它出現在語料庫中的頻率成反比。TF-IDF算法常用在搜索引擎、關鍵詞提取、文本相似性和文本摘要等方面。
其中,TF(term frequency)是詞頻,代表關鍵字出現在文本中的頻率。這個數字通常被歸一化。
TFw的公式如下:
(3)
其中有一些沒意義的詞,比如“啊”“的”之類的,對于判斷文章的關鍵詞沒有什么用處,稱它們為停止詞,在度量相關性時不會考慮這些詞的頻率。
IDF(inverse document frequency)是逆文本頻率,包含關鍵詞w的文檔越少,就說明關鍵詞w具有的區別能力越好。對于關鍵詞w,求它的IDF,總的文章數量除以包含w關鍵詞的文章數量,取對數。
IDFw的公式如下:
(4)
(分母加1是為了避免分母為0的情況)
因此,對于任意關鍵詞的TF-IDF就是:
TF-IDF=TF*IDF
(5)
該文提出的模型框架一共由三部分組成,第一部分是數據集的預處理,包括分詞、去除停止詞等一些步驟;第二部分是Word2vec訓練詞向量經過TF-IDF進行加權和LDA模型進行向量拼接;第三部分是將第二部分得到的向量輸入到BiGRU中,提取更深層次的特征,最后輸入到softmax進行分類。總體框架如圖2所示。

圖2 模型框架
首先用Word2vec中的skip-gram模型進行詞向量的訓練,雖然詞向量生成選擇了Word2vec,但是無法反映出詞語對文本的重要性,因此選擇了TF-IDF對詞語進行加權,通過使用該算法很好地反映出哪些詞語對文本比較重要,使得后續分類工作效果更好。
把經過Word2vec訓練的詞向量和所對應的詞的TF-IDF權重進行相乘得到新的詞向量,詞向量數乘公式如下:
D'=word2vec(w) × tfidf
(6)
其中,D'是詞語w進行TF-IDF加權后的詞向量,word2vec(w)為詞匯w的Word2vec詞向量。將每個詞D'與LDA模型主題的主題-詞分布矩陣相匹配,用最大主題的前r個詞作為該詞的擴展,得到D'',模型如下:
D''={w1,(c1,c2,…,cr),…,wn,(c1,c2,…,cr)}
(7)
D''為D'的基于LDA的擴展模型,wn為第n個詞,(c1,c2,…,cr)為wn詞的r個擴展。
得到Word2vec經過TF-IDF加權的詞向量D'和經過LDA最大概率的擴展D'',把這兩個向量進行拼接,如下所示:
D={D';D''}
(8)
其中,“;”表示向量的順序拼接操作。得到融合的向量D后,接下來就是輸入到雙向GRU中,提取文本深層次的特征。
循環神經網絡能很好地處理文本數據變長并且有序的輸入序列,能將前面提取到的有用信息編碼到狀態變量中,而且循環神經網絡的變體GRU加入了門控機制很好地解決了梯度消失的問題。
2.2.1 GRU
GRU(gated recurrent unit)網絡是RNN的一種變體,它簡化了結構,只需3組參數,運算時間和收斂速度與RNN相比都有較大的提升。其結構如圖3所示。

圖3 GRU模型
根據GRU神經網絡的結構,得到以下前向傳播的重要公式:

(9)
(10)
rt=σ(Wr· [ht-1,xt])
(11)
zt=σ(Wz· [ht-1,xt])
(12)
yt=σ(Wo·ht)
(13)

雖然單向的GRU能提取文本的長距離特征,但是只從一個方面提取的特征還不夠充分。因此要利用BiGRU從前向和后向提取文本長距離特征,充分考慮到上下文文本信息特征。
2.2.2 BiGRU
BiGRU[17]是由兩個反方向的單向GRU組成,單向GRU和傳統的單向循環神經網絡一樣只能關聯歷史數據,不能充分學習上下文。單向循環神經網絡及變體只能根據前面的時序信息預測下個時刻的輸出。BiGRU的輸出是由兩個反方向的GRU狀態共同決定,在每一個時刻t,輸入會同時提供給兩個反向的GRU。
得到Word2vec和LDA向量融合的文本矩陣后,輸入到BiGRU中,獲得更深層次的文本特征,最后進行softmax歸一化處理,根據所輸出的概率判斷所屬類別。
該文所使用的實驗環境為win10 64位,i5-8300H處理器,內存為16 G,固態硬盤256 G。
使用的數據集是天池比賽新聞文本分類數據集和爬蟲爬取的新聞文本數據集,其中天池比賽賽題數據按照字符級別進行匿名處理,整合劃分出14個候選類分類類別:財經、彩票、房產、股票、家居、教育、科技、社會、時尚、時政、體育、星座、游戲、娛樂的文本數據。其中包括訓練集20萬條,測試集10萬條。根據統計結果分析,該數據集類別分布存在較為不均勻的情況,科技新聞最多,星座新聞最少,做以下處理,去掉數量最少的房產、時尚、彩票和星座四個類別的新聞。
對于主題個數的選取,如果設置主題數過大,LDA主題模型計算復雜度會比較大,而且容易產生過擬合,因此根據文獻[18]設置其他參數,超參數α默認值為0.5,β默認值為0.1。根據以往經驗,詞向量維度設置100效果最佳,詞向量維度大于100時,隨著維度增加模型的效果并未顯著變化。對于BiGRU隱藏層節點數,隱藏層節點數過小的話,模型缺少學習和信息處理的能力,如果節點數過多的話,會使模型結構變得復雜,增加訓練的時間。為了防止過擬合,模型在輸出前使用了dropout函數,參數設置為0.5,使用Adam優化器,相比于其他優化算法,Adam集合了AdaGrad和RMSProp兩個算法的優點,計算高效,內存使用少。最后輸出層使用softmax函數,連接到10維的向量,根據離散概率分布輸出預測類別。
設置了三個對比模型,用來驗證提出模型的有效性。實驗分別用GRU、BiGRU、CNN作為對比模型。
為了驗證提出模型的有效性,使用準確率、精確率、召回率和F1值綜合評分作為衡量指標。對于精確率P,定義為預測為正類的結果中,正確個數占的比例,又稱查準率。召回率R定義為實際為正類的樣本中,正確判斷為正類占的比例,又稱查全率。F1值是由精確率和召回率計算得來的,是精確率和召回率的調和平均值。表1為混淆矩陣,準確率由預測準確的TN和FN的和與總預測相比得到的,召回率、F1值計算公式如下:

表1 混淆矩陣
(14)
(15)
(16)
(17)
(1)主題個數的選取。
采用LDA主題模型對分類文本向量進行擴展,充分結合有關信息,來解決提取文本特征信息不足的問題,因此設定主題數為[0,60],把LDA擴展特征輸入到分類器中。選了3個較常用的分類器,分別是Bayes、SVM和KNN,采用F1值作為評價指標。實驗結果如圖4所示。

圖4 主題個數選取結果
由圖4可知,當主題數設定為30時,分類效果最好,當主題的個數小于30時,效果并沒有顯著變化,當主題數大于30時效果顯著下降。因為隨著主題數的增加,容易產生過擬合,而且計算復雜度也會隨著主題數的增大而增加。由此以下實驗中LDA主題數確定為30。
(2)隱含層節點數目的選擇。
雙向循環神經網絡的隱含層節點數目影響分類效果,如果隱含層節點的數量過少,使得模型無法充分發揮學習上下文信息的能力,網絡也無法處理復雜的問題;選用過多,雖然可以減小網絡的系統誤差[19]但是會增加網絡訓練的時間,也容易使網絡訓練過度導致過擬合。因此,確定雙向循環神經網絡隱含層合理的節點數目以便后續實驗進行。在滿足精度要求的前提下取盡可能緊湊的結構,即取盡可能少的隱層節點數。該實驗節點初始數目設置為60,間隔大小為20。實驗結果如圖5所示。

圖5 隱含層節點數效果
由圖5可知,當節點數為100時,模型的準確率最好,由此可知隱含層節點數已達到最合理的數目;當節點數大于100時,隨著節點數增加準確率而下降。說明節點數過多,會導致網絡訓練過度模型效果變差,因此,后續實驗中的模型隱含層選的節點數選擇100。
(3)對比實驗。
經過第一個實驗確定主題數和第二個實驗確定隱含層節點數目后,為了驗證該模型的有效性,在新聞數據集上所得的實驗效果如表2所示,采用準確率、精確率、召回率和F1值作為評價指標。

表2 文中方法效果
從表2可以看出,文中方法在時政和財經上分類效果最好。
為了更好地證明文中方法的有效性,采用各個新聞類別的Precision、Recall和F1值的平均值作為評價指標,各個分類方法總體效果如表3所示。

表3 各個分類方法整體效果
從表中易得出文中方法在F1值上比優于BiGRU模型,驗證了擴展主題特征的有效性,豐富了主題信息;BiGRU模型比GRU模型表現稍好,是由于雙向循環神經網絡不同于單向循環神經網絡,該網絡考慮從兩個相反的方向提取文本的深層次文本信息,而且文中方法提出的模型在F1值上也比GRU模型高了4個百分點。綜上,文中方法引入了LDA主題模型來擴展特征信息,使用雙向循環神經網絡是有效的。
(4)數據量大小對實驗結果的影響。
圖6為數據量大小對F1值的影響。橫坐標為每個新聞分類的數據量,縱坐標為F1值。由圖可知,隨著數據量從1 000增加到2 500,四種算法的效果有較明顯的提升,這是由于數據量少不能充分學習特征,數據量多能充分學習特征。四種算法中,當數據量從1 000到1 300時,其他與RNN相關的神經網絡明顯比CNN斜率大,驗證了RNN神經網絡的變體GRU具有收斂速度快的特點。當數據量約為2 400時,各算法效果到達均衡狀態。由圖6可知,文中方法能在數據量較少的情況下,相比于其他算法獲得不錯的實驗效果,驗證了該方法的有效性。

圖6 數據量效果
提出一種基于LDA主題模型和BiGRU的文本方法。該方法首先使用Word2vec訓練詞向量,然后經過TF-IDF加權,對詞向量特征進行增強,且經過LDA主題模型擴展的特征進行向量融合來擴展特征信息,再經過雙向GRU從前后兩個反方向提取文本的深層次信息,最后經過softmax函數進行分類。該模型在新聞分類數據集上進行了實驗,與其他現有的方法相比,在各項評價指標上都取得了不錯的效果。
由于提取特征為單一的神經網絡,所以下一步考慮使用CNN作為輔助模型提取局部特征多個神經網絡模型融合的方法來提高分類效果;對于詞向量訓練的方式,預訓練模型BERT[20]在多項NLP任務已經取得了不錯的效果,下一步會考慮使用預訓練模型提高分類效果。