【G検定|理解型予想問題】Attention・Self-Attention・Multi-Head Attentionはなぜ混同する?

Transformerを学んでいると、「Attention」、「Self-Attention」、「Multi-Head Attention」という似た用語が続けて登場します。
どれも「重要な情報へ注目する仕組み」と関係していますが、見分ける軸は同じではありません。
Attentionは、必要な情報に重みを付ける基本的な仕組みです。Self-Attentionは、同じ系列内の要素同士の関係を見るAttentionです。Multi-Head Attentionは、複数のAttention計算を並列に行い、異なる視点から関係を捉える仕組みです。
この記事では、3つの違いを全10問の理解型予想問題で確認します。名前だけを暗記するのではなく、「どの情報を参照するのか」、「いくつの視点で見るのか」に注目して整理しましょう。
問題文で注目したい言葉
| 問題文に出てくる言葉 | 考えたい用語 |
|---|---|
| 重要な部分/重みを付ける/必要な情報へ注目 | Attention |
| 同じ系列内/単語同士/トークン同士 | Self-Attention |
| 複数のHead/並列/複数の表現空間 | Multi-Head Attention |
| 探したい情報/照合する目印/取り出す情報 | Query/Key/Value |
| DecoderがEncoderの出力を参照する | Encoder-Decoder Attention |
| 単語の順番を補う | 位置エンコーディング |
問題①
Attentionの説明として、最も適切なものはどれか?
- A. 入力されたすべての情報を常に同じ強さで利用する
- B. 現在の処理に関係が深い情報へ大きな重みを付ける
- C. 入力された文章をランダムな順番へ並べ替える
- D. 学習データの正解ラベルを自動的に作成する
- 正解・解説(クリックで開きます)
-
正解
B
解説

Attentionは、複数の情報の中から、現在の処理に関係が深い情報へ大きな重みを付ける仕組みです。
すべての情報を同じ強さで使うのではありません。
たとえば翻訳で次の単語を出力するとき、入力文の中にある関係の深い単語へ強く注目します。現在の処理に関係が深い→大きな重み現在の処理との関係が弱い→小さな重みAは、すべての情報を同じように扱っているため誤りです。
Cの並べ替えや、Dのラベル作成がAttentionの役割ではありません。
問題②
初期のEncoder・Decoder型のSeq2SeqにAttentionが導入された主な理由として、最も適切なものはどれか?
- A. 入力文の情報を1つの固定長ベクトルへまとめることが、長い文章ではボトルネックになったため
- B. 画像の画素数を増やして解像度を高くするため
- C. 正解ラベルを使わずに画像を分類するため
- D. ニューラルネットワークの層数を必ず1層にするため
- 正解・解説(クリックで開きます)
-
正解
A
解説

初期のSeq2Seqでは、Encoderが入力文の情報を1つの固定長ベクトルにまとめ、Decoderへ渡していました。
入力文↓Encoder↓1つの固定長ベクトル↓Decoder↓出力文短い文章であれば、情報を1つにまとめても対応しやすい場合があります。
しかし、文章が長くなるほど、すべての情報を1つのベクトルへまとめることが難しくなります。
Attentionを使うと、Decoderは出力の各時点で、Encoderが作った複数の情報を参照できます。
Decoderの現在の状態→必要なEncoderの情報へ注目この考え方により、入力文全体を1つの固定長ベクトルだけで表す負担を小さくできます。
問題③
Self-Attentionの説明として、最も適切なものはどれか?
- A. 同じ系列内にある要素同士の関係を計算する
- B. 異なる2枚の画像の解像度だけを比較する
- C. 複数のモデルの多数決によって予測する
- D. 出力された文章を人間が評価して報酬を付ける
- 正解・解説(クリックで開きます)
-
正解
A
解説

Self-Attentionは、同じ系列に含まれる要素同士の関係を計算します。
文章であれば、同じ文章内のトークン同士の関係を見ます。同じ文章内のトークン→トークン同士の関係を計算Self-Attentionの「Self」は、自分自身だけを見るという意味ではありません。
同じ系列の中を見るという意味です。
たとえば、ある単語を処理するときに、同じ文章内の別の単語との関係を計算します。
Bは画像の解像度比、Cはアンサンブル学習、Dは人間の評価を使った調整に関する説明です。
問題④
AttentionとSelf-Attentionの関係として、最も適切なものはどれか?
- A. Attentionは画像専用で、Self-Attentionは文章専用である
- B. Self-Attentionは、Query・Key・Valueが同じ系列に由来するAttentionである
- C. Attentionには重みがあるが、Self-Attentionには重みがない
- D. AttentionとSelf-Attentionは、常にまったく同じ意味で使われる
- 正解・解説(クリックで開きます)
-
正解
B
解説

