Transformer 學習筆記

xr2439
6 min readJan 18, 2021

--

摘要

  • Seq2seq model with self-attention
  • 知名應用 BERT: unsupervised trained 的 Transformer

RNN

  • 處理具有 temporal 資訊的資料
  • 難平行化

解法:用 CNN 取代 RNN,不過一層 Conv. Layer 能看到較短的 sequence,可透過疊多層 Conv. Layer 來實現看到更長的 sequence。

缺點:需要疊多層 Conv. Layer 才能看到長時間的資訊,無法作到一層就看到長時間的資訊。

Self-Attention

  • 可以解決上述問題,可以一層就看到長期資訊,且可以平行化
  • x¹, …, x⁴: input
  • 先通過 embedded (乘上 W), 再來通過 self-attention layer: 乘上三個不同的 transformation 得到 q, k, v.
https://youtu.be/ugWDIIOHtPA?t=592
  • 機制: 每個 q 對每個 k 做 attention (概念為計算每個 q, k 的匹配程度)
scaled dot-product attention (d: dimension of q and k).
  • 接著通過 softmax,計為:
通過 Softmax 的結果
  • 針對上述結果乘上 v ,即 weighted-sum:
a 為 scalar, v 為 vector
b1 的計算流程

平行化

V, K & Q 的計算,可透過矩陣乘法一次算出來
計算 a_1,j 的平行化
計算 a_i,j 的行平化 + 直接通過 softmax
Weighted sum 的平行化

Multi-head Self-attention

  • 以 2 heads 為例:原本的 q, k, v 會再分裂成兩個,分裂的方式可透過乘上兩個不同的矩陣達成
  • 在做 q, k 相乘的時候有些微的差別:分裂的第一個 q (i,1)只會跟其他第一個分裂的 k (j, 1)相乘
  • 原本的 b_i 只有一個,但是現在有兩個 b(i, 1) & b(i, 2) ,可以在透過乘上一個矩陣把它降維
  • 優點:每個 Head 可以看不同資訊,如某些看短期、長期,多個 Head 可以讓其各司其職,做自己想做的事情

Self-Attention Layer 的特性

  • Input 的 sequence 順序是不重要的 (因為是對 input 的每個 vector 做 self-attention),但是這不是我們想要的結果
  • 解決方式:Positional Encoding
Positional Encoding

多加上 e_i 的資訊 (為人手動設定的值)。但是為什麼不是 Input 直接 Append 一個 one-hot 的 vector ? 其實這個行為和上述意義是等價的:

假設 Append 一個 one-hot vector,則最後乘上 W 展開後還是 a 加上一個 vector (即 e_i)

Self-Attention 在 seq2seq 是如何被使用

原本的 seq2seq model
  • 可以用 Self-Attention 來取代 RNN:

Transformer

  • 有些名詞: Input Embedding, Positional Encoding, Multi-Head Attention 都講過了,這邊介紹其他名詞
  • Add & Norm:這邊就只是把沒有/有通過 Attention 的值相加起來後做 Layer Norm
簡述 Batch Norm & Layer Norm 的差別:(1) Batch Norm 是針對不同 Data 的同一個 Dim. 做 Norm (2) Layer Norm 是針對同 Data 但是不同 Dim. 做 Norm。通常 Layer Norm 會搭配 RNN 一起使用
  • Feed Forward:兩層 Transformation + Relu
  • Masked:Attend on the generated sequence

心得

從介紹中很明顯可以知道 Self-Attention 特別的地方就是透過 query & key 來量測相似度,再根據相似度來 Scaling (i.e. Weighted Sum) value。

參考資料 & 相關資源

  1. 李宏毅教授 Transformer 教學影片 講義
  2. The Illustrated Transformer
  3. Transformer: A Novel Neural Network Architecture for Language Understanding
  4. Attention Is All You Need

--

--