わかりやすく アテンション とは
前のレッスンは、単語一つに座標が一つだけでは困ることがある、という話で終わりました。同じ'Apple'という単語でも、そばに'eat'があれば果物、'stock'があれば会社です。人は文を読むとき、すべての単語を同じように見てはいません。いま読んでいる単語と関わりの深い単語に、より目を向けています。この技を機械にも身につけさせ、文の中のほかの単語を見て単語の意味を決めさせることができます。これをアテンションと呼びます。
大事な単語にもっと注目する
長い文を読むとき、私たちはどの単語にも同じだけ力を使うわけではありません。いま読んでいる単語の理解に役立つ単語を選んで、長めに見ます。たとえば'sat'が何のことかを知るには、誰が座ったのかで'cat'を、どこに座ったのかで'mat'を見る必要があります。
一方、冠詞や前置詞のような小さな単語は、この問いにあまり役立ちません。大事な単語にもっと注目すること、これがアテンションの第一歩です。
文の中の単語を一つ押してみましょう。その単語と関わりの深い単語ほど濃く浮かび上がり、いまの単語がどこに注目しているかがわかります。
押す単語によって、濃く浮かぶ単語が変わりました。濃い単語はいまの単語にとって大事な単語で、薄い単語はあまり関係のない単語です。人も文章を読むとき、同じことをしています。
では、機械は何が大事かをどうやって知るのでしょうか。単語にはそれぞれ座標があるので、いまの単語の座標とほかの単語の座標を比べて、関連度の点数をつけます。その比べ方もデータから学びます。何が大事かは、単語一つで決まるのではなく、まわりの単語との関係で決まるのです。
文脈が意味を決める
同じ単語なのに意味が変わることがあります。その意味を決めるのは、まわりの単語、つまり文脈です。英語の'bank'という単語を見てみましょう。そばに'river'があれば川の土手、'money'があれば銀行になります。
単語そのものは同じでも、まわりが変われば読み方が変わります。アテンションは、まさにこのまわりを見て意味を決めるのです。
真ん中の単語はそのままにして、そばにつける文脈の単語を押して切り替えてみましょう。同じ単語なのに、読み方が川の土手からお金を預ける銀行に変わります。
そばの単語を一つ変えただけで、読み方がすっかり変わりました。単語は一つだけで意味をすべて持っているわけではなく、まわりの単語といっしょになってはじめて意味がはっきりします。
だから、いまの単語がどの単語に注目するかによって、同じ単語が違う意味に読まれます。この性質がいちばんよく表れるのが、意味をいくつも持つ単語、多義語です。
多義語は文脈によって座標が動く
前のレッスンで、単語は意味の空間の座標だと学びました。多義語は、その座標が二つの町のあいだにまたがっている単語です。'Apple'は果物の町にも会社の町にも属していて、一つだけではどちらなのかわかりません。
ところが、そばに'eat'をつけると座標は果物の側へ引っぱられ、'stock'をつけると会社の側へ引っぱられます。文脈が、ぼやけた座標を一方に決めてくれるのです。
'Apple'のそばに'eat'か'stock'を押してつけてみましょう。意味の座標が、果物の町と会社の町のあいだを行き来します。
同じ'Apple'なのに、そばの単語一つで場所ががらりと変わりました。これがアテンションの仕事の中心です。いまの単語の新しい座標を、まわりの単語の座標を混ぜ合わせて作り直します。強く注目した単語の座標はたくさん、あまり注目しなかった単語の座標は少しだけ混ぜます。
では、注目はどう分けるのでしょうか。そばの単語すべてに等しく分けるのではなく、関連度の大きいほうに多く分けます。
関連度を重みとして分ける
関連度の点数はそのまま使わず、全部足すとちょうど1になる取り分に直します。この取り分を重みと呼びます。関係の深い単語ほど、大きな取り分をもらいます。
合計が決まっているので、一つの単語がたくさん取れば、ほかはそのぶん少なくなります。注目できる量にはかぎりがあり、それをどこに多く使うかを選んで分けるわけです。
単語の棒を押して、注目をもっと与えてみましょう。一つの単語がたくさん取ると残りが減り、重みを全部足した値はいつも1のままです。
一つの単語に注目を集めると、ほかの単語がそのぶん取り分をゆずり、合計は最後まで1でした。こうして分けた重みが、どの単語をどれだけ見るかを決めます。大きな重みをもらった単語ほど、いまの単語の新しい座標を自分のほうへ強く引き寄せます。
だから'Apple'の座標は、重みの大きい隣の単語のほうへ動くのです。実際の言語モデルは、この計算を文中のすべての単語について同時に行い、見る角度の違うアテンションをいくつも並べて動かします。
まとめ
まとめるとこうです。文を読むとき、すべての単語を同じように見るのではなく、いまの単語にとって大事な単語にもっと注目します。関連度の点数を、全部足すと1になる重みに直し、その重みのぶんだけまわりの単語の座標を混ぜて、いまの単語の座標を新しく作ります。
だから文脈が意味を決め、'Apple'のような多義語の座標が文脈によって果物の側や会社の側へ動きます。これがアテンションです。
要点を順に押して振り返りましょう。(大事なところに注目 → 文脈が意味を決める → 多義語の座標が動く → 重みの合計はいつも1)
これで、アテンションが何なのかがわかりました。すべての単語を同じように見ず、大事な単語を選んで注目するという単純な考えのおかげで、同じ単語でもそばの単語によって違う意味に読まれます。機械が、文脈の中で単語を読めるようになったのです。
アテンションを何層も重ねた仕組みを、トランスフォーマーと呼びます。いまの大規模言語モデル、LLMは、このトランスフォーマーの上で次の単語を当てる機械です。次のレッスンでは、LLMがどうやって文章を作り出すのかを見ていきます。