Encoder–decoder architecture (Arquitetura encoder–decoder) (PT)

From Systems analysis wiki
Jump to navigation Jump to search

Modelos encoder-decoder (do inglês, Encoder-Decoder Models) são uma classe de arquiteturas de redes neurais projetadas para resolver tarefas de transformação de sequência para sequência (sequence-to-sequence, seq2seq). Essa arquitetura consiste em dois componentes principais:

  • Encoder (codificador): Processa a sequência de entrada e a comprime em uma representação numérica compacta (um vetor de contexto ou uma sequência de estados ocultos).
  • Decoder (decodificador): Pega essa representação e gera a sequência de saída com base nela.

Essa arquitetura é a base para muitas tarefas de processamento de linguagem natural (NLP) e visão computacional, como tradução automática, sumarização de texto e legendagem de imagens.

Conceito

A ideia principal da arquitetura encoder-decoder é a separação das tarefas de compreensão e geração. O encoder é responsável por compreender a sequência de entrada, extraindo dela toda a informação semântica necessária. O decoder é responsável por gerar uma nova sequência, utilizando a informação fornecida pelo encoder.

Isso permite que o modelo trabalhe com sequências de comprimentos diferentes na entrada e na saída, o que era um desafio para arquiteturas anteriores.

Evolução da Arquitetura

Modelos Iniciais Baseados em RNN/LSTM

Inicialmente, a arquitetura encoder-decoder foi implementada utilizando redes neurais recorrentes (RNN) ou sua variante aprimorada, a LSTM.

  • Encoder: O encoder RNN processava a sequência de entrada token a token e, ao final, produzia um único vetor de contexto — o estado oculto após o processamento do último token, que deveria conter a informação de toda a sequência.
  • Decoder: O decoder RNN era inicializado com esse vetor de contexto e gerava a sequência de saída de forma autorregressiva.

A principal desvantagem dessa abordagem era o problema do "gargalo" (bottleneck): toda a informação da sequência de entrada precisava ser comprimida em um único vetor de tamanho fixo, o que levava à perda de informação, especialmente em sequências longas.

Introdução do Mecanismo de Atenção

Um grande avanço ocorreu com a introdução do mecanismo de atenção (attention mechanism) (Bahdanau et al., 2014).

  • Princípio de funcionamento: Em vez de depender de um único vetor de contexto, o decoder, a cada passo da geração, "presta atenção" a todos os estados ocultos do encoder. Ele calcula pesos de atenção que indicam quais partes da sequência de entrada são mais relevantes para gerar o token de saída atual.
  • Vantagens: Isso resolveu o problema do "gargalo" e permitiu que o modelo trabalhasse eficientemente com sequências longas, melhorando significativamente a qualidade, especialmente na tradução automática.

Arquitetura Transformer

Em 2017, no artigo "Attention Is All You Need", foi apresentada a arquitetura Transformer, que abandonou completamente a recorrência em favor do mecanismo de atenção.

  • Encoder do Transformer: Consiste em uma pilha de camadas, cada uma utilizando autoatenção (self-attention) para criar representações contextualizadas para cada token de entrada.
  • Decoder do Transformer: Consiste em uma pilha de camadas, cada uma com dois tipos de mecanismos de atenção:
    • Autoatenção mascarada (Masked self-attention): Para processar a parte da sequência de saída que já foi gerada.
    • Atenção cruzada (Cross-Attention): Para "prestar atenção" às representações de saída do encoder.

Essa arquitetura se tornou o padrão para tarefas seq2seq devido ao seu alto desempenho e à capacidade de paralelizar os cálculos.

Aplicações

A arquitetura encoder-decoder é o padrão para uma ampla gama de tarefas:

  • Tradução automática: Conversão de uma frase de um idioma para outro.
  • Sumarização automática de texto: Criação de um resumo conciso de um documento longo.
  • Sistemas de diálogo: Geração de uma resposta a uma fala do usuário.
  • Legendagem de imagens (Image Captioning): O encoder (geralmente baseado em uma rede neural convolucional) processa a imagem, e o decoder (geralmente uma RNN ou um Transformer) gera sua descrição textual.
  • Reconhecimento de fala: Conversão de um sinal de áudio em uma transcrição textual.

Principais Modelos

  • Transformer Original (Vaswani et al., 2017): O modelo que introduziu essa arquitetura.
  • BART (Bidirectional and Auto-Regressive Transformers): Um modelo do Facebook que é pré-treinado na tarefa de reconstruir texto "corrompido". O encoder é bidirecional (como no BERT), e o decoder é autorregressivo (como no GPT).
  • T5 (Text-to-Text Transfer Transformer): Um modelo do Google que unifica todas as tarefas de NLP, tratando-as como um problema de transformação de texto para texto. O T5 demonstrou resultados excelentes em diversos benchmarks.

Comparação com Outras Arquiteturas

Comparação das principais arquiteturas baseadas no Transformer
Arquitetura Tarefa Principal Componentes Modelos Típicos
Encoder-Decoder Transformação de sequência para sequência Encoder + Decoder T5, BART, Transformer original
Apenas Encoder Compreensão de texto Apenas Encoder BERT, RoBERTa
Apenas Decoder Geração de texto Apenas Decoder

Leitura Adicional

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