Attention(注意機構)は、「入力のどこに注目すべきか」をモデル自身に判断させる仕組みです。Transformerの心臓部であり、現在の生成AIブームの土台となった技術でもあります。この記事ではAttentionそのものの原理——なぜ必要で、どう計算されるのか——を扱います。
📖 ひと言でいうと
Attentionとは、入力データ内の重要な部分に焦点を当て、各要素間の関連性を動的に評価しながら情報を処理する技術です。人間が長い文章を読むとき、すべての単語を均等に見るのではなく、いま理解したい箇所に関係の深い単語へ自然と視線を向けます。Attentionはこの「注目の配分」を数値化したもので、関連が深い要素には大きな重み、関係の薄い要素には小さな重みを自動で割り振ります。厳密には、重みは後述するQuery・Key・Valueという3つのベクトルの計算で決まり、その配分自体を学習によって獲得する点が本質です。
🖼 1枚でわかるAttention
📘 公式テキストの説明
入力データ内の重要な部分に焦点を当て、効率的な情報処理を可能にする技術である。特に自然言語処理の分野で注目されており、機械翻訳や文章生成などのタスクで高い性能を示している。従来のリカレントニューラルネットワーク(RNN)や畳み込みニューラルネットワーク(CNN)では、長い文脈や複雑な依存関係の処理が難しいとされていた。これに対し、Attention機構は入力データ全体を一度に処理し、各要素間の関連性を動的に評価することで、長距離の依存関係も効果的に捉えることができる。Attentionの基本的な仕組みとして、入力データから「クエリ(Query)」「キー(Key)」「バリュー(Value)」の3つのベクトルを生成し、クエリとキーの類似度を計算する。得られた類似度に基づいてバリューを重み付けし、最終的な出力を得る。このプロセスにより、モデルは入力データ内のどの部分に注目すべきかを自動的に判断する。この技術は、2017年に発表された「Attention Is All You Need」という論文で提案されたトランスフォーマー(Transformer)モデルで広く知られるようになった。トランスフォーマーは、Attention機構を中心に据えたアーキテクチャであり、従来のRNNやCNNを使用せずに高い性能を達成している。さらに、Attention機構は自然言語処理だけでなく、画像認識や音声処理など、さまざまな分野で応用されている。例えば、画像認識においては、画像内の特定の領域に注目することで、より精度の高い認識が可能となる。
柱は3つです。①動機:RNN・CNNが苦手だった長い文脈の処理を、全体を一度に見て関連性を動的に評価することで解決した。②仕組み:Query・Key・Valueの3ベクトルによる重み付け。③歴史:2017年の「Attention Is All You Need」で提案されたTransformerで広く知られるようになった。いずれも単独で出題され得る内容です。
🔍 しっかり理解する
なぜAttentionが必要になったのか
RNNは系列を1ステップずつ読み、過去の情報を内部状態という「1本の要約」に詰め込んで運びます。文が長くなるほど昔の情報は薄まり、遠く離れた単語同士の関係を捉えるのが困難でした。Attentionは発想が異なり、必要になったその場で、入力全体の中から関連する要素を直接参照します。距離が10単語でも1000単語でも参照のコストは変わらない——これが「長距離の依存関係も効果的に捉えられる」理由です。
Query・Key・Valueによる計算の流れ
Attentionの計算は、図書館での資料探しに例えられます。調べたいテーマ(Query)を持って検索カタログ(Key)と照らし合わせ、よく一致した本の中身(Value)を重点的に読む、という流れです。
重要なのは、この注目配分が固定ルールではなく、入力に応じて毎回計算し直される(動的である)ことです。モデルは「どの部分に注目すべきかを自動的に判断する」——これがAttentionの核心です。
2つの系統: Source-TargetとSelf
Attentionには主に2つの種類があります。Source-Target Attention(Encoder-Decoder Attention)は入力文と出力文の単語間の関連度を計算するもので、機械翻訳のように「別の系列を参照する」場面で使われます。もうひとつのSelf-Attentionは、同じ文の内部で単語間の関連度を計算するものです。さらに、複数の視点でAttentionを並列計算するMulti-Head Attentionという拡張もあります(詳細は各記事へ)。まずは「参照先が別系列か自分自身か」という軸で2系統を区別できるようにしておきましょう。
そして2017年、論文「Attention Is All You Need」が、RNNもCNNも使わずAttention機構を中心に据えたTransformerを提案し、高い性能を達成しました。「Attentionさえあればよい」ことを示したこのモデルが、BERTやGPTなど現在の大規模言語モデルの土台になっています。
💡 具体例で考える
機械翻訳で「I ate an apple because it was fresh.」を訳す場面を考えます。「it」を訳すとき、Attentionは「it」をQueryとして文中の各単語のKeyと照合し、「apple」との類似度が高ければ「apple」のValueに大きな重みを与えます。結果として「それ(=りんご)は新鮮だったので」という正しい解釈につながります。Attention登場以前のRNNベースの翻訳では、文全体を1本のベクトルに圧縮してから訳すため、長文でこうした対応関係が失われがちでした。
画像認識でも応用されています。例えば写真の中の犬の種類を判定するとき、Attentionは犬がいる領域に強く注目し、背景の芝生や空への注目を抑えます。画像内の特定の領域に注目することで、より精度の高い認識が可能となるのです。
⚠️ よくある誤解・紛らわしい用語
- 「Attention=Transformer」ではない — Attentionは仕組み(部品)、Transformerはそれを中心に据えたモデル(建物)です。Attention自体はTransformer以前から機械翻訳のRNNモデルを補強する形で使われていました。
- Self-Attentionとの関係 — Self-Attentionは、Attentionのうち「同じ系列内の要素同士」の関連度を計算する種類です。入力文と出力文の間を結ぶのはSource-Target Attentionで、この2系統の区別が問われます。
- Multi-Head Attentionとの関係 — Multi-Headは「Attentionを複数並列に走らせて異なる視点を捉える」拡張であり、Attentionの原理そのものとは階層が違います。
- 「注目度は人間が設定する」は誤り — QueryとKeyの類似度から自動的に計算され、その計算に使う変換自体もデータから学習されます。手作業のルールではありません。
📝 試験でのポイント
- 「入力データ内の重要な部分に焦点を当てる」「各要素間の関連性を動的に評価する」という定義文からAttentionを選ばせる形式が基本です。
- Query・Key・Valueの3つ組は最頻出です。「QueryとKeyの類似度を計算し、それに基づいてValueを重み付けする」という流れを穴埋めできるようにしておきましょう。
- 「2017年・Attention Is All You Need・Transformer・RNNやCNNを使用しない」という論文関連の事実は、年号や論文名の組み合わせで問われ得ます。
- RNNとの対比で「長距離依存関係の処理」「入力全体を一度に処理」という利点を挙げさせる問題も想定されます。
📚 まとめ
Attentionは、入力の重要な部分に焦点を当て、要素間の関連性を動的に評価する仕組みです。Query・Key・Valueの3ベクトルを使い、QueryとKeyの類似度でValueを重み付けして出力を作ります。RNN・CNNが苦手だった長距離依存の処理を可能にし、2017年の「Attention Is All You Need」で提案されたTransformerの中核として、現在の自然言語処理・画像認識・音声処理を支えています。まずは「注目配分を自動で学習する仕組み」という原理を押さえ、Self-AttentionとMulti-Head Attentionへ理解を広げていきましょう。
