LSTM e GRU: i cancelli della memoria

Le reti ricorrenti semplici dimenticano tutto nel giro di poche parole. LSTM e GRU risolvono il problema con un'idea quasi burocratica: cancelli che decidono cosa ricordare, cosa aggiornare e cosa buttare via.

Provate a leggere questa frase: «Il ricercatore che aveva passato dieci anni a studiare le reti neurali, tra mille difficoltà e qualche soddisfazione, alla fine pubblicò il suo paper». Per capire chi pubblica il paper, il vostro cervello deve tenere in mente «il ricercatore» per ventidue parole, ignorando tutto quello che c’è in mezzo. Le prime reti ricorrenti non ci riuscivano: dopo dieci o quindici passi, il ricordo dell’inizio della frase era svanito. Il problema aveva un nome preciso, vanishing gradient, e una soluzione altrettanto precisa, pubblicata nel 1997 da Sepp Hochreiter e Jürgen Schmidhuber: la Long Short-Term Memory.

Reti ricorrenti, memoria che si dissolve, LSTM e GRU con i loro cancelli: il capitolo è nel libro.

Leggi «Modelli di sequenza: da RNN ai Transformer» nel libro →

Perché le RNN semplici dimenticano

Una rete ricorrente classica ha una memoria fatta di un solo vettore, lo stato nascosto, che viene riscritto da capo a ogni passo. A ogni parola nuova, lo stato passa attraverso una moltiplicazione per una matrice di pesi e una funzione di attivazione. È come fotocopiare una fotocopia: dopo pochi passaggi, il contenuto originale si degrada fino a diventare illeggibile.

Durante l’addestramento il problema si ripresenta al contrario. Il gradiente, cioè il segnale di correzione che dice alla rete come aggiustare i pesi, deve risalire la sequenza passo per passo. A ogni passo viene moltiplicato per le stesse matrici: se i valori sono piccoli, il segnale si spegne esponenzialmente (vanishing gradient); se sono grandi, esplode. In entrambi i casi, la rete non riesce a imparare dipendenze tra parole lontane. Il «ricercatore» all’inizio della frase e il «pubblicò» alla fine restano, per la rete, due eventi scollegati.

L’idea della LSTM: una memoria con accesso controllato

La LSTM risolve il problema con una mossa architetturale: separa la memoria dal calcolo. Accanto allo stato nascosto h, che continua a essere riscritto a ogni passo, introduce un secondo vettore, lo stato di cella C, che scorre lungo la sequenza quasi indisturbato. È una specie di nastro trasportatore: l’informazione ci sale sopra e viaggia in avanti senza essere rimescolata a ogni passo.

L’accesso al nastro è regolato da tre cancelli, i famosi gate. Ognuno è una piccola rete neurale con attivazione sigmoide, che produce valori tra 0 e 1: zero significa «chiuso», uno significa «aperto», i valori intermedi lasciano passare solo una frazione del segnale.

  • Il forget gate decide cosa cancellare dal nastro: guarda l’input corrente e lo stato precedente e assegna a ogni componente della memoria un coefficiente tra 0 e 1.
  • L’input gate decide cosa scrivere: filtra le informazioni nuove candidate a entrare nella cella.
  • L’output gate decide cosa leggere: stabilisce quale parte della memoria diventa lo stato nascosto visibile al resto della rete.

L’analogia più onesta è quella di un magazzino con un magazziniere pignolo. A ogni consegna, il magazziniere decide cosa buttare degli scaffali (forget), cosa mettere a scaffale dal nuovo carico (input) e cosa spedire ai clienti (output). Il magazzino stesso, lo stato di cella, resta ordinato e stabile: nessuno lo svuota e lo riempie da capo a ogni consegna.

Cella LSTM C(t-1) C(t) forget gate σ · cancella input gate σ · scrive output gate σ · legge × + h(t) x(t), h(t-1)

