英語の文を入れると日本語の文が出てくる——機械翻訳のような「系列を入れて系列を返す」処理を可能にしたのがSeq2Seq(Sequence to Sequence)モデルです。Attention、そしてTransformerへと続く自然言語処理の進化は、このモデルの登場から始まりました。仕組みと弱点をセットで理解しましょう。

📖 ひと言でいうと

Seq2Seqとは、入力の系列(単語の並びなど)を別の系列に変換するモデルで、入力を読み取るエンコーダと、出力を生み出すデコーダの2つの部品から構成されます。機械翻訳なら「英語の単語列→日本語の単語列」という変換を丸ごと学習します。

例えるなら、通訳者が「まず相手の話を最後まで聞いて頭の中で要約し(エンコーダ)、その要約をもとに別の言語で話し直す(デコーダ)」ようなものです。この「頭の中の要約」にあたるのが、エンコーダが作る固定長のベクトルです。

🖼 1枚でわかるSeq2Seq

Seq2Seq(Sequence to Sequence)
  • 役割 — 系列を入力し、別の系列を出力する(例: 機械翻訳)
  • 構成 — エンコーダ(入力→固定長ベクトル)+デコーダ(ベクトル→出力)
  • 基盤 — RNNやLSTMなどの再帰的構造
  • 弱点 — 入力が長いと固定長ベクトルに情報が収まらず性能低下
  • 解決策 — Attention機構の導入(入力の各部分に動的に重み付け)
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

Seq2Seqモデルは、エンコーダ(Encoder)とデコーダ(Decoder)の2つの主要な構成要素から成り立つ。エンコーダは、入力された系列データを固定長のベクトル表現に変換し、デコーダはそのベクトルを基に新たな系列データを生成する。例えば、英語の文章を入力として受け取り、日本語の文章を出力する機械翻訳のタスクでは、エンコーダが英語の文章をベクトルに変換し、デコーダがそのベクトルから対応する日本語の文章を生成する。しかし、従来のSeq2Seqモデルには、入力系列が長くなると性能が低下するという課題があった。これは、エンコーダが入力全体を一つの固定長ベクトルに圧縮する際、情報の一部が失われる可能性があるためである。この問題を解決するために、Attention(アテンション)機構が導入された。Attention機構は、デコーダが出力を生成する際、入力系列の各部分に対して動的に重み付けを行い、重要な情報に焦点を当てることを可能にする。これにより、長い入力系列に対しても効果的な処理が可能となった。さらに、Seq2Seqモデルは、RNN(リカレントニューラルネットワーク)やLSTM(長短期記憶)などの再帰的構造を基盤としている。これらの構造は、時系列データの依存関係を捉える能力を持つが、勾配消失や勾配爆発といった問題も抱えている。これらの問題に対処するため、ゲート機構を持つLSTMやGRU(ゲート付きリカレントユニット)が開発され、Seq2Seqモデルの性能向上に寄与している。

ポイントは3段構えです。①エンコーダとデコーダの2部構成で系列から系列への変換を実現する、②しかし入力全体を1本の固定長ベクトルに押し込むため長文で情報が失われる、③その解決策としてAttention機構が導入された——という流れです。

つまりSeq2Seqは単体で完結した話ではなく、「その弱点がAttentionを生み、さらにTransformerへつながった」という物語の出発点として押さえるのが試験対策上も効率的です。

🔍 しっかり理解する

エンコーダとデコーダの役割分担

Seq2Seqの処理は次の流れで進みます。

入力系列
例: 英語の文
エンコーダ
1単語ずつ読み込み情報を蓄積
固定長ベクトル
入力全体の「要約」
デコーダ
ベクトルを基に1単語ずつ生成
出力系列
例: 日本語の文

重要なのは、入力と出力の長さが違ってよいことです。5単語の英文が8単語の日本語文に訳されることは普通にありますが、「いったんベクトルに変換してから生成し直す」二段構えのおかげで、長さの異なる系列同士の変換が自然に扱えます。翻訳のほかにも、文章要約(長い文→短い文)や対話応答(発話→返答)など、系列から系列への変換タスクに広く応用できます。

弱点は「固定長ベクトルのボトルネック」

エンコーダは、入力が3単語でも100単語でも、同じサイズの1本のベクトルに全情報を圧縮します。短い文なら問題ありませんが、長い文では容量が足りず、文頭の情報などが薄まって失われてしまいます。これが「入力系列が長くなると性能が低下する」という課題の正体で、固定長ベクトルがボトルネック(隘路)になるのです。

