「Attention(注意機構)」はTransformerの心臓部であり、現代AIが文脈を理解できる理由です。「猫が魚を食べた。それはおいしかった」という文で「それ」が「魚」を指すとAIが理解できるのはAttentionのおかげです。この記事ではAttentionの仕組みをゼロからわかりやすく解説します。
Attentionとは?
Attention(アテンション・注意機構)とは、AIが文章を処理する際に「どの単語とどの単語が関係深いか」を動的に計算する仕組みです。人間が文章を読むときに重要な部分に「注意」を向けるように、AIも各単語がほかの単語に対してどれだけ「注意」を向けるかを数値で表します。
たとえば「The animal didn’t cross the street because it was too tired」という文で、「it」が「animal」を指すか「street」を指すかを判断するのは人間でも一瞬考えます。Attentionはこの「どの単語を参照すべきか」の問題を、すべての単語間の関係スコアを計算することで解決します。
Query・Key・Valueの3つの概念
Self-AttentionとCross-Attentionの違い
| 種類 | 概要 | 使用場面 |
|---|---|---|
| Self-Attention(自己注意) | 同じ文章内の単語同士の関係を計算。各単語が文章内の他の単語とどう関係するかを理解する。 | TransformerのEncoder・Decoder両方で使用。文章の文脈理解に必須。 |
| Cross-Attention(交差注意) | 異なる系列間の関係を計算。たとえば日本語の入力文と英語の出力文の関係を計算する。 | 翻訳・要約などSeq2Seqタスクで使用。DecoderがEncoderの情報を参照する際に使用。 |
| Causal Attention(因果的注意) | 過去の単語だけに注意を向ける。未来の単語は参照できないようマスクする。 | GPT系の自己回帰型言語モデル。次の単語を予測する学習に使用。 |
Multi-Head Attentionとは
1つのAttentionは1つの観点からしか関係性を見られません。Multi-Head Attention(マルチヘッドアテンション)は、複数のAttentionを並列に実行して異なる観点から同時に関係性を捉えます。あるヘッドは文法的な関係(主語と動詞)、別のヘッドは意味的な関係(反義語・同義語)、さらに別のヘッドは文書の構造的な関係を学習します。GPT-4は96個のヘッドを持つとされており、96の異なる観点から同時に文脈を理解します。
Attentionの限界:計算コスト
Attentionの計算コストは文章の長さの2乗に比例します(O(n²)の計算量)。文章が2倍になると計算量は4倍になります。これがコンテキストウィンドウに上限がある主な理由です。この問題を解決するためにFlashAttention・Sparse Attention・Linear Attentionなど効率化技術が研究されています。Googleが開発したGeminiの100万トークンのコンテキストもこのような技術革新の成果です。
よくある質問
AttentionとTransformerはどちらが先?
Attentionの概念はTransformerより前から存在していました(2014〜2015年頃にRNNに組み合わせる形で登場)。TransformerはAttentionだけを使ってRNNを不要にした点が革新的でした。
Attentionスコアは実際に可視化できる?
はい、BertVizなどのツールを使うとAttentionの重みを可視化できます。どの単語がどの単語に注意を向けているかをヒートマップで表示でき、モデルが文章をどう理解しているか直感的に確認できます。


コメント