Sobes.tech
Middle — Senior

Explique la formule d'attention par produit scalaire mis à l'échelle. Pourquoi diviser par sqrt(d_k) ?

sobes.tech IA

Réponse de l'IA

L’attention par produit scalaire à échelle est un mécanisme d’attention qui calcule les coefficients de poids pour les éléments d’une séquence en fonction des produits scalaires des requêtes (Q) et des clés (K). La formule est :

[ \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right) V ]

Ici :

  • Q — matrice de requêtes,
  • K — matrice de clés,
  • V — matrice de valeurs,
  • (d_k) — dimension des vecteurs de clés.

La division par (\sqrt{d_k}) est nécessaire pour mettre à l’échelle le résultat du produit scalaire. Sans cette étape, les valeurs peuvent devenir trop grandes dans des dimensions élevées, ce qui entraîne des arguments très grands pour la fonction softmax. Cela provoque le problème des "gradients qui disparaissent" — softmax devient très "rigide", un élément reçoit presque tout le poids 1, et les autres presque 0, ce qui nuit à l’apprentissage. La mise à l’échelle stabilise les gradients et améliore la convergence du modèle.