Transformers et mécanismes d’attention

Introduction

Le traitement des données séquentielles a longtemps reposé sur les réseaux récurrents (RNN, LSTM, GRU). Cependant, depuis 2017, une nouvelle architecture a révolutionné ce domaine : le Transformer. Basé principalement sur un mécanisme appelé attention, le Transformer est devenu la pierre angulaire des modèles de langage modernes, tels que BERT, GPT, et bien d’autres.

Dans cet article, nous allons explorer en détail :


Pourquoi une nouvelle architecture ?

Les RNN et leurs variantes (LSTM, GRU) traitent les séquences de manière séquentielle : ils parcourent les données élément par élément. Cette nature séquentielle rend l’entraînement lent et limite la parallélisation. De plus, même avec LSTM ou GRU, il reste difficile de capturer des dépendances très longues dans la séquence.

Le Transformer est une architecture qui élimine complètement les connexions récurrentes ou convolutives. Il repose uniquement sur des mécanismes d’attention, permettant d’analyser l’ensemble de la séquence simultanément. Cette innovation a permis :


Le mécanisme d’attention : concept fondamental

L’attention, dans le contexte des réseaux neuronaux, est un mécanisme permettant au modèle de se concentrer sur différentes parties d’une séquence d’entrée lors du traitement d’un élément donné. Plutôt que de traiter uniquement l’élément courant et son état caché (comme dans un RNN), le modèle regarde toute la séquence et décide quelles parties sont les plus pertinentes.

Schéma d’attention simple

Sequence d'entrée : x1, x2, x3, ..., xn

Pour calculer la sortie y_t à l'instant t :
On regarde tous les éléments (x1 ... xn)
On calcule un score d’importance (attention) pour chacun par rapport à x_t
On fait une moyenne pondérée de tous les éléments selon ces scores
Cette moyenne devient la nouvelle représentation pour y_t


Attention dite « Scaled Dot-Product » (produit scalaire)

Le Transformer utilise un type d’attention appelé scaled dot-product attention. Voici comment elle fonctionne.

Chaque élément d’entrée est transformé en trois vecteurs :

L’attention calcule la similarité entre la requête (query) et toutes les clés (key) via un produit scalaire, puis applique une fonction softmax pour obtenir des poids (scores d’attention), et enfin fait la somme pondérée des valeurs (value) correspondantes.

Formule mathématique :

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


Schéma explicatif

Input vectors (embedding)
┌──────────┐ ┌──────────┐ ┌──────────┐
│       Query            │ │           Key            │ │         Value          │
└──────────┘ └──────────┘ └──────────┘
│                                               │                            │
└───> Produit scalaire Q*K^T (mesure similarité)
.                                                 │
.                     ┌───────────────┐
.                      │     softmax(QK^T)           │ -> poids d’attention
.                     └───────────────┘
.                                            │
.                           Multiplication par V (valeurs)
.                                            │
.                                Résultat attention

Multi-head attention

Au lieu d’appliquer une seule fois le mécanisme d’attention, le Transformer l’applique plusieurs fois en parallèle, dans ce qu’on appelle des têtes d’attention (multi-head).

Chaque tête apprend à se focaliser sur différents aspects de la séquence. Par exemple, une tête peut apprendre à détecter la relation sujet-verbe, une autre à détecter des relations temporelles, etc.


Calcul multi-head

Schéma :

Input Embedding

+------------------------+
| Attention tête 1 |
+------------------------+
| Attention tête 2 |
+------------------------+
| ... |
+------------------------+
↓ concaténation
↓ projection linéaire
↓ sortie multi-head attention

Architecture générale du Transformer

Le Transformer se compose essentiellement de deux parties :

Chaque bloc encodeur ou décodeur est composé de :


Schéma simplifié d’un encodeur Transformer

Input embeddings + position embeddings

Multi-head attention

Add & Norm (connexion résiduelle + normalisation)

Feed-forward layer

Add & Norm

Output de l’encodeur

Le décodeur est similaire mais ajoute une couche d’attention masquée sur la sortie partielle générée, pour empêcher de regarder le futur (propriétés causales).


Pourquoi ajouter des embeddings positionnels ?

Contrairement aux RNN, les Transformers traitent toute la séquence en parallèle, donc ils ne reçoivent pas d’information intrinsèque sur l’ordre des éléments.

Pour remédier à cela, on ajoute à chaque vecteur d’entrée un embedding positionnel, qui encode la position de chaque élément dans la séquence, afin que le modèle puisse exploiter l’ordre.


Avantages des Transformers


Applications concrètes


Conclusion

Les Transformers et leurs mécanismes d’attention ont profondément transformé le domaine du deep learning séquentiel. Leur capacité à traiter efficacement les séquences tout en capturant des relations complexes à long terme en fait des modèles très puissants et polyvalents. Ils ont remplacé peu à peu les architectures récurrentes dans de nombreux domaines.