Attentionは、QueryとKeyの関係をもとに、Valueを重み付きでまとめる基本的な仕組みです。
Self-Attentionは、その中でもQuery・Key・Valueが同じ系列をもとに作られるAttentionです。
QueryとKey・Valueの出どころが異なる場合もある→AttentionQuery・Key・Valueが同じ系列に由来する→Self-AttentionAttentionはSelf-Attentionよりも広い概念です。
Self-Attentionは、Attentionの一種と考えると整理しやすくなります。
Aのように、処理するデータの種類だけで区別するものではありません。
Cも誤りです。Self-Attentionでも関係の強さに応じて重みを計算します。
問題⑤
AttentionにおけるQuery・Key・Valueの役割として、最も適切な組み合わせはどれか?
- A. Query = 正解ラベル
Key = 損失関数
Value = 学習率 - B. Query = 探したい情報
Key = 照合する目印
Value = 取り出して使う情報 - C. Query = 入力層
Key = 中間層
Value = 出力層 - D. Query = 訓練データ
Key = 検証データ
Value = テストデータ
- 正解・解説(クリックで開きます)
-
正解
B
解説

Query・Key・Valueは、検索のイメージで考えると整理しやすくなります。
Queryで探したい内容を表す↓QueryとKeyを照合する↓関係の強さを計算する↓Valueを重み付きで取り出すQueryとKeyの関係が強いほど、対応するValueが強く利用されます。
Aは学習に関する別の用語です。
Cのニューラルネットワークの層や、Dのデータ分割を表す用語でもありません。
問題⑥
Multi-Head Attentionの説明として、最も適切なものはどれか?
- A. 1つのAttention計算だけを何度も同じ設定で繰り返す
- B. 複数のモデルを学習し、最後に多数決を行う
- C. 複数のAttention計算を異なる射影で並列に行い、結果を結合する
- D. 入力系列を複数の短い文章へ分割するだけである
- 正解・解説(クリックで開きます)
-
正解
C
解説

Multi-Head Attentionは、複数のAttention計算を並列に行う仕組みです。
それぞれのHeadでは、Query・Key・Valueを異なる方法で変換してAttentionを計算します。
Query・Key・Valueを複数の空間へ変換する↓複数のHeadでAttentionを並列計算する↓各Headの結果を結合する↓次の層で使う表現を作るAのように、完全に同じ計算を単純に繰り返すだけではありません。
Bは複数のモデルを組み合わせるアンサンブル学習に近い説明です。
Multi-Head Attentionでは、1つのモデル内部で複数のAttention Headを使います。
問題⑦
Multi-Head Attentionで複数のHeadを使う主な理由として、最も適切なものはどれか?
- A. 複数の表現空間から、異なる関係を捉えやすくするため
- B. 入力された単語を必ず五十音順に並べるため
- C. 学習データを使わずに正解を決めるため
- D. ニューラルネットワークの重みをすべて同じ値にするため
- 正解・解説(クリックで開きます)
-
正解
A
解説

文章には、1種類だけではない複数の関係があります。
複数のHeadを使うことで、異なる表現空間から複数の関係を捉えやすくなります。
1つのHead→ある関係を捉える別のHead→別の関係を捉える複数の関係→より豊かな表現を作るただし、「Head 1は必ず文法を見る」、「Head 2は必ず意味を見る」と役割が最初から固定されているわけではありません。
学習によって、それぞれのHeadが異なる関係を捉える可能性があります。
問題⑧
Encoder・Decoder型のSeq2SeqにおけるAttentionの説明として、最も適切なものはどれか?
- A. DecoderはEncoderの出力を参照せず、常にランダムに単語を生成する
- B. Encoderは入力文の情報をすべて削除してからDecoderへ渡す
- C. Decoderは最初に受け取った固定長ベクトル以外を参照できないようにする
- D. Decoderが出力する時点ごとに、関係が深いEncoderの情報を参照する
- 正解・解説(クリックで開きます)
-
正解
D
解説

Attentionを使ったSeq2Seqでは、Decoderが単語を出力する時点ごとに、Encoderのどの情報が重要かを計算します。
Encoderが入力系列を処理する↓複数のEncoderの状態を保持する↓Decoderが現在必要な情報へ注目する↓注目した情報を使って出力する翻訳する単語によって、入力文の中で重要になる部分は変わります。
Attentionによって、Decoderは出力の各時点で必要な入力情報を柔軟に参照できます。
問題⑨
Transformerの説明として、最も適切なものはどれか?
- A. Self-Attentionを使わず、RNNによる逐次処理だけを行う
- B. 単語の順番を表す情報は一切必要ない
- C. Self-Attentionで系列内の関係を捉え、位置情報を別に加える
- D. 画像のバウンディングボックスだけを出力する
- 正解・解説(クリックで開きます)
-
正解
C
解説

