Attention(注意機構)は、「入力のどこに注目すべきか」をモデル自身に判断させる仕組みです。Transformerの心臓部であり、現在の生成AIブームの土台となった技術でもあります。この記事ではAttentionそのものの原理——なぜ必要で、どう計算されるのか——を扱います。

📖 ひと言でいうと

Attentionとは、入力データ内の重要な部分に焦点を当て、各要素間の関連性を動的に評価しながら情報を処理する技術です。人間が長い文章を読むとき、すべての単語を均等に見るのではなく、いま理解したい箇所に関係の深い単語へ自然と視線を向けます。Attentionはこの「注目の配分」を数値化したもので、関連が深い要素には大きな重み、関係の薄い要素には小さな重みを自動で割り振ります。厳密には、重みは後述するQuery・Key・Valueという3つのベクトルの計算で決まり、その配分自体を学習によって獲得する点が本質です。

🖼 1枚でわかるAttention

Attention = どこに注目すべきかを自動で決める仕組み
  • 目的 — 入力の重要な部分に焦点を当て、長距離の依存関係も捉える
  • 計算 — Query・Key・Valueの3ベクトル。QueryとKeyの類似度でValueを重み付け
  • 背景 — RNN・CNNでは長い文脈・複雑な依存関係の処理が困難だった
  • 転機 — 2017年の論文「Attention Is All You Need」とTransformer
  • 種類 — Source-Target Attention / Self-Attention の2系統
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

入力データ内の重要な部分に焦点を当て、効率的な情報処理を可能にする技術である。特に自然言語処理の分野で注目されており、機械翻訳や文章生成などのタスクで高い性能を示している。従来のリカレントニューラルネットワーク(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)を重点的に読む、という流れです。

3ベクトル生成
入力からQuery・Key・Valueを作る
類似度を計算
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へ理解を広げていきましょう。