1. 定義と概要
Source-Target Attention とは、Target 側の要素を生成する際に、Source 側のどの要素に注目するかを重み付けで決める仕組みです。機械翻訳を例にすると、出力文(Target)のある単語を生成するとき、入力文(Source)に含まれる単語のうちどれを強く参照すべきかを、単語ごとの重みとして算出する処理です。
G検定のシラバスや教材では、Encoder-Decoder Attention(Source Target Attention)と併記されることがあります。両者は、名称が異なるだけで同一の仕組みを指すという説明が複数の学習教材で共通しているところです。
Attention 機構が登場する以前は、時系列データを順番に処理する RNN をベースにしたエンコーダ(入力系列を内部表現に変換する処理部分)とデコーダ(内部表現から出力系列を生成する処理部分)の組み合わせが主流でした。エンコーダが入力文全体の情報をいったん固定長の1つのコンテキストベクトル(入力文全体の情報を1つにまとめたベクトル)に圧縮し、それをデコーダへ渡す方式です。入力文が長くなるほど1つのベクトルに収まりきらない情報が増えることが、翻訳精度を落とす課題でした。
Source-Target Attention の導入によって、デコーダは出力の各時点でエンコーダ側の複数の隠れ状態(RNN などが各時点で保持する内部の情報)を参照できるようになりました。必要な部分だけを重み付けして、都度選び出す形に変わりました。この仕組みは、Attention 機構を中核に据えた系列変換モデルである Transformer にも中核要素として引き継がれています。
2. 試験対策ポイント
Source-Target Attention と Encoder-Decoder Attention は、名称が異なるだけの同じ仕組みを指す関係にあります。Transformer 分野では、異なる2つの系列の間で注目する仕組みを指して Cross-Attention と呼ぶことも多く、呼び方が複数ある点はまず知っておきたい柱です。
構造面の要点は、Query と Key・Value の出どころが異なることにあります。生成中の出力にあたる Target 側からは Query を取り出し、参照元の入力系列にあたる Source 側からは Key と Value を用意する構成です。三者の役割と出どころを整理すると、次のようになります。
| 要素 | 取り出す側 | 役割 |
|---|---|---|
| Query | Target 側(生成中の出力) | 何を知りたいかを表す検索質問にあたる |
| Key | Source 側(参照元の入力系列) | 各要素の特徴を表す索引にあたる |
| Value | Source 側(参照元の入力系列) | 実際に取り出される情報の中身 |
Query と Key・Value の出どころが同じか異なるかが、Self-Attention との分かれ目にあたります。
Self-Attention と同じ Query・Key・Value の枠組みを使いながら、入力が1つの系列か2つの系列かで前提が異なる点は、取り違えやすいところです。Query も Key も Value もすべて同一の系列から取ると述べてしまう記述は、逆向きの説明であり、混同しやすい組み合わせといえます。
3. 関連概念との比較・相違点
Self-Attention との最大の違いは、同じ1つの系列の中で注目するか、異なる2つの系列の間で注目するかという点にあります。Self-Attention は、文中の単語同士がどれだけ関連しているかを一つの系列の内部だけで捉える仕組みです。これに対して Source-Target Attention は、参照元と参照先という別々の系列をまたいで対応関係を捉えます。
両者の違いを軸ごとに並べると、次のように整理できます。
| 比較軸 | Self-Attention | Source-Target Attention |
|---|---|---|
| 注目する範囲 | 同じ1つの系列の中 | 異なる2つの系列の間 |
| Query の出どころ | 同一の系列 | Target 側 |
| Key・Value の出どころ | 同一の系列 | Source 側 |
| 捉える対象 | 単語同士の関連度 | 参照元と参照先の対応関係 |
先に触れた Query と Key・Value の出どころの違いも、この対比の上に成り立つ位置づけです。
Attention 導入前の RNN エンコーダ-デコーダモデルとの違いは、情報の渡し方にあります。従来の方式は、入力文全体を固定長のコンテキストベクトルに圧縮してからデコーダに渡していました。一方 Source-Target Attention は、出力の各時点で入力側の全要素を重み付けして都度参照する方式です。圧縮してまとめて渡すか、都度参照するかという流れの違いが分かれ目です。
4. ビジネス・実務での活用シナリオ
機械翻訳サービスでは、長文を翻訳する際、文末近くの訳語を生成する時点でも文頭の主語や固有名詞を重み付けして参照できます。文の前半と後半が離れていても訳語の対応関係を保てるため、訳文全体の一貫性が崩れにくくなります。文が長くなるほど主語や指示語を見失いやすい従来型の弱点に対し、生成のたびに入力文全体へ立ち戻れる性質は、長文書や専門文書を扱う翻訳サービスにとって欠かせない土台です。
文書要約では、要約文の単語を1つずつ生成するたびに、元の文書のどの箇所が要点かを都度重み付けして参照する仕組みです。生成の各段階で原文を参照し直すため、要約が元の文書の趣旨から外れにくくなります。要約が長くなるほど前半の内容が薄れやすい弱点に対し、生成のたびに原文全体を見直せる構造は、長文の要約ほど効果を発揮しやすい性質です。
質問応答やチャットボット(文字や音声で自動応答するシステム)では、質問文と応答文という異なる2つの系列の間で、質問文のどの語句が応答文の生成に関連するかを重み付けして参照します。質問の意図を捉えたうえで応答を組み立てられる点は、対話の精度を左右するところです。質問文に複数の論点が含まれる場合でも、応答の各部分が対応する箇所を都度参照し直せるため、論点が混ざった質問に対しても的外れな応答になりにくくなります。
5. 要点まとめ
- Source-Target Attention は、参照元(source)と参照先(target)という、異なる2つの系列の間で注目の重みを計算する仕組みです。Encoder-Decoder Attention とは、呼び方が異なるだけの同じ仕組みを指します。
- Query は Target 側、Key・Value は Source 側から取得する非対称な構造を持ち、同じ1つの系列の中で完結する Self-Attention と対になる考え方です。
- Attention 導入前の RNN エンコーダ-デコーダは入力全体を固定長ベクトルに圧縮していましたが、Source-Target Attention により出力の各時点で入力側の必要な要素を都度参照できるようになりました。
6. 確認問題
問1Source-Target Attention は、参照元(source)の系列と参照先(target)の系列という、異なる2つの系列の間で注目の重みを計算する仕組みである。
解答・解説をみる
○ 正しい
異なる2つの系列の間の対応関係を捉える点が定義の核心であり、この違いが Self-Attention との分かれ目にあたります。
問2G検定の学習教材では、Source-Target Attention は Encoder-Decoder Attention と併記されることがあり、両者は同じ仕組みを指す呼び方の違いとして扱われている。
解答・解説をみる
○ 正しい
複数の学習教材で「Encoder-Decoder Attention(Source Target Attention)」という表記が確認でき、名称の違いにすぎないという説明で一致しています。
問3Source-Target Attention は、Self-Attention と同様に Query・Key・Value のすべてを同一の系列から取得する仕組みである。
解答・解説をみる
× 誤り
正しくは、Query は Target 側、Key・Value は Source 側という異なる系列から取得します。Query と Key・Value を同一の系列から取得するのは Self-Attention の特徴で、逆向きの記述は混同しやすい組み合わせです。

