# Transformer:Attention Is All You Need
Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Łukasz Kaiser, Illia Polosukhin, (NIPS 2017)
https://arxiv.org/abs/1706.03762
## 1. 摘要
開發團隊提出一種完全基於注意力機制(attention mechanisms) 的新型網路架構:Transformer 框架。捨棄了以往的遞迴(RNN)與卷積(CNN)結構。實驗在機器翻譯任務(WMT 2014 En→De、En→Fr)上達到當時最佳 BLEU 分數,證明僅使用 self-attention 就能在翻譯任務中超越當時最佳模型。
Transformer 訓練速度快且可大幅平行化,成功泛化至英文成分剖析任務。
## 2. 研究目的
RNN 與 CNN 由於結構設計的因素,訓練速度緩慢。而 Transformer 完全使用 Self-Attention 機制,同時計算所有序列的關聯性,高度平行化。訓練速度大幅提升。此外,本篇論文也探討 Transformer 是否能泛化到其他 NLP 任務。
## 3. 研究方法
### 3.1 模型架構

>圖1. Transformer 模型架構
* Encoder-Decoder 架構:
各有 $N=6$ 個相同的堆疊層。Decoder在訓練過程中透過 Cross-Attention 不斷讀取 Encoder 的輸出。
* 編碼器層(Encoder Layer):
Multi-Head Self-Attention、Position-wise Feed-Forward Network,各子層後有殘差連接與 Layer Normalization。
* 解碼器層(Decoder Layer):
自注意力層使用 mask 避免看到未來的詞元
### 3.2 注意力機制

>圖2. (左)縮放點積注意力。(右)多頭注意力由數個並行運作的注意力層組成。
* Scaled Dot-Product Attention:
Scaled Dot-Product Attention 是 Self-Attention 的計算方式,公式如下:$Attention(Q,K,V) = softmax\left(\frac{QK^T}{\sqrt{d_k}}\right)V$。
其中,Q(Query) 表示當前 token 對其他 token 的需求,為一組向量。K(Key) 表示標籤。V(Value) 表示內容。
* Multi-Head Attention:
Multi-Head Attention 是對Self-Attention 的改進方法,讓模型同時從多個角度學習序列中不同層面的關聯性。Multi-Head Attention 將輸入向量投影到多個子空間,每個注意力頭在各自的子空間中獨立計算 Scaled Dot-Product Attention,再將所有頭的輸出拼接並經過一次線性變換,得到最終的輸出表示。
### 3.3 其他組件
* Position-wise Feed-Forward:
兩層全連接,內層維度 $d_{ff}=2048$,輸入/輸出維度 $d_{model}=512$。
* Embeddings & Softmax:
共享詞嵌入與 pre-softmax 權重。
* Positional Encoding:
使用不同頻率的正弦與餘弦函數表示位置。
### 3.4 訓練細節
* 資料集:
WMT 2014 En→De (4.5M 句對, vocab≈37k BPE),En→Fr (36M 句對, vocab≈32k word-piece)
* 硬體:
8×NVIDIA P100 GPU
* 優化器:
Adam ($\beta_1=0.9, \beta_2=0.98, \epsilon=10^{-9}$),warmup steps=4000
* 正則化:
Dropout($P_{drop}=0.1$ base, 0.3 big)、Label Smoothing ($\epsilon_{ls}=0.1$)
## 4. 實驗結果
#### > 機器翻譯

>圖3. Transformer 在 newstest2014 的英→德與英→法測試上,以僅為先前 SOTA 模型一小部分的訓練成本,就取得更高的 BLEU 分數。
* WMT 2014 En→De:Transformer (big) BLEU = 28.4(+2 BLEU 優於 SOTA ensemble)
* WMT 2014 En→Fr:Transformer (big) BLEU = 41.8(訓練成本為 SOTA 的不到 1/4)
#### > 架構變化實驗

>圖4. Transformer 架構的各種變體。未列出的數值與基礎模型相同。所有指標皆在英→德翻譯的開發集 newstest2013 上評估。所列的困惑度(perplexity)依我們的 BPE(Byte-Pair Encoding)以「子詞」為單位計算,不應與以「詞」為單位的困惑度相比。
* 適中數量的注意力頭(h=8)效果最佳
* 增加模型維度(d_model, d_ff)能提升性能
* Sinusoidal 與 Learned Positional Encoding 成效相近
#### > 英文成分剖析

>圖5. Transformer 在英文成分句法分析任務上具有良好的泛化表現(結果評估於 WSJ 語料庫的第 23 節)。
* WSJ only:F1=91.3(優於 Berkeley Parser)
* 半監督:F1=92.7(超過以往非生成式模型)
## 5. 結論
Transformer 透過完全基於 self-attention 的架構,不僅在翻譯任務上達到當時最佳表現,還能顯著縮短訓練時間並提高平行化效率。未來可延伸至多模態輸入輸出(如影像、音訊、影片)及局部注意力機制,以應對大規模資料。