# 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 模型架構 ![螢幕擷取畫面 2025-08-29 002103 (1)](https://hackmd.io/_uploads/r1GsGWAtlx.png) >圖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 注意力機制 ![螢幕擷取畫面 2025-08-29 002156](https://hackmd.io/_uploads/BJg4XWAFxe.png) >圖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. 實驗結果 #### > 機器翻譯 ![螢幕擷取畫面 2025-08-29 004144 (1)](https://hackmd.io/_uploads/H1kg_ZCYex.png) >圖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) #### > 架構變化實驗 ![螢幕擷取畫面 2025-08-29 004931](https://hackmd.io/_uploads/HJgEtbCYee.png) >圖4. Transformer 架構的各種變體。未列出的數值與基礎模型相同。所有指標皆在英→德翻譯的開發集 newstest2013 上評估。所列的困惑度(perplexity)依我們的 BPE(Byte-Pair Encoding)以「子詞」為單位計算,不應與以「詞」為單位的困惑度相比。 * 適中數量的注意力頭(h=8)效果最佳 * 增加模型維度(d_model, d_ff)能提升性能 * Sinusoidal 與 Learned Positional Encoding 成效相近 #### > 英文成分剖析 ![螢幕擷取畫面 2025-08-29 005008](https://hackmd.io/_uploads/SkYFt-Atgx.png) >圖5. Transformer 在英文成分句法分析任務上具有良好的泛化表現(結果評估於 WSJ 語料庫的第 23 節)。 * WSJ only:F1=91.3(優於 Berkeley Parser) * 半監督:F1=92.7(超過以往非生成式模型) ## 5. 結論 Transformer 透過完全基於 self-attention 的架構,不僅在翻譯任務上達到當時最佳表現,還能顯著縮短訓練時間並提高平行化效率。未來可延伸至多模態輸入輸出(如影像、音訊、影片)及局部注意力機制,以應對大規模資料。