【AIとの距離感・補足】Attentionを並列で走らせる|Multi-Head Attention
この記事はAttentionの話を読んでいるとより理解しやすくなっています。
はじめての方は先にこちらをどうぞ。
🤔 Attentionをひとつだけ使う、の何が足りないのか
前の記事でAttentionの話を書いたとき、「どの単語に注目するかをスコアで決める」という仕組みを追いました。
ただ調べていくうちに、実際のTransformerではAttentionをひとつだけ使っているわけではない、とわかりました。複数のAttentionを並列で走らせている。これをMulti-Head Attentionと呼びます。
「なぜひとつじゃ足りないのか」というのが、最初に引っかかった問いでした。ひとつで全部見られるなら、それで十分じゃないのか、と。

👁️ ひとつのAttentionだと、何が起きるか
Attentionはスコアを使って「どの単語に注目するか」を決めます。でも、ひとつのAttentionが持てる「注目の仕方」はひとつだけです。
たとえば「彼女はケーキを食べた。それはとても甘かった」という文章で、ひとつのAttentionが「それ→ケーキ」という指示の関係に注目しているとします。そのとき同時に「彼女→食べた」という動作の関係や、「甘かった→ケーキ」という性質の関係にも同じくらい注目できるか、というと難しい。
ひとつの視点は、ひとつの関係を追うのに向いています。でも文章の中には、同時に追うべき関係がいくつもある。「ひとつじゃ足りない」の正体は、たぶんここでした。調べるまで気づいていなかった。
そこで「視点を増やす」という発想が出てきます。

🔭 複数の視点で同時に見る
Multi-Head Attention(マルチヘッドアテンション)は、複数のAttentionを同時に並列で走らせる仕組みです。つまり、文章を複数の「視点」から同時に見て、それぞれの結果を組み合わせることで、より豊かな理解を得る、ということです。
「Head」はAttentionのひとつひとつの単位のことです。これが複数(Multi)ある、というのが名前の由来です。
具体例①:ケーキの文章
先ほどの文章で考えると、こうなります。
Head 1:「それ→ケーキ」という指示の関係に注目
Head 2:「彼女→食べた」という動作の関係に注目
Head 3:「甘かった→ケーキ」という性質の関係に注目
これらを同時に並列で走らせて、最後に結果を合わせる。ひとつの視点だけでは見落としやすい関係も、複数の視点があれば補い合えます。
ひとつのAttentionが「何に注目するか」を決めるとしたら、Multi-Head Attentionは「何種類もの注目の仕方を同時に試す」イメージに近いです。
具体例②:もう少し複雑な文章
「田中さんは昨日、長年勤めた会社を辞めて、新しい仕事を始めた」という文章。
ここには「田中さん→辞めた」「田中さん→始めた」「昨日→辞めた」「長年→勤めた」など、複数の関係が絡み合っています。ひとつのAttentionでこれを全部追うのは難しい。複数のHeadがそれぞれ担当を分けて同時に追うことで、文章全体の構造が見えてくる。
この例を考えたとき「確かにこれはひとつじゃ無理だ」と少し腑に落ちました。

🔑 Query・Key・Valueという3つの役割
ここは少し込み入った話です。難しければ次のセクションに飛んでも大丈夫です。
Attentionの内部では、Query・Key・Valueという3つの要素が使われています。難しそうな名前ですが、役割で考えると少し掴みやすくなります。
Queryは「何を探しているか」
Query(クエリ)は「今、何を知りたいか」を表す情報です。つまり、注目の起点となる単語が「どんな関係を探しているか」を表したものです。
Keyは「自分はこういう情報」
Key(キー)は「自分はこういう情報を持っている」を表す情報です。文章の各単語が「自分はこんな役割がある」と名乗っているイメージに近い。
Valueは「実際に渡す中身」
Value(バリュー)は「実際に渡す情報の中身」です。QueryとKeyが照合されてスコアが決まったあと、そのスコアに応じてValueが引き渡されます。
図書館で例えると、Queryは「こういう本を探している」という問い、Keyは本の背表紙のタイトル、Valueは本の中身です。タイトルが問いに合っていれば、その本の中身を取り出す。
自分はこの説明を読んで「なんとなくわかった気がするけど、正直まだふんわりしている」という感じでした。「QueryとKeyでスコアを決めて、Valueを取り出す」という流れだけ手元に残しておけば、先には進めます。

🔢 実際には何個走らせているのか
Transformerの元の論文では、8つのHeadを並列で走らせていました。つまり、8種類の視点から同時に文章を見ていた、ということです。
GPT・Claude・Geminiのような大規模なモデルでは、さらに多くのHeadが使われています。ただ、何個が最適かはモデルによって異なるそうで、研究者が調整しながら決めているようです。
「8個で十分なのか、100個だともっと賢くなるのか」が気になりましたが、単純に増やせばいいわけでもなく、計算コストとのバランスがあるそうです。そこはまだ追いきれていません。
🔗 毎日使っているAIとのつながり
ClaudeもGeminiもGPTも、このMulti-Head Attentionを使って文章を理解しています。
Claudeに文章の相談をするとき、長い文脈の中から「ここが大事」という部分を拾ってくれる感覚があります。複数のHeadがそれぞれ違う関係を同時に追っているから、ひとつの視点では見落とすような意図も拾えている。
Geminiで調べものをするときも、GPTで壁打ちをするときも、同じ仕組みが動いています。「なんでわかったんだろう」という瞬間の裏側が、少し見えた気がします。
Query・Key・Valueはまだふんわりしたままですが。
ま、いっか。
あとがき
ここまで読んでくださり、ありがとうございます。
Attentionだけでも、すごー!と思っていたところに、さらにMulti-Head Attention。
終わりがないって、こういうことを言うんですかね。ほんとうにすごいです。
メンバーシップの皆様、いつもありがとうございます!
「フォロー」や「スキ」をしていただけると励みになります!
今後ともよろしくお願いします!

いいなと思ったら応援しよう!
気に入っていただけたら、チップで応援してもらえると嬉しいです。
いただいた応援は、今後の記事作りの励みになります!