Source-Target Attention:入力と出力を結びつける注意機構

AIの初心者
先生、「Source-Target Attention」って何ですか? Attentionの一種なんですよね?

AI専門家
そうだね。Source-Target Attentionは、入力側の情報と出力側の情報を結びつける注意機構だよ。機械翻訳なら、英語を生成するときに、元の日本語文のどの単語や句を見るべきかを決める仕組みだと考えると分かりやすい。

AIの初心者
Self-Attentionとは違うんですか?

AI専門家
違いは「どこを見るか」だね。Self-Attentionは同じ系列の中を見る。Source-Target Attentionは、出力側の各位置が入力側の系列を見る。Transformerのエンコーダ・デコーダ構成では、クロスアテンションとも呼ばれる重要な仕組みなんだ。
Source-Target Attentionとは
Source-Target Attentionとは、入力系列(source)と出力系列(target)の対応関係を学習する注意機構です。Transformerのエンコーダ・デコーダ型モデルでは、デコーダが次の単語を生成するときに、エンコーダが処理した入力文のどの部分を重視するかを計算します。機械翻訳、要約、質問応答など、入力を参照しながら別の出力を作るタスクで重要な役割を持ちます。
二つの系列を結ぶ仕組み
![]()
Source-Target Attentionを理解するには、まず「source」と「target」を分けて考えると分かりやすくなります。sourceは入力側の情報、targetは出力側の情報です。機械翻訳であれば、翻訳前の文がsource、翻訳後に生成する文がtargetです。
たとえば、日本語の「私は猫が好きです」を英語へ翻訳する場合、英語の「I」を生成するときには、日本語の「私」に強く注目する必要があります。「cats」を生成するときには「猫」に、「like」を生成するときには「好き」に注意を向けます。このように、出力側の各位置が、入力側のどこを参照すべきかを決めるのがSource-Target Attentionの基本です。
この仕組みによって、モデルは単語を一対一で置き換えるだけでなく、語順の違いや文脈も考慮できます。日本語と英語のように語順が異なる言語でも、出力する単語ごとに入力文の関連部分を見直せるため、より自然な翻訳が可能になります。
| 用語 | 意味 | 機械翻訳での例 |
|---|---|---|
| Source | モデルが参照する入力側の系列。 | 翻訳前の日本語文。 |
| Target | モデルが生成する出力側の系列。 | 翻訳後の英語文。 |
| Attention | どの情報をどれだけ重視するかを決める計算。 | 「I」を出すときに「私」を強く見る。 |
| Source-Target Attention | targetの各位置からsourceの各位置への注目度を計算する仕組み。 | 英語を生成しながら、日本語文の関連部分を参照する。 |
Transformerでの位置づけ
Transformerには、エンコーダだけを使うモデル、デコーダだけを使うモデル、エンコーダとデコーダを組み合わせるモデルがあります。Source-Target Attentionが特に分かりやすく登場するのは、エンコーダ・デコーダ型のTransformerです。
エンコーダは入力文を読み取り、各単語やトークンの意味を文脈込みの表現に変換します。デコーダは出力文を一つずつ生成します。このときデコーダは、自分がこれまでに生成した単語だけでなく、エンコーダが作った入力文の表現も参照します。ここで使われるのがクロスアテンションです。
Source-Target Attentionは、このクロスアテンションとほぼ同じ文脈で説明されます。デコーダ側の現在位置を問い合わせとして使い、エンコーダ側の入力表現を参照先として使います。つまり、出力を作る側が「今ほしい情報は入力文のどこにあるか」を探す仕組みです。
| 層・機構 | 見る対象 | 役割 |
|---|---|---|
| エンコーダのSelf-Attention | 入力系列内の各トークン同士。 | 入力文の文脈を理解する。 |
| デコーダのSelf-Attention | これまでに生成した出力系列。 | 出力文として自然につながるようにする。 |
| Source-Target Attention | 出力側から入力側を見る。 | 生成中の単語に必要な入力情報を参照する。 |
Query・Key・Valueで見る計算
Attentionでは、一般にQuery、Key、Valueという3種類のベクトルを使います。Queryは「何を探しているか」、Keyは「参照先の特徴」、Valueは「実際に取り出す情報」と考えると理解しやすくなります。
Source-Target Attentionでは、Queryはtarget側、KeyとValueはsource側から作られます。デコーダが現在生成しようとしている位置のQueryを使い、エンコーダが出力した各入力トークンのKeyと照合します。その類似度が高いほど、その入力トークンへの注意重みが大きくなります。
最後に、注意重みに応じてsource側のValueを足し合わせます。これにより、デコーダは「今の出力に必要な入力情報」を集めた文脈ベクトルを得ます。この文脈ベクトルが、次の単語を予測するための重要な材料になります。
| 要素 | Source-Target Attentionでの出どころ | 役割 |
|---|---|---|
| Query | target側、つまりデコーダの現在位置。 | 入力文の中から必要な情報を探すための問い合わせ。 |
| Key | source側、つまりエンコーダの各位置。 | 各入力トークンがどのような情報を持つかを示す。 |
| Value | source側、つまりエンコーダの各位置。 | 注意重みに応じて実際に取り出される情報。 |
| Attention weight | QueryとKeyの類似度から計算。 | どのsource位置をどれだけ重視するかを表す。 |
Self-Attentionとの違い
Source-Target Attentionは、Self-Attentionと混同されやすい用語です。どちらも「重要な情報へ注意を向ける」仕組みですが、参照する範囲が異なります。Self-Attentionは同じ系列の中で関係を見ます。Source-Target Attentionは、異なる二つの系列の間で関係を見ます。
文章理解だけを目的にする場合は、Self-Attentionだけでも大きな力を発揮します。たとえば「彼は銀行へ行った」という文の「銀行」が金融機関なのか川岸なのかを判断するには、同じ文の前後関係を見るSelf-Attentionが役立ちます。
一方、翻訳や要約のように、入力を参照しながら別の文章を作る場合は、出力側が入力側を見る必要があります。ここでSource-Target Attentionが必要になります。特に、入力と出力の長さや語順が違うタスクでは、どの入力情報をどの出力位置に対応させるかが重要です。
| 注意機構 | 参照する範囲 | 主な用途 | 例 |
|---|---|---|---|
| Self-Attention | 同じ系列の中。 | 文脈理解、文章分類、要約前の入力理解など。 | 文中の「銀行」が何を意味するかを前後の語から判断する。 |
| Source-Target Attention | 出力系列から入力系列を見る。 | 機械翻訳、要約、質問応答、画像説明生成など。 | 英語の「I」を生成するときに日本語の「私」を参照する。 |
活用されるタスク
Source-Target Attentionは、入力と出力の対応関係が重要なタスクで広く使われます。代表例は機械翻訳です。翻訳では、出力単語を生成するたびに、入力文のどこを参照するかが変わります。対応関係を柔軟に計算できるため、語順の違いや長い依存関係にも対応しやすくなります。
文章要約でも重要です。長い文章から短い要約を作るとき、出力する各文や各単語は、入力文の特定の箇所に根拠を持ちます。Source-Target Attentionによって、要約モデルは入力文全体の中から必要な情報を選びやすくなります。
質問応答でも同じ考え方が使えます。質問をもとに文書のどこを参照すべきか、また回答を生成するときに文書のどの部分を重視するかを計算できます。テキストだけでなく、画像の特徴をsource、説明文をtargetとみなせば、画像キャプション生成のようなマルチモーダル処理にも応用できます。
| タスク | Source | Target | 役立つ理由 |
|---|---|---|---|
| 機械翻訳 | 翻訳元の文。 | 翻訳後の文。 | 語順や対応語の違いを吸収できる。 |
| 文章要約 | 元の長い文章。 | 短くまとめた文章。 | 重要な箇所を参照しながら要約を作れる。 |
| 質問応答 | 参照文書や検索結果。 | 回答文。 | 回答に必要な根拠を探しながら生成できる。 |
| 画像キャプション生成 | 画像から抽出した特徴。 | 画像説明文。 | 画像のどの領域を説明に使うかを選べる。 |
理解するときの注意点
Attentionという名前から、人間が意識的に注目しているような仕組みを想像しがちですが、実際にはベクトルの類似度にもとづく重み付け計算です。注意重みが高いからといって、必ず人間にとって意味のある対応を表しているとは限りません。解釈の手がかりにはなりますが、完全な説明として扱うのは危険です。
また、Source-Target Attentionだけで翻訳品質が決まるわけではありません。入力表現の質、学習データ、トークン化、モデルサイズ、デコーダの生成方法など、多くの要素が結果に影響します。Source-Target Attentionは、その中で入力と出力の橋渡しを担う中核部品として理解するとよいでしょう。
近年の大規模言語モデルでは、デコーダのみの構成も多く使われます。その場合、古典的なエンコーダ・デコーダ型のSource-Target Attentionとは構造が異なることがあります。用語を見るときは、どのモデル構成の中で使われているAttentionなのかを確認することが大切です。
まとめ
Source-Target Attentionは、入力系列と出力系列の対応関係を学習する注意機構です。Transformerのエンコーダ・デコーダ構成では、デコーダが出力を作るたびに、エンコーダが処理した入力のどこを見るべきかを計算します。
Self-Attentionが同じ系列内の関係を見るのに対し、Source-Target Attentionは異なる系列の間を結びます。この違いを押さえると、機械翻訳、要約、質問応答、画像キャプション生成などで、なぜこの仕組みが重要なのかを理解しやすくなります。
用語としてはクロスアテンションと近い意味で使われることが多く、出力側が入力側を参照するための橋渡しと考えると実務的に理解しやすいでしょう。
更新履歴
| 日付 | 内容 |
|---|---|
| 2026年4月21日 | Source-Target Attentionの定義、Transformerでの位置づけ、Self-Attentionとの違い、活用例を中心に本文を全面的に見直しました。 |
