(Day 28) Seq2Seq (Encoder Decoder with RNN, LSTM, GRU)

(Day 28) Seq2Seq (Encoder Decoder with RNN, LSTM, GRU)

在前幾天的文章中,我們依序介紹了 RNN、LSTM、GRU,並討論它們如何建模序列資料。這些模型能夠捕捉序列中的上下文關係,並緩解傳統 RNN 的梯度消失問題。然而,若我們想要處理更複雜的任務——例如機器翻譯 (Machine Translation),僅僅依靠單向 RNN 或 LSTM 並不夠。

這就引出了今天的主角: Seq2Seq 架構 (Sequence-to-Sequence Model)。它的核心思想是利用「編碼器 (Encoder)」將輸入序列壓縮成一個上下文表示,再由「解碼器 (Decoder)」生成輸出序列。這種架構在 2014 年被 Sutskever 等人首次提出,用於神經機器翻譯 (Neural Machine Translation, NMT),開啟了 NLP 領域的一個新時代。

Seq2Seq 的核心思想

假設我們要將一句英文句子翻譯成中文:

輸入: “I am happy today.” 輸出: “我今天很高興。”

傳統的 RNN/LSTM 模型只能處理輸入和輸出的對應關係,但無法直接處理「序列到序列」的轉換問題。Seq2Seq 則透過 Encoder-Decoder 的設計,讓模型能夠處理 輸入與輸出長度不同的情況,這正是翻譯、摘要、對話等任務的核心需求。

核心流程:

  1. Encoder:讀取輸入序列,將其壓縮成一個固定維度的上下文向量 $c$。
  2. Decoder:根據上下文向量 $c$ 與先前輸出的資訊,逐步生成輸出序列。

Seq2Seq 的數學形式

  1. 編碼器 (Encoder)
    • 輸入序列: $X = (x_1, x_2, \dots, x_T)$
    • 隱藏狀態更新: $$ h_t = f(h_{t-1}, x_t) $$
    • 最後的隱藏狀態 $h_T$ 作為上下文向量 $c$。
  2. 解碼器 (Decoder)
    • 初始狀態: $s_0 = c$
    • 每一步輸出: $$ s_t = f(s_{t-1}, y_{t-1}) $$ $$ \hat{y}_t = g(s_t) $$ 其中:
  • $f$ 可以是 RNN / LSTM / GRU 單元
  • $g$ 通常是 softmax 層,用來輸出詞彙的機率分布

Encoder-Decoder 結構

從結構上看,Seq2Seq 就像是一個「兩段式」神經網路:

  • Encoder: 讀完整個輸入序列,把資訊壓縮成一個向量。
  • Decoder: 依靠這個向量,不斷生成輸出,直到遇到「結束符號 (EOS)」。

這種設計使得模型能處理輸入長度與輸出長度不相等的情境。例如:

  • 英文翻譯成中文 (詞數不同)
  • 長文章生成短摘要
  • 對話系統生成多輪回覆

Seq2Seq 的直觀比喻

你可以把 Encoder 想成一個「翻譯助理」,把整段英文聽完後,壓縮成腦海中的一個「意思總結」;而 Decoder 則像是「翻譯員」,根據這個意思總結,再逐字逐句地說出中文。

Seq2Seq 的優缺點

優點:

  1. 靈活性:能處理輸入與輸出長度不一致的任務。
  2. 通用性:同一個框架可應用於翻譯、摘要、對話、時間序列預測。
  3. 端到端學習:避免了傳統 NLP 中複雜的特徵工程。

缺點:

  1. 瓶頸效應 (Bottleneck Problem)
    • 所有資訊被壓縮到單一向量 $c$,在長序列時容易遺失細節。
  2. 長序列困難
    • 即便使用 LSTM/GRU,仍難以捕捉超長依賴。
  3. 生成速度慢
    • Decoder 是逐步生成,無法並行化。

Seq2Seq 的實務應用

  1. 機器翻譯 (Neural Machine Translation)
    • 最經典的應用,將英文翻譯成中文、法文翻譯成英文。
  2. 摘要生成 (Text Summarization)
    • 輸入一篇長文章,輸出簡短摘要。
  3. 對話系統 (Dialogue System)
    • 輸入使用者的問題,輸出合適的回覆。
  4. 時間序列預測
    • 輸入過去的數據 (例如股價),輸出未來的預測值。

結語

Seq2Seq 架構 (Encoder-Decoder) 是深度學習處理序列到序列任務的經典解法。它透過 Encoder 壓縮輸入,再由 Decoder 逐步生成輸出,成功應用於機器翻譯、摘要生成、對話系統等多種任務。

然而,Seq2Seq 最大的瓶頸在於所有資訊都被壓縮到單一上下文向量,導致長序列表現不佳。這個缺陷直接促使了 Attention 機制的誕生,並最終引領 Transformer 成為 NLP 的主流。

在下一篇,我們將深入探討 Attention 機制,看看它是如何突破 Seq2Seq 的限制,並奠定後來 GPT 與大型語言模型的基礎。

備註