當前位置:
首頁 > 最新 > 論文筆記:Attention is All You Need

論文筆記:Attention is All You Need

在主編的盛(wei)情(bi)邀(kong)請(he)下,我又來更新了。最近準備一篇文本情感分析的文章,感覺腦洞開的還是不夠大,遂讀paper找靈感,今天和大家分享一篇題目足夠霸氣,腦洞足夠大的文章,來自Google發表在2017年NIPS上面的《Attention is All You Need》

RNN和CNN是常見的上下文表達模型,其優缺點也比較明顯。RNN在計算時有時間上的先後順序,難以並行,嚴重影響了計算速度。CNN更關注局部依賴,難以對長期依賴有效建模,但易於並行計算,更多應用在CV領域。在RNN上通過加Gate的方式,一定程度上緩解了梯度消失和梯度爆炸的問題,但是對於長期依賴的表達仍有不足。基於CNN和RNN的缺點,Google提出用self-attention取代CNN和RNN,既解決了RNN難以並行的問題,又保證了對長期依賴的表達,在機器翻譯上取得了SOA的結果。

模型的整體框架如上圖所示,依然使用了encoder-decoder的結構。encoder由6個獨立的層組成,每一層包含兩個子層。輸入經過embedding層之後首先經過multi-head attention單元,這也是文章的核心單元,然後通過殘差連接和layer normalization得到第一個子層的輸出。隨後經過文章提出的Feed Forward Network,後面依然是殘差連接和layer normalization得到第二個子層的輸出。6個層堆疊得到上下文表達。decoder依然由6個獨立的層組成,每一層包含三個子層。除了encoder中提到的兩個子層外,多了masked multi-head attention單元,通過mask確保當前位置的輸出僅與該位置之前的輸出有關。

接下來重點介紹核心部分multi-head attention單元。attention包含三個輸入,分別是Query(Q), Key(K), Value(V),首先要明確Q、K、V分別代表什麼。在不同的任務中,Q、K、V有不同的表示,在文章提到的機器翻譯中,Q、K、V都是encoder層的輸入,這也就是為什麼叫self-attention的原因。Q、K、V經過線性變換後進入scaled dot-product attention單元,該單元的結構如下圖左所示。

在scaled dot-product attention單元,Q首先和K相乘,經過softmax做歸一化並得到Q和K的相似度,作為權重於V進行加權求和,為了防止內積過大使softmax飽和,通過係數調節對QK點乘積進行限幅。scaled dot-product attention部分公式表示如下:

在解決了attention的組成之後,從全局角度看,multi-head attention單元可以用下面的公式表示。

這裡的multi-head和卷積的多個卷積核似有相似之處。對於該演算法中attention的更直觀的描述,可以參考Google自家的博客中的動圖。

GIF

除了attention子層之外,模型還包含Feed Forward Network,所謂Feed Forward Network即兩層線性映射中間包含一個ReLu的非線性激活函數。當然也可以從另一個角度看這一部分,它可以表示為兩層卷積核大小為1的一維卷積。在這裡卷積的思想得以應用,進一步表達了上下文特徵。

寫到這裡,該模型的核心部分已經介紹完成,但是他仍有一個和詞袋模型同樣的缺點:該模型無法體現輸入詞語的先後,換句話說,打亂句子順序,得到的結果相同。當然作者也注意到了這一點,於是引入位置編碼機制(position embedding)。位置編碼將每一個位置編號,每個位置對應一個向量,在原有embedding的基礎上加上位置編碼信息,這樣在embedding層就可以體現位置信息。關於位置編碼的構成,也是非常tricky,作者引入三角函數來表示。位置的變化可以通過三角函數的線性變換完成,提供了表達相對位置信息的可能。

終於介紹完了模型結構,下面說一下自己的體會。初讀文章困惑於文章提出的各種新的模塊,這些新的結構和命名之前從未見過(似乎Google很熱衷定義新模型)。再度文章,發現本文介紹的self-attention的思想並不複雜,早在2016年ACL中已經有self-attention用於閱讀理解任務。multi-head結構和卷積又有千絲萬縷的聯繫。本文刻意強調不使用CNN和RNN,不排除有和Facebook提出的ConvS2S模型較勁的可能,但是RNN和CNN思想的精髓,本文也都吸取了。從嚴謹性角度來看,殘差連接和layer normalization貫穿始終,提高了泛化能力,減少了過擬合程度,從實踐角度也有可借鑒之處。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 文本智能 的精彩文章:

論文筆記:Sequence Generative Adversarial Nets with Policy Gradient

TAG:文本智能 |