Qu’est-ce que le mécanisme d’attention ?

Questions d’entrevue Deep learning

Seniorattentiontransformeurarchitecture

L’attention permet à chaque position d’une séquence de construire sa représentation en pondérant toutes les autres positions selon leur pertinence pour elle. Ces poids ne sont pas appris une fois pour toutes : ils sont calculés pour chaque entrée, à la volée.

Le mécanisme

Trois vecteurs sont produits pour chaque position par des projections linéaires apprises :

  • la requête (query) — ce que cette position cherche ;
  • la clé (key) — ce que cette position offre ;
  • la valeur (value) — ce qu’elle transmet si on la retient.

Le poids d’attention entre deux positions est le produit scalaire de la requête de l’une et de la clé de l’autre, normalisé par un softmax sur toutes les positions. La sortie est la moyenne des valeurs pondérée par ces poids.

L’analogie qui aide : c’est une recherche dans un dictionnaire, en version continue. Au lieu de récupérer la valeur d’une seule clé exacte, on récupère un mélange de toutes les valeurs, pondéré par la ressemblance entre la requête et chaque clé.

Le détail qu’il faut savoir justifier : la division par la racine de la dimension des clés. Sans elle, les produits scalaires croissent avec la dimension, le softmax sature, et les gradients disparaissent. C’est une question fréquente, et savoir expliquer ce facteur d’échelle distingue immédiatement.

L’attention multi-têtes

Plutôt qu’une seule attention sur toute la dimension, on en calcule plusieurs en parallèle sur des sous-espaces, puis on concatène. Chaque tête peut ainsi se spécialiser : une sur l’accord grammatical, une sur les liens de coréférence, une sur la position voisine. C’est de la capacité de représentation gagnée pour un coût de calcul identique, puisque chaque tête travaille sur une dimension réduite.

Ce qu’elle apporte face à un réseau récurrent

  • Le chemin entre deux positions est de longueur 1. Un LSTM doit propager l’information pas à pas ; l’attention relie directement le premier mot au dernier. Les dépendances longues cessent d’être un problème d’optimisation.
  • Le calcul se parallélise. Toutes les positions sont traitées en une multiplication matricielle, là où un récurrent est séquentiel par construction. C’est ce qui a rendu possible l’échelle des modèles actuels.
  • Elle est interprétable, partiellement. On peut visualiser sur quoi chaque tête se concentre — avec prudence, car les poids d’attention n’expliquent pas fidèlement la décision du modèle.

Le coût, qui est sa limite structurelle

La complexité est quadratique en longueur de séquence : doubler le contexte quadruple le calcul et la mémoire. C’est le verrou central de l’extension des fenêtres de contexte, et la raison d’être de toute une littérature — attention creuse, attention linéaire, FlashAttention qui réorganise les calculs pour éviter de matérialiser la matrice complète, et les architectures à espace d’états comme Mamba.

Les trois variantes à savoir distinguer : l’auto-attention, où requêtes et clés viennent de la même séquence ; l’attention croisée, où les requêtes viennent du décodeur et les clés de l’encodeur ; et l’attention causale, masquée pour qu’une position ne voie que le passé — c’est celle des modèles de génération, et le masque est ce qui les empêche de tricher en lisant la réponse.

Toutes les questions Deep learning