Encoder-Decoder

分类: 网络架构

Encoder-Decoder

定义

Encoder-Decoder 是一种通用的序列到序列架构范式:编码器将输入序列压缩为固定或变长的隐表示,解码器基于该表示生成目标序列。该架构是机器翻译、文本摘要等生成任务的基础框架

数学形式

编码器:hi=fenc(xi,hi1)h_i = f_{\text{enc}}(x_i, h_{i-1}),最终得到上下文向量 c=q({h1,,hT})c = q(\{h_1, \ldots, h_T\})

解码器:st=fdec(yt1,st1,c)s_t = f_{\text{dec}}(y_{t-1}, s_{t-1}, c),输出 P(yty<t,c)=g(yt1,st,c)P(y_t | y_{<t}, c) = g(y_{t-1}, s_t, c)

引入注意力后:ct=i=1Tαtihic_t = \sum_{i=1}^{T} \alpha_{ti} h_i,其中 αti=softmax(eti)\alpha_{ti} = \text{softmax}(e_{ti})

核心要点

信息瓶颈问题:最初的 Encoder-Decoder 将整个输入压缩为单一固定长度向量 cc,长序列信息严重丢失

注意力机制(Bahdanau et al., 2015)解决了信息瓶颈:让解码器每步动态关注编码器不同位置

RNN 变体:编码器/解码器可用 LSTM、GRU 等,通常使用双向编码器 + 单向解码器

Transformer 变体(Vaswani et al., 2017):完全基于自注意力的 Encoder-Decoder,成为当前主流

三大变体方向:仅编码器(BERT)、仅解码器(GPT)、完整 Encoder-Decoder(T5、BART)

CS224N 中作为序列建模的核心架构被反复讨论

代表工作

Sutskever et al., 2014: Sequence to Sequence Learning with Neural Networks,首次将 Encoder-Decoder 应用于 NMT

Bahdanau et al., 2015: Neural Machine Translation by Jointly Learning to Align and Translate,引入注意力机制

Vaswani et al., 2017: Attention Is All You Need,Transformer Encoder-Decoder

相关概念

Seq2Seq

GRU

Machine Translation