姚 苗,楊文忠,+,袁婷婷,馬國祥
(1.新疆大學 軟件學院,新疆 烏魯木齊 830046;2.新疆大學 信息科學與工程學院,新疆 烏魯木齊 830046)
隨著互聯網應用的快速發展,網絡文本信息呈現出爆炸式增長的特點。設計一個高效的模型,實現對輿情信息的有效監控變得越來越困難。如何利用文本上下文依賴關系,利用文本中的關鍵信息,加大對文本局部關鍵信息的注意力,減少與主題相關性低的句子或詞對文本分類性能的負面影響,改善文本分類的效果是目前研究工作的重點與難點。
通過捕獲更加充分的上下文依賴關系的文本表示和突出局部關鍵信息的注意力,本文提出Att-BLSTMs模型。stack Bi-LSTMs網絡結構利用文本的上下文信息,通過正向LSTM和反向LSTM的交替傳播,可以更好捕獲文本上下文的強依賴關系,得到語義特征更加豐富的文本向量。利用自注意力機制,把握文本中的關鍵信息,使得關鍵信息權重增加,突出重點,從而更好地進行文本表示,進而達到優化文本分類的精確率的目標。
文本分類是一個經典的自然語言處理任務。因此,文本分類吸引了學者們的廣泛研究興趣,并且提出了諸多模型。Guo A等[1]提出利用粗糙集將訓練集劃分成確定領域和不確定領域,對確定領域直接用KNN進行分類,對不確定領域進行依賴分析后采用KNN分類。Bidi N等[2]提出利用遺傳算法改進文本分類過程中特征選取過程,從而提高分類的準確率。Lin Y等[3]通過結合KNN算法與SVM算法,通過反饋和改進分類預測概率來提高分類器的性能。Neethu等[4]提出結合K-means算法和極限學習機的文本分類模型。Li Zhenzhong等[5]提出基于LDA主題模型的新聞文本分類算法。上述方法雖然在文本分類準確率上有所提高,但是未曾考慮文本上下文依賴依賴關系,忽略了上下文語義對分類準確率的影響。
近年來,隨著深度學習模型在計算機視覺和語音識別的應用上取得了顯著的成就。將深度學習的優勢發揮在文本分類任務中,提高文本分類的準確率是值得研究的工作。Yoon Kim[6]提出基于卷積神經網絡的句子級分類模型,該模型在訓練詞向量時,利用CNN進行預訓練,優化特征表達。Zhang Xiang等[7]提出一種字符級的卷積神經網絡模型,與傳統詞袋模型、n-grams以及基于詞的ConvNets模型相比有明顯提升,但也存在不足,例如模型性能依賴數據集的大小以及字母表的選擇。龔千健[8]提出利用神經網絡模型RNN來進行文本分類,有效解決了統計學習方法未能利用上下文信息等缺點。Zhou Peng等[9]提出改進的Bi-LSTM,給Bi-LSTM增加了2D的卷積層和2D的池化層,用Bi-LSTM來捕獲句子間的依賴關系,用2D的卷積層和2D的池化層來提取深層特征表達,與RNN、CNN、RecCNN對比,效果有明顯提升。Lai Siwei等[10]提出RCNN(recurrent convolutional neural networks)模型,在RNN的變體Bi-LSTM基礎上增加max-pooling layer(即最大池化層),Bi-LSTM可以捕獲上下文語義信息,利用最大池化層來捕獲文本分類中起關鍵作用的特征。以上方法,CNN和RNN神經網絡的模型都可以捕獲上下文依賴關系,但是未曾考慮對文本中關鍵信息的捕獲,以及關鍵信息對文本分類準確率提升的影響。
Li Chao等[11]提出基于統計特征和注意力機制的異常文檔檢測方法,利用注意力機制計算單詞的注意力權重捕獲句子中的關鍵單詞。Zhao G等[12]提出結合LSTM和注意力機制方法,對視頻中連續語義進行捕獲。Bai J等[13]提出基于注意力機制的Bi-LSTM與CNN結合的微博發布位置檢測模型,提高了位置檢測的準確率。田生偉等[14]針對維吾爾語的事件時序關系識別任務提出利用Bi-LSTM和注意力機制結合的混合神經網絡模型,先把文本向量放入Bi-LSTM層,提取一些文本信息,利用注意力機制進行深層文本特征提取。Wang X等[15]提出一種基于情境感知的注意力機制的LSTM模型,利用LSTM學習時間序列的隱藏特征表示,利用時間注意力機制學習每個時隙的重要性權重,達到預測未來的動亂新聞量的目的。上述方法雖然將LSTM、Bi-LSTM與注意力機制結合,從一定程度上捕獲了上下文隱藏深層依賴關系,也利用注意力機制對關鍵信息進行捕獲,但是LSTM與Bi-LSTM相比于stack Bi-LSTMs,多層Bi-LSTMs不允許前后向層之間共享信息而stack Bi-LSTMs前后向信息交替傳播,有利于捕獲更深層次的隱含依賴關系。
為了解決傳統RNN的長期依賴問題、梯度消失的問題,Hochreiter和Schmidhuber[16]提出了LSTM(long short-term memory)。LSTM的主要思想是引入了自適應的門控機制,來決定LSTM單元保存先前狀態的程度和記憶當前輸入單元的抽取特征的程度。
LSTM循環神經網絡是由3部分組成:帶對應權重矩陣Wxi,Whi,Wci,bi的輸入門(input gate)、帶對應權重矩陣Wxf,Whf,Wcf,bf的忘記門(forget gate)和帶對應權重矩陣Wxo,Who,Wco,bo的輸出門(output gate),所有門控制機制使用當前輸入xi,上一層生成的狀態hi-1,以及當前單元的激活值ci-1來決定是否接受輸入,是否忘記之前存儲的記憶,和輸出最后的狀態。以下為更新各個門控機制及單元狀態的公式
it=σWxixt+Whiht-1+Wcict-1+bi
(1)
ft=σWxfxt+Whfht-1+Wcfct-1+bf
(2)
gt=tanhWxcxt+Whcht-1+Wccct-1+bc
(3)
ct=itgt+ftct-1
(4)
ot=σWxoxt+Whoht-1+Wcoct-1+bo
(5)
ht=ottanhct
(6)


