Top Qs
Chronologie
Chat
Contexte
Attention (apprentissage automatique)
De Wikipédia, l'encyclopédie libre
Remove ads
L'attention, en apprentissage automatique, est une méthode consistant à déterminer l'importance relative de chaque élément au sein d'une séquence. Ainsi, par exemple en traitement automatique des langues, cette attention est représentée par des coefficients attribués à chaque mot d'une phrase en fonction de son importance dans la phrase[1]. L'attention s'applique plus généralement à une séquence de vecteurs (plongement lexical par exemple) de longueur arbitraire.
Contrairement à des paramètres qui seraient déterminés lors de la phase d'apprentissage puis fixés lors de l'utilisation (par exemple dans un réseau de neurones à action directe), les coefficients attribués par l'attention sont calculés en fonction de l'entrée et vont donc varier en fonction des valeurs d'entrée. Ces poids peuvent être calculés séquentiellement comme dans les réseaux de neurones récurrents (RNN), ou plus récemment en parallèle comme dans les transformeurs[2],[3].
Le mécanisme d'attention des transformeurs a en particulier été conçu pour remédier aux faiblesses liées aux RNN. Dans un RNN, chaque mot hérite d'une partie de l'information du mot précédent, qui lui même hérite d'une partie de l'information du mot précédent.Ainsi, l'information récupérée d'un mot décroît exponentiellement avec le nombre de mots qui le sépare du mot actuel. Ce qui fait que ces réseaux n'ont qu'une mémoire à relativement court terme. À l'inverse, l'attention, telle qu'implémentée dans les transformeurs, permet de combiner directement l'information à différents endroits du texte[4].
Remove ads
Produit scalaire pondéré
Résumé
Contexte
La méthode d'attention la plus fréquemment utilisée utilise le calcul d'un produit scalaire pondéré (scaled dot-product attention[2]) défini comme opération sur deux séquences de vecteurs u = {ui} et v = {vj}.

Les séquences u et v peuvent par exemple être des représentations d'une phrase dans deux langues différentes, dans lesquelles chaque mot (ou lexème) est représenté par un vecteur de la séquence. L'opération d'attention consiste à calculer l'attention de u par rapport à v (les deux séquences ne jouant pas le même rôle).
On choisit pour l'opération d'attention un hyperparamètre dk correspondant à la dimension interne au modèle d'attention. En premier lieu, les vecteurs des séquences d'entrée vont être transformés par des transformation linéaires en vecteurs de dimension dk.
On obtient alors trois matrices Q,K, et V. Q est obtenue à partir de la première séquence U, et K et V à partir de la seconde. Les matrices Q (pour query, c'est-à-dire "requête") et K (pour key, c'est à dire "clé") vont alors être multipliées entre elles, de sorte que le résultat soit une matrice représentant la proximité entre les concepts de la première séquence par rapport à la seconde. Par exemple, la ligne correspondant à un mot donné dans la séquence U (par exemple chat) prendra dans chaque colonne une valeur différente pour chaque mot de la séquence V; la valeur la plus élevée de la ligne correspondant au mot (ou aux mots) s'y rapportant (comme cat) dans la séquence.
Enfin, on normalise ces coefficients ligne par ligne par une opération de softmax, ils seront ensuite appliqués à la matrice V. Mathématiquement, l'opération de produit scalaire pondéré s'écrit alors
Le résultat de l'attention associe donc à chaque élément de la séquence u une combinaison linéaire convexe des valeurs associées aux éléments de la séquence v, pondérées par la similarité entre ces mots.
Outre l'hyperparamètre dk, les paramètres qui seront déterminés lors de l'apprentissage de la couche d'attention sont les coefficients WQ,WK,WV, des matrices réalisant la transformation linéaire des entrées vers les matrices Q,K, et V.
Ces paramètres vont donc déterminer comment le bloc d'attention va représenter le calcul de la similarité (via Q et K) et la représentation sémantique (via V) pour identifier certaines relations spécifiques entre les éléments des séquences. Pour des suites de mots, cela pourrait être une proximité de sens, l'appartenance à une même catégorie grammaticale, une position dans la phrase, etc.)
Remove ads
Attention à têtes multiples
Afin d'apprendre plusieurs de ces relations simultanément, on peut regrouper des blocs d'attention en parallèle. Chaque tête est un bloc d'attention indépendant, muni de ses propres paramètres (mais tous de la même dimension interne dk); on parle d'attention à têtes multiples (multi-head attention) Les éléments en sortie de chaque tête sont concaténés puis réduits par une dernière transformation linéaire[5]. En pratique, les opérations parallèles sur les têtes multiples peuvent être réalisés en un seul produit tensoriel.
Remove ads
Auto-attention
On a défini l'attention entre deux séquences de longueurs arbitraires (et indépendantes), mais rien n'empêche d'appliquer l'attention d'une séquence envers elle-même. On parle alors d'auto-attention (self-attention) ce qui permet de représenter les relations internes à la séquence, au lieu des correspondances entre éléments des deux séquences; l'attention appliquée à deux séquences distinctes étant alors qualifiée d'attention croisée (cross-attention) s'il fallait la distinguer de l'auto-attention.
Références
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads