Dans cette vidéo, nous allons étudier l'architecture de l'encodeur. Un exemple d'architecture populaire
composée uniquement d'un encodeur est BERT, qui est le modèle le plus populaire de ce type.
Commençons d'abord par comprendre comment cela fonctionne. Nous allons utiliser un petit exemple, en utilisant trois mots. Nous les
utilisons comme entrées et les transmettons via l'encodeur. Nous récupérons une représentation numérique
de chaque mot. Ici, par exemple, l'encodeur convertit les trois mots « Welcome to NYC »
en ces trois séquences de chiffres. L'encodeur génère exactement une séquence de nombres par
mot d'entrée. Cette représentation numérique peut également être appelée « vecteur de caractéristiques » ou « tenseur de caractéristiques ».
Plongeons dans cette représentation. Elle contient un vecteur par mot passé dans l'encodeur.
Chacun de ces vecteurs est une représentation numérique du mot en question.
La dimension de ce vecteur est définie par l'architecture du modèle, pour le modèle BERT de base,
elle est de 768. Ces représentations contiennent la valeur d'un mot mais contextualisé.
Par exemple, le vecteur attribué au mot « to », n'est pas la représentation du seul mot « to ».
Il prend aussi en compte les mots qui l'entourent, que nous appelons le « contexte ». Il regarde le
contexte de gauche, le mot à gauche de celui que nous étudions (ici le mot « Welcome ») et
le context à droite (ici le mot « NYC ») et génère une valeur pour le mot, dans son contexte.
Il s'agit donc d'une valeur contextualisée. On pourrait dire que le vecteur de 768 valeurs contient le
« sens » de ce mot dans le texte. C'est grâce au mécanisme d'auto-attention.
Le mécanisme d'auto-attention concerne différentes positions (ou différents mots) dans une seule
séquence, afin de calculer une représentation de cette séquence. Comme nous l'avons vu précédemment, cela
signifie que la représentation résultante d'un mot a été affectée par d'autres mots dans la séquence.
Nous n'entrerons pas dans les détails ici, mais nous vous proposerons d'autres lectures si vous
souhaitez mieux comprendre ce qui se passe sous le capot. Alors quand faut-il utiliser un encodeur ?
Les encodeurs peuvent être utilisés comme modèles autonomes dans une grande variété de tâches. Par exemple, BERT, sans doute
le modèle de transformer le plus célèbre, est un modèle encodeur et, au moment de sa sortie,
surpassait l'état de l'art dans de nombreuses tâches de classification de séquences, tâches de questions-réponses
et modélisation de langage masqué, pour n'en citer que quelques-unes. L'idée est que les encodeurs sont très puissants
pour extraire des vecteurs contenant des informations significatives sur une séquence. Ce vecteur peut
ensuite être géré par des couches supplémentaires de neurones pour leur donner un sens.
Examinons quelques exemples où les encodeurs brillent vraiment.
Tout d'abord, « Masked Language Modeling » ou MLM. Il s'agit de prédire un mot caché
dans une séquence de mots. Ici, par exemple, nous avons masqué le mot entre « My » et « is ». C'est l'un
des objectifs avec lesquels le BERT a été entraîné : il a été entraîné pour prédire les mots cachés dans une séquence.
Les encodeurs brillent dans ce scénario en particulier car les informations bidirectionnelles sont cruciales ici.
Si nous n'avions pas les mots à droite (« is », « Sylvain. » et « . »), il y a très peu de
chances que BERT ait pu identifier « name » comme le mot correct. L'encodeur doit
avoir une bonne compréhension de la séquence afin de prédire un mot masqué, car même si le texte est
grammaticalement correct, il n'a pas nécessairement de sens dans le contexte de la séquence.
Comme mentionné précédemment, les encodeurs sont efficaces pour effectuer la classification des séquences.
L'analyse des sentiments est un exemple de tâche de classification de séquences.
L'objectif du modèle est d'identifier le sentiment d'une séquence. Cela peut aller de l'attribution
d'une note d'1 à 5 étoiles à une séquence si vous effectuez une analyse d'avis, à l'attribution d'une note positive ou négative
à une séquence, comme c'est le cas ici. Par exemple ici, étant donné les deux séquences,
nous utilisons le modèle pour calculer une prédiction et classer les séquences parmi ces deux classes :
positive et négative. Bien que les deux séquences sont très similaires, contenant les mêmes mots,
la signification est différente et le modèle d'encodeur est capable de saisir cette différence.