圖1 Bi-LSTMs網絡結構

圖2 stack Bi-LSTMs網絡結構
圖1中,Bi-LSTMs[17]網絡結構不允許在前后向LSTM層之間共享前向和后向信息,多層LSTM時,總是先進行前向LSTM訓練,再進行后向LSTM訓練。
圖2中,stack Bi-LSTMs[17]通過前后LSTM層交替進行訓練,增加了前向LSTM和后向LSTM的信息交互,有利于對上下文語義特征信息的捕獲,充分發掘上下文語義時序依賴關系。
注意力機制最初只應用于計算機視覺中的圖片識別[18]任務中,人們視覺在感知東西時,通常不會是一個場景從到頭看到尾每次全部都看,而往往是根據需求觀察注意特定的一部分。當人們發現一個場景經常在某部分出現,人們會進行學習在將來再出現類似場景時,把注意力放到該部分上。隨后注意力機制在問答系統[19]、機器翻譯[20]、語音識別[21]、圖像捕捉[22]上有成功的應用。

M=tanh(H)
(7)
α=softmax(W(3)TM)
(8)
r=HαT
(9)
h*=tanhr
(10)
其中,M∈Rdw×n,H∈Rdw×n,dw是詞向量的維度,W(3)是訓練得到的參數向量,W(3)T是參數向量的轉置。W,α,r的維度分別是dw,n,dw。通過式(10)用一個tanh激活函數得到最終的句子表示h*。
Att-BLSTMs模型利用stack Bi-LSTMs來捕獲上下文語義特征信息,優化詞表示向量,緩解了短文本特征稀疏的問題。利用注意力機制加大文本局部關鍵信息的注意力,優化了文本表示。模型結構如圖3所示。

