La Rivoluzione dell’Attenzione#
Cos’è l’attenzione nei modelli di deep learning?#
L’attenzione è un meccanismo che consente ai modelli di deep learning di focalizzarsi su specifiche parti dell’input quando producono l’output. Introdotto per migliorare le traduzioni nelle reti neurali ricorrenti (RNN), permette al modello di dare maggiore peso a parole o token rilevanti del testo in ingresso, ignorando quelli meno significativi. In altre parole, aiuta il modello a selezionare e dare priorità alle informazioni più importanti per il compito da svolgere.
Differenze tra attenzione nei Transformer e nei modelli precedenti#
Nei modelli precedenti, come RNN e LSTM, l’attenzione veniva utilizzata per affrontare la difficoltà di catturare dipendenze a lungo termine. Tuttavia, queste architetture erano sequenziali per natura, limitando la loro capacità di parallelizzazione.
I Transformer eliminano completamente la struttura ricorrente e basano l’intera architettura sull’attenzione. Questo consente al modello di processare tutte le parole di una frase contemporaneamente, permettendo una completa parallelizzazione del calcolo e un’efficienza elevata.
Meccanismo di attenzione e sue varianti#
Scaled Dot-Product Attention#
Il meccanismo di attenzione nei Transformer è basato su un metodo chiamato Scaled Dot-Product Attention. Questa formula è espressa come:
dove \(Q\) (query), \(K\) (keys) e \(V\) (values) sono matrici ottenute proiettando le rappresentazioni di input. La divisione per \(\sqrt{d_k}\) evita che i valori risultanti diventino troppo grandi, migliorando la stabilità numerica del softmax.
Multi-Head Attention#
Il Multi-Head Attention permette al modello di concentrarsi su diverse parti dell’input simultaneamente. Invece di utilizzare una sola funzione di attenzione, il Transformer impiega diverse “teste” di attenzione, ciascuna delle quali apprende a focalizzarsi su informazioni differenti. Le proiezioni risultanti sono concatenate e poste attraverso un’ulteriore trasformazione lineare:
dove \(\text{head}_i = \text{Attention}(QW_i^Q, KW_i^K, VW_i^V)\), con \(W_i^Q\), \(W_i^K\), \(W_i^V\) e \(W^O\) che sono matrici di pesi apprese.
Struttura funzionale del Transformer#
Encoder e Decoder#
Il Transformer è composto da due principali componenti: l’encoder e il decoder. L’encoder prende la sequenza di input e la rappresenta in uno spazio latente, mentre il decoder utilizza questa rappresentazione per generare l’output. Ogni encoder e decoder è suddiviso in più strati (tipicamente 6), con ogni strato di encoder composto da sub-strati di attenzione seguiti da reti neurali feed-forward.
Residual Connections e Normalization#
Un altro aspetto chiave dei Transformer sono le residual connections e i blocchi di layer normalization. Ogni sub-strato all’interno dell’encoder e del decoder è collegato tramite una connessione residuale, seguita dalla normalizzazione:
Queste connessioni aiutano a prevenire il problema della scomparsa del gradiente e a facilitare il flusso di informazioni attraverso il modello, migliorando l’addestramento delle reti più profonde.
I Transformer, grazie a queste innovazioni, sono diventati la base per numerosi modelli di stato dell’arte nel processamento del linguaggio naturale e in altre applicazioni di machine learning.