-
Imed KERAGHEL,
Publié le 07/09/2022
Depuis une dizaine d’années, le traitement automatique du langage naturel (en anglais NLP pour natural language processing), est devenu indispensable dans notre vie quotidienne, car grâce à lui, les ordinateurs arrivent enfin à analyser, comprendre et donner du sens aux contenus textuels.
Depuis 2017, le NLP a fait un grand pas en avant avec l’avènement des transformers, lorsque Google publie son article « Attention Is All You Need ». Les transformers ? De quoi s’agit-il ? Vous allez peut-être les imaginer comme des jouets capables de se transformer en véhicule et parfois en divers appareils, ce n’est pas le cas ici. Il s’agit des architectures de réseaux de neurones ayant révolutionné le NLP, et qui sont en train de s’étendre à d’autres domaines d’application comme la génomique par exemple.
Le NLP est un domaine applicatif de l’intelligence artificielle qui vise à doter les programmes informatiques de la capacité de traiter le langage naturel tel qu’il est parlé et écrit par les humains. Il appartient à la fois aux domaines de l’informatique et de la linguistique. Il traite des données textuelles, exploitées par un ordinateur pour leur donner un sens.
Un transformer est un réseau de neurones pré-entraîné sur un vaste corpus de textes, qui lui permet de découvrir des relations entre les tokens (ou mots apparaissant dans le texte). Ces derniers sont souvent représentés sous forme de vecteurs numériques en utilisant les contextual word embeddings, ce qui revient en quelque sorte à représenter chaque mot par la fréquence des mots qui apparaissent autour de lui dans le texte. L’idée clé, derrière les transformers, est de conserver l’interdépendance des tokens de la même séquence, en utilisant le mécanisme d’attention, qu’on va détailler dans la suite de cet article.
Lorsque nous analysons l’expression suivante : « Lors de votre visite de Dubaï, les salutations les plus communes que vous entendrez seront marhaba (bonjour) et maasalaamah (au revoir) », nous focalisons directement notre attention sur certains mots qui constituent le cœur de cette expression, et qui sont: Dubaï, marhaba et maasalaamah, car notre expérience nous a déjà appris que c’est là que se trouve l’essentiel de l’information. Les transformers utilisent une simulation de ce mécanisme qu’on appelle le « mécanisme d’attention ». Ce dernier consiste à tenir compte de la combinaison de tous les mots du contexte, en pondérant chacun d’entre eux.
L’idée derrière ce mécanisme est de pouvoir associer, à chaque élément d’un ensemble, une pertinence relative aux autres éléments en se basant sur le contexte. Le mécanisme d’attention permet de mesurer le niveau de liaison entre deux éléments de deux séquences différentes A et B. Il permet de dire au modèle, à quels mots de la séquence B il faut porter le plus d’attention quand on traite un mot X de la séquence A.
La figure 1 montre un exemple d’une architecture de traduction basée sur le modèle transformer. Pour encoder une séquence, on utilise ce qu’on appelle l’auto-attention (self-attention), qu’on applique au sein des éléments de la même séquence afin de lui associer une représentation pertinente. Prenons la phrase : « Kernix est une agence web qui réunit toutes les compétences pour la réussite de votre projet digital », le processus de l’auto-attention aura pour objectif de dire par exemple qu’il faut porter plus d’attention au mot « KERNIX » quand on traite le mot « agence web » que les autres mots.
Le décodeur, quant à lui, aura pour objectif de générer à chaque fois un nouveau mot en regardant quelles sont les informations relatives qui peuvent être importantes à récupérer depuis l’encodeur. Le mécanisme d’attention aura donc pour objectif de dire à quels mots de la première phrase il faut porter le plus d’attention quand on traite un mot de la deuxième.
La figure 2 démontre bien cette notion.
La figure 2 est une représentation graphique des zones d’attention avec un traducteur qui fonctionne avec le mécanisme d’attention. L’axe horizontal représente la phrase à traduire, et l’axe vertical représente la traduction générée par le modèle. Chaque pixel indique le niveau d’attention entre le mot et sa traduction. Les carrés clairs sont ceux pour lesquels l’attention est importante. On voit bien que chaque mot en français a un lien très fort avec sa traduction, par exemple « agence » et « agency ».
Le modèle transformer est une véritable révolution par le fait qu’il soit rapide à entraîner et très performant comparé à ses prédécesseurs. Mais plus important encore, il a eu un impact sur le NLP grâce aux modèles pré-entraînés qu’il a inspirés.
GPT et BERT sont des gros modèles pré-entraînés sur un large corpus et qu’il est possible d’ajuster sur des tâches spécifiques. Ces modèles sont aujourd’hui ceux qui permettent d’avoir les meilleurs résultats pour des tâches comme l’analyse des sentiments (message positif, négatif ou neutre), la synthèse automatique de contenus textuels, la reconnaissance d’entités nommées comme les lieux géographiques, les organisations, les adresses, etc. Le point commun de ces deux architectures est l’utilisation du modèle transformer comme élément majeur de leur architecture.
Bien que ces deux architectures soient entraînées à prédire le mot suivant une séquence, leur principale différence réside dans leur façon de traîter le contexte. Dans BERT, nous sommes autorisés à regarder le contexte gauche et le contexte droit, alors qu’avec GPT, le contexte considéré est réduit aux mots qui précèdent. Le pré-entraînement de ces modèles n’a été réalisable que parce que l’entraînement est beaucoup plus parallélisable que celui d’un modèle classique.
De nombreux cas d’utilisation des transformers dans le domaine de la data sont particulièrement prometteurs, comme les moteurs de recommandation, les systèmes d’aide à la décision, la détection d’anomalies, la traduction du contenu, l’extraction d’informations, etc.
Nous aidons nos clients à faire avancer leurs applications data par le biais des transformers, et pour qu’ils puissent en faire le meilleur usage. Chez Kernix, nous utilisons ces modèles pour effectuer des tâches de traitement sur des corpus textuels, mais nous effectuons constamment une veille technologique sur d’autres domaines d’application comme le traitement d’images par exemple.