Transformerのアテンションとは?AIが文脈を読む仕組み
画像出典: 写真: Matt Ming from Beijing, China(CC BY 2.0 / Wikimedia Commons)
AIが指示語や文脈を読めるのは、文中の単語ひとつひとつが「自分にとって重要な単語はどれか」を他のすべての単語に問い合わせ、関係の強い相手ほど強く参照して自分の意味を更新しているからです。この仕組みはアテンション(注意機構)と呼ばれ、2017年の論文「Attention Is All You Need」で提案されたTransformerという構造の中核にあたります。単語を前から順に一つずつ処理するのではなく、文全体を一度に見渡して関係を測るのが決定的な違いです。
指示語の解決は、実は文章を扱う技術のなかで長く難しい部類でした。「それ」という2文字そのものには意味がほとんどなく、意味は周りの単語との関係のほうに宿っているからです。
正直なところ、ここを「AIが賢いから」で済ませてしまうと、AIが得意なことと苦手なことの境目も見えないままになります。今のAIが文脈を読めている理由には、はっきりした仕組みの名前があります。アテンション(注意機構)です。数式は使わずに、その中身を見ていきます。
アテンション機構とは何をしている仕組み?
アテンションは、文中のそれぞれの単語が、他のすべての単語を見渡して「自分にとって重要な相手はどれか」を測り、重要な相手ほど強く参照して自分の意味を更新する仕組みです。文中の単語同士でこれを行うものは、特にセルフアテンション(自己注意)と呼ばれます。
「その資料を直して」という文を処理するとき、「それ」に相当する単語は、文中の他の単語すべてに向かって問い合わせを出します。「資料」との関係が強いと判定されれば、「それ」という表現の内部的な意味が「資料」の情報を強く含んだものへ書き換わる、というイメージです。
ここで大事なのは、関係の強さが人手のルールではなく、大量の文章から学習された結果として決まっている点です。「その+名詞は直前の名詞を指す」といった文法規則を誰かが書き込んだわけではありません。
なぜ「文全体を一度に見る」ことが重要なの?
アテンションが登場する前、文章を扱う主流はRNN(再帰型ニューラルネットワーク/単語を前から順に1つずつ読み、それまでの内容を1つの記憶に畳み込んでいく方式)でした。人間の読み方に近い素直な方式ですが、2つの弱点があります。
- 遠く離れた単語との関係が薄れる。100語前に出た「資料」は、記憶を何度も上書きするうちに埋もれていく
- 前の単語の処理が終わらないと次に進めないため、計算を並列化しづらく学習に時間がかかる
アテンションはこの前提を捨てました。単語を順に畳み込むのではなく、全単語の間で総当たりに関係の強さを測るため、100語離れていようと隣同士だろうと距離は同じ扱いになります。しかも関係の計算は互いに独立しているので、まとめて並列に処理できます。
2017年に発表された論文「Attention Is All You Need」は、まさにこの点を主張したものでした。再帰も畳み込みも完全に排除し、アテンションだけで組んだ構造をTransformerと名付けています。機械翻訳の評価では、WMT2014の英独翻訳で28.4 BLEU、英仏翻訳で41.8 BLEUを記録し、当時の最良結果を上回りました。BLEUは機械翻訳の出力を人間の訳文と比べて採点する指標で、値が高いほど良い訳とされます。学習時間も大幅に短縮されました。
| 比べる点 | 順に読む方式(RNN) | アテンション方式 |
|---|---|---|
| 単語の読み方 | 前から1語ずつ、記憶に畳み込む | 全単語の関係を一度に測る |
| 離れた語との関係 | 距離が離れるほど薄れやすい | 距離によらず同じ扱い |
| 計算の進め方 | 前の語が終わるまで待つ | まとめて並列に処理できる |
Attention Is All You Need(arXiv:1706.03762)の記述をもとに作成
上の表の3行目が、今のAIブームの土台になった部分です。並列に計算できるということは、GPUを増やせば増やすほど大きなモデルを現実的な時間で学習できるということでもあります。この論文は2025年時点で17万3000回以上引用されており、21世紀で最も引用された論文のひとつに数えられています。
クエリ・キー・バリューって結局なに?
アテンションの解説では必ずQuery(クエリ)・Key(キー)・Value(バリュー)という3つの語が出てきます。ここが数式なしで一番つまずくところなので、図書館のたとえで整理します。
- クエリ=探している人の「問い」「それ」という単語が「自分が指している中身はどこにある?」と検索窓に打ち込む言葉にあたります。単語ごとに1つずつ持ちます。
- キー=本の背に貼られたラベル文中の他の単語が「自分はこういう情報を持っている」と掲げる見出しです。クエリはこのラベルを見て、どれが自分の問いに合うかを判断します。
- バリュー=本の中身そのものラベルが一致したときに実際に取り出される情報です。クエリとキーの一致度が高いほど、そのバリューを強く受け取ります。
処理としては、あるクエリが文中すべてのキーとの一致度を採点し、その点数を合計1になるよう配分し直したうえで、配分に応じてバリューを混ぜ合わせます。「一番合うものだけを選ぶ」のではなく「合う度合いに応じて全部を混ぜる」のがアテンションの特徴です。
この「全部を配分して混ぜる」性質は、AIの挙動を理解するうえで地味に効いてきます。「それ」が本当は資料を指しているのに、文中に別の名詞が紛れていて配分がそちらへ漏れると、指示語の解釈がぶれる。指示が長くなるほど回答が的を外しやすくなる理由の一端がここにあります。
同じ文でも見方が複数ある——マルチヘッドの話
単語同士の関係には種類があります。「誰が何をしたか」という文法上のつながり、「どの名詞を指しているか」という指示関係、「話題として近いか」という意味的な近さ。これらを1つの採点表で同時に表そうとすると、どれかが潰れます。
Transformerはこれを、同じアテンションの計算を複数セット並行して走らせることで解決しています。マルチヘッドアテンションと呼ばれる構造です。それぞれのセットは違う観点で関係を採点し、最後に結果を統合します。1つの文を、文法担当・指示語担当・話題担当がそれぞれ読んで持ち寄るようなものだと考えると近いです。
「文法担当」「指示語担当」といった役割分担は、人間が事前に割り当てたものではありません。学習の結果としてそれぞれのセットが異なる傾向を持つようになるだけで、1つのセットが人間にとってきれいな1つの役割に対応するとは限りません。理解の足がかりとしては有効ですが、「AIの中に文法係がいる」と受け取ると実態からずれます。
この仕組みを知ると、指示の書き方はどう変わる?
アテンションが「文中の単語同士の関係」で動いている以上、関係を測る材料が同じ文脈の中に入っているかどうかが精度を左右します。ここから、実際の指示に落とせる判断基準が出てきます。
- 指示語で済ませず、指す対象の語をもう一度書く。「それを要約して」より「先ほどの議事録を要約して」のほうが、関係の配分が迷いにくい
- 1つの依頼文に、似た種類の名詞をいくつも混ぜない。候補が増えるほど配分が分散する
- 参照してほしい資料は、別の場所に置いたまま指すのではなく、同じやり取りの中に貼り付ける。文脈の外にあるものには、そもそもアテンションが向かない
- 長い前提を書いたあとで指示を出すときは、指示の直前に対象をもう一度名指しする
とくに3つ目は重要です。AIが「先週送ったファイル」を思い出せないのは記憶力の問題ではなく、その情報が関係を測る対象の中に存在していないからです。仕組みの側から見ると、忘れているのではなく最初から見えていないという状態に近い。
逆に言えば、必要な材料を同じ文脈に置きさえすれば、離れた位置にあっても参照されます。長い文書を丸ごと貼って「3ページ目のこの表について」と聞けるのは、距離が精度を落としにくいというアテンションの性質そのものです。
アテンションが得意なこと・苦手なこと
仕組みがわかると、限界も同じ場所から説明できます。総当たりで関係を測るということは、単語数が増えるほど組み合わせの数が急激に増えるということです。扱える文脈の長さに上限があり、長文になるほど処理が重くなる理由はここにあります。
アテンションが測っているのは、あくまで学習データから見た単語同士の関係の強さであって、書かれている内容が事実かどうかではありません。関係の配分がうまくいって流暢な文が出ることと、その内容が正しいことは別の話です。文脈を読めているように見える出力ほど、事実確認を省きたくなりますが、そこは分けて扱う必要があります。
それでも、この仕組みを知っているかどうかで、AIへの向き合い方はかなり変わります。うまくいかないときに「AIが賢くない」で止まらず、「関係を測る材料が文脈に足りていないのでは」と疑えるようになる。それだけで、指示の直し方が具体的になります。
よくある質問
アテンション機構とは何ですか?
アテンション機構とは、文中の各単語が他のすべての単語との関係の強さを測り、関係の強い単語ほど強く参照して自分の意味を更新する仕組みです。2017年の論文「Attention Is All You Need」で提案されたTransformerという構造の中核をなし、現在の大規模言語モデルの基礎になっています。
クエリ・キー・バリューはそれぞれ何を表していますか?
クエリは「自分にとって重要な単語はどれか」という問い、キーは各単語が掲げる見出し、バリューは実際に取り出される情報の中身です。クエリとキーの一致度に応じてバリューが配分され、混ぜ合わされた結果がその単語の新しい表現になります。図書館で言えば、検索の言葉・本の背ラベル・本の中身にあたります。
アテンションとRNNは何が違うのですか?
RNNは単語を前から1つずつ読んで記憶に畳み込むため、離れた単語との関係が薄れやすく、前の処理を待つので並列化しづらい方式です。アテンションは全単語の関係を一度に測るため、単語間の距離によらず関係を捉えられ、計算をまとめて並列に処理できます。この並列性が大規模なモデルの学習を現実的にしました。
アテンションの仕組みを知ると、AIへの指示はどう改善できますか?
指示語で済ませずに対象の語を書き直す、似た名詞を1文に詰め込まない、参照してほしい資料は同じやり取りの中に貼り付ける、という3点が効果的です。アテンションは同じ文脈の中にある単語同士の関係しか測れないため、文脈の外にある情報はそもそも参照されません。
※記事で使用した内容・数値は変更される場合があります。最新情報は公式サイトをご確認ください。