Attention (apprentissage automatique)
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].
Applications
L'attention pondère l'importance des différentes caractéristiques d'« entrée », de manière à ensuite pouvoir concentrer l'analyse sur les caractéristiques les plus pertinentes sur le moment (c'est-à-dire en fonction de la tâche à accomplir et de la demande), pour, in fine, aboutir à un traitement plus rapide, efficace (plus économe en ressource de traitement de l'information) et précis de jeux de données complexes, y compris à grande échelle[5],[6]. Le mécanisme d'attention, bioinspiré du fonctionnement des cerveaux animaux et humains, joue un rôle majeur dans les progrès récents des modèles d'apprentissage profond (par exemple en termes de traduction automatique fluide ou de description automatique d'image). Il est une innovation clé de l'architecture « Transformer » introduite par Google Brain en 2017[5],[7].
L'attention permet par exemple au système d'IA de se concentrer sur des zones spécifiques d'une image pour générer des descriptions de plus en plus pertinentes et cohérentes en se focalisant sur des objets, personnes, détails importants ou sur les actions visibles dans l'image. Cela permet de transcrire avec plus de précision un signal audio en texte, en tenant mieux compte du contexte et de la prononciation. L'attention permet d'améliorer la compression, le filtrage ou la restauration de signaux audio ou vidéo, en se basant sur les caractéristiques les plus importantes du signal[7]. Dans l'analyse de données médicales (radiographie, indicateurs physiologiques ou données génétiques), l'attention permet de mieux détecter des anomalies, diagnostiquer des maladies ou prédire des risques[7]. Elle peut également extraire les informations a priori les plus importantes pour le demandeur, à partir d'un graphique, une piste-son, une vidéo, d'une phrase ou d'un texte[5]. Des travaux ont cherché à rendre ces mécanismes d'attention eux-mêmes plus « intelligents » et adaptatifs, notamment dans le contexte de données à grande échelle et d'espaces d'entrée de grande dimension (big data, en particulier quand les enjeux sont vitaux, par exemple pour le diagnostic ou le soin médical ou du véhicule autonome…), avec par exemple des systèmes dits d'« attention clairsemée » (sparse attention) et des systèmes d'« approximations de rang inférieur » (low-rank attention approximation), qui visent à alléger la complexité de calcul sans sacrifier les performances[7].
Produit scalaire pondéré
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, chacune ayant dk colonnes. 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. Le résultat sera 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.)
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[8]. En pratique, les opérations parallèles sur les têtes multiples peuvent être réalisés en un seul produit tensoriel.
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
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Attention (machine learning) » (voir la liste des auteurs).
- ↑ R. N. Rathi et A. Mustafi, « The importance of Term Weighting in semantic understanding of text: A review of techniques », Multimedia Tools and Applications, vol. 82, no 7, , p. 9761–9783 (ISSN 1380-7501, PMID 35437420, PMCID 9007265, DOI 10.1007/s11042-022-12538-3, lire en ligne, consulté le )
- Ashish Vaswani, Noam Shazeer, Niki Parmar et Jakob Uszkoreit, Attention Is All You Need, (DOI 10.48550/arXiv.1706.03762, lire en ligne)
- ↑ Aayush Mittal, « Attention : révolutionner l'efficacité des transformateurs », sur Unite.AI, (consulté le )
- ↑ Jay Alammar, « Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention) », sur jalammar.github.io (consulté le )
- Pirmin Lemberger, « Le mécanisme d'attention en IA », sur groupeonepoint.com (consulté le ).
- ↑ (en) Calvin Wankhede, « What is Google Gemini: The next-gen language model that can do it all », sur Android Authority, (consulté le ).
- Marcin Frąckiewicz, « IA et mécanismes d'attention » [archive du ], sur TS2 SPACE, (consulté le ).
- ↑ Jay Alammar, « The Illustrated Transformer », sur jalammar.github.io (consulté le )
- Portail de l’intelligence artificielle