La cella LSTM: lo stato di cella C scorre in alto come un nastro trasportatore, mentre i tre gate — forget (terracotta), input (ocra) e output (teal) — regolano cosa cancellare, cosa scrivere e cosa leggere a ogni passo.

Perché i cancelli funzionano davvero

Il trucco matematico è nell’aggiornamento dello stato di cella: C(t) = f · C(t-1) + i · C̃(t), dove f è il forget gate e i l’input gate. La memoria vecchia non viene moltiplicata per una matrice di pesi e schiacciata da un’attivazione: viene solo scalata, elemento per elemento, da un coefficiente vicino a 1 se l’informazione va conservata. Quando il gradiente risale la sequenza, trova un percorso quasi lineare — quello che la letteratura chiama «constant error carousel» — e non si spegne.

La LSTM non ha una memoria migliore delle RNN semplici. Ha una burocrazia migliore: regole esplicite su cosa entra, cosa esce e cosa si conserva.

È un cambio di prospettiva istruttivo: il progresso non è venuto da più capacità, ma da più controllo. La rete impara da sola, durante il training, quando aprire e chiudere ogni cancello. Se in una frase compare «tuttavia», il forget gate può imparare a scartare l’aspettativa costruita fin lì; se compare un nome proprio, l’input gate può imparare a fissarlo nella memoria.

GRU: la stessa idea, con meno ingranaggi

Nel 2014 il gruppo di Kyunghyun Cho e Yoshua Bengio propone la Gated Recurrent Unit, una variante semplificata. La GRU elimina lo stato di cella separato e riduce i cancelli da tre a due: un update gate, che fonde in un colpo solo le funzioni di forget e input («quanto del vecchio stato tengo, quanto del nuovo accolgo»), e un reset gate, che decide quanto del passato usare nel calcolare il candidato nuovo.

Se la LSTM è il magazzino con il magazziniere pignolo, la GRU è la stessa logica applicata da una persona sola con una regola più sbrigativa: per ogni scaffale, decide una proporzione — 70% roba vecchia, 30% roba nuova — e la applica. Meno flessibile in teoria, ma con circa un quarto di parametri in meno, quindi più veloce da addestrare e meno incline all’overfitting su dataset piccoli.

Chi vince tra le due? La risposta onesta è: dipende, e spesso di poco. I confronti empirici pubblicati negli anni non hanno incoronato un vincitore netto. La prassi diffusa è partire dalla GRU quando i dati sono pochi o il budget di calcolo è stretto, e provare la LSTM quando le dipendenze da catturare sono molto lunghe.

Dove sono finite oggi

Nel 2017 i Transformer hanno sostituito le reti ricorrenti nella maggior parte dei compiti sul linguaggio: l’attention permette a ogni parola di guardare direttamente tutte le altre, senza far viaggiare l’informazione passo per passo. Ma dare LSTM e GRU per morte sarebbe sbagliato due volte.

Primo, restano usate dove le sequenze arrivano in streaming e la latenza conta: serie temporali industriali, sensoristica, sistemi embedded con memoria limitata. Una GRU processa un passo alla volta con costo costante; un Transformer deve gestire una finestra di contesto che cresce. Secondo, l’idea dei cancelli è sopravvissuta ai suoi contenitori: meccanismi di gating compaiono nelle architetture più recenti, comprese alcune famiglie di modelli a stato (come Mamba) che rivendicano esplicitamente l’eredità delle ricorrenti.

Cosa vi portate a casa

Se lavorate con dati sequenziali — log, sensori, testi, transazioni — LSTM e GRU sono ancora uno strumento pratico e spesso sufficiente, con costi di training di ordini di grandezza inferiori a un Transformer. E se il vostro interesse è concettuale, la lezione è ancora più preziosa: il problema della memoria nelle reti neurali non si è risolto aumentando la memoria, ma dando alla rete il potere di decidere cosa dimenticare. Chiunque abbia mai fatto pulizia in un archivio sa che è esattamente lì che si gioca la partita.

I commenti sono riservati agli iscritti.

Accedi per commentare