Spiega la formula dell'attenzione a prodotto scalare scalata. Perché dividere per sqrt(d_k)?
sobes.tech AI
Risposta dell'AI
L'attenzione a prodotto scalare scalato è un meccanismo di attenzione che calcola i coefficienti di peso per gli elementi di una sequenza in base ai prodotti scalari di query (Q) e chiavi (K). La formula è:
[ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V ]
Qui:
- Q — matrice di query,
- K — matrice di chiavi,
- V — matrice di valori,
- (d_k) — dimensione dei vettori di chiave.
La divisione per (\sqrt{d_k}) è necessaria per scalare il risultato del prodotto scalare. Senza questo passaggio, i valori possono diventare troppo grandi in dimensioni elevate, portando a argomenti molto grandi per la funzione softmax. Questo causa il problema dei "gradienti che svaniscono" — softmax diventa molto "rigido", un elemento riceve quasi tutto il peso 1, e gli altri quasi 0, peggiorando l'addestramento. La scalatura stabilizza i gradienti e migliora la convergenza del modello.