圖3 Att-BLSTMs模型結構
如圖3所示,模型的輸入是文檔D,文檔D為包含n個單詞w1,w2…wn的序列。對輸入文檔D,進行分詞處理,去噪處理。將處理過得文檔D,通過Word Embedding預訓練生成詞向量,將詞向量作為stack Bi-LSTMs模型的輸入,通過stack Bi-LSTMs對單詞上下文語義特征信息進行挖掘后,雖然詞向量本身可以捕獲一些詞與詞之間的依賴關系,但是對于一些隱藏的深層次的上下文依賴關系不能很好捕獲,而stack Bi-LSTMs通過前向LSTM和后向LSTM交替傳播,將上下文信息緊密聯系到一起,能夠捕獲到隱藏的上下文依賴關系,從而來優化短文本語義特征稀疏的問題。然后利用自注意力機制,計算注意力值,增強文檔中關鍵信息的注意力,從而來優化文本表示。模型的輸出為文檔類別y,本文使用概率pkD,θ來驗證文檔D屬于文檔標記類別k的概率,其中θ是模型的訓練得到的參數。
在對數據集進行分詞、去停用詞之后得到詞匯表,本文利用Word Embedding技術,將詞匯表中的單詞映射成由實數構成的向量,從而得到最初的文本表示。在預訓練詞向量時,利用由Hinton等[24]提出的dropout方法,采用dropout丟失率為0.5隨機丟棄部分的特征,防止模型出現過擬合現象。
Word Embedding可以對文本中詞向量的簡單依賴關系進行捕獲,但是對文檔中上下文中隱藏的深層語義依賴關系捕獲不足。本文采用圖2的stack Bi-LSTMs網絡結構進行上下文隱含依賴關系捕獲。因為一層stack Bi-LSTM在短文本中捕獲深層隱含依賴關系效果不明顯,所以采用兩層stack Bi-LSTMs能突出深層次隱含強依賴關系的捕獲。具體利用下面公式進行計算
ewi=W(wrd)vi
(11)
(12)

通過利用word Embedding和stack Bi-LSTMs結合的方式,捕獲上下文隱含的依賴關系,得到了更加豐富的文本表示向量,緩解了短文本因為字符數少而造成的語義特征稀疏的問題,為更好提高文本分類準確率打下良好的基礎。
Att-BLSTMs模型利用自注意力機制來表示文本。結合注意力機制的處理信息冗余和信息丟失問題的優勢,加大對文本關鍵信息的注意力,從而優化文本表示,強化文本語義特征。
本文利用將文本表示成一系列(鍵key-值value)對的映射。自注意力捕獲關鍵信息表示如圖4所示。