この課題を解決したのがAttention機構です。デコーダが各単語を生成するたびに、固定長ベクトルの「要約」だけに頼るのではなく、入力系列の各部分を見直して重要な部分に動的に重み付けします。通訳者の例えでいえば、「頭の中の要約だけで話す」のをやめて「手元のメモ(入力の各単語の情報)を随時見返しながら話す」方式に変えたイメージです。

基盤となるRNN/LSTMと勾配問題

従来のSeq2Seqのエンコーダ・デコーダは、RNN(リカレントニューラルネットワーク)やLSTM(長短期記憶)といった、系列を先頭から順に処理する再帰的構造で作られています。RNNは時系列の依存関係を捉えられる一方、学習時に勾配消失・勾配爆発という問題を抱えます。誤差を過去にさかのぼって伝える際に信号が消えたり発散したりして、長い系列の学習が難しくなる現象です。

この対策として、情報の通り道を制御するゲート機構を持つLSTMやGRU(ゲート付きリカレントユニット)が開発され、Seq2Seqの性能向上に貢献しました。「固定長ベクトルの限界→Attention」「勾配消失・爆発→LSTM/GRU」という2つの課題・解決ペアを区別して覚えてください。

💡 具体例で考える

機械翻訳での動き

「I have a pen」を日本語に訳す場合を考えます。エンコーダはI→have→a→penと順に読み込み、文全体の意味を1本のベクトルにまとめます。デコーダはそのベクトルを受け取り、「私」「は」「ペン」「を」「持っている」と1語ずつ生成します。生成時には直前に出した単語も手がかりにするため、自然な語順の文が出力されます。

一方、これが数十単語の長い契約書の文だったらどうでしょう。文頭の主語の情報が固定長ベクトルの中で薄まり、訳文の後半で主語を取り違える——そうした長文での品質低下が実際に観察され、Attention導入の直接の動機になりました。実際、ニューラル機械翻訳の実用化はSeq2SeqにAttentionを組み合わせる形で大きく進展しています。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • 「Seq2Seq=Attentionを含むモデル」ではない — 元々のSeq2Seqは固定長ベクトルだけで橋渡しする構成です。Attentionは弱点を補うために後から導入された拡張と整理しましょう。
  • エンコーダとデコーダの役割の混同 — エンコーダは「入力系列→固定長ベクトル」、デコーダは「ベクトル→新たな系列の生成」です。選択肢で役割を入れ替えた記述に注意してください。
  • Transformerとの混同 — Transformerもエンコーダ・デコーダ構成ですが、RNNを使わずAttentionだけで構築される点が異なります。「RNN/LSTMを基盤とする」と書かれていたら従来型Seq2Seqの説明です。
  • 勾配消失の解決策とボトルネックの解決策の混同 — 勾配消失・爆発への対策はLSTM/GRUのゲート機構、固定長ベクトルの情報損失への対策はAttentionです。対応関係を逆にした選択肢が想定されます。

📝 試験でのポイント

💡 ポイント
  • 「エンコーダとデコーダの2つの構成要素から成る」「入力系列を固定長のベクトルに変換する」という定義の穴埋め・正誤判定が想定されます。
  • 「入力系列が長くなると性能が低下する。その原因は?」→「固定長ベクトルへの圧縮による情報損失」という因果関係は最頻出の論点です。
  • その課題の解決策としてAttention機構を選ばせる問題、逆にAttention導入の背景としてSeq2Seqの課題を選ばせる問題の両方向に備えましょう。
  • 基盤技術としてRNN/LSTM/GRU、課題として勾配消失・勾配爆発が併せて問われることがあります。

📚 まとめ

💡 ポイント
  • Seq2Seqは、エンコーダとデコーダの2部構成で系列から系列への変換(機械翻訳など)を行うモデルです。
  • エンコーダは入力を固定長ベクトルに圧縮し、デコーダはそこから出力系列を生成します。
  • 固定長ベクトルへの圧縮は長い入力で情報損失を招き、性能低下の原因となりました。
  • この課題を解決したのがAttention機構で、入力の各部分への動的な重み付けを可能にしました。
  • 基盤はRNN/LSTMなどの再帰的構造で、勾配消失・爆発対策としてLSTMやGRUが用いられます。