Transformerは、再帰構造や畳み込みを中心にするのではなく、Attentionを中心に系列を処理するモデルとして提案されました。
TransformerのSelf-Attentionでは、系列内の要素同士の関係を計算できます。
一方で、Self-Attentionだけでは、単語が入力された順番をそのまま表す仕組みがありません。
そのため、位置エンコーディングなどによって位置情報を加えます。単語やトークンの表現+位置情報→Transformerへ入力Aは、TransformerがRNNの逐次処理だけを使うとしているため誤りです。
Bも誤りです。系列の順番を扱うために、位置情報を補います。
Dは物体検出に関する説明です。
問題⑩
次の①から③と、用語の組み合わせとして最も適切なものはどれか?
① 同じ系列内の要素同士の関係を計算する
② 複数のAttention計算を並列に行う
③ DecoderがEncoder側の情報へ注目する
- A. ① Attention
② Self-Attention
③ Multi-Head Attention - B. ① Self-Attention
② Multi-Head Attention
③ Attention - C. ① Multi-Head Attention
② Attention
③ Self-Attention - D. ① Self-Attention
② Attention
③ Multi-Head Attention
- 正解・解説(クリックで開きます)
-
正解
B
解説

それぞれを整理すると、次のようになります。
説明 対応する用語 同じ系列内の要素同士の関係を計算する Self-Attention 複数のAttention計算を並列に行う Multi-Head Attention DecoderがEncoder側の情報へ注目する Attention 3つの用語は、次の軸で見分けます。
必要な情報へ注目する基本機構→Attention同じ系列内を見る→Self-Attention複数のHeadを並列に使う→Multi-Head AttentionTransformerのEncoderでは、Self-Attentionが複数Headを持つ形で使われます。
そのため、実際には「Multi-Head Self-Attention」として両方の特徴を持つことがあります。
Attention・Self-Attention・Multi-Head Attentionを混同しないための整理
3つの用語は、次の順番で確認すると見分けやすくなります。
特に注意したいのは、Self-AttentionとMulti-Head Attentionが同じ分類軸ではないことです。
Self-Attentionは、どこからQuery・Key・Valueを作るのかを表します。
Multi-Head Attentionは、いくつのAttention計算を並列に行うのかを表します。
| 用語 | 見るポイント | 覚え方 |
|---|---|---|
| Attention | 重要な情報へ重みを付ける | 必要な情報に注目する |
| Self-Attention | 同じ系列内の関係を見る | 同じ文章の中を見る |
| Multi-Head Attention | 複数のAttentionを並列に行う | 複数の視点で見る |
まとめ

Attention・Self-Attention・Multi-Head Attentionは、すべて重要な情報へ注目する仕組みと関係しています。
しかし、それぞれが表しているものは異なります。
Attentionは、重要な情報へ重みを付ける基本的な仕組みです。
Self-Attentionは、Query・Key・Valueが同じ系列に由来し、系列内の要素同士の関係を見ます。
Multi-Head Attentionは、複数のAttention計算を並列に行い、異なる関係を捉えやすくします。
問題文では、「重要な情報」、「同じ系列内」、「複数のHead」という言葉に注目しましょう。
最後に、次の点を確認してください。
関連記事・おすすめ記事
Attention、Self-Attention、Multi-Head Attentionと関連する技術をあわせて確認したい場合は、以下の記事も参考にしてください。
| 読む記事 | 確認できる内容 |
|---|---|
| Attention・Self-Attention・Multi-Head Attentionの違い | 重要な情報への注目/同じ系列内の関係/複数のHead/Transformerとの関係 |
| Attentionとは? | 重要な情報への重み付け/Seq2Seqの課題/Encoder・Decoder/Attentionが必要になった理由 |
| Seq2Seqとは? | 入力系列と出力系列/Encoder/Decoder/固定長ベクトル/Attentionへの流れ |
| Transformerとは? | Self-Attention/並列処理/RNNとの違い/自然言語処理/生成AIとの関係 |
| 位置エンコーディングとは? | 単語の順番/位置情報/Self-Attentionとの役割の違い/Transformer |
| CNN・RNN・Transformerの違い | 画像/系列データ/Attention/逐次処理と並列処理/モデル構造の違い |
| GPTとは? | Transformer/次のトークン予測/Self-Attention/文章生成/LLMとの関係 |

