Encoder–decoder architecture (Arquitectura encoder–decoder) (ES)

From Systems analysis Wiki
Jump to navigation Jump to search

Modelos encoder-decoder (del inglés Encoder-Decoder Models) — son una clase de arquitecturas de redes neuronales diseñadas para resolver tareas de transformación de secuencia a secuencia (sequence-to-sequence, seq2seq). Esta arquitectura consta de dos componentes principales:

  • Encoder (codificador): Procesa la secuencia de entrada y la comprime en una representación numérica compacta (un vector de contexto o una secuencia de estados ocultos).
  • Decoder (decodificador): Toma esta representación y genera una secuencia de salida a partir de ella.

Esta arquitectura es la base de muchas tareas de procesamiento del lenguaje natural (PLN) y visión por computadora, como la traducción automática, el resumen de texto y la generación de pies de foto para imágenes.

Concepto

La idea principal de la arquitectura encoder-decoder es la separación de las tareas de comprensión y generación. El encoder es responsable de comprender la secuencia de entrada, extrayendo de ella toda la información semántica necesaria. El decoder es responsable de generar una nueva secuencia utilizando la información proporcionada por el encoder.

Esto permite que el modelo trabaje con secuencias de diferentes longitudes en la entrada y la salida, lo cual era problemático para arquitecturas anteriores.

Evolución de la arquitectura

Modelos iniciales basados en RNN/LSTM

Inicialmente, la arquitectura encoder-decoder se implementó utilizando redes neuronales recurrentes (RNN) o su variante mejorada, LSTM.

  • Encoder: Un encoder RNN procesaba la secuencia de entrada token por token y producía un único vector de contexto como salida: el estado oculto después de procesar el último token, que se suponía que contenía información sobre toda la secuencia.
  • Decoder: Un decoder RNN se inicializaba con este vector de contexto y generaba la secuencia de salida de forma autorregresiva.

La principal desventaja de este enfoque era el problema del «cuello de botella»: toda la información de la secuencia de entrada debía comprimirse en un único vector de longitud fija, lo que provocaba una pérdida de información, especialmente en secuencias largas.

Introducción del mecanismo de atención

El gran avance se produjo con la introducción del mecanismo de atención (attention mechanism) (Bahdanau et al., 2014).

  • Principio de funcionamiento: En lugar de depender de un único vector de contexto, el decoder en cada paso de generación «presta atención» a todos los estados ocultos del encoder. Calcula los pesos de atención, que indican qué partes de la secuencia de entrada son más relevantes para generar el token de salida actual.
  • Ventajas: Esto resolvió el problema del «cuello de botella» y permitió al modelo trabajar eficazmente con secuencias largas, mejorando significativamente la calidad, especialmente en la traducción automática.

Arquitectura Transformer

En 2017, el artículo «Attention Is All You Need» presentó la arquitectura Transformer, que abandonó por completo la recurrencia en favor del mecanismo de atención.

  • Encoder del Transformer: Consiste en una pila de capas, cada una de las cuales utiliza autoatención (self-attention) para crear representaciones contextualizadas para cada token de entrada.
  • Decoder del Transformer: Consiste en una pila de capas, cada una con dos tipos de mecanismos de atención:
    • Autoatención enmascarada: Para procesar la parte ya generada de la secuencia de salida.
    • Atención cruzada (Cross-Attention): Para «prestar atención» a las representaciones de salida del encoder.

Esta arquitectura se convirtió en el estándar para las tareas seq2seq gracias a su alto rendimiento y su capacidad para paralelizar los cálculos.

Aplicaciones

La arquitectura encoder-decoder es el estándar para una amplia gama de tareas:

  • Traducción automática: Convertir una oración de un idioma a otro.
  • Resumen automático de texto: Crear un resumen conciso de un documento largo.
  • Sistemas de diálogo: Generar una respuesta a la intervención de un usuario.
  • Generación de pies de foto (Image Captioning): Un encoder (a menudo basado en una red neuronal convolucional) procesa la imagen, y un decoder (a menudo una RNN o un Transformer) genera su descripción textual.
  • Reconocimiento de voz: Convertir una señal de audio en una transcripción de texto.

Modelos principales

  • Transformer original (Vaswani et al., 2017): El modelo que introdujo esta arquitectura.
  • BART (Bidirectional and Auto-Regressive Transformers): Un modelo de Facebook que se preentrena en la tarea de reconstruir texto «corrupto». El encoder es bidireccional (como en BERT), y el decoder es autorregresivo (como en GPT).
  • T5 (Text-to-Text Transfer Transformer): Un modelo de Google que unifica todas las tareas de PLN al presentarlas como un problema de transformación de texto a texto. T5 ha demostrado resultados sobresalientes en numerosos benchmarks.

Comparación con otras arquitecturas

Comparación de arquitecturas clave basadas en Transformer
Arquitectura Tarea principal Componentes Modelos típicos
Encoder-Decoder Transformación de secuencia a secuencia Encoder + Decoder T5, BART, Transformer original
Solo-encoder Comprensión de texto Solo encoder BERT, RoBERTa
Solo-decoder Generación de texto Solo decoder

Bibliografía

  • 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.