在前幾天的文章中,我們依序介紹了 RNN、LSTM、GRU,並討論它們如何建模序列資料。這些模型能夠捕捉序列中的上下文關係,並緩解傳統 RNN 的梯度消失問題。然而,若我們想要處理更複雜的任務——例如機器翻譯 (Machine Translation),僅僅依靠單向 RNN 或 LSTM 並不夠。
這就引出了今天的主角: Seq2Seq 架構 (Sequence-to-Sequence Model)。它的核心思想是利用「編碼器 (Encoder)」將輸入序列壓縮成一個上下文表示,再由「解碼器 (Decoder)」生成輸出序列。這種架構在 2014 年被 Sutskever 等人首次提出,用於神經機器翻譯 (Neural Machine Translation, NMT),開啟了 NLP 領域的一個新時代。
假設我們要將一句英文句子翻譯成中文:
輸入: “I am happy today.”
輸出: “我今天很高興。”
傳統的 RNN/LSTM 模型只能處理輸入和輸出的對應關係,但無法直接處理「序列到序列」的轉換問題。Seq2Seq 則透過 Encoder-Decoder 的設計,讓模型能夠處理 輸入與輸出長度不同的情況,這正是翻譯、摘要、對話等任務的核心需求。
核心流程:
從結構上看,Seq2Seq 就像是一個「兩段式」神經網路:
這種設計使得模型能處理輸入長度與輸出長度不相等的情境。例如:
你可以把 Encoder 想成一個「翻譯助理」,把整段英文聽完後,壓縮成腦海中的一個「意思總結」;而 Decoder 則像是「翻譯員」,根據這個意思總結,再逐字逐句地說出中文。
優點:
缺點:
Seq2Seq 架構 (Encoder-Decoder) 是深度學習處理序列到序列任務的經典解法。它透過 Encoder 壓縮輸入,再由 Decoder 逐步生成輸出,成功應用於機器翻譯、摘要生成、對話系統等多種任務。
然而,Seq2Seq 最大的瓶頸在於所有資訊都被壓縮到單一上下文向量,導致長序列表現不佳。這個缺陷直接促使了 Attention 機制的誕生,並最終引領 Transformer 成為 NLP 的主流。
在下一篇,我們將深入探討 Attention 機制,看看它是如何突破 Seq2Seq 的限制,並奠定後來 GPT 與大型語言模型的基礎。