Multi-Head Attention
Transformer は 1 つの Self-Attention ではなく、複数のヘッドを並列に走らせ、 各ヘッドが 違う関係性 を学びます。
入力トークン(クリックで Query を切り替え)
選んだ単語の Attention を 4 ヘッド同時に表示
色 = ヘッドの種類、線の太さ = そのヘッドでの注目度。同じ単語でもヘッドごとに違う相手を見ているのが分かります。
選んだ単語の各ヘッドの解釈
1 つの視点だけだと「主語と動詞の関係」と「冠詞と名詞の関係」を同時には捉えられません。
Multi-Head Attention は 同じ文を 4 つ(または 8、12、64 個)の異なる視点で同時に読む 仕組みです。
たとえば
Multi-Head Attention は 同じ文を 4 つ(または 8、12、64 個)の異なる視点で同時に読む 仕組みです。
たとえば
cat を見るとき、あるヘッドは sat に、別のヘッドは mat に、また別のヘッドは the に注目する — それらを合わせて意味を決めます。
4 ヘッドそれぞれの Attention ヒートマップ
なぜ「複数ヘッド」?
- 1 つの Attention は「1 つの関係軸」しか捉えられない(線形変換 1 つ = 1 つの視点)
- 言語は「主語-動詞」「冠詞-名詞」「位置」「意味類似」など 複数の関係が同時に存在する
- ヘッドを並列に並べることで、それぞれが 独立して別の関係に特化 できる
- 最終的に全ヘッドの出力を連結し、線形変換で混ぜて 1 つの表現にする
- 実際の GPT-2 は 12 ヘッド × 12 層、GPT-3/4 は 96 ヘッド × 96 層級 — このパターンが何百個も並列に走っている
もっと詳しく:各ヘッドの Wq・Wk が何を切り出しているか
埋め込みは 8 次元:前半 4 次元 = 意味特徴(冠詞/名詞/動詞/前置詞)、後半 4 次元 = 位置情報(正規化位置・逆位置・sin・cos)。 各ヘッドの Wq・Wk(8 × 2)が、この 8 次元のうち どの次元を使って関係を作るか を決めています。
- 構文ヘッド:意味特徴(前半 4 次元)のみを使い、名詞 ↔ 動詞・冠詞 → 名詞 を結びつける
- 位置ヘッド:位置の sin・cos(後半 2 次元)を使い、内積 ≈ cos(位置差) で 近い位置ほど強く注目
- 先頭志向ヘッド:すべての Query が同じベクトルを出し、Key は逆位置(文頭で大)を投影 — 結果として全 Query が文頭に注目
- 意味類似ヘッド:意味特徴を恒等的に投影し、同じカテゴリ語(the↔the、cat↔mat)に強く注目