Fonctionnement des Transformers et leurs applications

Publié le 08 février 2022
4 minutes de lecture
Image de Samule Sun sur Unsplash

Les Transformers ne désignent pas que les robots du film éponyme mais aussi des modèles de Deep Learning qui se sont principalement illustrés en 2017 dans le domaine du NLP (Natural Language Processing). Dans cet article, nous présenterons les modèles Transformers basés sur le mécanisme d’attention et non sur un réseau de neurones récurrent pour traiter des données de séquence. La généralisation de cette technologie pour exploiter les graphes nous sera utile sur notre projet d’Atlas des Synergies Productives.

Prémices du Transformers

Le premier modèle Transformer a été introduit par Google (Vaswani et al. NeurIPS 2017) avec la publication Attention Is All You Need qui décrit son architecture et démontre ses performances pour la traduction automatique. Cette méthode est « parallélisable », elle nécessite donc beaucoup moins de temps d’apprentissage que d’autres méthodes de Deep Learning.

Le Transformer est un réseau de neurones de type séquence à séquence comme les RNN dont les LSTM que nous avions présentés dans un précédent article. Il se différencie par le fait de n’utiliser que le mécanisme d’attention et aucun réseau récurrent. Contrairement aux RNN, les Transformers n’exigent pas que les données séquentielles soient traitées dans l’ordre. C’est grâce à cette fonctionnalité, que le Transformer permet une parallélisation.

L’architecture encoder-decoder

Les modèles séquence à séquence utilisent une architecture Encoder-Decoder. La partie encodeur crée une représentation vectorielle (embedding) d’une séquence d’entrée. Cette opération a déjà été présentée lors d’un précédent article sur l’analyse sémantique des nomenclatures. Le décodeur retourne une séquence à partir de l’embedding.

Le décodeur d’un Transformer est constitué de couches montées l’une après l’autre, mais prenant chacune, comme entrée supplémentaire, la sortie du dernier encodeur. Grâce à ce système, dans chaque étape du décodeur, nous regardons si des informations importantes se trouvent dans le passé, c’est-à-dire, dans l’encodeur. Par analogie, lors de la traduction d’une phrase cela reviendrait à relire la phrase à traduire à chaque mot/étape.

Mécanisme d’attention

L’idée du Transformer est de conserver l’interdépendance des mots (tokens) d’une séquence en utilisant le mécanisme d’attention qui est au centre de son architecture. Ce concept d’attention mesure le lien entre deux éléments de deux séquences. Ainsi en NLP, le mécanisme d’attention permet de transmettre l’information au modèle, afin qu’il porte son attention au bon endroit sur les mots de la séquence A, quand on traite un mot de la séquence B.

Le self-attention est le mécanisme d’attention mais appliqué à une seule séquence. La figure ci-dessous, montre que pour le mot « it », le coefficient d’attention est élevé pour « The monkey ». Ce qui veut dire que le modèle devra s’appuyer sur « The monkey »  pour encoder « it ».

\text { Attention }(Q, K, V)=\operatorname{softmax}\left(\frac{Q K^{T}}{\sqrt{d_{k}}}\right) V
  • Q est le vecteur Query
  • K est le vecteur Key
  • V est le vecteur Value
  • d_{k} est la dimension des vecteurs Key

Le calcul de ce coefficient d’attention se fait par la formule ci-dessus où les trois vecteurs sont multipliés par l’embedding de la séquence d’entrée. Pour vulgariser, dans un moteur de recherche, Q serait la demande de recherche, K serait les caractéristiques (textes, images, …) associées aux résultats les mieux adaptées V. Les poids d’attention sont divisés par \sqrt{d_{k}} pour stabiliser les gradients durant l’entrainement, puis passent à travers une fonction softmax qui normalise les poids de manière à sélectionner les Values à conserver. Ces étapes, que l’on appelle « têtes d’attention » sont illustrées dans la figure ci-dessous.

Les avantages du multi-head attention est d’apporter une diversification des résultats lors de plusieurs self-attention/têtes d’attention (h fois), car les vecteurs Q, K et V sont initialisés aléatoirement. L’enchaînement de ces têtes d’attentions rend l’apprentissage plus robuste et parallélisable.

L’architecture du Transformer

Comme expliqué précédemment, le Transformer est constitué d’un encodeur (à gauche). Les couches sont constituées de Multi-Head Attention afin que chaque élément de la séquence d’entrée est un coefficient d’attention. La couche Feed Forward est simplement un réseau de neurones multicouches (comme expliqué dans un article précédent) qui traite la sortie d’une couche d’attention de manière à mieux adapter l’entrée de la couche d’attention suivante. L’encodeur est donc appliqué N fois.

Dans le décodeur à droite, le « Masked-Multi-Head Attention » permet de limiter l’accès d’un token de la séquence aux tokens suivants. Ainsi, ce masque évite d’incorporer les informations des tokens qui seront décodés plus tard.

Le positional encoding ajoute au token l’information de sa position au sein de la séquence. En effet, lors de la traduction d’une phrase, la position des mots dans la phrase est importante.

Généralisation des Transformers pour les graphes

Depuis quelques mois, les Transformers sont adaptés et généralisés à d’autres tâches qu’au NLP (Bresson et Dwivedi, 2021). Ainsi, dans cette section, nous allons présenter les liens que l’on peut faire entre les Transformers et les Graphs Neural Networks (GNN), que nous avons présenté dans cet article.

Pour rappel, les GNN utilisent les informations présentes dans le voisinage d’un nœud. Dans les GNN, ces données sont agrégées par des réseaux de neurones. Mais d’autres fonctions d’agrégation peuvent rassembler les données du voisinage par une somme pondérée comme un mécanisme d’attention !

Ainsi, nous allons calculer un coefficient d’attention pour chaque voisin du nœud en question (node features). De plus, nous devons intégrer les données des arêtes (edges) selon leur nombre (centrality). Enfin, si la position des nœuds dans le graphe est importante, nous pouvons prendre en compte ces données de position (spatial encoding). En effet, dans l’Atlas des Synergies Productives, l’implantation géographique des entreprises (nœuds) devra être prise en compte. L’adaptation de l’architecture du Transformer, présenté ci-dessus, passe par l’ajout de toutes les informations du graphe lors de la couche de self-attention.

Les Graphs Transformers Networks ont obtenu de meilleures performances pour la classification de nœuds et sur la prédiction de lien entre les noeuds par rapport aux méthodes des Graphs Neural Networks et leurs variantes. (Yun et al., NeurIPS 2019).

Ces techniques permettront de valoriser nos nombreuses données relationnelles présentes dans l’Atlas des Synergies Productives. Nous pourrons de faire des groupes d’entreprises au sein des territoires. De plus, les prédictions de lien entre les entreprises pourraient créer des scénarios de partenariat entre ces acteurs économiques.