【NLP-2017】解讀Transformer--Attention is All You Need


目錄

  1. 研究背景
  2. 論文思路
  3. 實現方式細節
  4. 實驗結果
  5. 附件

專業術語列表

一、研究背景

1.1 涉及領域,前人工作等

本文主要處理語言模型任務,將Attention機制性能發揮出來,對比RNN,LSTM,GRU,Gated Recurrent Neural Networks 在序列建模和轉換任務上的應用,擯棄這些計算串行的缺點,另外針對一些研究中長依賴不足的問題

例如:端到端的記憶網絡使用循環attention機制替代序列對齊的循環,在簡單的語言問答和語言建模任務中表現良好。

1.2 中心思想

總的來說該模型主要解決並行和長依賴兩個當前沒有融合的問題。在attention基礎上創新,加入self-attention,Multi-Head AttentionFFN層,位置編碼層。

  1. 靠attention機制,不使用rnn和cnn,並行度高
  2. 通過attention,抓長距離依賴關系比rnn強

Position-wise Feed-Forward Networks(基於位置的前饋神經網絡)和 Positional Encoding(位置編碼)等技術。最后在實驗效果上達到當時最好。

二、論文思路

2.1 框架圖和重要部分

文章主要框架圖

主要組成構建有:

堆疊的self-attention層、point-wise和全連接層,分別用於encoder和decoder

2.2 論文技術特點(對比文獻)

創新點有:

  1. Extended Neural GPU [16],ByteNet[18],和ConvS2S[9]:使用卷積神經網絡,無長語句獲取能力;
  2. 因子分解技巧[21]和條件計算[32]:在計算效率方面取得了顯著的提高,同時也提高了后者的模型性能。然而,順序計算的基本約束仍然存在。也就是並行計算無法實現,再計算和模型搭建時間上是很大瓶頸;
  3. [27] 注意機制與一個遞歸網絡結合使用,依然是並行計算問題;

