一文帶你速覽分層注意力網路在文字分類中的應用

AMiner學術頭條發表於2019-06-04

2016年,神經網路文字分類的任務上逐漸成為了主流方法之一。Word2vec等預訓練詞向量模型為文字任務提供了一個具有很強語義資訊的輸入,而卷積神經網路和LSTM/GRU也已表現出了在序列任務上的聚合能力。前者可以像n-gram模型一樣將前後的資訊用一個滑動視窗整合在一起,而後者則是能夠在長距離上捕獲資訊,對於前後順序極其敏感的文字序列輸入非常有效。

注意力機制的引入進一步推動了神經網路模型在文字任務以及自然語言處理上的發展。它不僅能夠幫助模型更好地利用輸入中的有效資訊,而且還對神經網路模型的行為提供了一定的解釋能力。

本文介紹的“Hierarchical Neural Networks for Document Classfication”在傳統注意力機制的基礎上,考慮到了文字的內部結構:文字內的資訊本身具有不同層級,比如最底層的字元級別、詞語級別到上層的短語級別、句子段落級別。這篇論文將其與注意力機制結合,分別在詞語級別上以及句子級別上做了注意力機制的建模,不僅提升了文字分類的效果,而且關注到了不同詞語在不同類別上表徵特性的變化。

一文帶你速覽分層注意力網路在文字分類中的應用

這篇文章提出的分層注意力網路(Hierarchical Attention Network)的結構如上圖所示。輸入層使用了預訓練的200維word2vec詞向量,文章中也提到這一部分可以進一步用字元級別的編碼模型來構建詞向量。在編碼層方面,上下兩層編碼器都採用了50維隱含層的雙向GRU結構。在每個編碼層之上,採用了注意力機制

一文帶你速覽分層注意力網路在文字分類中的應用

GRU訓練速度更快,LSTM記憶能力更好

GRU模型相較於傳統的RNN模型,使用了重置門(Reset Gate)r和更新門(Update Gate)z,它們共同決定當前資訊如何傳遞到下一時間。相較於LSTM,GRU的引數更少(GRU只有兩個控制門而LSTM有三個),因此GRU的訓練速度會相對快一些,對於較小規模資料的學習效果相對更好。LSTM則是在較長的序列上有更好的記憶能力。

筆者認為由於模型的輸入已經將長文字變為一些句子分別進行輸入,輸入文字的預期長度相較於原輸入會短很多,因此在這裡採用了GRU。

一文帶你速覽分層注意力網路在文字分類中的應用

HAN中一種基礎的注意力機制

在2016年“Attention is All you need”還未出來時,注意力機制已經和LSTM/CNN等序列模型有了很好的結合。相較於直接使用RNN最後的輸出,或是使用Max-Pooling或者Average-Pooling在RNN的所有輸出上做聚合,使用注意力機制能夠更好地利用不同時間點上RNN單元的輸出,而且還為模型的行為提供了一定程度的解釋。

上圖所示的公式便是在HAN中使用的比較基礎的一種注意力機制。這裡先用一個單層MLP獲得輸入的隱含表示,然後再用非線性層(tanh)加上softmax做正規化處理得到權重,最後依據這些權重做線性疊加得到重新分配權重後的序列表徵。


在模型的最後,HAN採用了單層MLP加softmax做文字分類,並使用negative log likelihood作為訓練目標。

一文帶你速覽分層注意力網路在文字分類中的應用

原論文在Yelp Review,IMDB reviews,Yahoo reviews以及Amazon Review上做了一系列實驗,比較了HAN以及幾種經典的Baseline模型的效果。其中,分層注意力網路在各個資料集上都取得了很好的效果提升。

層次網路相較於之前有一定提升

文章指出,在長文字方面,樸素的神經網路模型(LSTM,CNN-word,CNN-char)並沒有比傳統機器學習模型(SVM)有很大的提升,它們沒有充分利用層次資訊。顯式地使用層次資訊(HN-AVE,HN-MAX,HN-ATT)則有非常顯著的提升,而且本文的層次網路相較於之前使用層次資訊的Conv-GRNN以及LSTM-GRNN也有一定的提升。

一文帶你速覽分層注意力網路在文字分類中的應用

注意力機制幫助模型有更高輸出

注意力機制對於詞語資訊的權重重分配,可以幫助模型在相應分類上有著更高的輸出。比如對於一個評論,“good”往往象徵著積極的評論。如下圖所示,橫座標是權重的大小,縱座標是出現的比例,圖3(a)圖是“good”在所有案例中的分佈,(b)到(f)分別是評分1~5的案例中good的分佈情況。可以看到,對於較好的評分(e/f圖對應4/5分),”good”的權重往往會較大。

一文帶你速覽分層注意力網路在文字分類中的應用

圖4中bad的分佈正好相反:評分越高bad的權重越小。

一文帶你速覽分層注意力網路在文字分類中的應用

層次資訊+注意力機制=提高模型的理解分析能力

層次資訊的使用加上注意力機制,能夠讓模型在做出判斷時,忽略掉一些干擾資訊。比如下圖分別是評分為4和評分為0的兩個案例的注意力分配情況。左側的紅方塊深淺代表句子權重,右側的藍方塊深淺代表詞語權重。可以看到在評分為4的案例中出現了don’t even like這樣的資訊,雖然這幾個詞的權重都相對較高,但是句子上的權重把這個影響忽略掉了。

一文帶你速覽分層注意力網路在文字分類中的應用

在右側評分為0的案例中,同樣出現了good這樣的積極詞彙,但是同樣地,句子上的權重幫助模型將注意力放在了收尾兩句情感意向非常明顯的資訊上,從而做出了正確的判斷。可見層次資訊與注意力機制的結合確實提高了模型的理解分析能力,表現出了文字中句子層次上結構資訊的重要性。

原文

Yang,Zichao, et al. "Hierarchical attention networks for documentclassification." Proceedings of the 2016 Conference of the NorthAmerican Chapter of the Association for Computational Linguistics: HumanLanguage Technologies. 2016.

引用

https://towardsdatascience.com/what-is-a-recurrent-nns-and-gated-recurrent-unit-grus-ea71d2a05a69

相關文章