Ero lì la settimana scorsa che cercavo di ricordarmi il nome di una persona. Sapete quando ce l'avete sulla punta della lingua ma proprio non vi viene? Niente da fare.
Allora ho cominciato a ragionare per iniziali. “Iniziava per M? No, aspetta... MA? Sì, MA qualcosa. MAN? MANUEL! Ecco, era Manuel.”
Quando ho collegato anche il possibile cognome, la memoria è scattata subito. È l’effetto dei vincoli aggiuntivi nei modelli di memoria associativa: più elementi noti inserisci, più il sistema converge verso uno stato stabile — quello giusto.
Praticamente il mio cervello stava facendo un pattern completion progressivo. Gli davo sempre più informazione (M → MA → MAN) finché non è scattato il click.
Questo fenomeno si chiama “tip of the tongue” (TOT) ed è studiato dai neuroscienziati da decenni.
Si verifica quando hai accesso parziale a un ricordo - tipo le iniziali o il numero di sillabe - ma non riesci a recuperare l'informazione completa. È un classico esempio di come la memoria funzioni in modo distribuito e associativo: il nostro cervello non ha una cartella con scritto “nomi che iniziano per MA”, ma una rete di neuroni che si attivano insieme quando sentono o pensano a certi pattern.
Quindi, ho pensato: “questo lo posso modellare con una rete neurale” e ho messo a punto un autoencoder che fa esattamente quello che ha fatto il mio cervello.
Gli dai poche iniziali di un nome e lui prova a ricostruire il nome completo, attraverso un bottleneck - un collo di bottiglia di neuroni che forza la rete a comprimere l'informazione essenziale, proprio come fa l'ippocampo quando consolida i ricordi.
Il bello è che funziona proprio come l'ho vissuto io: più lettere gli dai, più si restringe il campo verso un “attrattore” specifico. Questo concetto degli attractors viene dalla teoria delle reti neurali di Hopfield (anni '80): la memoria è uno stato stabile in cui converge la rete quando le dai un input parziale o rumoroso. Tipo "M____" attiva più stati possibili, ma "MAN__" converge rapidamente verso MANUEL o MANILO.
Ho usato un lessico di nomi italiani e l'ho allenato dandogli versioni incomplete a caso - simulando il rumore e l'incompletezza che sperimentiamo quando cerchiamo di recuperare un ricordo.
Alcuni neuroscienziati sostengono che il cervello funzioni proprio così: continuamente prevede, ricostruisce, riempie i vuoti di memori basandosi su pattern appresi.
La rete non ti dà solo UNA risposta, ma calcola una distribuzione di probabilità per ogni candidato. Proprio come fa il cervello quando fa “mmm potrebbe essere questo... o forse quest'altro…”. Non è un database dove cerchi la chiave esatta, è un sistema che valuta la plausibilità di diverse opzioni basandosi su somiglianze parziali.
Questo è esattamente il modello di content-addressable memory che i neuroscienziati usano per descrivere come funziona l'ippocampo e la corteccia: non recuperi i ricordi per indirizzo ma per contenuto. Gli dai un pezzo dell'informazione e il sistema ricostruisce il resto.
Ho usato PyTorch, un MLP con bottleneck (96 neuroni), CrossEntropy per posizione.
Niente di complicato, 200 righe di codice. Ma il principio è lo stesso delle teorie sulla memoria associativa che troviamo nei paper di neuroscienze computazionali.
Ora ogni volta che non mi ricordo un nome, penso: “okay, sto facendo un forward pass nella mia rete neurale biologica con input parziale, aspettando che converga verso un attrattore stabile”.
Il bello delle neuroscienze computazionali è che a volte scopri che i modelli matematici che usiamo per l'IA possiedono davvero qualcosa di come funziona il nostro cervello.
