AI用語集・違い比較

Self-AttentionとSource-Target Attentionの違い

Self-AttentionとはSource-Target Attentionとは

最終更新日:作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未出典

結論

Self-Attentionは、クエリ・キー・バリューをすべて同じ系列から作り、系列の中の要素どうしの関係を捉えます。Source-Target Attentionは、クエリを出力側(デコーダ)の系列から、キーとバリューを入力側(エンコーダの出力)から作り、入力と出力の系列の対応を捉えます。

比較表

Self-AttentionとSource-Target Attentionの違いの比較表
観点 Self-AttentionSource-Target Attention
別名 自己注意機構Encoder-Decoder Attention、クロスアテンション(Cross-Attention)
クエリを作る系列 同じ系列出力側の系列(デコーダ)
キーとバリューを作る系列 同じ系列入力側の系列(エンコーダの出力)
捉える関係 1つの系列の中の要素どうしの関係(例:代名詞と、それが指す語)2つの系列の間の対応(例:訳語と、原文のどの語が対応するか)
元のTransformerでの位置 エンコーダの各層と、デコーダの各層(デコーダでは未来の位置を隠すマスク付き)デコーダの各層だけ(マスク付きSelf-Attentionの次)
未来の位置を隠すマスク デコーダで使う場合は必要不要(入力側の系列は最初からすべてそろっている)
使っているモデルの例 BERT(エンコーダのみ)、GPT(デコーダのみ)、Vision Transformer元のTransformerの翻訳モデル、文章の指示を取り込む画像生成の拡散モデル
シラバス項目 技術分野 項目23 Attention技術分野 項目23 Attention

最終確認日:2026年10月30日

それぞれの説明

Attentionは、クエリと各キーとの関連度から重みを求め、その重みでバリューを足し合わせる仕組みです。Transformerでは、どちらもsoftmax(QK^T / √d_k) Vという同じ式で計算します。違いは、クエリとキー・バリューをどの系列から作るかにあります。

Self-Attention

クエリ・キー・バリューを、すべて同じ系列から作ります。各単語が、同じ文の中のすべての単語との関連度を計算し、文脈を反映した表現を作ります。「彼女は駅で友人に会い、彼に本を返した。」なら、「彼」の表現を作るときに「友人」へ大きな重みを置く、といった働きです。

元のTransformerでは、エンコーダの各層と、デコーダの各層の両方にあります。デコーダ側では、まだ生成していない後ろの位置を参照しないように、マスクをかけます。エンコーダだけを使うBERTも、デコーダだけを使うGPTも、Attentionの部分はSelf-Attentionだけでできています。

Source-Target Attention

クエリを出力側(デコーダ)の系列から、キーとバリューを入力側(エンコーダの出力)から作ります。翻訳なら、訳文を作っているデコーダが「次の訳語には原文のどこが必要か」を問い、原文の各位置と照らし合わせて情報を集めます。Transformerの論文での呼び名はEncoder-Decoder Attentionで、クロスアテンションとも呼ばれます。

元のTransformerでは、デコーダの各層で、マスク付きSelf-Attentionの次に置かれます。原文は最初からすべてそろっているので、未来の位置を隠すマスクは要りません。2つの異なる系列をつなぐための仕組みで、現在は、画像生成モデルが文章の指示を取り込む部分などにも同じ形のAttentionが使われています。

見分けるコツ

  1. クエリとキー・バリューが同じ系列から来ていればSelf-Attention、別々の系列から来ていればSource-Target Attentionです。計算式は同じで、違うのは入力の出どころだけです。
  2. クエリを出すのは「情報を探す側」です。Source-Target Attentionでは、訳文を作っているデコーダが探す側になります。クエリとキー・バリューの出どころを入れ替えた説明に注意します。
  3. 2014年にBahdanauらがRNNのSeq2Seqに加えたAttentionは、デコーダがエンコーダ側を参照するもので、Source-Target Attentionの考え方にあたります。系列の処理そのものをSelf-Attentionで行うようにしたのが、2017年のTransformerです。

◯×チェック

3問

次の文が正しいか、誤りかを選んでください。

  1. 元のTransformerでは、デコーダのどの層のSource-Target Attentionも、エンコーダの最終層の出力からキーとバリューを作る。

    答えを見る

    答え ◯ 正しい

    エンコーダの層を積み重ねた最後の出力が、デコーダの全層で共通に参照されます。デコーダの層ごとに、エンコーダの対応する層を見るわけではありません。

  2. Self-Attentionでは、各要素は自分自身には注目できず、自分以外の要素との関連度だけを計算する。

    答えを見る

    答え × 誤り

    各要素のクエリは、自分自身のキーとも内積をとります。自分自身への重みも含めて、合計が1になるように重みを計算します。

  3. Source-Target Attentionが出力する系列の長さは、キーとバリューを作った入力側(エンコーダ側)の系列の長さと同じになる。

    答えを見る

    答え × 誤り

    出力はクエリ1つにつき1つ作られるので、デコーダ側の系列と同じ長さになります。入力側の長さは、各出力を作るときに足し合わせるバリューの数を決めます。

関連問題

2問
  1. #0060Transformer内の注意機構難易度 応用・単一選択未回答
  2. #0196Multi-Headのヘッドの分け方難易度 標準・単一選択未回答

出典

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未 最終確認日: 対応シラバス:シラバス第1.4版 技術23

誤りを報告

ほかの違い比較

違い比較の一覧

表示設定

テーマ
文字の大きさ
問題演習