Architettura encoder–decoder

From Systems analysis Wiki
Jump to navigation Jump to search

I modelli encoder-decoder (ingl. Encoder-Decoder Models) — sono una classe di architetture di reti neurali progettate per risolvere problemi di trasformazione di sequenza in sequenza (sequence-to-sequence, seq2seq). Questa architettura è composta da due componenti principali:

  • Encoder (codificatore): Elabora la sequenza di input e la comprime in una rappresentazione numerica compatta (vettore di contesto o sequenza di stati nascosti).
  • Decoder (decodificatore): Prende questa rappresentazione e genera su di essa la sequenza di output.

Questa architettura è alla base di molti problemi di elaborazione del linguaggio naturale (NLP) e di visione artificiale, come la traduzione automatica, la sintesi del testo e le didascalie delle immagini.

Concetto

L'idea principale dell'architettura encoder-decoder consiste nella separazione dei compiti di comprensione e generazione. L'encoder è responsabile della comprensione della sequenza di input, estraendone tutte le informazioni semantiche necessarie. Il decoder è responsabile della generazione di una nuova sequenza, utilizzando le informazioni fornite dall'encoder.

Ciò consente al modello di lavorare con sequenze di lunghezza diversa in input e in output, il che era difficoltoso per le architetture precedenti.

Evoluzione dell'architettura

Modelli iniziali basati su RNN/LSTM

In origine, l'architettura encoder-decoder era implementata utilizzando reti neurali ricorrenti (RNN) o la loro variante migliorata LSTM.

  • Encoder: L'encoder RNN elaborava la sequenza di input token per token e produceva in uscita un unico vettore di contesto — lo stato nascosto dopo l'elaborazione dell'ultimo token, che doveva contenere le informazioni sull'intera sequenza.
  • Decoder: Il decoder RNN veniva inizializzato con questo vettore di contesto e generava autoregressivamente la sequenza di output.

Il principale svantaggio di questo approccio era il problema del «collo di bottiglia»: tutte le informazioni della sequenza di input dovevano essere compresse in un unico vettore di lunghezza fissa, il che portava a una perdita di informazioni, specialmente su sequenze lunghe.

Introduzione del meccanismo di attention

La svolta avvenne con l'introduzione del meccanismo di attention (attention mechanism) (Bahdanau et al., 2014).

  • Principio di funzionamento: Invece di affidarsi a un unico vettore di contesto, il decoder a ogni passo di generazione «presta attenzione» a tutti gli stati nascosti dell'encoder. Calcola i pesi di attention, che mostrano quali parti della sequenza di input sono più rilevanti per la generazione del token di output corrente.
  • Vantaggi: Ciò ha risolto il problema del «collo di bottiglia» e ha permesso al modello di lavorare efficacemente con sequenze lunghe, migliorando significativamente la qualità, in particolare nella traduzione automatica.

Architettura Transformer

Nel 2017, nell'articolo «Attention Is All You Need» fu presentata l'architettura Transformer, che abbandonò completamente la ricorrenza a favore del meccanismo di attention.

  • Encoder del Transformer: È composto da uno stack di strati, ciascuno dei quali utilizza il self-attention per creare rappresentazioni contestualizzate per ogni token di input.
  • Decoder del Transformer: È composto da uno stack di strati, ciascuno dei quali dispone di due tipi di meccanismi di attention:
    • Self-attention mascherato: Per l'elaborazione della parte già generata della sequenza di output.
    • Cross-Attention: Per «prestare attenzione» alle rappresentazioni di output dell'encoder.

Questa architettura è diventata lo standard per i problemi seq2seq grazie alle sue elevate prestazioni e alla possibilità di parallelizzare i calcoli.

Applicazioni

L'architettura encoder-decoder è lo standard per un'ampia gamma di problemi:

  • Traduzione automatica: Conversione di una frase da una lingua a un'altra.
  • Riassunto automatico del testo: Creazione di un sommario di un documento lungo.
  • Sistemi di dialogo: Generazione di una risposta alla battuta dell'utente.
  • Didascalie delle immagini (Image Captioning): L'encoder (spesso basato su una rete neurale convoluzionale) elabora l'immagine, mentre il decoder (spesso RNN o Transformer) ne genera la descrizione testuale.
  • Riconoscimento vocale: Conversione di un segnale audio in trascrizione testuale.

Modelli principali

  • Transformer originale (Vaswani et al., 2017): Il modello che ha introdotto questa architettura.
  • BART (Bidirectional and Auto-Regressive Transformers): Modello di Facebook, pre-addestrato sul compito di ripristino del testo «corrotto». L'encoder è bidirezionale (come in BERT), mentre il decoder è autoregressivo (come in GPT).
  • T5 (Text-to-Text Transfer Transformer): Modello di Google che unifica tutti i problemi NLP, rappresentandoli come un problema di trasformazione del testo in testo. T5 ha mostrato risultati eccezionali su numerosi benchmark.

Confronto con altre architetture

Confronto delle principali architetture basate sul Transformer
Architettura Compito principale Componenti Modelli tipici
Encoder-decoder Trasformazione di sequenza in sequenza Encoder + Decoder T5, BART, Transformer originale
Solo encoder Comprensione del testo Solo encoder BERT, RoBERTa
Solo decoder Generazione di testo Solo decoder

Bibliografia

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