Réseau à autoattention
Un réseau à autoattention, souvent désigné par le terme anglais « Self-Attention Network », est une architecture de réseau de neurones profond qui utilise un mécanisme appelé autoattention. Ce mécanisme permet au modèle d’évaluer l’importance relative des différentes parties d’une même séquence d’entrée (par exemple, les mots d’une phrase ou les patchs d’une image) lors du traitement de chaque partie individuelle. Il calcule des représentations contextuelles pour chaque élément de la séquence en agrégeant des informations provenant de l’ensemble de la séquence, pondérées par des scores d’attention appris.
Les concepts fondamentaux reposent sur le calcul dynamique de relations entre les éléments d’une séquence. Pour chaque élément de la séquence d’entrée, le mécanisme d’autoattention calcule trois vecteurs : une Requête (Query, Q), une Clé (Key, K) et une Valeur (Value, V). Ces vecteurs sont typiquement obtenus en multipliant la représentation de l’élément (son embedding) par des matrices de poids distinctes, apprises durant l’entraînement. L’idée centrale est de déterminer « à quel point » chaque élément (via sa Requête Q) doit « prêter attention » à tous les autres éléments de la séquence (représentés par leurs Clés K). Ce degré d’attention est calculé sous forme de score, le plus souvent par un produit scalaire entre le vecteur Q d’un élément et le vecteur K de chaque autre élément (y compris lui-même). Ces scores sont ensuite mis à l’échelle (pour stabiliser l’entraînement) et passés à travers une fonction Softmax. La sortie du Softmax donne des poids d’attention, qui sont des valeurs positives dont la somme est égale à 1. Finalement, la nouvelle représentation de chaque élément est calculée comme une somme pondérée des vecteurs Valeur (V) de tous les éléments de la séquence, où les poids sont les scores d’attention calculés. Ainsi, chaque élément de sortie contient des informations agrégées de toute la séquence, pondérées par la pertinence calculée dynamiquement. Une extension courante est l’attention multi-têtes (Multi-Head Attention), qui applique plusieurs mécanismes d’autoattention en parallèle avec des matrices de poids différentes, permettant au modèle de capturer différents types de relations et de dépendances simultanément.
L’importance du réseau à autoattention est considérable, particulièrement depuis l’introduction du modèle Transformer en 2017. Avant cela, le traitement de séquences reposait largement sur des réseaux de neurones récurrents (RNN) et leurs variantes comme les LSTM et GRU. Bien qu’efficaces, ces modèles traitent les séquences de manière séquentielle, ce qui limite leur capacité à être parallélisés et peut entraîner des difficultés dans la capture des dépendances à très longue portée (problème de l’oubli ou de l’explosion du gradient). L’autoattention a permis de surmonter ces limitations. En calculant les relations entre tous les éléments simultanément, elle permet une parallélisation massive des calculs. De plus, comme chaque élément peut directement « regarder » n’importe quel autre élément de la séquence, quelle que soit la distance, la capture des dépendances à longue portée devient intrinsèquement plus facile. Cet avantage a conduit à des avancées spectaculaires, propulsant les performances de l’état de l’art dans de nombreuses tâches, notamment en traitement du langage naturel (NLP), et influençant désormais d’autres domaines comme la vision par ordinateur.
Les applications pratiques des réseaux à autoattention sont nombreuses et en constante expansion. En traitement du langage naturel, ils sont au cœur des modèles les plus performants pour la traduction automatique (comme les modèles utilisés par Google Translate ou DeepL), la génération de texte (les modèles de la famille GPT d’OpenAI capables de rédiger des textes cohérents, de répondre à des questions, de coder), la compréhension de texte (BERT et ses dérivés pour l’analyse de sentiments, la classification de documents, l’extraction d’informations), et la reconnaissance vocale. Par exemple, un modèle de traduction basé sur l’autoattention peut déterminer qu’un pronom dans une phrase fait référence à un nom mentionné bien plus tôt, en attribuant un poids d’attention élevé entre le pronom et ce nom. En vision par ordinateur, les Vision Transformers (ViT) utilisent l’autoattention pour traiter des patchs d’une image comme une séquence, obtenant des résultats compétitifs voire supérieurs aux réseaux convolutifs (CNN) traditionnels sur des tâches comme la classification d’images ou la détection d’objets. D’autres applications incluent les systèmes de recommandation, l’analyse de séries temporelles, et la bio-informatique pour l’étude des séquences d’ADN ou de protéines.
Il existe plusieurs nuances et variations du concept d’autoattention. La forme la plus courante est l’attention par produit scalaire mis à l’échelle (Scaled Dot-Product Attention), mais d’autres mécanismes existent, comme l’attention additive. Une distinction importante est faite entre l’autoattention, où les Requêtes, Clés et Valeurs proviennent de la même séquence, et l’attention croisée (Cross-Attention), où les Requêtes proviennent d’une séquence (par exemple, la sortie du décodeur) tandis que les Clés et Valeurs proviennent d’une autre (par exemple, la sortie de l’encodeur dans un modèle de traduction). Face au coût computationnel quadratique de l’autoattention standard, plusieurs variantes ont été proposées pour améliorer l’efficacité sur de longues séquences : l’attention clairsemée (Sparse Attention) ne calcule les scores que pour un sous-ensemble de paires d’éléments, l’attention locale limite l’attention à une fenêtre contextuelle, et des approches comme l’attention linéaire cherchent à approximer le mécanisme avec une complexité linéaire. L’interprétabilité des poids d’attention est aussi une nuance : bien qu’intuitivement, des poids élevés indiquent une forte influence, des recherches ont montré que cette interprétation directe peut être trompeuse et ne reflète pas toujours fidèlement le raisonnement interne du modèle.
Plusieurs concepts sont étroitement liés à l’autoattention. Le plus important est le modèle Transformer, qui est une architecture complète construite autour de couches d’autoattention multi-têtes et de couches feed-forward. Le mécanisme d’attention lui-même est un concept plus général, dont l’autoattention est une instance spécifique. Les architectures précédentes comme les RNN, LSTM et GRU sont souvent comparées aux réseaux à autoattention, représentant l’approche séquentielle qu’ils ont largement supplantée pour de nombreuses tâches. Les embeddings (représentations vectorielles denses) sont essentiels car ils constituent l’entrée du mécanisme d’attention. Les encodages positionnels (Positional Embeddings) sont nécessaires dans les architectures basées uniquement sur l’autoattention (comme le Transformer) pour injecter l’information sur l’ordre des éléments, car l’autoattention elle-même est insensible à la position. Le Traitement du Langage Naturel (NLP) et la Vision par Ordinateur sont les principaux domaines d’application. Bien qu’il n’y ait pas de synonymes parfaits, « mécanisme d’autoattention » ou « couche d’autoattention » désignent la composante clé. Il n’y a pas d’antonyme direct, mais on peut opposer l’autoattention aux modèles traitant les éléments localement (CNN classiques) ou séquentiellement (RNN purs) sans accès direct à l’ensemble du contexte global à chaque étape.
L’origine de l’autoattention moderne est généralement attribuée à l’article « Attention Is All You Need » publié par Vaswani et ses collègues de Google en 2017. Cet article a introduit l’architecture Transformer, qui reposait entièrement sur des mécanismes d’autoattention et d’attention croisée, éliminant le besoin de récurrence ou de convolution dans les couches principales du modèle encodeur-décodeur pour la traduction automatique. L’idée d’attention elle-même était déjà présente dans le domaine du NLP, notamment avec les travaux de Bahdanau et al. (2014) et Luong et al. (2015) qui l’avaient introduite pour améliorer les modèles RNN encodeur-décodeur en traduction. Cependant, ces premières formes d’attention étaient souvent utilisées conjointement avec des RNN. La contribution majeure de Vaswani et al. a été de démontrer que l’attention seule, et plus spécifiquement l’autoattention, était suffisante pour atteindre des performances de pointe, ouvrant la voie à des modèles beaucoup plus parallélisables et performants sur les dépendances longues. Depuis 2017, l’évolution a été fulgurante avec l’apparition de modèles pré-entraînés massifs comme BERT, GPT, T5, et leur adaptation réussie à la vision avec les Vision Transformers (ViT) en 2020.
Les avantages des réseaux à autoattention sont nombreux. Leur capacité à modéliser les dépendances à longue portée est un atout majeur par rapport aux RNN. Leur haut degré de parallélisation permet un entraînement significativement plus rapide sur le matériel moderne (GPU, TPU) que les modèles séquentiels. Ils offrent une grande flexibilité et ont démontré leur efficacité sur diverses modalités de données (texte, image, audio). Cependant, ils présentent aussi des inconvénients et des défis. La limitation principale est la complexité computationnelle et mémoire, qui est quadratique (O(n^2)) par rapport à la longueur de la séquence (n). Cela rend difficile l’application directe de l’autoattention standard à des séquences très longues (par exemple, des documents entiers, des vidéos haute résolution, ou de longues séries temporelles). Bien que des variantes plus efficaces existent, elles peuvent impliquer des compromis en termes de performance ou de complexité d’implémentation. L’entraînement de ces modèles, en particulier les versions larges comme GPT ou BERT, nécessite des quantités massives de données et des ressources de calcul considérables. L’absence de biais inductif séquentiel (comme dans les RNN) ou local (comme dans les CNN) signifie qu’ils dépendent fortement des données pour apprendre les relations, et l’ajout explicite d’encodages positionnels est nécessaire pour tenir compte de l’ordre, ce qui peut être moins naturel pour certaines tâches. Enfin, comme mentionné, l’interprétation directe des poids d’attention comme explication du comportement du modèle reste un sujet de recherche actif.