Sobes.tech
Middle — Senior

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.