Definizione
L’attention mechanism è un componente di reti neurali che permette al modello di pesare selettivamente l’importanza relativa di diverse parti dell’input quando elabora ogni posizione. Invece di trattare uniformemente l’intera sequenza, l’attention consente al modello di “focalizzarsi” su token o features rilevanti, calcolando distribuzioni di probabilità su dipendenze.
Formalmente, l’attention computa una media pesata dei valori (values) di input, dove i pesi sono determinati dalla similarità tra una query e le chiavi (keys) tramite una funzione di scoring.
Come funziona
Il meccanismo di attention segue il paradigma Query-Key-Value introdotto da Vaswani et al. (2017):
Scaled Dot-Product Attention:
- Proiezioni lineari: l’input viene proiettato in tre spazi: Query (Q), Key (K), Value (V) tramite matrici apprendibili W^Q, W^K, W^V
- Scoring: la similarità tra query e keys viene calcolata come prodotto scalare: score = Q · K^T
- Normalizzazione: gli score vengono normalizzati per stabilità numerica: score = score / sqrt(d_k)
- Softmax: i score normalizzati vengono convertiti in probabilità: attention_weights = softmax(score)
- Output ponderato: il risultato è una media pesata dei values: output = attention_weights · V
Questo calcolo avviene in parallelo per diverse “teste” di attention (multi-head attention), permettendo al modello di attendere a pattern diversi simultaneamente (es. una testa può attendere alle dipendenze sintattiche, un’altra alle relazioni semantiche).
Varianti e Architetture
Self-Attention: il modello attende alle proprie posizioni precedenti. Usato nei Transformer per catturare dipendenze intra-sequenza.
Cross-Attention: il modello attende a una sequenza diversa (es. encoder output in un’architettura encoder-decoder). Usato in modelli seq2seq come il traduttore neurologico originale.
Multi-Head Attention: k teste in parallelo con diverse proiezioni lineari. Consente di apprendere pattern complementari su sottospazi diversi (es. posizionale vs. semantico).
Sparse Attention: attenzione a un sottoinsieme selezionato di posizioni invece che a tutte. Riduce la complessità computazionale O(n²) a O(n log n) per sequenze lunghe. Implementazioni: Longformer, BigBird.
Flash Attention: ottimizzazione computazionale che riduce l’accesso alla memoria principale tramite algoritmi block-wise, migliorando la latenza senza cambiare semantica.
Casi d’uso e Applicazioni
Modelli generativi: nei Transformer auto-regressivi (GPT, Claude, Gemini), l’attention permettte la generazione coerente di testo lungo, mantenendo dipendenze a distanza.
Machine translation: l’attention cross-layer consente all’encoder di “tradurre” efficacemente focalizzandosi sulle parole rilevanti del testo sorgente.
Question answering: l’attention identifica quale parte del testo contiene la risposta a una domanda, facilitando l’estrazione.
Vision: negli Vision Transformer, l’attention operando su patch di immagini consente di catturare relazioni spaziali complesse, ottenendo performance comparabili o superiori a CNN.
Considerazioni pratiche
Complessità computazionale: l’attention ha complessità O(n²) in lunghezza della sequenza. Per sequenze di 32K token, richiede più memoria e tempo di inference significativo. Le ottimizzazioni come Flash Attention sono diventate critiche per deployment.
Context window: i modelli moderni hanno context window fino a 1M token, ma l’attention piena su tutte le posizioni rimane un constraint. Strategie como sliding window attention o sparse patterns sono necessarie per scalare.
Training vs. inference: durante il training, l’attention ha accesso alla sequenza completa (training parallelizable). Durante inference, ogni token nuovo richiede ricalcolo dell’attention history, rendendo la generazione token-per-token il collo di bottiglia.
KV-cache: per ottimizzare inference, i modelli mantengono in cache i key e value precedenti, evitando ricalcolo. Aumenta l’occupazione di memoria ma riduce drasticamente la latenza.
Fraintendimenti comuni
”L’attention permette al modello di ‘capire’ relazioni”
L’attention è un meccanismo statistico-algebrico, non cognitivo. Computa pesi basandosi su similarità geometrica nello spazio embedding, non su “comprensione”. Il modello potrebbe attendere a correlazioni spurie.
”Attention su token lontani è sempre migliore”
No. La posizione relativa conta (inductive bias debole nei Transformer). Token lontani hanno meno segnale intrinseco, e aggiungere più dipendenze può introdurre rumore. La lunghezza ottimale del contesto dipende dal task.
”Self-attention è sempre preferibile”
Non sempre. Per task ben-definiti con schema relazionale chiaro (es. parsing), meccanismi strutturati (graph neural networks) possono essere più efficienti e interpretabili.
Termini correlati
- Transformer: architettura che usa attention come componente centrale
- LLM: modelli che dipendono interamente da stacked attention layers
- Embeddings: le query, key, value sono proiezioni di embedding
- Fine-tuning: adattamento dei parametri di attention a nuovi task
Fonti
- Vaswani, A. et al. (2017). Attention Is All You Need. NeurIPS
- Devlin, J. et al. (2018). BERT: Pre-training of Deep Bidirectional Transformers. arXiv:1810.04805
- Raffel, C. et al. (2019). Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer. JMLR
- Dao, T. et al. (2022). FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness. arXiv