Multi-Head Attentionは、Attention(注意機構)を複数並列に走らせることで、データを「複数の視点」から同時に捉える手法です。Transformerの構成要素として必ず登場するキーワードで、試験では「なぜ1つではなく複数のヘッドを使うのか」という意味を理解しているかが問われます。Attentionの基本原理は別記事で扱っているので、この記事は「複数にする意味」に絞って解説します。

📖 ひと言でいうと

Multi-Head Attentionとは、単一の注意機構(Single-Head Attention)を複数並列に配置し、それぞれが異なる特徴空間で注意を計算して、結果を結合する手法です。例えるなら、1つの文章を複数の編集者が同時にチェックするようなものです。ある編集者は文法的なつながりに、別の編集者は意味の関連に、また別の編集者は語順の対応に注目する——それぞれの視点のチェック結果を持ち寄ることで、1人では見落とす関係まで拾えます。厳密には、各ヘッドの「視点」は人間が割り当てるのではなく、学習の過程でそれぞれ異なる線形変換を獲得することで自然に分化します。

🖼 1枚でわかるMulti-Head Attention

Multi-Head Attention = 複数の視点で並列に注意を計算
  • 構造 — 単一の注意機構(ヘッド)を複数並列に配置
  • 各ヘッド — Q・K・Vを線形変換し、スケール付きドット積注意を計算
  • 狙い — 異なる部分空間=異なる視点からの情報抽出で表現力を向上
  • 統合 — 各ヘッドの出力を連結し、線形変換して最終出力へ
  • 効果 — 長い文脈から重要な情報を効果的に抽出できる
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

単一の注意機構(Single-Head Attention)を複数並列に配置し、異なる特徴空間での情報を同時に処理する手法である。各ヘッドは、入力データに対して異なる部分空間での注意を計算し、それらを結合することで、より豊かな表現を得ることが可能となる。具体的には、各ヘッドは入力のクエリ(Query)、キー(Key)、バリュー(Value)に対して線形変換を行い、スケール付きドット積注意(Scaled Dot-Product Attention)を計算する。これにより、異なる視点からの情報抽出が可能となり、モデルの表現力が向上する。最終的に、各ヘッドの出力を連結し、再度線形変換を施して最終的な出力を得る。この手法は、自然言語処理や画像認識など、多様なタスクで高い性能を示している。特に、長い文脈の中で重要な情報を効果的に抽出する能力が評価されている。Multi-Head Attentionの導入により、従来のRNNやCNNでは難しかった長距離依存関係の学習が可能となり、モデルの性能向上に寄与している。

読み解きのポイントは処理の順序です。①各ヘッドがQ・K・Vをそれぞれ独自に線形変換する(ここで「視点の違い」が生まれる)、②各ヘッドがスケール付きドット積注意を計算する、③全ヘッドの出力を連結する、④最後にもう一度線形変換して最終出力を得る。「線形変換→注意計算→連結→線形変換」という流れは、そのまま並べ替え問題や穴埋め問題にできる構造です。

🔍 しっかり理解する

なぜヘッドを複数にするのか

単一のAttentionは、1回の計算につき1通りの「注目パターン」しか作れません。しかし言語には多層的な関係が同居しています。「その本を書いた作家が昨日来日した」という文で、「作家」は文法的には「来日した」の主語であり、意味的には「書いた」という行為の主でもあり、「その本」とも強く関係します。1つの注目パターンにこれらすべてを押し込むと、情報が平均化されてぼやけてしまいます。

Multi-Head Attentionでは、各ヘッドが入力を異なる部分空間へ線形変換してから注意を計算します。部分空間とは、元の特徴のうち特定の側面を切り出した「見え方」のことです。ヘッドごとに変換が異なるため、あるヘッドは文法的なつながりを、別のヘッドは意味的な関連を捉える、といった役割分担が学習を通じて自然に生まれます。これが「異なる視点からの情報抽出」であり、モデルの表現力向上の源です。

処理の流れを図で追う

線形変換
Q・K・Vをヘッドごとに別の部分空間へ写す
並列に注意計算
各ヘッドがスケール付きドット積注意を実行
連結
全ヘッドの出力をつなげる
最終線形変換
情報を統合して最終出力に

