摘 要:傳統的GRU分類模型是一種基于LSTM的模型變體,它在LSTM的基礎上將遺忘門和輸入門合并成更新門,使得最終的模型比標準的LSTM模型更簡單。可是LSTM和GRU均沒有體現每個隱層輸出的重要程度。為了得到每個輸出的重要程度,本文在GRU的基礎上加入了注意力(Attention)機制,設計了GRU-Attention分類模型,并通過對比實驗的方式說明了增加了Attention的GRU模型在分類效果上有了一定程度的提升。
關鍵詞:自然語言處理;文本分類;GRU;注意力機制
中圖分類號:TP183;TP391.1 文獻標識碼:A 文章編號:2096-4706(2019)03-0010-03
Chinese Text Classification Based on GRU-Attention
SUN Mingmin
(Yangzhou University,Yangzhou 225000,China)
Abstract:The traditional GRU classification model is a model variant based on LSTM. It combines forgetting gate and input gate into update gate on the basis of LSTM,which makes the final model simpler than the standard LSTM model. However,LSTM and GRU do not reflect the importance of each hidden layer output. In order to get the importance of each output,Attention mechanism is added to GRU,and GRU-Attention classification model is designed,and the comparison experiment shows that the GRU model with Attention improves the classification effect to a certain extent.
Keyword:natural language processing;text classification;GRU;Attention mechanism
0 引 言
隨著互聯網行業的蓬勃發展,大數據時代已然來臨。每天互聯網中產生大批量的新聞文本數據,給這些文本數據進行系統的分類變成了一項重要且極具挑戰的任務[1]。文本分類[2]是自然語言處理的重要應用,也是最基礎的應用。因此,在大批量的新聞文本數據中,如何精準地進行文本分類成為一項極具價值的研究課題。
最初的文本分類基于規則,其分類規則需要人為定義,再按照定義的分類規則去構建分類器,該方法的弊端是需要耗費大量的時間和精力。在今天,一個人工智能技術[3]、自然語言處理技術[4]已經取得重大成果的新時代,文本分類也翻開了機器學習的新篇章。目前,文本分類又朝著深度學習方向在更新迭代。區別于傳統機器學習方法,深度學習最大的優勢就是避免了繁瑣的特征提取過程,經過預處理的文本可以使用詞向量的方法表示,然后使用深度學習方法進行特征提取,最后再進行分類。本文主要從深度學習的角度分析中文文本分類。
1 相關研究工作
在文本表征方面,通常首先將文本數學化,因為計算機只認識數字。詞向量就是用來將文本中的詞進行數學化的一種方式,顧名思義,詞向量就是把一個詞表示成一個向量。一種最簡單的詞向量方式是One-Hot Representation,就是用一個很長的向量來表示一個詞,向量的長度為詞典的大小,向量的分量只有一個1,其他全為0,1的位置對應該詞在詞典中的位置。但這種表示方法有兩個缺點:(1)容易受維數災難的困擾;(2)不能很好地刻畫詞與詞之間的相似性。為了克服這些缺點,Hinton于1986年提出Distributed Representation這種表示,其基本想法是直接用一個普通的向量表示一個詞,這種詞向量需要經過訓練,其典型的訓練方法是Word2Vec。Word2Vec就是將文本中的詞表征為實數值向量的算法模型,使用的詞向量是Distributed Representation的詞向量表示方式。Word2Vec一般分為CBOW(Continuous Bag-of-Words)與Skip-Gram兩種模型。CBOW模型的訓練輸入是某一個特征詞的上下文相關的詞對應的詞向量,輸出就是這特定的一個詞的詞向量。Skip-Gram模型和CBOW的思路是相反的,即輸入是特定的一個詞的詞向量,而輸出是特定詞對應的上下文詞向量。CBOW對小型數據庫比較合適,而Skip-Gram在大型語料中表現更好。
在分類模型方面,深度學習中最常見的兩大類模型,即卷積神經網絡(CNN)和循環神經網絡(RNN),它們在文本分類中有很多應用。卷積神經網絡(CNN)早期更多地應用在計算視覺領域。在2011年,Collobert等人首先提出使用CNN解決詞性標注(POS)、命名實體識別(NER)和語義角色標注(SRL)等自然語言處理領域的問題。CNN模型在捕捉長句依賴信息時,往往需要加深CNN的層數。與之相比,RNN模型更適合處理長距離依賴問題,但是RNN在建模過程中存在梯度消失的問題,所以后來的研究人員又提出了LSTM和GRU等RNN的變體,使LSTM和GRU成為解決自然語言處理領域問題的主流模型。
2 GRU模型
GRU(Gate Recurrent Unit)是循環神經網絡(Recurrent Neural Network,RNN)的一種。與LSTM(Long-Short Term Memory)一樣,也是為了解決長期記憶依賴和反向傳播中的梯度消失等問題而提出來的。相比LSTM,使用GRU能夠達到相當的效果,并且更容易進行訓練,能夠很大程度上提高訓練效率,因此,很多時候研究人員會更傾向于使用GRU。
2.1 GRU的整體結構
GRU的輸入輸出結構與普通的RNN是一樣的。有一個當前的輸入xt,和上一個節點傳遞下來的隱狀態(hidden state),ht-1這個狀態包含了之前節點的相關信息。結合xt和ht-1,GRU會得到當前隱藏節點的輸出和傳遞給下一個節點的隱狀態ht。GRU的結構如圖1所示。
2.2 GRU的內部結構
首先,通過上一個傳輸下來的狀態ht-1和當前節點的輸入xt來獲取兩個門控狀態。如下計算公式所示,其中rt為控制重置的門控(reset gate),zt為控制更新的門控(update gate)。
rt=σ(Wr·[ht-1,xt])
zt=σ(wz·[ht-1,xt])
得到門控信號之后,首先使用重置門控來得到重置之后的數據ht-1*rt,再將ht-1*rt與輸入xt進行拼接,通過一個tanh激活函數將數據放縮到-1~1的范圍內。即得到如下公式所示的ht:
ht=tanh(wh·[ht-1*rt,xt])
這里的ht主要包含當前輸入的xt數據。有針對性地將ht添加到當前的隱藏狀態,相當于記憶了當前的狀態。在這個階段,同時進行了遺忘和記憶兩個步驟。我們使用了先前得到的更新門控zt(update gate)。
更新計算公式:ht=(1-zt)*ht-1+zt*ht
門控信號(zt)的范圍為0~1。門控信號越接近1,代表記憶下來的數據越多;而越接近0則代表遺忘的越多。GRU的優點在于可以使用同一個門控zt同時進行遺忘和選擇記憶(LSTM要使用多個門控)。結合上述,這一步的操作就是忘記ht-1中的某些維度信息,并且加入當前輸入的某些維度信息??梢钥吹?,這里的遺忘zt和選擇1-zt是聯動的,也就是說,對于傳遞進來的維度信息,會進行選擇性遺忘,則遺忘所占的權重zt,就會使用包含當前輸入的ht中所對應的權重進行彌補(1-zt),以維持一種恒定狀態。
3 GRU-Attention模型
注意力機制(Attention)最早是在視覺圖像領域提出來的,能夠使深度學習模型在處理視覺圖像領域問題時更好地提取重要特征,從而提升模型效果。近些年來,注意力機制逐漸被應用到自然語言處理領域,并且能夠有效提高自然語言處理任務的效果,比如機器翻譯、情感分析等任務。注意力機制是一種類似人腦的注意力分配機制,通過計算不同時刻詞向量的概率權重,能夠使一些詞得到更多的關注,從而提高隱藏層特征提取的質量。
在GRU模型中,由于輸入的詞向量是文本分詞預處理后的結果,所以詞向量之間會具有一些聯系,基于注意力機制的深度學習模型能夠通過訓練詞向量識別文本中詞語的重要程度來提取文本中的重要特征。在GRU-Attention模型中,通過注意力機制所起的作用,可以找出文本中的關鍵詞,這些詞語往往是分類的重要信息。GRU-Attention模型的結構如圖2所示。
圖2 GRU-Attention模型結構
圖中的輸入為文本預處理后的各個詞的向量表示x1,x2,x3,…,xi,這些輸入會進入GRU模型中,經過GRU模型計算之后會得到對應輸出h1,h2,h3,…,hi,然后在隱藏層引入Attention,計算各個輸入的注意力概率分布值a1,a2,a3,…,ai,進一步提取文本特征,突出文本的關鍵詞語。其中,Attention機制的計算公式如下:
v=Σaihi
ei=witanh(Wihi+bi)
其中,ei是由Babdanau等人提出的一種校驗模型,ei表示第i時刻隱層狀態向量hi所決定的注意力概率分布值,wi和Wi表示第i時刻的權重系數矩陣,bi表示第i時刻相應的偏移量。通過上面的公式可以計算出最后包含文本信息的特征向量v。輸出層的輸入為上一層Attention層的輸出。最后利用softmax函數對輸出層的輸入進行相應計算,從而進行文本分類,其計算公式如下:
y=softmax(wiv+bi)
其中:wi表示Attention機制層到輸出層待訓練的權重系數矩陣,bi表示待訓練相對應的偏置量,y為輸出的預測標簽。
4 實驗過程
4.1 實驗環境
本實驗采用Windows10操作系統,i5四核處理器,運行內存為16GB的運行環境。編程語言為Python3.6,并在Jupyter Notebook平臺上配合Tensorflow1.6版本深度學習框架進行開發。
4.2 實驗數據
為驗證本文提出的文本分類方法,本文采用Python爬蟲從騰訊新聞爬取的中文新聞文本數據進行實驗。實驗數據一共包括科技、汽車、娛樂、軍事和運動五大類別。數據量一共為87595條,并將數據集的75%作為訓練集,25%作為驗證集來驗證算法的效果。所有數據均采用Jieba分詞工具進行分詞,去停用詞的操作之后,再將文本使用word2vec轉化成詞向量作為算法的輸入。
4.3 實驗設計
本文采用對比實驗的方式分別對GRU-Attention和GRU深度學習模型進行中文新聞文本分類實驗,用來說明注意力機制對文本分類結果的影響,然后在同樣的數據集上使用傳統的機器學習方法,包括支持向量機(SVM)、樸素貝葉斯(NB),并與前面的深度學習模型的分類效果做對比,來說明采用GRU深度學習模型的優勢。本文的文本分類效果的評價指標采用準確率(Precision)、召回率(Recall)和F1值作為綜合評價指標。各個評價指標的計算公式如下:
4.4 實驗結果分析
實驗結果如表1所示,從中可以看出,在相同的數據集中,GRU-Attention模型的表現性能優于經典的GRU模型。另外,GRU模型以及GRU-Attention模型的性能效果要比傳統機器學習分類模型好,是因為注意力機制計算了文本中每個詞的注意力概率值,這樣可以更好地提取文本特征,從而提高文本分類的準確率。這說明Attention對GRU文本分類模型性能的提升起到了一定的作用。
5 結 論
本文提出了一種新穎的混合模型GRU-Attention,將其在文本分類任務上進行實驗,并與當前主流的深度學習模型以及經典的機器學習模型進行對比,表明基于GRU-Attention模型可以體現文本中每個輸入詞的重要程度,從而可以更加精確地提取文本特征。不僅如此,加入注意力機制后,模型既可以計算每個輸入詞的注意力概率分布值,也減少了特征提取過程中的信息丟失問題,缺點是在引入Attention機制后,需要消耗一定的計算成本,如果文本輸入長度增加,隨之而來的計算量也會呈倍增長。在下一步的工作中,需要繼續探究優化Attention的計算方法,減少計算量,進一步提高文本分類的效率和準確率。
參考文獻:
[1] 相海泉.大數據時代 [J].中國信息界(e醫療),2013(5):36-37.
[2] 張磊.文本分類及分類算法研究綜述 [J].電腦知識與技術,2016,12(34):225-226+232.
[3] 彭健.人工智能的關鍵性技術 [J].互聯網經濟,2018(12):46-51.
[4] 黃昌寧,張小鳳.自然語言處理技術的三個里程碑 [J].外語教學與研究,2002,34(3):180-187+239.
作者簡介:孫明敏(1993.07-),男,漢族,安徽巢湖人,碩士,研究方向:自然語言處理。