圖4 自注意力key-value映射
利用式(7)-式(10),將stack Bi-LSTMs和每個key進行相似度計算,利用softmax函數對得到的權重進行歸一化處理,將權重和相應的鍵值value進行加權求和,得到最終的注意力值。在stack Bi-LSTMs捕獲到依賴關系明確的上下文語義依賴關系特征后,利用自注意力機制,加大關鍵信息的注意力,充分利用了關鍵信息,從而優化了文本表示,有利于提高文本分類的準確性。
通過對上下文隱藏依賴關系的捕獲和增加關鍵信息注意力進行優化文本表示后,利用softmax分類器進行文本分類。用softmax分類器將輸出值yi轉換成概率p(kiD,θ),如式(13)所示
(13)
θ={E,Wxi,Whi,Wci,bi,Wxf,Whf,Wcf,bf,Wxo,Who,Wco,bo}
(14)
E=ew1,ew2,…,ewn
(15)
其中,D為輸入文檔,θ為模型訓練學習到的參數,ki為分類標記,因為本文實驗采用數據集包含4個標記類別,所以i∈{1,2,3,4}。模型最后輸出p(kiD,θ)概率值最大的類別。
為了驗證本文提出方法的可行性設計了以下實驗。實驗環境:操作系統為win10,處理器為Intel Core i7,內存8 G,CPU為1.99 GHz,開發工具為PyCharm Community Edition 3.3。
本文采用公開數據集AG-news作為實驗的語料庫。它包含了從2000多個新聞源上選取的496 835篇已經分類的文章。包含4個類別,分別是:World、Sports、Business、Sci/Tech,使用標題和文章內容兩個領域,來構建本文實驗的語料庫。包括110 000條數據作為訓練語料,其中驗證數據集占30%,使用7058條數據作為測試語料。根據統計顯示,類別World包含27 597條語料,Sports包含27 555條語料,Business包含27 515條語料,Sci/Tech包含27 333條語料。從統計數目上,可以看出在訓練語料中4個種類的新聞條數分布均勻。根據統計顯示,本文使用訓練語料庫AG-news平均每篇文檔包含34個單詞,認定屬于短文本。
本文采用公開DBpedia分類數據集是通過從DBpedia 2014中挑選14個非重疊類來構建的。包括Company、Educational Institution、Artist、Athlete、Office Holder、Mean Of Transportation、Building、Natural Place、Village、Animal、Plant、Album、Film、Written Work。每個類別隨機選擇40 000條訓練語料,選擇5000條作為測試語料。訓練數據集的總大小為560 000條,測試數據集為70 000條。
為保證實驗結果的穩定,所有實驗均將樣本數據隨機打亂作為模型的輸入。采用微平均的F1值和宏平均的F1值作為模型的評價指標。
(1)模型參數
本次模型的參數設置見表1。

表1 模型參數
其中,embedding_size為詞向量的維度,step是指模型訓練達到最優的迭代次數,num_hidden為Bi-LSTMs的隱藏層節點數,learning_rate為學習率,num_layers為Att-BLSTMs模型中Bi-LSTMs的層數,batch_size為單次迭代訓練批處理樣本的個數。
(2)embedding_size的取值對實驗性能的影響
不同維度的詞向量所蘊含的語義信息不同,理論上詞向量維度越大所蘊含的語義信息就越多。在AG-news數據集中,下面對embedding_size取值為50維、100維、150維、200維進行實驗,實驗結果見表2。

表2 embedding_size與模型性能的關系
從表2可以得出,當詞向量維度為150維時,模型性能達到最優,此時微平均的F1值和宏平均的F1值分別為89.77%、89.17%。但當詞向量維度增大到200維時,模型性能相比維度為150維時,微平均的F1值下降了3.29%,宏平均的F1值下降了2.79%。這是因為詞向量維度過高,雖然表達了更多的語義信息,但是其中也包含了一些噪聲,模型出現了過擬合的現象,從而導致模型的泛化性能下降。
(3)learning_rate的取值對實驗性能的影響
學習率控制模型的學習進度,直接影響著模型訓練達到最優的效果。在AG-news數據集中,下面對learning_rate的常用取值0.0001、0.0003、0.001、0.003、0.01進行實驗,實驗結果見表3。

表3 learning_rate與模型性能的關系
從表3得知,當learning_rate為0.001時,模型性能達到最優。但是當學習率增大至0.01時,模型性能相比學習率為0.001時,評價模型性能的微平均F1值下降了7.1%,宏平均F1值下降了6.58%。由于學習率太大,導致訓練過程中跨過最優值,長時間無法收斂,造成模型無法達到最優性能。而當學習率降低至0.0001時,評價模型性能的微平均F1值下降了8.69%,宏平均F1值下降了8.07%。這是因為當學習率過小時,模型容易陷入局部最優,而達不到在全局范圍內的最優性能。
(4)num_layers的取值對實驗性能的影響
Att-BLSTMs模型中,深度神經網絡的層數與模型的復雜程度直接相關,反映了模型對數據的擬合程度。在AG-news數據集中,下面對超參數num_layers的取值為1層、2層、3層進行實驗,實驗結果見表4。

