マルチヘッドアテンションMulti-Head Attention

同じ場面を複数の視点が同時に見るアテンション

ポイント
  • マルチヘッドアテンションは同じ入力を複数の系統がそれぞれ違う見方で調べたあと一つに合わせる方式です。
  • 一つの系統をヘッドと呼びます。ヘッドごとに何に重みを置くかが違います。
  • 一系統だけを使うと複数の関係が**平均でぼやけます。**分けておけば、それぞれ違う関係をくっきり捉えられます。
  • 分けても仕事量は増えません。もともと一つが使っていた幅をヘッドどうしで分け合うだけです。
  • 調べた結果は最後につなぎ合わせて一つの塊に整理され、次の段階へ渡されます。
目次

1たとえで理解する

合唱団は同じ歌詞を歌いますが、パートが分かれています。ソプラノは高い旋律を、アルトはその下を、テノールとベースはさらに下を受け持ちます。同じ楽譜、同じ歌詞なのに、各パートが聞く場所と受け持つ分が違います。そして四つの系統は最後に一つの和音に合わさり、一つの音になります。マルチヘッドアテンションはこの構造です。

パートを分けず全員が同じ旋律だけを歌ったらどうなるでしょうか。音は出ますが厚みがありません。和音が与える豊かさは、違うものを同時に歌うときにだけ生まれます。

パートを分けたからといって歌う人数が増えるわけでもありません。同じ人数を四つに分けて配置しただけです。

2くわしく

ヘッドごとに受け持つ関係が違います

一つの文について各ヘッドが何に重みを置いたかを見てみると、かなりはっきりした性格が見えてきます。あるヘッドはすぐ前の単語に一貫して重みを置きます。言葉のつながりを捉える側です。あるヘッドは主語と動詞のように離れた組を結びつけます。またあるヘッドは文頭や句読点のほうに重みを寄せていたりもします。

この役割は人が割り振ったものではありません。学習が進むにつれて、ヘッドどうしが自然と違う仕事を担うようになりました。同じ仕事をするヘッドが複数あっても損なので、自然に分かれていったのです。

ただし、すべてのヘッドが人にわかる役割を持つわけではありません。何をしているのか説明しにくいヘッドも多く、取り除いても性能がほとんど落ちないヘッドもあります。

一つだけだとぼやけます

ヘッドが一つしかないと、重みを一組しか計算できません。ところが文の中には同時に成り立つ関係が複数あります。「明日が締め切りの資料を後輩が仕上げた」では、誰が締め切りを抱えているのか、何を仕上げたのか、いつなのかが、すべて別々に結びつく必要があります。

重みが一組だけだと、これらの関係を一つの表に押し込むことになり、互いに混ざり合ってしまいます。どちらにも大きく傾けず、平均あたりに留まる平坦な結果になります。合唱団全員が一つの旋律だけを歌う状態と同じです。

ヘッドを分ければ、それぞれが自分の関係だけをくっきり見られます。互いに気兼ねせず、それぞれ重みを寄せられるからです。

分けても仕事は増えません

ここでよく誤解が生まれます。ヘッドを八つに増やすと計算も八倍になりそうですが、そうではありません。もともと一つのヘッドが使っていた幅を八つに分けて持つからです。各ヘッドは狭くなった幅の中で働き、合わせると元の幅に戻ります。

合唱団が四つに分かれても団員の数は増えないのと同じです。同じ人数をどう配置したかの問題です。おかげで計算コストをほぼそのままに、表現力だけを得られます。

最後に一つの塊に合わせます

ヘッドごとに出た結果はばらばらのままでは残りません。順番につなぎ合わせて元の幅の塊にし、そこにもう一度整理の過程を通します。この整理段階でヘッドどうしの結果が混ざり合い、重みが調整されます。

つなぎ合わせるだけで終えてしまうと、ヘッドどうしが赤の他人のまま残ります。最後の整理があってはじめて、四つのパートが一つの和音になるのです。

ヘッドは多ければよいわけではありません

ヘッドを増やし続けると、各ヘッドが使う幅がそれだけ狭くなります。幅が狭すぎると詰め込める情報が減り、かえって性能が落ちます。そのためモデルの規模に合わせて適度な個数を選び、たいていは八個から数十個の間を使います。

学習を終えたモデルを見てみると、たいした役割を果たしていないヘッドがかなり見つかります。こうしたヘッドを取り除いてモデルを軽くする方法も研究されてきました。

3もう少し正確に

マルチヘッドアテンションは、入力をヘッド数分の部分空間に分けてそれぞれアテンションを計算したあと、結果をつなぎ合わせてもう一度線形変換し、元の次元に戻す構造です。各ヘッドの次元はふつう全体の次元をヘッド数で割った値なので、全体の計算量は一つのヘッドを使うときとほぼ同じに保たれます。

ヘッドどうしは互いに違うクエリ、キー、バリューの変換を学習します。この変換が違うため、同じ入力からでも違う重みの表が出てきます。ヘッド数とヘッドあたりの次元は、層ごとに同じにしておくのがふつうです。

たとえがずれる点もあります。合唱団はパートごとの音域が楽譜にあらかじめ書かれていますが、ヘッドにはそういう指定がありません。何を受け持つかは学習の過程で自然に分かれたもので、人が後から見て推測するだけです。また合唱は音が実際に重なって響きますが、ヘッドの結果は重なるのではなく、並べてつなぎ合わせたあとにもう一度混ぜられます。

4やってみる

5よくある誤解

  • ヘッドを増やすと計算量もその分増えると思われがちですが、実際には全体の幅を分け合うため、費用はほぼそのままです。

  • ヘッドが多いほど性能が上がると見なされがちですが、実際にはヘッドあたりの幅が狭くなるので、増やしすぎるとかえって悪くなります。

  • ヘッドごとに人が役割を決めたと思われがちですが、実際には学習の過程で自然に分かれたもので、説明しにくいヘッドも多くあります。

7ひとこと要約

つまりマルチヘッドアテンションは合唱団のパートのように、同じ文を複数の系統がそれぞれ違う見方で調べたあと一つの和音に合わせる方式です。

誤りや、もっと良いたとえがありますか? 修正を提案する · 最終更新2026-09-02