接下來我將介紹 Attention is All You Need 這篇論文。這篇論文是 Google 機器翻譯團隊在 2017 年 6 月放在 arXiv 上,最後發表在 2017 年 NIPS 上,到目前為止 Google 學術顯示引用量為 119,可見也是受到了大家廣泛關注和應用。
這篇論文主要亮點在於:
1. 不同於以往主流機器翻譯使用基於 RNN 的 Seq2Seq 模型框架,該論文用 Attention 機制代替了 RNN 搭建了整個模型框架。
2. 提出了多頭注意力(Multi-headed Attention)機制方法,在編碼器和解碼器中大量的使用了多頭自注意力機制(Multi-headed self-attention)。
3. 在 WMT2014 語料中的英德和英法任務上取得了先進結果,並且訓練速度比主流模型更快。
該論文模型的整體結構如下圖,還是由編碼器和解碼器組成,在編碼器的一個網絡塊中,由一個多頭 Attention 子層和一個前饋神經網絡子層組成,整個編碼器棧式搭建了 N 個塊。類似於編碼器,只是解碼器的一個網絡塊中多了一個多頭 Attention 層。
為了更好的優化深度網絡,整個網絡使用了殘差連接和對層進行了規範化(Add & Norm)。
下面我們重點關注一下這篇論文中的 Attention。在介紹多頭 Attention 之前,我們先看一下論文中提到的放縮點積 Attention (Scaled Dot-Product attention)。
對比我在前面背景知識裡提到的 Attention 的一般形式,其實 Scaled Dot-Product Attention 就是我們常用的使用點積進行相似度計算的 Attention,只是多除了一個(為 K 的維度)起到調節作用,使得內積不至於太大。
多頭 Attention(Multi-head Attention)結構如下圖,Query,Key,Value 首先進過一個線性變換,然後輸入到放縮點積 Attention,注意這裡要做 h 次,其實也就是所謂的多頭,每一次算一個頭。而且每次 Q,K,V 進行線性變換的參數 W 是不一樣的。然後將 h 次的放縮點積 Attention 結果進行拼接,再進行一次線性變換得到的值作為多頭 Attention 的結果。
可以看到,Google 提出來的多頭 Attention 的不同之處在於進行了 h 次計算而不僅僅算一次,論文中說到這樣的好處是可以允許模型在不同的表示子空間裡學習到相關的信息,後面還會根據 Attention 可視化來驗證。
那麼在整個模型中,是如何使用 Attention 的呢?如下圖,首先在編碼器到解碼器的地方使用了多頭 Attention 進行連接,K,V,Q 分別是編碼器的層輸出(這裡 K=V)和解碼器中都頭 Attention 的輸入。
其實就和主流的機器翻譯模型中的 Attention 一樣,利用解碼器和編碼器 Attention 來進行翻譯對齊。然後在編碼器和解碼器中都使用了多頭自注意力 Self-Attention 來學習文本的表示。
Self-Attention 即 K=V=Q,例如輸入一個句子,那麼裡面的每個詞都要和該句子中的所有詞進行 Attention 計算。目的是學習句子內部的詞依賴關係,捕獲句子的內部結構。
對於使用自注意力機制的原因,論文中提到主要從三個方面考慮(每一層的複雜度,是否可以並行,長距離依賴學習),並給出了和 RNN,CNN 計算複雜度的比較。
可以看到,如果輸入序列 n 小於表示維度 d 的話,每一層的時間複雜度 Self-Attention 是比較有優勢的。
當 n 比較大時,作者也給出了一種解決方案 Self-Attention(restricted)即每個詞不是和所有詞計算 Attention,而是只與限制的 r 個詞去計算 Attention。
在並行方面,多頭 Attention 和 CNN 一樣不依賴於前一時刻的計算,可以很好的並行,優於 RNN。
在長距離依賴上,由於 Self-Attention 是每個詞和所有詞都要計算 Attention,所以不管他們中間有多長距離,最大的路徑長度也都只是 1。可以捕獲長距離依賴關係。
最後我們看一下實驗結果,在 WMT2014 的英德和英法機器翻譯任務上,都取得了先進的結果,且訓練速度優於其他模型。
在模型的超參實驗中可以看到,多頭 Attention 的超參 h 太小也不好,太大也會下降。整體更大的模型比小模型要好,使用 dropout 可以幫助過擬合。
作者還將這個模型應用到了句法分析任務上也取得了不錯的結果。
最後我們看一下 Attention 可視化的效果(這裡不同顏色代表 Attention 不同頭的結果,顏色越深 Attention 值越大)。可以看到 Self-Attention 在這裡可以學習到句子內部長距離依賴"making…….more difficult"這個短語。
在兩個頭和單頭的比較中,可以看到單頭"its"這個詞只能學習到"law"的依賴關係,而兩個頭"its"不僅學習到了"law"還學習到了"application"依賴關係。多頭能夠從不同的表示子空間裡學習相關信息。
Self-Attention in NLP■ 論文 | Deep Semantic Role Labeling with Self-Attention
■ 連結 | https://www.paperweekly.site/papers/1786
■ 源碼 | https://github.com/XMUNLP/Tagger
這篇論文來自 AAAI2018,廈門大學 Tan 等人的工作。他們將 Self-Attention 應用到了語義角色標註任務(SRL)上,並取得了先進的結果。
這篇論文中,作者將 SRL 作為一個序列標註問題,使用 BIO 標籤進行標註。然後提出使用深度注意力網絡(Deep Attentional Neural Network)進行標註,網絡結構如下:
在每一個網絡塊中,有一個 RNN/CNN/FNN 子層和一個 Self-Attention 子層組成。最後直接利用 softmax 當成標籤分類進行序列標註。
該模型在 CoNLL-2005 和 CoNll-2012 的 SRL 數據集上都取得了先進結果。我們知道序列標註問題中,標籤之間是有依賴關係的,比如標籤 I,應該是出現在標籤 B 之後,而不應該出現在 O 之後。
目前主流的序列標註模型是 BiLSTM-CRF 模型,利用 CRF 進行全局標籤優化。在對比實驗中,He et al 和 Zhou and Xu 的模型分別使用了 CRF 和 constrained decoding 來處理這個問題。
可以看到本論文僅使用 Self-Attention,作者認為在模型的頂層的 Attention 層能夠學習到標籤潛在的依賴信息。
■ 論文 | Simultaneously Self-Attending to All Mentions for Full-Abstract Biological Relation Extraction
■ 連結 | https://www.paperweekly.site/papers/1787
■ 作者 | Patrick Verga / Emma Strubell / Andrew McCallum
這篇論文是 Andrew McCallum 團隊應用 Self-Attention 在生物醫學關係抽取任務上的一個工作,應該是已經被 NAACL 2018 接收。這篇論文作者提出了一個文檔級別的生物關係抽取模型,裡面做了不少工作,感興趣的讀者可以更深入閱讀原文。
我們這裡只簡單提一下他們 Self-Attention 的應用部分。論文模型的整體結構如下圖,他們也是使用 Google 提出包含 Self-Attention 的 transformer 來對輸入文本進行表示學習,和原始的 transformer 略有不同在於他們使用了窗口大小為 5 的 CNN 代替了原始 FNN。
我們關注一下 Attention 這部分的實驗結果。他們在生物醫學藥物致病數據集上(Chemical Disease Relations,CDR)取得了先進結果。去掉 Self-Attention 這層以後可以看到結果大幅度下降,而且使用窗口大小為 5 的 CNN 比原始的 FNN 在這個數據集上有更突出的表現。
總結最後進行一下總結,Self-Attention 可以是一般 Attention 的一種特殊情況,在 Self-Attention 中,Q=K=V 每個序列中的單元和該序列中所有單元進行 Attention 計算。
Google 提出的多頭 Attention 通過計算多次來捕獲不同子空間上的相關信息。Self-Attention 的特點在於無視詞之間的距離直接計算依賴關係,能夠學習一個句子的內部結構,實現也較為簡單並行可以並行計算。
從一些論文中看到,Self-Attention 可以當成一個層和 RNN,CNN,FNN 等配合使用,成功應用於其他 NLP 任務。
除了 Google 提出的自注意力機制,目前也有不少其他相關工作,感興趣的讀者可以繼續閱讀。
相關連結[1] 注意力機制在自然語言處理中的應用
http://www.cnblogs.com/robert-dlut/p/5952032.html
[2] Attention is All You Need
https://www.paperweekly.site/papers/224
[3] 深度學習中的注意力機制(2017版)
https://blog.csdn.net/malefactor/article/details/78767781
[4] Recurrent Models of Visual Attention
https://www.paperweekly.site/papers/1788
[5] Neural Machine Translation by Jointly Learning to Align and Translate
https://www.paperweekly.site/papers/434
參考文獻[1] Romain Paulus, Caiming Xiong, and Richard Socher. A deep reinforced model for abstractive summarization. arXiv preprint arXiv:1705.04304, 2017.
[2] Zhouhan Lin, Minwei Feng, Cicero Nogueira dos Santos, Mo Yu, Bing Xiang, Bowen Zhou, and Yoshua Bengio. A structured self-attentive sentence embedding. arXiv preprint arXiv:1703.03130, 2017.
[3] Jianpeng Cheng, Li Dong, and Mirella Lapata. Long short-term memory-networks for machine reading. arXiv preprint arXiv:1601.06733, 2016.
[4] Shen, T.; Zhou, T.; Long, G.; Jiang, J.; Pan, S.; and Zhang, C. Disan: Directional self-attention network for rnn/cnn-free language understanding. arXiv preprint arXiv:1709.04696, 2017.
[5] Im, Jinbae, and Sungzoon Cho. Distance-based Self-Attention Network for Natural Language Inference. arXiv preprint arXiv:1712.02047, 2017.
[6] Shaw, Peter, Jakob Uszkoreit, and Ashish Vaswani. Self-Attention with Relative Position Representations. arXiv preprint arXiv:1803.02155 ,2018.
點擊以下標題查看相關內容:
#作 者 招 募#
讓你的文字被很多很多人看到,喜歡我們不如加入我們
我是彩蛋
解鎖新功能:熱門職位推薦!
PaperWeekly小程序升級啦
今日arXiv√猜你喜歡√熱門職位√
找全職找實習都不是問題
解鎖方式
1. 識別下方二維碼打開小程序
2. 用PaperWeekly社區帳號進行登陸
3. 登陸後即可解鎖所有功能
職位發布
請添加小助手微信(pwbot02)進行諮詢
長按識別二維碼,使用小程序
*點擊閱讀原文即可註冊
關於PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報導人工智慧前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號後臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群裡。
▽ 點擊 | 閱讀原文 | 加入社區一起刷論文