方炯焜,陳平華,廖文雄
廣東工業(yè)大學 計算機學院,廣州 510006
自動文本分類起源于20 世紀60 年代,由Maron 和Kuhns 于1960 年提出[1],是自然語言處理的組成部分。良好的文本分類算法有利于提高信息組織的效率,方便用戶快速檢索信息,在新聞推薦、數(shù)字圖書館、購物網(wǎng)站評論數(shù)據(jù)挖掘、輿情分析等領域都有廣泛的應用,因此,文本分類算法一直是NLP領域的研究熱點。從使用的分類模型上來看,一般分為兩種,一種是淺層學習的分類模型,如樸素貝葉斯算法[2]、K近鄰算法(K-Nearest Neighbor,KNN)[3]、支持向量機算法(Support Vector Machine,SVM)[4]、決策樹等;一種是基于神經(jīng)網(wǎng)絡的深度學習分類模型,如卷積神經(jīng)網(wǎng)絡算法(Convolutional Neural Networks,CNN)[5]、循環(huán)神經(jīng)網(wǎng)絡算法(Recurrent Neural Network,RNN)等。淺層學習的文本預處理方法主要使用文檔頻率等作為特征選擇算法,存在特征空間高維度,且沒有考慮特征在類間、類內的分布等缺點[6],分類效果較差。而基于深度學習神經(jīng)網(wǎng)絡的模型則會出現(xiàn)由于文本篇幅過長,參數(shù)過多容易隔斷文本中距離較遠的關鍵詞之間的聯(lián)系,影響分類效率等問題?;诖?,本文提出GloVe_GRU 文本分類模型(Text classification model based on Global vectors for word representation and Gated Recurrent Unit):在特征表示上使用GloVe[7]進行詞向量化,對原始特征空間進行壓縮,變換成新語義,最大程度降低原始空間維度。為驗證GloVe 進行特征表示的優(yōu)越性,本文將其與TF-IDF[8](Term Frequency-Inverse Document Frequency)和LSA相結合的特征表示法進行實驗對比;在分類模型上選擇RNN 變種模型GRU[9],解決梯度消失和爆炸問題的同時,也能充分考慮到上下文信息對文本語義的影響。實驗結果表明,使用GloVe_GRU文本分類模型,具有更好的分類效果。
文本分類自提出以來,其算法的研究一直從未間斷,分類效率也隨著新技術的應用不斷提高。1974 年Salton 等人[10]提出向量空間模型(Vector Space Model,VSM),盡管其存在語義特征不明顯、耗時耗力等缺陷,但近二十年間,該方法一直是文本分類的主要技術。隨著機器學習逐漸發(fā)展,研究人員開始嘗試使用RNN 來捕捉上下文語義特征及關聯(lián),但原始的RNN算法卻存在梯度爆炸和消失的問題。為解決這個問題,Hochreiter等人[11]對RNN 的結構進行改進,提出LSTM(Long Short-Term Memory)模型。為了使網(wǎng)絡結構更加簡單,研究人員又對LSTM做進一步改進,提出GRU模型,使得分類過程得以實現(xiàn)捕捉長距離依賴關系,從而提高分類效率。當前,隨著Bahdanau等人[12]的注意力機制的提出,研究人員又嘗試使其與神經(jīng)網(wǎng)絡深度結合,Wan 等人[13]使用LSTM網(wǎng)絡和注意力機制解決跨語言情感分類任務;孫明敏[14]將GRU與注意力機制相結合應用于中文文本分類,并取得不錯的效果。卷積神經(jīng)網(wǎng)絡和注意力機制的結合也被廣泛使用,王吉俐等[15]使用基于注意力的卷積神經(jīng)網(wǎng)絡文本分類模型,降低文本分類訓練過程中對小類別的不公平影響,并通過實驗證明,該算法對于提高文本分類的精度有較顯著的效果。而在特征表示階段,研究者也在探索不同特征表示模型對文本分類效果的影響。
為了準確地進行文本分類,合適的文本特征表示方法尤為重要。文本特征表示能在正確標識文本內容特征詞的前提下,壓縮文本詞向量空間維度,并且通過特征項區(qū)分不同類型文本。在實際操作中經(jīng)常采用詞向量化進行語義特征表示,目前應用比較廣泛的主要有兩種類型:一種是基于全局矩陣分解,如LSA[16];另一種是局部上下文窗口,如Word2vec 所使用的CBOW 和skip-gram。其中,LSA主要優(yōu)勢在于利用統(tǒng)計信息進行語義分析,但在詞匯類比上效果較差。而Word2vec 雖然具有較好的詞匯類比性能,但受局部窗口特點的限制,沒能有效利用全局詞匯共現(xiàn)統(tǒng)計信息。GloVe的提出正是很好地將以上兩者的優(yōu)點進行融合,將全局統(tǒng)計信息與局部上下文窗口相結合,具有更好的詞向量化效果。鄭亞南等[17]使用GloVe 與Word2vec 詞向量相比較進行文本特征提取,再利用SVM進行文本分類,通過實驗證明使用GloVe 進行特征提取在文本分類效果更佳。另外,Google 于 2018 年發(fā)布的 BERT[18]模型,在 11個經(jīng)典的NLP任務中創(chuàng)出最佳成績,成為當前備受追捧的詞向量模型。當然,BERT在實際的應用中,還有一些問題懸而未決,比如在QA 系統(tǒng)中,要使用特征集成模式還是Fine-tuning模式,哪個效果更好?[19]類似的問題,都還需要研究者通過進一步實驗來探討清楚。
受以上使用詞向量化進行特征提取和使用神經(jīng)網(wǎng)絡構造分類模型等方法的啟發(fā),本文提出結合GloVe和GRU的文本分類模型GloVe_GRU。在特征表示階段使用GloVe 詞向量進行文本特征降維,再與GRU 模型相結合構造分類模型,以實現(xiàn)充分利用文本上下文關系構建分類模型的目的,并通過實驗證明,該方法可獲得更好的分類效果。
如圖1所示,GloVe_GRU文本分類模型主要包括三個模塊:文本預處理,特征表示,分類器。
圖1 GloVe_GRU文本分類模型
在數(shù)據(jù)預處理模塊,先進行去除停止詞等數(shù)據(jù)清洗工作,并對文本中的詞進行token化表示;在特征表示模塊,使用GloVe 算法進行詞向量化;在最后的分類器模塊,使用GRU 和全連接層的組合訓練穩(wěn)定的文本分類模型。下面將詳細介紹GloVe_GRU文本分類模型各模塊的算法原理。
進行中文文本分類,首先要對原始文檔進行文本預處理,目的是為了過濾掉無關噪聲的影響且使得文本的詞特征能得到最大的保留。文本預處理的輸入是文檔集,經(jīng)過中文分詞、去停用詞、去低頻詞、把詞映射成id等系列處理后輸出文檔數(shù)字化向量。
GloVe 融合了矩陣分解(LSA)的全局統(tǒng)計信息、共現(xiàn)窗口的優(yōu)勢和全局的先驗統(tǒng)計信息,訓練效率高,具體模型如圖2 所示。使用GloVe 進行詞向量化,能保證詞向量之間盡可能多地蘊含語義和語法信息。
圖2 GloVe模型
模型公式如下:
其中,X為共現(xiàn)矩陣,其元素Xi,j表示單詞i和j共同出現(xiàn)在一個窗口的次數(shù),其中窗口大小一般為5~10。vi和vj是單詞i和單詞j的詞向量,bi和bj是偏差項,N是共現(xiàn)矩陣N×N的維度,f是權重函數(shù)。這里還要求權重函數(shù)f應具備以下特征:
(1)當詞匯共現(xiàn)的次數(shù)為0 時,權重亦為0,即f(0)=0。
(2)當詞匯共現(xiàn)次數(shù)越大時,其權重不會出現(xiàn)下降情況,即f(x)滿足非遞減性。
(3)當詞匯出現(xiàn)過于頻繁時,不會出現(xiàn)過度加權,即f(x)能賦值相對小的數(shù)值。
綜上所述,GloVe算法的創(chuàng)始人Pennington.J等提出了如下權重函數(shù):
文獻[7]通過實驗發(fā)現(xiàn)xmax=100,α=0.75 時效果比較好,本文實驗也采用該數(shù)值。由上述可知GloVe模型不需要使用神經(jīng)網(wǎng)絡進行訓練,只需通過公式(2)直接使用文檔自身語料庫詞向量進行計算,快速簡單。
文本分類模型的作用是根據(jù)文本的特征表示信息,訓練出一個穩(wěn)定的分類器,將不同類別的文本實現(xiàn)較好的分類效果。
GRU 是經(jīng)改進的一種循環(huán)神經(jīng)網(wǎng)絡(RNN),全稱Gated Recurrent Unit,即門控循環(huán)單元。循環(huán)神經(jīng)網(wǎng)絡以序列數(shù)據(jù)作為輸入,在序列的演進方向進行遞歸訓練,具有記憶性、參數(shù)共享等功能,實際運用中經(jīng)常用來實現(xiàn)對序列的非線性特征學習,效率相當高,在語音識別等領域運用廣泛,基于其有記憶性的特征,用于文本分類也是相當合適的。針對其存在梯度消失和爆炸的問題,研究者提出它的一種變種LSTM,該結構相對復雜,包含三個門計算即忘記門、輸入門、輸出門,為了簡化結構,研究者又提出了LSTM的變種GRU結構。
3.3.1 GRU結構模型
GRU 模型在每個循環(huán)單元加入兩個門電路控制:以rt表示重置的門控(reset gate),zt表示更新的門控(updategate),將單元狀態(tài)與輸出合并為一個狀態(tài)h,具體單元的模型如圖3所示。
圖3 GRU結構模型
基于以上結構,得出GRU的前向計算公式如下:
其中,σ表示sigmoid 激活函數(shù),xt是第t步的輸入單元,在進行文本分類時,輸入是文本序列,它表示第t個單詞的詞向量;ht是第t步的隱藏狀態(tài);⊙表示向量的點乘;zt表示更新門;rt表示重置門,GRU的參數(shù)更新方式是基于沿時間反向傳播的算法。
3.3.2 GRU文本分類及特點
使用GRU進行文本分類訓練時,圖3 GRU模型結構中前一個節(jié)點ht-1的結果將被保存,并與當前輸入的xt、rt、zt共同決定ht的輸出。最終,文本中距離較遠但與主題密切相關的不同關鍵詞將被保留下來。訓練過程中,與主題相關度低的關鍵詞將被過濾丟棄。
為了避免過擬合,在訓練階段需要從神經(jīng)網(wǎng)絡中隨機丟棄神經(jīng)單位,因此在輸出層的前一層,使用dropout[20]函數(shù),并取掩碼概率p的值為0.5。輸出層則使用softmax函數(shù),把一個k維的特征向量(a1,a2,…,ak)按概率分布進行歸一化處理,映射成向量(b1,b2,…,bk),其中每個元素的取值范圍均在0 到1 之間,最后選取概率最大的一維作為當前樣本的預測類別,其中k為類別個數(shù)。
本文的實驗環(huán)境為x86 平臺,InterCPU,內存16 GB,硬盤100 GB。操作系統(tǒng)為Windows10 家庭版,Pycharm2017。使用基于TensorFlow的深度學習庫Keras進行測試。
為了充分驗證GloVe_GRU 文本分類模型的有效性、增強對比性,本文選擇使用被廣泛研究及應用的深度學習算法,設置了以下對比實驗組:
(1)LSA_GRU文本分類模型,在特征表示模塊使用LSA進行向量化。
(2)采用本文提出的GloVe_GRU文本分類模型。
(3)文獻[21]的基于BP神經(jīng)網(wǎng)絡分類模型。
(4)文獻[5]提出的CNN神經(jīng)網(wǎng)絡模型。
實驗過程中,當GloVe 維數(shù)為300,LSA 維度為400取得最高的精準率。
本文采用文本分類通用評價標準進行實驗評價,包含三個指標:精確率、召回率、F1 值。
其中,公式(8)是精確率的計算,Ct+f是指實際分類的文本總數(shù),Ct是指正確分類的文本總數(shù)。公式(9)是召回率的計算,Ca是指應有的分類總數(shù)。公式(10)F1 是同時考慮精確率和召回率的綜合指標,旨在讓兩者同時達到最高,取得平衡。
4.3.1 數(shù)據(jù)集介紹
本實驗數(shù)據(jù)集為搜狗實驗室的新聞數(shù)據(jù),該數(shù)據(jù)集包含2012年6月到7月期間多個網(wǎng)站的新聞文本共17 892篇,9個分類。其中用于訓練的文檔數(shù)量共15 196篇,用于測試的文檔數(shù)量共2 696 篇。各類別文本數(shù)量分布如表1所示。
4.3.2 實驗結果分析
對數(shù)據(jù)集中的新聞文本按9個類別進行分類,實驗總體結果如圖4所示。
表1 新聞數(shù)據(jù)集9個類別樣本分布
圖4 新聞主題分類各模型綜合性能對比
從圖4 可以看出,本文提出的GloVe_GRU 文本分類模型,在Precision、Recall、F1 這3個指標上都有較明顯的優(yōu)勢。同樣以GRU 作為分類器的情況下,使用GloVe 詞向量化比使用LSA 詞向量化具有更好的分類效果,就精準率而言GloVe_GRU 模型比LSA_GRU 模型高出近5%。比BP 和CNN 神經(jīng)網(wǎng)絡,也高出近4%。實驗過程中發(fā)現(xiàn),CNN主要優(yōu)勢在于訓練速度較快,而缺點是不能很好地聯(lián)系上下文,僅能提取文本局部特征,這是導致其分類效果不理想的重要原因。而BP 效果不及GRU 的原因是它不能像GRU 一樣做到選擇性遺忘。
細化到對各不同模型下各主題分類的精準率進行分析,有助于從微觀角度上來分析不同模型的性能,其實驗結果性能如圖5所示。
圖5 各模型9個類別Precision性能對比
具體而言,GloVe_GRU 模型也并非對所有分類都具有最優(yōu)的精準率。在財經(jīng)分類上,BP 神經(jīng)網(wǎng)絡具有更好的效果,在科技、旅游分類上CNN 效果更佳,而對于健康、教育、職場、歷史等分類,GloVe_GRU模型則表現(xiàn)更優(yōu)。歸因于這4 個類型的文本明顯具有上下文語義關聯(lián)密切的特點,而GloVe_GRU 模型在進行全文語義關聯(lián)分析上優(yōu)勢突出。
從綜合指標F1 上來看,GloVe_GRU 模型在各個分類上都高于其他分類模型,如圖6 所示,這證明了GloVe_GRU模型總體上具有相對穩(wěn)定性。
圖6 各模型9個類別F1性能對比
4.4.1 數(shù)據(jù)集介紹
本實驗使用由智源研究院和中科院計算所舉辦的虛假新聞檢測挑戰(zhàn)賽所提供的數(shù)據(jù)集。該數(shù)據(jù)集包含新聞數(shù)據(jù)共38 471 篇,分虛假和正常兩個類別,其中用于訓練的文檔數(shù)量共30 000篇,用于測試的文檔數(shù)量共8 471篇,兩個類別的文本數(shù)量分布如表2所示。
表2 新聞數(shù)據(jù)集虛假與正常新聞類別樣本分布
4.4.2 實驗結果分析
根據(jù)數(shù)據(jù)集的新聞文本內容,判定該新聞是真新聞還是假新聞。這是自然語言處理(Natural Language Processing,NLP)[22]中典型的文本二分類問題,實驗總體結果如圖7 所示,由于二分類問題比多分類問題要簡單些,本文提出的GloVe_GRU 文本分類模型,在Precision、Recall、F1 這3 個指標上都達到98.3%,各項指標比LSA_GRU模型高出近3%。
圖7 虛假新聞檢測各模型綜合性能對比
而從微觀上來看,GloVe_GRU文本分類模型在Precision和F1 上也表現(xiàn)突出,各指標值均高于其他分類模型,如圖8和圖9所示。
圖8 各模型兩個類別Precision性能對比
圖9 各模型兩個類別F1性能對比
就準確率而言,對虛假新聞的分類準確率比對正常新聞要略高一些,這與假新聞本身的特征密切相關。對假新聞的分析更需要從全局上進行文本語義關聯(lián),發(fā)現(xiàn)造假的細微特征,而本文提出的GloVe_GRU 模型在上下文關聯(lián)分析方面優(yōu)勢明顯。從實驗數(shù)據(jù)上來看,GloVe_GRU 模型在綜合指標F1 值上,比 LSA_GRU 和BP模型都要高出近3%,比CNN模型高出1%,這再次證明了該模型的有效性。
本文以中文文本分類為研究對象,提出了結合GloVe和GRU的文本分類模型,并通過新聞文本分類實驗證明了GloVe_GRU 文本分類模型的有效性。當然GloVe模型也存在一個問題,對于同一詞在不同的語境中其向量表示是相同的,這可能會影響其應用效果。隨著對BERT詞向量模型研究的進一步深入,為了進一步提取上下文特征,提高文本分類效率,未來將會探索BERT 與GRU、CNN 等神經(jīng)網(wǎng)絡模型的結合,進一步探索GRU 與Multi-Head Attention[23]的結合,以構建更高效率的文本分類模型。