Corso
Il linguaggio è fondamentale per la comunicazione umana e automatizzarlo può portare enormi benefici. Per anni i modelli di elaborazione del linguaggio naturale (NLP) hanno faticato a cogliere efficacemente le sfumature del linguaggio umano finché non è arrivata una svolta — il meccanismo di attention.
Il meccanismo di attention è stato introdotto nel 2017 nel paper Attention Is All You Need. A differenza dei metodi tradizionali che trattano le parole in isolamento, l'attention assegna pesi a ogni parola in base alla sua rilevanza per il compito corrente. Questo consente al modello di catturare dipendenze a lungo raggio, analizzare contemporaneamente il contesto locale e globale e risolvere le ambiguità concentrandosi sulle parti più informative della frase.
Considera la frase: "Miami, soprannominata la 'magic city', ha splendide spiagge di sabbia bianca." I modelli tradizionali elaborerebbero ogni parola in sequenza. Il meccanismo di attention, invece, funziona più come il nostro cervello. Assegna un punteggio a ogni parola in base alla sua rilevanza per comprendere il focus attuale. Parole come "Miami" e "spiagge" diventano più importanti quando si considera la località, quindi ricevono punteggi più alti.
In questo articolo forniremo una spiegazione intuitiva del meccanismo di attention. Puoi anche trovare un approccio più tecnico in questo tutorial su come funzionano i transformer. Iniziamo!
Modelli linguistici tradizionali
Iniziamo il nostro percorso per capire l'attenzione considerando il contesto più ampio dei modelli linguistici.
Le basi dell'elaborazione del linguaggio
I modelli linguistici elaborano il linguaggio cercando di comprenderne la struttura grammaticale (sintassi) e il significato (semantica). L'obiettivo è produrre linguaggio con sintassi e semantica corrette e pertinenti all'input.
I modelli linguistici si affidano a una serie di tecniche per scomporre e comprendere il testo:
- Parsing: Questa tecnica analizza la struttura della frase, assegnando a ogni parola la parte del discorso (nome, verbo, aggettivo ecc.) e identificando le relazioni grammaticali.
- Tokenizzazione: Il modello suddivide le frasi in singole parole (token), creando i mattoni per svolgere l'analisi semantica (puoi approfondire la tokenizzazione in un articolo dedicato).
- Stemming: Questo passaggio riduce le parole alla loro radice (ad esempio, "walking" diventa "walk"). In questo modo il modello tratta in modo coerente parole simili.
- Riconoscimento di entità ed estrazione di relazioni: Queste tecniche lavorano insieme per identificare e categorizzare entità specifiche (come persone o luoghi) nel testo e scoprirne le relazioni.
- Word embedding: Infine, il modello crea una rappresentazione numerica per ogni parola (un vettore), che ne cattura il significato e le connessioni con le altre parole. Questo consente al modello di elaborare il testo ed eseguire compiti come traduzione o sintesi.
I limiti dei modelli tradizionali
Pur avendo aperto la strada ai progressi dell'NLP, i modelli tradizionali hanno incontrato difficoltà nel cogliere appieno le complessità del linguaggio naturale:
- Contesto limitato: Spesso rappresentavano il testo come un insieme di token isolati, senza catturare il contesto più ampio di una frase. Questo rendeva difficile capire come parole distanti potessero essere correlate.
- Finestra di contesto breve: Il contesto considerato durante l'elaborazione era spesso limitato. Ciò impediva di catturare dipendenze a lungo raggio, in cui parole lontane in una frase si influenzano a vicenda.
- Problemi di disambiguazione: Faticavano a disambiguare parole con più significati basandosi solo sulle parole circostanti. Mancava la capacità di considerare il contesto più ampio per stabilire il significato inteso.
- Sfide di generalizzazione: A causa dei limiti dell'architettura di rete e della quantità di dati di addestramento disponibili, questi modelli spesso faticavano ad adattarsi a situazioni nuove o non viste (dati out-of-domain).
Che cos'è l'attenzione nei modelli linguistici?
A differenza dei modelli tradizionali che trattano le parole in isolamento, l'attenzione consente ai modelli linguistici di considerare il contesto. Vediamo di cosa si tratta!
Attention is all you need
La svolta per il campo dell'NLP è arrivata nel 2017, quando il paper Attention Is All You Need ha introdotto il meccanismo di attention.
Questo paper ha proposto una nuova architettura chiamata transformer. A differenza di metodi più datati come le reti neurali ricorrenti (RNN) e le reti neurali convoluzionali (CNN), i transformer utilizzano meccanismi di attention.
Risolti molti dei problemi dei modelli tradizionali, i transformer (e l'attenzione) sono diventati la base di molti dei più popolari large language model (LLM) odierni, come GPT-4 di OpenAI e ChatGPT.
Come funziona l'attenzione?
Consideriamo la parola “bat” in queste due frasi:
- "Swing the bat!"
- "The bat flew at night."
I metodi di embedding tradizionali assegnano a “bat” una singola rappresentazione vettoriale, limitando la capacità di distinguerne il significato. I meccanismi di attention, invece, affrontano il problema calcolando pesi dipendenti dal contesto.
Analizzano le parole circostanti ("swing" rispetto a "flew") e calcolano punteggi di attention che determinano la rilevanza. Questi punteggi vengono poi usati per pesare i vettori di embedding, ottenendo rappresentazioni distinte per "bat" come attrezzo sportivo (peso alto su "swing") o come animale volante (peso alto su "flew").
Questo permette al modello di catturare le sfumature semantiche e migliorare la comprensione.

L'importanza dell'attenzione negli LLM
Ora, partendo dall'intuizione che abbiamo costruito sull'attenzione, vediamo come questo meccanismo vada oltre i tradizionali word embedding per migliorare la comprensione del linguaggio. Esamineremo anche alcune applicazioni reali dell'attenzione.
Oltre i tradizionali word embedding
Tecniche tradizionali di word embedding, come Word2Vec e GloVe, rappresentano le parole come vettori a dimensione fissa in uno spazio semantico basato sulle statistiche di co-occorrenza in un ampio corpus di testo.
Sebbene questi embedding catturino alcune relazioni semantiche tra parole, mancano di sensibilità al contesto. Ciò significa che la stessa parola avrà lo stesso embedding a prescindere dal contesto in cui appare in una frase o in un documento.
Questa limitazione crea problemi nei compiti che richiedono una comprensione sfumata del linguaggio — soprattutto quando le parole assumono significati diversi in base al contesto. Il meccanismo di attention risolve questo problema consentendo ai modelli di concentrarsi selettivamente sulle parti rilevanti delle sequenze in input, introducendo così sensibilità al contesto nel processo di apprendimento delle rappresentazioni.
Migliorare la comprensione del linguaggio
L'attenzione permette ai modelli di comprendere sfumature e ambiguità del linguaggio, rendendoli più efficaci nell'elaborazione di testi complessi. Alcuni dei suoi principali vantaggi sono:
- Pesi dinamici: Consente ai modelli di regolare dinamicamente l'importanza di certe parole in base alla rilevanza nel contesto corrente.
- Dipendenze a lungo raggio: Rende possibile catturare relazioni tra parole poste a grande distanza.
- Comprensione contestuale: Oltre a fornire rappresentazioni contestualizzate, aiuta a risolvere ambiguità e rende i modelli adattabili a vari compiti a valle.
Applicazioni e impatti
L'impatto dei modelli linguistici basati sull'attenzione è stato enorme. Migliaia di persone usano applicazioni costruite su questi modelli. Alcune tra le più diffuse sono:
- Traduzione automatica: Modelli come Google Traduttore sfruttano l'attenzione per concentrarsi sulle parti rilevanti della frase sorgente e produrre traduzioni più accurate dal punto di vista contestuale.
- Riassunto di testi: Con l'attenzione si possono individuare frasi o espressioni importanti in un documento, facilitando sintesi più informative e concise.
- Question answering: L'attenzione aiuta i modelli di deep learning ad allineare le parole della domanda con le parti pertinenti del contesto, abilitando un'estrazione accurata delle risposte.
- Analisi del sentiment: I modelli di sentiment analysis impiegano l'attenzione per catturare le parole portatrici di sentimento e la loro rilevanza contestuale.
- Generazione di contenuti: I modelli di generazione di contenuti utilizzano l'attenzione per produrre testo coerente e pertinente al contesto, garantendo che il testo generato resti coerente con l'input.
Meccanismi di attention avanzati
Ora che abbiamo più familiarità con il funzionamento dell'attenzione, vediamo self-attention e multi-head attention.
Self-attention e multi-head attention
La self-attention consente a un modello di prestare attenzione a diverse posizioni della propria sequenza di input per calcolarne una rappresentazione. Permette di pesare l'importanza di ciascuna parola nella sequenza rispetto alle altre, catturando le dipendenze tra parole diverse nell'input. Il meccanismo ha tre elementi principali:
- Query: È un vettore che rappresenta il focus o la domanda corrente che il modello ha su una parola specifica nella sequenza. È come una torcia che il modello punta su una parola per capirne il significato nel contesto.
- Key: Ogni parola ha un'etichetta o punto di riferimento — il vettore key funge da questa etichetta. Il modello confronta il vettore query con tutti i vettori key per vedere quali parole sono più rilevanti per rispondere alla domanda sulla parola focalizzata.
- Value: Questo vettore contiene le informazioni effettive associate a ciascuna parola. Una volta identificate le parole rilevanti tramite i confronti con le key, il modello recupera i corrispondenti vettori value per ottenere i dettagli necessari alla comprensione.
I punteggi di attention possono essere calcolati effettuando un prodotto scalare scalato tra i vettori query e key. Infine, questi punteggi vengono moltiplicati per i vettori value per restituire una somma pesata dei value.
La multi-head attention è un'estensione della self-attention. Migliora la capacità del modello di catturare informazioni contestuali eterogenee prestando contemporaneamente attenzione a diverse parti della sequenza di input. Ciò avviene eseguendo più operazioni di self-attention in parallelo, ciascuna con il proprio set di trasformazioni apprese di query, key e value.
La multi-head attention porta a una comprensione contestuale più fine, maggiore robustezza ed espressività.
Attenzione: sfide e soluzioni
Sebbene l'implementazione del meccanismo di attention offra numerosi vantaggi, comporta anche una serie di sfide che la ricerca in corso può potenzialmente affrontare.
Complessità computazionale
I meccanismi di attention richiedono il calcolo delle somiglianze a coppie tra tutti i token nella sequenza di input, con una complessità quadratica rispetto alla lunghezza della sequenza. Questo può essere costoso dal punto di vista computazionale, soprattutto per sequenze lunghe.
Sono state proposte varie tecniche per ridurre la complessità computazionale, come meccanismi di attention sparsa, metodi di attention approssimata e meccanismi efficienti come il locality-sensitive hashing del modello Reformer.
Overfitting dell'attenzione
I meccanismi di attention possono sovradattarsi a informazioni rumorose o irrilevanti nella sequenza di input, portando a prestazioni subottimali su dati non visti.
Tecniche di regolarizzazione, come dropout e layer normalization, possono aiutare a prevenire l'overfitting nei modelli basati sull'attenzione. Inoltre, sono state proposte tecniche come attention dropout e attention masking per incoraggiare il modello a concentrarsi sulle informazioni rilevanti.
Interpretabilità e spiegabilità
Comprendere come operino i meccanismi di attention e interpretarne l'output può essere difficile, soprattutto in modelli complessi con più layer e teste di attention. Questo solleva preoccupazioni sull'etica di questa nuova tecnologia — puoi saperne di più sull'etica dell'IA nel nostro corso o ascoltando questo podcast con la ricercatrice di IA Joy Buolamwini.
Sono stati sviluppati metodi per visualizzare i pesi di attention e interpretarne il significato, così da aumentare l'interpretabilità dei modelli basati sull'attenzione. Inoltre, tecniche come l'attribuzione dell'attenzione mirano a identificare il contributo dei singoli token alle previsioni del modello, migliorandone la spiegabilità.
Scalabilità e vincoli di memoria
I meccanismi di attention consumano risorse significative di memoria e calcolo, risultando difficili da scalare a modelli e dataset più grandi.
Tecniche per scalare i modelli basati sull'attenzione, come attention gerarchica, attention efficiente in memoria e attention sparsa, mirano a ridurre il consumo di memoria e il carico computazionale mantenendo le prestazioni del modello.
Attenzione: riepilogo
Ricapitoliamo quanto abbiamo imparato finora, concentrandoci sulle differenze tra modelli tradizionali e basati sull'attenzione:
|
Caratteristica |
Modelli basati sull'attenzione |
Modelli NLP tradizionali |
|
Rappresentazione delle parole |
Vettori di embedding sensibili al contesto (pesati dinamicamente in base ai punteggi di attention) |
Vettori di embedding statici (un singolo vettore per parola, senza considerare il contesto) |
|
Focus |
Considera le parole circostanti per il significato (guardando al contesto più ampio) |
Tratta ogni parola in modo indipendente |
|
Punti di forza |
Cattura dipendenze a lungo raggio, risolve ambiguità, comprende le sfumature |
Più semplice, meno costoso computazionalmente |
|
Punti deboli |
Può essere costoso computazionalmente |
Capacità limitata di comprendere linguaggio complesso, fatica con il contesto |
|
Meccanismo sottostante |
Reti encoder-decoder con attention (varie architetture) |
Tecniche come parsing, stemming, named entity recognition, word embedding |
Conclusione
In questo articolo abbiamo esplorato il meccanismo di attention, un'innovazione che ha rivoluzionato l'NLP. A differenza dei metodi precedenti, l'attenzione consente ai modelli linguistici di concentrarsi sulle parti cruciali di una frase, considerando il contesto. Questo permette di cogliere linguaggio complesso, connessioni a lungo raggio e ambiguità lessicali.
Puoi continuare a imparare sul meccanismo di attention:
- Inquadrando il contesto più ampio con il nostro corso Large Language Models (LLMs).
- Costruendo un transformer con PyTorch.