各ヘッドの計算の中身は、Attentionの標準形であるスケール付きドット積注意(Scaled Dot-Product Attention)です。QueryとKeyの内積(ドット積)で類似度を測り、値が大きくなりすぎないよう次元数に応じて割り算(スケーリング)してから、Valueの重み付けに使います。ヘッドの数だけこの計算が並列に走り、最後に連結+線形変換で1本の出力にまとめられます。

Transformerの中での位置づけ

Multi-Head Attentionは、2017年の論文「Attention Is All You Need」で提案されたTransformerの基本部品です。TransformerではSelf-AttentionもSource-Target Attentionも、実際にはすべてMulti-Head形式で実装されています。つまり「Self-Attentionか否か」は参照先(自分自身か別系列か)の分類、「Multi-Headか否か」は並列化の有無の分類で、両者は組み合わせて使われる直交した概念です。Multi-Head Attentionの導入は、従来のRNNやCNNでは難しかった長距離依存関係の学習を可能にし、モデルの性能向上に寄与しています。

💡 具体例で考える

機械翻訳の研究では、学習済みTransformerの各ヘッドがどこに注目しているかを可視化する分析が行われてきました。すると、あるヘッドは直前・直後の単語ばかりを見て局所的な語順を捉え、別のヘッドは離れた位置の動詞と主語のペアに注目し、また別のヘッドは代名詞とその指示対象を結ぶ、というように、ヘッドごとに異なる役割へ分化している様子が観察されます。誰も役割を割り当てていないのに学習だけでこの分業が生まれることが、Multi-Headという設計の狙い通りの効果です。

もう少し身近に、「銀行の口座」と「川の土手(bank)」のような多義語を考えてみましょう。英語の「bank」を正しく訳すには、金融関係の単語に注目する視点と、自然・地理関係の単語に注目する視点の両方を持ち、文脈に応じて使い分ける必要があります。複数ヘッドがあれば、異なる手がかりを別々のヘッドが同時に収集し、統合段階で最も整合的な解釈を選べます。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • 「同じ計算を複数回繰り返すだけ」ではない — 各ヘッドはQ・K・Vに異なる線形変換を施すため、それぞれ違う部分空間で注意を計算します。全ヘッドが同じでは複数にする意味がありません。「異なる特徴空間・異なる視点」が本質です。
  • Self-Attentionとの混同 — Self-Attentionは「自分自身の系列内で注意を計算する」という参照先の話、Multi-Headは「注意計算を並列に複数走らせる」という構造の話です。TransformerではSelf-AttentionをMulti-Head形式で使うため、両者は対立概念ではなく組み合わせです。
  • 「ヘッドの出力は平均する」は誤り — 各ヘッドの出力は連結(つなぎ合わせ)され、その後の線形変換で統合されます。平均化では各視点の情報がつぶれてしまいます。
  • 「ヘッドごとの役割は人間が設計する」は誤り — 文法担当・意味担当といった分担は、学習の結果として自然に現れるもので、事前に人間が指定するわけではありません。

📝 試験でのポイント

💡 ポイント
  • 「単一の注意機構を複数並列に配置し、異なる特徴空間での情報を同時に処理する」という定義文からMulti-Head Attentionを選ばせる形式が基本です。
  • 処理手順(線形変換→スケール付きドット積注意→連結→線形変換)の順序や、「連結」という統合方法が細部として問われ得ます。
  • 複数ヘッドの狙いを問う形式では「異なる視点からの情報抽出」「より豊かな表現」「表現力の向上」がキーワードです。
  • スケール付きドット積注意(Scaled Dot-Product Attention)という名称が、各ヘッド内部の計算方式として結びつけられるかも確認しておきましょう。

📚 まとめ

Multi-Head Attentionは、単一の注意機構を複数並列に配置し、各ヘッドが異なる部分空間で注意を計算する手法です。ヘッドごとの線形変換が「視点の違い」を生み、文法・意味・位置関係といった多面的な関連を同時に捉えられます。各ヘッドはスケール付きドット積注意を計算し、出力は連結後に線形変換で統合されます。Transformerの基本部品として長距離依存関係の学習を支えており、「なぜ複数か=異なる視点で表現力を高めるため」という一点を確実に押さえましょう。