Attention Is All You Need (2017)
Titolo: Attention Is All You Need
Anno di pubblicazione: 2017
Autori: Ashish Vaswani; Noam Shazeer; Niki Parmar; Jakob Uszkoreit; Llion Jones; Aidan N. Gomez; Łukasz Kaiser; Illia Polosukhin;
URL: https://arxiv.org/pdf/1706.03762.pdf
Famosissimo paper del 2017 di Vaswani et al. che parallelizza il meccanismo di Attention, eliminando la necessità di utilizzo di reti neurali ricorsive nei task di traduzione e di generazione del testo: è il paper che implementa l'architettura Transformer.
Background
E' consigliabile leggere la pagina Attention (Machine Learning) per avere un background completo.
Tradizionalmente, nei task di automatic translation, è stato utilizzato il modello Sequence To Sequence, in cui la rappresentazione della frase
Il gatto mangia il topo
viene codificata in una rappresentazione vettoriale - un embedding - attraverso Long Short-Term Memory (LSTM) , prendendo il valore del layer nascosto al termine della codifica della frase.
Ogni token viene quindi, uno alla volta:
- Codificato in Word Embedding
- Passato alla RNN o LSTM che aggiorna lo stato nascosto, anche in base al valore precedente dello stato nascosto H
L'ultimo stato nascosto viene poi mandato al Decoder che può a questo punto iniziare a emettere token in base alla rappresentazione "densa" contenuta nello stato nascosto dell'encoder. Anche in questo caso viene utilizzata una rete LSTM in modalità autoregressiva, usando come input l'ultimo token emesso in output.
Il problema è che il decoder ha come uniche informazioni su cui decidere quale token emettere: l'ultimo token emesso, e lo stato nascosto. Immaginiamo il numero di trasformazioni che sono già state eseguite da quando "mangia" è stato codificato a quando eats dev'essere emessa.
The cat eats
L'idea che il decoder possa "vedere" direttamente gli stati nascosti del decoder fu implementata da Bahdanau nel 2014 e migliorata da Luong nel 2015.
Contributo
I modelli Extended Neural GPU, ByteNet e ConvS2S avevano già proposto l'eliminazione della parte ricorrente nel modelli seq2seq, parallelizzando le operazioni attraverso l'uso di CNN : ma in questi modelli il numero di operazioni necessarie per stabilire una relazione fra due punti arbitrari della sequenza di input e di ouput cresce con la distanza fra le loro posizioni: linearmente per ConvS2S e in maniera logaritmica in ByteNet, e questo rende più difficile imparare le dipendenze fra posizioni distanti. Nel Transformer, questo numero viene reso costante: questo implica una diminuzione della risoluzione a causa dell'operazione di media aritmetica sulle posizioni, un effetto che viene però alleviato con l'utilizzo del meccanismo della Multi-headed attention.
Links
Implementazione del Transformer in tensor2tensor