セルフアテンションSelf-Attention

同じ文の中の言葉どうしが互いを参考にする方式

ポイント
  • セルフアテンションは同じ文の中の言葉どうしが互いを参考にする方式です。外から情報を持ち込みません。
  • 文の中のすべての場所が尋ねる側であると同時に答える側です。片方だけが質問する構造ではありません。
  • 参考を終えると各場所の内容が文脈のしみ込んだ新しい内容に書き換わります。同じ文字でも文が違えば違うものになります。
  • すべての場所が同時にこの作業をします。前から順に順番を待たないので、学習がとても速くなりました。
  • この過程を何層も繰り返すと参考にする範囲が広がり、文全体の組み立てまで捉えられるようになります。
目次

1たとえで理解する

同じ建物に住む部屋ごとに郵便受けが一つずつあります。3号室が「うちの犬の名前、なんだったっけ」というメモを回すと、ほかの部屋が知っている分だけ返事を書いて自分の郵便受けに掛けておきます。3号室はその返事を集めてきて、自分の表札に書かれた内容を書き直します。セルフアテンションは、こうして同じ建物の中だけでメモが行き交う仕組みです。

大事なのは全員が同時にこれをするということです。3号室だけが尋ねるのではなく、1号室も2号室も4号室もそれぞれメモを回し、それぞれ返事を集めます。全員が尋ねる側であると同時に答える側です。

外の郵便局から配達される郵便物はここにありません。新しい情報が入ってくるのではなく、すでに建物の中に散らばっていた情報が、それぞれの居場所を見つけていくのです。

2くわしく

外からではなく中でやり取りします

アテンションそのものは、もともと二つの集まりをつなぐために使われていました。翻訳するとき、原文側の単語と訳文側の単語を結びつけるような使い方です。尋ねる側と答える側が別の文でした。

セルフアテンションはこの二つを一つに合わせました。尋ねる側も答える側も同じ文です。だから「自分自身」という意味の名前が付きました。この単純な変更がトランスフォーマーという構造を可能にし、今使われているほとんどの言語モデルがこの上に立っています。

各場所が三つの役割を同時に担います

各場所は三つのものを差し出します。「自分はこういうものを探している」というメモ、「自分はこういうものを持っている」という名札、そして実際に渡す中身です。郵便受け一つが、手紙も出せば名札も掲げ、返事の中身も用意しているようなものです。

メモと名札がよく合うほど、その場所から来る返事の重みが大きくなります。重みを全部足すと1になるので、どこか一か所を大きく参考にすると、ほかは自動的に少なく参考にすることになります。

この三つはすべて同じ原本から、それぞれ別のやり方で取り出されたものです。どう取り出すかは学習で決まりました。

返事を集めると内容が変わります

返事を集め終えたあと、各場所の内容はそのままではありません。集めてきたものを重みどおりに混ぜて自分の内容に反映します。その結果「それ」という場所には前に出てきた「ケーキ」の情報が濃くしみ込み、「明るい」という場所には、その前に出てきたのが部屋なのか性格なのかがしみ込みます。

同じ文字が文によって違うものを意味するようになるのは、ここで起きることです。文一つだけを見れば「橋」は箸とも橋とも取れますが、前後の言葉の返事を集めたあとには、食事の道具のほうか渡る構造物のほうかが決まります。

全員が同時に働きます

以前の方式は、最初の単語を処理し終えないと二番目の単語に進めませんでした。列に並んで順番を待つ構造だったのです。セルフアテンションにはそういう順番がありません。すべての場所がすべての場所を一度に見るので、全部同時に計算できます。

この点が実際にいちばん大きな変化を生みました。計算装置が数千の作業を一度にこなすのが得意な性質とぴったり合い、学習速度が比べものにならないほど速くなりました。今日の大きなモデルが生まれた実質的な理由です。

その代わり順序の情報が消えます。全員が同時に互いを見ると、誰が先で誰が後かわからなくなるからです。そのため各場所に順序を示す印を別に付けてやる必要があります。

層を重ねると視野が広がります

一度返事を集めて終わりではありません。更新された内容を持ってもう一度メモを回し、それを何層も繰り返します。二層目では、すでに文脈のしみ込んだ内容どうしがやり取りするので、はるかに広い関係を見られます。

下の層は隣の言葉との関係や文法的な組み合わせを主に捉え、上の層に行くほど文全体の主題や論理の流れのようなものを捉える傾向が観察されます。層ごとに見るものが少しずつ違うのです。

3もう少し正確に

セルフアテンションは、クエリ、キー、バリューをすべて同じ入力から作り出すアテンションです。各場所のクエリとすべての場所のキーを見比べて点数をつけ、ベクトルの大きさに合わせて一度縮めたあとソフトマックスで合計が1になる重みを作り、その重みで値を加重平均します。文を続けて書くモデルでは、自分より後ろにある場所を見られないように隠します。

計算量は場所の数の二乗に比例します。文が二倍長くなると照らし合わせる組は四倍になります。長い文脈を扱う費用が急に上がる理由で、これを減らそうとする変形が次々と出ています。

たとえがずれる点もあります。郵便受けのたとえでは部屋ごとに人がいて返事を読んで判断しますが、セルフアテンションには判断する主体がいません。学習で合わせられた数字が掛け合わされ足し合わされて、重みが自然に出てきます。またメモを実際に回す順番もありません。一度の大きな行列計算で、すべての組が同時に処理されます。

4やってみる

5よくある誤解

  • セルフアテンションが文の外から情報を持ち込むと思われがちですが、実際にはすでに入力に含まれている場所どうしだけでやり取りします。

  • 近い言葉ほど多く参考にすると見なされがちですが、実際には距離とは関係なく重みが決まるので、遠くの言葉のほうがずっと大きく参考にされることもあります。

  • アテンションとセルフアテンションは同じ言葉だと思われがちですが、実際にはアテンションのほうが広い概念で、尋ねる側と答える側が同じときだけセルフアテンションと呼びます。

7ひとこと要約

つまりセルフアテンションは同じ建物の中の郵便受けのように、文の中の言葉が互いに尋ね合い答え合って、それぞれの内容を文脈のしみ込んだものに書き直す方式です。

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