機械翻訳のように「系列を入力して別の系列を出力する」タスクを解く枠組みが系列変換です。エンコーダ・デコーダ構造とseq2seq、そしてTransformerへとつながるアテンション機構の基礎を学ぶ、E資格でも重要度の高い項目です。
📖 概要
RNNやLSTMは系列データを扱えますが、入力と出力の長さが異なるタスク、たとえば機械翻訳(日本語の文→英語の文)や文書要約、音声認識などでは、単純に「1入力に対して1出力を返す」構造では対応できません。そこで登場したのが、入力系列を一度固定長のベクトルにまとめる「エンコーダ」と、そのベクトルから出力系列を生成する「デコーダ」を組み合わせた構造です。
この枠組みを代表するのがseq2seq(sequence-to-sequence)モデルです。ただし、系列全体を1つの固定長ベクトルに圧縮する方式には、長い系列で情報が失われやすいという弱点がありました。この弱点を解消するのがアテンション(注意)機構で、デコーダが出力の各ステップで「入力系列のどの部分に注目するか」を動的に決められるようにします。アテンションは後のTransformerの中核となる考え方であり、本項目はその前段として位置づけられます。
🔍 キーワード解説
エンコーダ・デコーダ
エンコーダ・デコーダは、系列変換モデルの基本構造です。エンコーダは入力系列(たとえば翻訳元の文の単語列)を順に読み込み、その情報を内部状態(隠れ状態)に集約します。デコーダはエンコーダから受け取った情報を初期状態として、出力系列を1トークンずつ生成します。エンコーダ・デコーダそれぞれにRNN・LSTM・GRUなどの再帰型ネットワークがよく用いられ、入力と出力で長さが異なる系列同士の変換を可能にします。
sequence-to-sequence(seq2seq)
seq2seq(sequence-to-sequence)は、エンコーダ・デコーダ構造を用いて系列から系列への変換を実現するモデルの総称です。基本形では、エンコーダが入力系列を読み終えた時点の隠れ状態を「文脈ベクトル」としてデコーダに渡します。デコーダは文の開始を表す特殊トークンから生成を始め、各ステップで前のステップの出力(学習時は教師データの正解トークンを入力する教師強制と呼ばれる方法がよく使われます)を受け取りながら、文の終了を表すトークンが出るまで出力を続けます。機械翻訳・要約・対話生成など幅広い応用があります。
一方で、入力系列全体を固定長のベクトル1つに圧縮するため、系列が長くなるほど前半の情報が保持しにくくなり、性能が低下しやすいという課題が知られています。
アテンション(注意)機構
アテンション(注意)機構は、seq2seqの固定長ベクトルの弱点を解決するために導入された仕組みです。デコーダが各ステップの出力を生成する際に、エンコーダの最終状態だけでなく、エンコーダの全時刻の隠れ状態を参照します。具体的には、デコーダの現在の状態と各時刻のエンコーダ隠れ状態との関連度をスコアとして計算し、ソフトマックス関数で正規化して重みにし、その重み付き和(文脈ベクトル)を出力の生成に利用します。
直感的には「出力する単語ごとに、入力文のどの単語に注目すべきかを学習する」仕組みです。これにより長い系列でも必要な情報へ直接アクセスでき、翻訳精度が大きく向上しました。またアテンションの重みを可視化すると、入力と出力の単語の対応関係を解釈できるという利点もあります。この考え方を発展させ、再帰構造を使わずにアテンションだけで系列を処理するのがTransformerです。
📝 試験でのポイント
- エンコーダとデコーダの役割の対応(入力系列の集約/出力系列の生成)を正しく選べるようにする
- 基本のseq2seqの弱点=「固定長ベクトルへの圧縮により長い系列で情報が失われる」ことと、その解決策がアテンションであるという因果関係が頻出
- アテンションの計算手順(関連度スコア→ソフトマックスで重み化→エンコーダ隠れ状態の重み付き和)の流れを問われることがある
- デコーダの生成は自己回帰的(前の出力を次の入力に使う)である点、学習時の教師強制との違いを整理しておく
- 本項目のアテンションはTransformerのSelf-Attentionの前提知識になるため、両者の関係(seq2seqではエンコーダとデコーダの間のアテンション)を意識する
📚 まとめ
系列変換は、エンコーダで入力系列を集約しデコーダで出力系列を生成する枠組みです。seq2seqはその代表ですが、固定長ベクトルによる情報の損失が課題でした。アテンション機構は出力ごとに入力の注目箇所を動的に選ぶことでこれを解決し、Transformerへ発展する土台となりました。
