1 定義と基本原理
マルチヘッド注意(Multi-head Attention)は、入力系列の異なる位置間の関係性を複数の独立した「ヘッド」で並列に学習する注意機構である。各ヘッドは異なる表現部分空間に注目し、それらの出力を結合することで、モデルが多様な情報を同時に捉えることを可能にする。Transformerアーキテクチャの中核要素として広く知られ、自己注意と交差注意の両方の形で実装される。
1.1 注意機構の背景
注意機構は、系列データ内の各要素が他の要素に対してどの程度重視すべきかを重みづけする仕組みである。従来のエンコーダ・デコーダモデルでは、固定長のコンテキストベクトルに依存する情報のボトルネックを解消するために導入された。入力の全位置に対する重みを動的に計算することで、長距離依存関係のモデリングが改善される。
1.2 マルチヘッドの概念
マルチヘッド注意では、同一の入力を複数の異なる線形変換に通した後、それぞれ独立に注意重みを計算する。各ヘッドが異なる部分空間で注意を学習することで、モデルは位置間の複数の異なる関係(例:構文的な関係、意味的な関係)を同時に捉えられる。
1.2.1 単一注意との違い
単一注意では、一組のQuery、Key、Value行列を用いて一つの注意分布のみを計算する。マルチヘッド注意はこれを複数回実行し、各ヘッドの出力を結合してから再度線形変換する。この過程により、単一注意では表現力が限られる部分空間を拡張し、モデルのキャパシティを増大させる。
1.2.2 並列処理の利点
各ヘッドの計算は独立して行われるため、GPU等の並列計算ハードウェア上で効率よく実装できる。ヘッド間の依存関係がなく、バッチ処理により全体の計算時間は単一注意とほぼ同等に保たれる。また、複数の部分空間からの情報を同期して学習することで、勾配がより多様な経路を通り、訓練の安定化にも寄与する。
2 数学的定式化
2.1 スケーリングドットプロダクト注意
スケーリングドットプロダクト注意は、Query(Q)とKey(K)の内積を次元の平方根でスケーリングし、ソフトマックス関数で正規化してValue(V)に掛け合わせる操作である。
\[ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^\top}{\sqrt{d_k}}\right)V \]
ここで \(d_k\) はKeyの次元であり、スケーリングは内積値の分散を抑えてソフトマックスの勾配を安定させる。
2.2 ヘッドの分割と結合
マルチヘッド注意では、入力 \(X\) に対して \(h\) 個のヘッドを設定する。各ヘッド \(i\) は独立した線形変換によって \(Q_i, K_i, V_i\) を生成し、スケーリングドットプロダクト注意を計算する。
\[ \text{head}_i = \text{Attention}(XW_i^Q, XW_i^K, XW_i^V) \]
ただし \(W_i^Q, W_i^K, W_i^V\) は学習可能な重み行列である。
2.2.1 線形変換の役割
線形変換は、各ヘッドが異なる部分空間に射影されるための手段である。元の隠れ次元 \(d_{\text{model}}\) を \(h\) 個に分割し、各ヘッドの次元を \(d_k = d_{\text{model}} / h\) とすることで、パラメータ総数を単一注意と同等に保つ。これにより、追加の計算コストを抑えながら多様な表現を獲得する。
2.2.2 出力の統合方法
全ヘッドの出力を結合(concatenate)し、さらに一つの線形変換 \(W^O\) を通すことで最終的な出力を得る。
\[ \text{MultiHead}(Q, K, V) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h) W^O \]
結合の順序はヘッドごとに固定され、各ヘッドの出力が独立に保たれる。
2.3 パラメータ数と計算量
ヘッド数 \(h\)、隠れ次元 \(d_{\text{model}}\) とすると、各ヘッドの次元は \(d_k = d_v = d_{\text{model}} / h\) となる。全ヘッドの線形変換のパラメータ数は、単一注意の場合とほぼ同じ(\(4d_{\text{model}}^2\))である。計算量は系列長 \(n\) に対して \(O(n^2 \cdot d_{\text{model}})\) であり、ヘッド数の増加は線形に影響するが、並列実行により実効速度の低下は限定的である。
3 実装と応用
3.1 Transformerにおける標準構成
Transformerのエンコーダとデコーダは、マルチヘッド自己注意とマスク付き自己注意、およびエンコーダ・デコーダ注意(交差注意)を標準要素として含む。典型的な設定ではヘッド数 \(h=8\) または \(h=16\)、隠れ次元 \(d_{\text{model}}=512\) または \(1024\) が用いられる。各注意層の後には位置単位のフィードフォワードネットワークと残差結合・層正規化が続く。
3.2 自然言語処理での利用例
3.2.1 機械翻訳
機械翻訳では、エンコーダが入力文の自己注意で文脈を捉え、デコーダが交差注意でエンコーダ出力と照合しながら翻訳を生成する。マルチヘッド注意により、翻訳に必要な構文・意味の異なる側面(例:主語と動詞の一致、代名詞の照応)が同時に学習される。
3.2.2 テキスト生成
GPTシリーズなどの自己回帰モデルでは、マスク付き自己注意を用いて未来のトークンを参照せずにテキストを生成する。各ヘッドが異なる距離の依存関係を担当することで、流暢で文脈に合った出力が可能になる。
3.3 画像・音声への拡張
3.3.1 ビジョントランスフォーマー
画像をパッチに分割し、各パッチをトークンとして扱うViT(Vision Transformer)では、マルチヘッド自己注意が画像全体の関係をモデル化する。ヘッドごとに異なるスケールやテクスチャのパターンを捉えることが観察されている。
3.3.2 マルチモーダル注意
画像とテキストの両方を扱うモデル(例:CLIP、DALL-E)では、異なるモダリティ間の注意を計算するためにマルチヘッド交差注意が使用される。各ヘッドが視覚特徴と言語特徴の対応を異なる観点から学習する。
4 発展と変種
4.1 効率的な注意機構
4.1.1 スパース注意
系列長が長い場合、全対 \(n^2\) の計算を避けるため、注意を疎に制限する手法が提案されている。例えば、固定の局所窓や学習されたスパースパターンに基づき、各ヘッドが異なる範囲を担当させることで計算量を削減する。
4.1.2 線形注意
内積計算をカーネル近似により線形時間で実行する手法である。例えば、PerformerやLinformerは、注意行列を低ランク近似やランダム特徴写像で置き換え、\(O(n)\) の計算量を実現する。これによりヘッド数が多い場合でも効率が向上する。
4.2 ヘッド数の選択と解析
4.2.1 ヘッドの冗長性
実証研究では、多くのヘッドが学習後に類似した注意パターンを示すことが報告されている。一部のヘッドは特定のタスクにほとんど寄与せず、冗長性が存在する。このため、ヘッド数の増加は必ずしも性能向上に直結しない。
4.2.2 プルーニング手法
冗長なヘッドを削除するプルーニング手法が研究されている。訓練後にヘッドの重要度(例:アテンション重みのエントロピー、損失への影響)を評価し、重要度の低いヘッドを除去することで、モデルサイズの削減や推論速度の向上が達成できる。
5 限界と課題
5.1 計算リソースの消費
注意機構の計算量は系列長に対して二次関数で増加するため、長い系列(例:文書全体、高解像度画像)ではメモリと時間が大きな課題となる。マルチヘッド化により各ヘッドの次元が小さくなるとはいえ、全体の計算負荷は依然として高い。
5.2 長距離依存の捕捉限界
マルチヘッド注意は理論上、任意の距離の依存を捉えられるが、実際にはソフトマックスの性質上、多くの位置の重みがゼロに近づき、遠方の情報が減衰しやすい。位置エンコーディングの方法や再帰的な層の深さに依存するため、極長距離の依存には別の機構(例:状態空間モデル)との併用が検討される。
5.3 解釈性の困難
各ヘッドが何を学習したかを人間が直感的に理解することは容易ではない。ヘッドごとの注意重みを可視化しても、意味のあるパターンとノイズの区別がつきにくく、モデルの内部動作の解釈にはさらなる分析手法(例:プロービング、帰属分析)が必要である。
6 関連項目
6.1 自己注意と交差注意
自己注意は同一系列内の位置間の注意を計算するのに対し、交差注意は異なる系列(例:エンコーダ出力とデコーダ入力)間の注意を計算する。マルチヘッド注意は両方の形態に適用可能であり、Transformerでは両者が使い分けられる。
6.2 Transformerアーキテクチャ
Transformerはエンコーダ・デコーダ構造を持ち、マルチヘッド注意と位置単位のフィードフォワードネットワークを積み重ねたモデルである。自然言語処理を皮切りに、画像、音声、マルチモーダル領域で標準的な基盤となっている。
6.3 注意機構の歴史
注意機構は2014年のBahdanauらの機械翻訳モデルで導入され、その後Luongらのグローバル注意、2017年のTransformerによるマルチヘッド注意へと発展した。近年は効率性や解釈性の向上を目指した多数の変種が提案されている。