Come funziona l'algoritmo Sequence-to-Sequence - Amazon SageMaker AI

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Come funziona l'algoritmo Sequence-to-Sequence

Solitamente, una rete neurale per la modellazione sequence-to-sequence è composta da alcuni layer, tra cui:

  • Un livello di incorporamento. In questo layer, la matrice di input, ossia token di input codificati in modo sparso (ad esempio, con codifica one-hot), viene mappata a un layer di caratteristiche dense. Questa operazione è necessaria in quanto un vettore caratteristico altamente dimensionale può codificare meglio le informazioni che riguardano un particolare token (parola di raccolta testi) rispetto a un semplice vettore con codifica one-hot. Si tratta inoltre di una pratica standard per inizializzare questo livello di integrazione con un vettore di parola prepreparato come FastText o Glove o per inizializzarlo in modo casuale e apprendere i parametri durante l’addestramento.

  • Un livello codificatore. Una volta che i token di input sono stati mappati in uno spazio caratteristico altamente dimensionale, la sequenza viene trasmessa a un layer codificatore per comprimere tutte le informazioni provenienti dal layer di integrazione dell'input (dell'intera sequenza) in un vettore caratteristico a lunghezza fissa. Di solito, un codificatore è costituito da reti di tipo RNN come memoria a lungo-breve termine (LSTM, Long Short Term Memory) o unità ricorrenti vincolare (GRU, Gated Recurrent Unit) (il blog di Colah spiega in modo approfondito la memoria LSTM).

  • Un livello decodificatore. Il layer decodificatore acquisisce il vettore caratteristico codificato e produce la sequenza di output dei token. Inoltre, di solito questo layer è costruito con architetture RNN (LSTM e GRU).

L'intero modello viene preparato congiuntamente per aumentare al massimo la possibilità di sequenza di destinazione considerata la sequenza di origine. Questo modello è stato introdotto per la prima volta da Sutskever e altri nel 2014.

Meccanismo di attenzione. Lo svantaggio di un framework codificatore-decodificatore è che le prestazioni del modello diminuiscono mano a mano che la lunghezza della sequenza di origine aumenta; questo a causa del limite imposto alla quantità di informazioni che può contenere il vettore caratteristico codificato a lunghezza fissa. Per risolvere questo problema, nel 2015 Bahdanau e altri ha proposto il meccanismo di attenzione. In un meccanismo di attenzione, il decodificatore tenta di trovare la posizione in cui le informazioni più rilevanti potrebbero trovarsi nella sequenza del codificatore e le utilizza con le parole precedentemente decodificate per prevedere il successivo token nella sequenza.

Per ulteriori dettagli, consulta il whitepaper Effective Approaches to Attention-based Neural Machine Translation di Luong e altri che spiega e semplifica i calcoli per i vari meccanismi di attenzione. Inoltre, il whitepaper Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation di Wu e altri descrive l'architettura di Google per la traduzione automatica, che si avvale di ignorare le connessioni tra i livelli codificatore e decodificatore.