表4 num_layers與模型性能的關系
由表4可知,當Att-BLSTMs模型的num_layers取值為2層時,模型的性能達到最優。與層數為3層相比,評價模型性能的微平均F1值下降了5.1%,宏平均F1值下降了4.92%。這是因為在數據集不變的情況下,模型層數增加,模型復雜程度提高,出現過擬合現象,使得模型在測試數據集上泛化能力降低。與層數為1層相比,評價模型性能的微平均F1值下降了2.71%,宏平均F1值下降了2.19%。這是因為模型層數減少,模型出現欠擬合現象,從而導致模型的泛化能力下降。
(5)Att-BLSTMs與其它模型的實驗性能對比
在AG-news網頁新聞數據集和DBpedia分類數據集上,將本文提出的Att-BLSTMs方法與LSTM模型和變體Bi-LSTM模型進行對比實驗,與CNN模型以及LaiSiwei等[14]提出了RCNN模型進行對比實驗,結果見表5。

表5 Att-BLSTMs與其它模型對比
由表5可知,在AG-news網頁新聞數據集和DBpedia數據集上,LSTM和Bi-LSTM模型相比,Bi-LSTM模型在文本分類任務中的性能優于LSTM模型,這是因為Bi-LSTM模型在LSTM基礎上增加了一個反向LSTM。正向LSTM用于捕獲上文特征信息,反向LSTM用于捕獲下文特征信息,然后將上下文特征信息相加,從而可捕獲文本全局上下文信息,因而擴展后的Bi-LSTM模型在文本分類上的性能要優于LSTM模型。Att-BLSTMs模型與Bi-LSTM模型相比,Att-BLSTMs模型,結合了stack Bi-LSTMs和自注意力機制的優點,利用2層stack Bi-LSTMs模型前向LSTM捕獲上文特征信息,后向LSTM捕獲下文信息交替傳播,利用自注意力機制加大關鍵信息語義特征表達,因而,Att-BLSTMs模型要優于Bi-LSTM模型。
由表5可知,在AG-news網頁新聞數據集和DBpedia數據集上,CNN與RCNN和Att-BLSTMs相比,在文本分類任務中反映模型性能的微平均F1值和宏平均F1值均有所下降,這是因為CNN模型利用局部卷積思想,雖然能夠捕獲文本序列的局部特征,但是缺乏了對全局上下文信息的考慮。而RCNN和Att-BLSTMs模型則可以捕獲全局上下文隱藏依賴關系特征。RCNN模型利用最大池化原理來突出關鍵特征表達。Att-BLSTMs模型,用stack Bi-LSTMs來捕獲全局隱藏依賴關系信息,結合自注意力機制來進一步挖掘關鍵信息,所以CNN在性能上要低于RCNN模型和Att-BLSTMs模型。RCNN模型與Att-BLSTMs模型相比,在RCNN模型中CNN用來進行文本表示,只是利用一層最大池化層來找到文本中最關鍵的語義信息,具有局限性,并且未曾考慮加大關鍵信息的注意力,而自注意力機制不僅能很好表達文本,而且可以加大關鍵信息的注意力。因而,Att-BLSTMs模型的整體性能優于RCNN模型。
由表5可知,在DBpedia數據集中各個模型微平均F1值和宏平均F1值都要優于在AG-news數據集中驗證的結果。分析原因為:DBpedia數據集中各個類別的語料更加豐富,并且DBpedia是從維基百科的詞條里擷取出結構化的資料,便于模型處理。
本文針對目前的短文本分類算法沒有綜合考慮文本中隱含的依賴關系和局部關鍵信息這一問題,利用深度學習的方法,提出了一種結合自注意力機制的stack Bi-LSTMs模型。該模型可以很好捕獲上下文隱含的依賴關系特征信息,并且加大對文本關鍵信息的注意力,從而提高了文本分類的準確性。在AG-news網頁新聞數據集和DBpedia數據集上,實驗結果表明了Att-BLSTMs模型從性能上優于LSTM模型、Bi-LSTM模型、CNN模型及RCNN模型。下一步將把該模型應用到突發事件內容的演化和跟蹤任務上,從而有利于政府對突發事件的內容進行良好的分析,達到對突發事件演化進行有效監控的目標。