アテンション、平易な言葉で
アテンションは技術的に聞こえますが、その考え方はあなたが文章を読むたびにしていることです。数式なしで、言語モデルの中で本当に何を意味するのかを解説します。
アテンションは現代の言語モデルの中心にある仕組みであり、その名前は最良の説明であると同時に混乱の源でもあります。この言葉は直感的な何かを約束し、その直感は正しいのです。しかし、この用語は行列やソフトマックスの下に埋もれ、何やら難解な機械のように聞こえてしまいます。そうではありません。アテンションは一つの明快な考えであり、あなたは文章を注意深く読むたびにすでにそれを使っています。
その考えとは、ある一つの単語を理解するために、モデルは他のどの単語がそれに関連するかを見極め、まさにそれらから情報を引き寄せる、というものです。その選択的な引き寄せがアテンションです。それ以外はすべて実装にすぎません。
アテンションの日常版
この文を読んでみてください。「トロフィーはスーツケースに入らなかった、大きすぎたからだ」。「それ」は何を指すでしょうか。トロフィーか、スーツケースか。あなたは即座に答え、しかもアテンションによってそうしました。あなたの頭は候補となる単語を比較考量し、「トロフィー」が関連するものだと判断し、両者を結びつけたのです。
では読んでください。「トロフィーはスーツケースに入らなかった、小さすぎたからだ」。文の構造は同じですが、今や「それ」はスーツケースを意味し、またしてもあなたは苦もなく分かりました。あなたは、適切な先行する単語に注意を払い、残りを無視することで、その参照を解決したのです。
それが概念のすべてです。言語モデルにおけるアテンションは、この一瞥の機械版です。あらゆる単語について、他のどの単語が重要かを決め、その意味を混ぜ込みます。モデルはあなたの常識を内蔵してはいませんが、膨大なテキストから学んで、同じ種類の選択的なまなざしを行います。
モデルが実際に注意を向けるもの
モデルが一つの単語を処理するとき、周囲のすべての単語を等しく扱いはしません。単語の各ペアについて、一方が他方にどれだけ関連するかを計算し、それらの関連度スコアを使って、各単語が他の単語にどれだけ影響すべきかを決めます。
関連度スコアの高い単語は強く引き寄せられ、スコアの低い単語はほとんど無視されます。ですから、先のトロフィーの文でモデルが「それ」のために作る表現は、ほとんどが「それ」と、たっぷりの「トロフィー」の混合であり、無関係な単語のかすかな痕跡だけです。単語はそれ自体としてではなく、それが見ることを選んだコンテキストの重み付き混合として理解されます。
これが、同じ単語が異なる文で異なる意味を持ち得る理由です。「bank」はある場所では「river(川)」に、別の場所では「deposit(預金)」に注意を向け、結果として得られる表現はそれに応じて異なります。アテンションこそが、意味を固定ではなく文脈依存にするものです。
クエリ、キー、バリューを専門用語なしで
標準的な説明はクエリ、キー、バリューという三つの用語を導入し、それらはいかめしく聞こえます。これらは馴染みのある考え、つまり何かを「調べる」ことに対応します。
各単語が、自分自身を理解するために何が必要かについて問いを投げかけていると考えてください。それがその単語のクエリです。他のすべての単語は、自分が何を提供できるかを、一種のラベルとして掲げています。それがそのキーです。モデルは各クエリをすべてのキーと照合して最も合うものを見つけます。検索があなたの入力を利用可能な結果のラベルと照合するのによく似ています。クエリとキーがうまく合致したところで、モデルはその単語の実際の中身、つまりそのバリューを引き寄せます。
ですから単語は「私は何を探しているのか?」と問い、他のすべての単語のラベルを走査し、自分の問いに答えるものの中身を集めます。クエリ、キー、バリューは、その調べ物における三つの役割にすぎません。仕組みは、すべての単語が同時に他のすべての単語に対して走らせる、柔らかく学習された検索です。
なぜ「柔らかい」ことが重要か
通常の検索は固い一覧を返します。これらの結果は合致し、残りは合致しない、と。アテンションはそれより柔らかいものです。単一の勝者を選ぶ代わりに、焦点を広げ、最も関連する単語により多くの重みを、他にはより少なく与えますが、ゼロになることはまれです。
この柔らかさは妥協ではなく特長です。言語は部分的な関連に満ちています。ある単語は主に一つの先行する単語に依存しつつ、わずかに他の二つにも依存するかもしれません。選ぶのではなく混ぜることで、アテンションはこうした段階的な依存を捉えられます。明白な参照に強く寄りかかりつつ、周囲のコンテキストを少しだけ混合の中に保てるのです。結果として得られるのは、意味が実際に働く乱雑で重なり合う様子を反映した表現です。
多くの種類の関連を同時に
二つの単語が関連する理由が一つだけということはめったにありません。「彼女」は、文法的な理由で先行する名前に、彼女がその主語だから動詞に、そして文がそれについてのものだから話題の単語につながるかもしれません。これらは異なる関係であり、一回のアテンションに押し込めれば、モデルはそれらを平均することを強いられます。
そこでモデルは複数のアテンション操作を並列に走らせ、それぞれが自由に専門化できるようにします。一つは文法的一致を追い、別の一つは誰が何をしているかを追い、また別の一つは話題の筋を保持できます。それらの発見が組み合わされ、各単語は同時並行する多くの関連の概念によって形作られます。これが、アテンションが「関連」という単一の平板化された感覚ではなく、言語の重層的な構造を捉えられる理由です。
アテンションでないもの
魅力的な誤読を払いのける価値があります。アテンションは、モデルが人のように「理解する」とか「意識的に集中する」ことを意味しません。関連度スコアは学習された統計的パターンであり、予測がうまく出るように調整されています。モデルが「それ」から「トロフィー」へ注意を向けるとき、それは物理的な物体について推論しているのではありません。膨大な量のテキストから、これが良い続きにつながるパターンだと学んだのです。
アテンションはまた、それ自体ではモデルが正しいものに注意を向けることを保証しません。誤解を招く相関に飛びつき、間違ったコンテキストを引き寄せ、自信に満ちた誤りを生むこともあります。この仕組みは強力で柔軟ですが、信頼できる推論器ではなく、学習された近似です。これを知っておくことが、メタファーを売り込みすぎることなく有用に保ちます。
なぜこの一つの考えで十分だったのか
現代の幕を開けた論文の名前、「Attention Is All You Need」は、意図的な主張でした。以前のアーキテクチャはアテンションを他の機械に付け足していました。洞察は、アテンション単独で、深く積み重ねて並列に走らせれば、単語を互いに関連づける仕事全体を担えるということでした。
他のすべてを取り除いてアテンションを残すことは、よりシンプルでありかつより強力だと判明しました。それはモデルが、情報をもろい鎖に沿って渡すのではなく、シーケンス全体を直接見渡すことを可能にし、その計算すべてを一度に行わせました。その到達範囲と並列性の組み合わせこそが、アテンションが言語モデルを単に改善しただけでなく、その基盤になった理由です。
まとめ
アテンションとは、あらゆる単語について、他のどの単語が関連するかを決め、その意味を混ぜ込むという規律です。それは、「それ」が何を指すかを解決するときにあなたがする一瞥の機械的な形です。クエリ・キー・バリューの機構は、シーケンス全体に対して一度に走る、柔らかく学習された調べ物にすぎず、その並列版が多くの種類の関連をまとめて捉えます。専門用語と方程式を取り除けば、アテンションはまさにその名が言う通り、何が重要かを見極め、そこを見る行為なのです。
