Immaginate di dover tradurre una frase dall’inglese al francese e di avere un vincolo assurdo: potete leggere l’intera frase originale una sola volta, poi dovete chiudere il libro e scrivere la traduzione a memoria, senza più guardare l’originale. Tutto quello che avete è un ricordo compresso di quello che avete letto. Sembra un esercizio da scuola di interpretariato, ma è esattamente il problema che Ilya Sutskever, Oriol Vinyals e Quoc V. Le hanno posto a una rete neurale nel loro articolo Sequence to Sequence Learning with Neural Networks, pubblicato su arXiv nel settembre 2014. La risposta a quel vincolo assurdo è l’architettura encoder-decoder, e ancora oggi è la spina dorsale di come le macchine trasformano un testo in un altro testo.
Comprimere una frase in un vettore, e la nascita dell’attenzione come rimedio, sono raccontati nel libro.
Il problema: mappare sequenze di lunghezza variabile
Le reti neurali del 2014 erano brave a mappare un input di dimensione fissa su un output di dimensione fissa: dai un’immagine di 224×224 pixel, ottieni una fra mille etichette possibili. Ma la traduzione non ha questa forma. Una frase inglese di sei parole può diventare una frase francese di nove, o di quattro. Non sai in anticipo quanto sarà lungo l’input, né quanto sarà lungo l’output, né come si allineano fra loro. Gli autori lo dicono senza giri di parole: le reti profonde funzionano quando hai grandi insiemi etichettati, ma non possono mappare sequenze su sequenze.
Il pezzo mancante era un modo per rappresentare «il significato» di una sequenza intera in una forma di dimensione fissa, indipendente da quanto sia lunga la frase. Se riesci a spremere una frase di qualsiasi lunghezza in un vettore di, poniamo, mille numeri, allora hai ridotto il problema difficile a un problema che sai già affrontare.
L’encoder: spremere una frase in un vettore
La prima metà dell’architettura si chiama encoder. È una rete ricorrente — nello specifico un LSTM profondo, a più strati — che legge la frase di ingresso una parola alla volta. A ogni parola aggiorna il proprio stato interno, un vettore di numeri che funziona come una memoria di lavoro. Quando arriva l’ultima parola, quello stato interno è diventato un riassunto di tutta la frase: un unico vettore di dimensione fissa che gli autori, in modo suggestivo, chiamano rappresentazione della sequenza.
L’analogia più onesta è quella del sommelier che assaggia un vino. Non memorizza la posizione di ogni singola molecola nel bicchiere; costruisce, sorso dopo sorso, un’impressione compatta — «corposo, tannico, note di ciliegia» — che condensa migliaia di segnali in una manciata di descrittori. L’encoder fa lo stesso con le parole: le legge in ordine e, invece di conservarle tutte, aggiorna un giudizio complessivo che alla fine sta in un solo vettore.
Questo vettore è il collo di bottiglia dell’intera architettura, ed è una scelta deliberata. Costringere tutta l’informazione a passare per un punto stretto obbliga la rete a distillare ciò che conta e a scartare il rumore.
L’encoder (teal) legge le parole inglesi in sequenza e comprime tutto in un unico vettore di contesto (il collo di bottiglia scuro al centro). Il decoder (terracotta) parte da quel vettore e genera le parole francesi una alla volta, ciascuna condizionata da quelle già prodotte.
Il decoder: srotolare il vettore in una nuova frase
La seconda metà è il decoder, un secondo LSTM profondo che fa il lavoro inverso. Riceve il vettore di contesto come punto di partenza e genera la traduzione una parola alla volta. A ogni passo produce la parola più probabile, poi si dà quella parola in pasto come ingresso del passo successivo, e continua finché non emette un simbolo speciale di «fine frase».
Il dettaglio importante è che ogni parola generata dipende sia dal vettore di contesto sia da tutte le parole già scritte. È come un narratore che improvvisa una storia: ha in mente il tema generale — il vettore — ma ogni frase che pronuncia tiene conto di quelle appena dette, per non contraddirsi. Encoder e decoder vengono addestrati insieme, dall’inizio alla fine, su coppie di frasi tradotte: nessuna regola grammaticale scritta a mano, solo esempi.
Tutta la conoscenza di una frase di sessanta parole deve passare per la cruna di un unico vettore: è insieme la forza e il limite dell’idea.
Il trucco controintuitivo: leggere la frase al contrario
Il risultato più curioso dell’articolo non è un’architettura ma un accorgimento. Gli autori scoprono che, se danno in pasto all’encoder la frase inglese al contrario — l’ultima parola per prima — la qualità della traduzione migliora in modo netto. La spiegazione è che invertire l’ordine avvicina le prime parole della frase sorgente alle prime parole della frase da tradurre, accorciando la distanza che il gradiente deve percorrere durante l’apprendimento. Un dettaglio quasi da artigiano, che dice molto su quanto, nel 2014, si stesse ancora imparando come far funzionare queste reti in pratica.
I numeri, sul compito di traduzione inglese-francese del WMT’14: il sistema ottiene un punteggio BLEU di 34,8, superando il baseline statistico basato su frasi, fermo a 33,3. Usato non per tradurre da zero ma per riordinare le mille ipotesi migliori prodotte dal sistema statistico, il modello arriva a 36,5. Per la prima volta una rete neurale pura reggeva il confronto con la traduzione automatica statistica, allora lo stato dell’arte, su un compito serio.
Perché riguarda anche voi, oggi
Lo schema encoder-decoder non è rimasto confinato alla traduzione. È il modo in cui pensiamo qualsiasi problema in cui un testo entra e un altro testo esce: riassumere un documento, rispondere a una domanda, generare didascalie, convertire una richiesta in codice. L’anno dopo arriverà il meccanismo di attenzione a sciogliere il collo di bottiglia — permettendo al decoder di rileggere l’originale invece di fidarsi solo del vettore — e nel 2017 i Transformer porteranno quell’idea alle sue conseguenze estreme. Ma la distinzione fondamentale tra una parte che comprende e una parte che genera nasce qui.
Quando oggi chiedete a un assistente di tradurre un paragrafo o di riscrivere una mail, state usando i pronipoti diretti di questa architettura. Vale la pena tornare all’articolo del 2014 non per nostalgia, ma perché è raro trovare un’idea così potente spiegata in una forma così nuda: leggi, comprimi, genera.
Leggere l’originale
L’articolo — Ilya Sutskever, Oriol Vinyals, Quoc V. Le, Sequence to Sequence Learning with Neural Networks, 2014 — è disponibile in accesso aperto: arxiv.org/abs/1409.3215. È leggibile anche da chi non lavora nel campo: le prime tre pagine bastano a cogliere l’intuizione, e la sezione sui risultati mostra con onestà anche i limiti del metodo.

I commenti sono riservati agli iscritti.
Accedi per commentare