

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 序列對序列的運作方式
<a name="seq-2-seq-howitworks"></a>

一般而言，序列到序列模型的神經網路包含數個層級，包括：
+ **內嵌層**。在這個層中，輸入矩陣為使用稀疏方式編碼的輸入符記 (例如，一次熱編碼)，並對應到密集功能層。這是必要的，因為與簡易的一次熱編碼維度相較，高維度功能向量更能夠對關於特定符記的資訊進行編碼 (文字 corpora 的字詞)。使用預先訓練的字詞向量，例如 [FastText](https://fasttext.cc/) 或 [Glove](https://nlp.stanford.edu/projects/glove/) 來初始化此內嵌層或者隨機初始化並在訓練時學習參數也是標準實務。
+ **編碼器層**。在輸入符記對應到高維度功能空間後，序列將透過編碼器層傳遞以壓縮所有來自輸入 (整個序列) 內嵌層的資訊為固定長度的功能向量。一般而言，編碼器是由 RNN 類型網路製成，例如長短期記憶體 (LSTM) 或遷移重複單位 (GRU)。([Colah 的部落格](http://colah.github.io/posts/2015-08-Understanding-LSTMs/)詳盡解釋了 LSTM 的資訊。) 
+ **解碼器層**。解碼器層採取此編碼功能向量並產生符記的輸出序列。此層通常也是以 RNN 架構 (LSTM 和 GRU) 建置的。

在指定來源序列情況下，整個模型皆經過共同訓練以最大化目標序列的機率。此模型由 [Sutskever 等人](https://papers.nips.cc/paper/5346-sequence-to-sequence-learning-with-neural-networks.pdf)首次於 2014 年提出。

**焦點機制**。編碼器 - 解碼器框架的缺點是模型效能會隨來源序列增加而下降，受到編碼功能向量可包含的資訊量上限之影響。為了處理此問題，Bahdanau 等人在 2015 年提出了 [attention mechanism](https://arxiv.org/pdf/1409.0473.pdf) (焦點機制)。在焦點機制中，解碼器會嘗試在編碼器序列中尋找位置，最重要的資訊可能就位於該序列中，並使用該資訊與之前解碼的字詞來預測序列中的下一個符記。

如需詳細資訊，請參閱由 Luong 等人撰寫的白皮書 [Effective Approaches to Attention-based Neural Machine Translation](https://arxiv.org/abs/1508.04025)，其中解釋並簡化了許多焦點機制的計算。此外，由 Wu 等人撰寫的白皮書 [Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation](https://arxiv.org/abs/1609.08144)，則描述了 Google 的機器翻譯架構，該架構使用了編碼器和解碼器層之間的跳躍連線。