Encoder–decoder architecture — 编码器-解码器

From Systems analysis Wiki
Jump to navigation Jump to search

编码器-解码器模型(Encoder-Decoder Models)是一类用于解决序列到序列(sequence-to-sequence, seq2seq)转换任务的神经网络架构。该架构由两个主要部分组成:

  • 编码器(Encoder): 处理输入序列,并将其压缩成一个紧凑的数值表示(上下文向量或一系列隐藏状态)。
  • 解码器(Decoder): 接收这个表示,并基于它生成输出序列。

该架构是许多自然语言处理(NLP)和计算机视觉任务的基础,例如机器翻译、文本摘要和图像字幕生成。

概念

编码器-解码器架构的核心思想是将理解生成这两个任务分开。编码器负责理解输入序列,从中提取所有必要的语义信息。解码器则负责利用编码器提供的信息生成新的序列。

这使得模型能够处理输入和输出序列长度不同的情况,而这对于早期的架构来说是一个挑战。

架构演进

基于 RNN/LSTM 的早期模型

最初,编码器-解码器架构是使用循环神经网络(RNN)或其改进版本长短期记忆网络(LSTM)实现的。

  • 编码器: RNN 编码器逐个处理输入序列的词元(token),并输出一个单一的上下文向量(context vector)——即处理完最后一个词元后的隐藏状态,该向量需要包含整个序列的信息。
  • 解码器: RNN 解码器使用这个上下文向量进行初始化,并以自回归(auto-regressive)的方式生成输出序列。

这种方法的主要缺点是“瓶颈”问题:输入序列的所有信息都必须被压缩到一个固定长度的向量中,这会导致信息丢失,尤其是在处理长序列时。

注意力机制的引入

随着注意力机制(attention mechanism)的引入(Bahdanau et al., 2014),该领域取得了突破性进展。

  • 工作原理: 解码器在生成的每一步都不再依赖于单一的上下文向量,而是“关注”编码器的所有隐藏状态。它会计算注意力权重,这些权重表明输入序列的哪些部分与生成当前输出词元最相关。
  • 优势: 这解决了“瓶颈”问题,使模型能够有效处理长序列,从而显著提高了性能,尤其是在机器翻译领域。

Transformer 架构

2017年,论文《Attention Is All You Need》提出了一种Transformer架构,它完全摒弃了循环结构,转而完全依赖注意力机制。

  • Transformer 编码器: 由一个层堆栈组成,每层都使用自注意力(self-attention)为每个输入词元创建上下文相关的表示。
  • Transformer 解码器: 由一个层堆栈组成,每层包含两种类型的注意力机制:
    • 掩码自注意力(Masked self-attention): 用于处理已生成的输出序列部分。
    • 交叉注意力(Cross-Attention): 用于“关注”编码器的输出表示。

由于其卓越的性能和计算并行化的能力,该架构已成为 seq2seq 任务的标准。

应用

编码器-解码器架构是众多任务的标准选择:

  • 机器翻译: 将一个语言的句子转换为另一个语言。
  • 文本自动摘要: 为长文档创建简短摘要。
  • 对话系统: 根据用户的输入生成回复。
  • 图像字幕生成(Image Captioning): 编码器(通常是卷积神经网络)处理图像,而解码器(通常是 RNN 或 Transformer)生成其文本描述。
  • 语音识别: 将音频信号转换为文本转录。

主要模型

  • 原始 Transformer (Vaswani et al., 2017):首次提出该架构的模型。
  • BART (Bidirectional and Auto-Regressive Transformers):由 Facebook 提出的模型,通过对“损坏”文本进行重构的任务进行预训练。其编码器是双向的(类似于 BERT),解码器是自回归的(类似于 GPT)。
  • T5 (Text-to-Text Transfer Transformer):由 Google 提出的模型,它将所有 NLP 任务统一为文本到文本的转换问题。T5 在众多基准测试中表现出色。

与其他架构的比较

基于 Transformer 的关键架构比较
架构 主要任务 组件 典型模型
编码器-解码器 序列到序列转换 编码器 + 解码器 T5, BART, 原始 Transformer
仅编码器 文本理解 仅编码器 BERT, RoBERTa
仅解码器 文本生成 仅解码器

参考文献

  • Bahdanau, D. et al. (2014). Neural Machine Translation by Jointly Learning to Align and Translate. arXiv:1409.0473.
  • Sutskever, I. et al. (2014). Sequence to Sequence Learning with Neural Networks. arXiv:1409.3215.
  • Luong, M.-T. et al. (2015). Effective Approaches to Attention-based Neural Machine Translation. arXiv:1508.04025.
  • Wu, Y. et al. (2016). Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation. arXiv:1609.08144.
  • Vaswani, A. et al. (2017). Attention Is All You Need. arXiv:1706.03762.
  • Britz, D. et al. (2017). Massive Exploration of Neural Machine Translation Architectures. arXiv:1703.03906.
  • Lewis, M. et al. (2020). BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation. arXiv:1910.13461.
  • Raffel, C. et al. (2020). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. arXiv:1910.10683.
  • Dong, L. et al. (2019). Unified Language Model Pre-training for Natural Language Understanding and Generation. arXiv:1905.03197.
  • Zhang, J. et al. (2020). PEGASUS: Pre-training with Extracted Gap-Sentences for Abstractive Summarization. arXiv:1912.08777.