Multi-Head Self-Attention Animation

Click "Play" or "Step" to start.
d_model = 8, num_heads = 2, d_k = d_model / num_heads = 4, √d_k = 2.00
Input
X (seq × d_model)
Attention Heads (parallel)
Concatenate & Project
Concat
×
Wo
=
Output
MultiHead(Q,K,V) = Concat(head_1, ..., head_h) × Wo
Each head attends to different aspects of the input

Multi-Head Self-Attentionとは

Multi-Head Attention は、複数の Attention Head を並列に実行し、 それぞれが異なる部分空間で情報を抽出します。 これにより、モデルは入力の様々な側面に同時に注目できます。

処理の流れ

Phase 1: 各ヘッドでQ, K, V生成

入力Xを各ヘッド専用のWq, Wk, Wvで変換。

各ヘッドの次元: d_k = d_model / num_heads

Phase 2: Attention計算

各ヘッドで独立にSelf-Attentionを計算。

Score = Q·K^T / √d_k → Softmax → ×V

Phase 3: Concat

全ヘッドの出力を連結。

サイズ: seq × d_model

Phase 4: 出力射影

連結した結果にWoを掛けて最終出力。

Output = Concat × Wo

数式

MultiHead(Q, K, V) = Concat(head_1, ..., head_h) · Wo
where head_i = Attention(X·Wq_i, X·Wk_i, X·Wv_i)

なぜ複数のヘッドを使うのか