通過self-attention,自己和自己做attention,使得每個詞都有全局的語義信息(長依賴由於 Self-Attention 是每個詞和所有詞都要計算 Attention,所以不管他們中間有多長距離,最大的路徑長度也都只是 1。可以捕獲長距離依賴關系

提出multi-head attention,可以看成attention的ensemble版本,不同head學習不同的子空間語義。

不過覺得:encoder-decoder attention: 模仿seq2seq模型的注意力機制

三、實現方式細節

3.1 Encoder and Decoder Stacks(編碼器棧和解碼器棧)

Encoder:encoder由N(N=6)個完全相同的layer堆疊而成.每層有兩個子層:

第一層是multi-head self-attention機制;

Decoder: decoder也由N(N=6)個完全相同的layer堆疊而成.除了每個編碼器層中的兩個子層之外,解碼器還插入第三個子層,該子層對編碼器堆棧的輸出執行multi-head attention操作,與encoder相似,我們在每個子層的后面使用了殘差連接,之后采用了layer normalization。

3.2 Attention(注意力機制)

Attention機制可以描述為將一個query和一組key-value對映射到一個輸出,其中query,keys,values和輸出均是向量。輸出是values的加權求和,其中每個value的權重 通過query與相應key的兼容函數來計算。本節將介紹各種變形的attention

Figure 2: (left) Scaled Dot-Product Attention. (right) Multi-Head Attention consists of several attention layers running in parallel.

3.2.1 Scaled Dot-Product Attention(縮放的點積注意力機制)

本文attention公式如上所示,和dot-product attention除了沒有使用縮放因子,其他和這個一樣。

additive attention和dot-product(multi-plicative) attention是最常用的兩個attention 函數。為何選擇上面的呢?主要為了提升效率,兼顧性能

效率:在實踐中dot-product attention要快得多,而且空間效率更高。這是因為它可以使用高度優化的矩陣乘法代碼來實現。

性能:較小時,這兩種方法性能表現的相近,當比較大時,addtitive attention表現優於 dot-product attention(點積在數量級上增長的幅度大,將softmax函數推向具有極小梯度的區域 )。所以加上因子拉平性能。

3.2.2 Multi-Head Attention(多頭注意力機制)

用multi-headed self-attention取代了encoder-decoder架構中最常用的recurrent layers。這是非常重大的創新點。如 Figure 2 中所示。Multi-head attention允許模型把不同位置子序列的表示都整合到一個信息中。如果只有一個attention head,它的平均值會削弱這個信息。

在這項工作中,我們采用h=8 個並行attention層或head。

3.2.3 Applications of Attention in our Model(注意力機制在我們模型中的應用)

multi-head attention在Transformer中有三種不同的使用方式:

  1. encoder-decoder attention: 模仿seq2seq模型的注意力機制
  2. encoder self-attention layer
  3. decoder self-attention layer:和上面的區別就是加了masking

3.2.4 self- attention

激勵我們使用self-attention的原因,主要是以下三個:

  1. 一個是每層的總計算復雜度。
  2. 另一個是可以並行化的計算,通過所需的最小順序操作數來衡量。
  3. 第三個是網絡中遠程依賴之間的路徑長度。學習遠程依賴性是許多序列轉換任務中的關鍵挑戰。影響學習這種依賴性的能力的一個關鍵因素是前向和后向信號必須在網絡中傳播的路徑的長度。輸入和輸出序列中任何位置組合之間的這些路徑越短,學習遠程依賴性就越容易。因此,我們還比較了由不同類型層組成的網絡中任意兩個輸入和輸出位置之間的最大路徑長度。

注意:這一節對應論文的第4章。

3.3 位置前饋網絡

除了attention子層之外,編碼器和解碼器中的每個層都包含一個完全連接的前饋網絡,該網絡分別相同地應用於每個位置。 該前饋網絡包括兩個線性變換,並在第一個的最后使用ReLU激活函數。

不同position的FFN是一樣的,但是不同層是不同的。

3.4 詞嵌入和softmax

3.5 位置編碼

  在這項工作中,我們使用不同頻率的正弦和余弦函數:

其中pos是指當前詞在句子中的位置,i是指向量中每個值的維度,位置編碼的每個維度對應於正弦曲線。我們選擇了這個函數,因為我們假設它允許模型容易地學習相對位置。

作者測試用學習的方法來得到PE,最終發現效果差不多,所以最后用的是fixed的,而且sinusoidal的可以處理更長的sequence的情況。用sinusoidal函數的另一個好處是可以用前面位置的值線性表示后面的位置。

四、實驗結果

4.1 Machine Translation(機器翻譯)

在WMT 2014英語-德語翻譯任務中,大型Transformer模型(表2中的Transformer (big))比以前報道的最佳模型(包括整合模型)高出2個以上的BLEU評分,以28.4分建立了一個全新的SOTA BLEU分數。

4.2 English Constituency Parsing(英文選區分析)

表4中我們的結果表明,盡管缺少特定任務的調優,我們的模型表現得非常好,得到的結果比之前報告的Recurrent Neural Network Grammar [8]之外的所有模型都好。

五、附件

5.1 論文引用地址:Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin:Attention is All you Need. NIPS 2017: 5998-6008

5.2 官網代碼:https://github.com/tensorflow/tensor2tensor

參考文獻

1】英文論文:https://arxiv.org/abs/1706.03762

2】中文譯文: https://blog.csdn.net/nocml/article/details/103082600

3】帶注釋的transformerhttp://nlp.seas.harvard.edu/2018/04/03/attention.html

【4】論文中用到的參考文獻(編號未變)

[9] Jonas Gehring, Michael Auli, David Grangier, Denis Yarats, and Yann N. Dauphin. Convolutional

sequence to sequence learning. arXiv preprint arXiv:1705.03122v2, 2017.

[16] Łukasz Kaiser and Samy Bengio. Can active memory replace attention? In Advances in Neural

Information Processing Systems, (NIPS), 2016.

[18] Nal Kalchbrenner, Lasse Espeholt, Karen Simonyan, Aaron van den Oord, Alex Graves, and Koray

Kavukcuoglu. Neural machine translation in linear time. arXiv preprint arXiv:1610.10099v2,

2017.

[21] Oleksii Kuchaiev and Boris Ginsburg. Factorization tricks for LSTM networks. arXiv preprint

arXiv:1703.10722, 2017.

[27] Ankur Parikh, Oscar Täckström, Dipanjan Das, and Jakob Uszkoreit. A decomposable attention

model. In Empirical Methods in Natural Language Processing, 2016.

[32] Noam Shazeer, Azalia Mirhoseini, Krzysztof Maziarz, Andy Davis, Quoc Le, Geoffrey Hinton,

and Jeff Dean. Outrageously large neural networks: The sparsely-gated mixture-of-experts

layer. arXiv preprint arXiv:1701.06538, 2017.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM