Cours 6 - Word embeddings

1 Traitement de langage naturel - Introduction

  • Application : par exemple, génération automatique de texte.

  • succès du Traitement de langage naturel (NLP - Natural Language Processing)

  • et en particulier les grands modèles de langage (LLM -Large Language Models).

Contrairement à ce qui a été fait historiquement en traitement automatique du langage, qui essayait de donner explicitement des étiquettes aux différents types de mots (verbes, sujet, objet, etc.), aujourd’hui, souvent, tous les sens des mots sont appris par apprentissage automatique.

Ceci :

  • nécéssite un grand corpus de texte provenant de différentes sources (internet, livres, …)
  • des modèle de langage apprennent “en lisant”, en regardant par exemple la proximité des mots (avec l’approche bag of words par exemple), ou les mots entourant (skipgrams).

Aujourd’hui, les réseaux de neurones sont majoritairement utilisé pour cet apprentissage, on dit aussi traitement de langage neuronal (neural language processing).

2 Word embeddings - Fonctionnement

L’élément central de ces apprentissages est le plongement lexical (Word embedding). Chaque entité, le plus souvent un mot, est appelé un token. Parfois, on peut aussi utiliser des caractères comme unité, mais nous allons ici nous concentrer à des mots. Le plongement lexical associe à chaque token un vecteur de nombres - et la taille de ce vecteur est appelé la dimension du embedding. Cette dimension est souvent dans l’order des centaines ou milliers, afin de pouvoir capter des relations de voisinage de mots selon différents critères.

3 Word embeddings - Word2Vec

Word2Vec : Exploration avec une application interactive sur la page web http://nlp.polytechnique.fr/word2vec.

  • exemple de plongement lexical, donc word embedding, d’un texte français

  • d’une dimension 300 : chaque mot est représenté avec 300 nombres

  • entrainé sur une base de texte de 33 Gigaoctets, avec une approche de continuous bag of words d’une proximité de 20 mots (la window size est donc de 20).

  • Relation linéaire entre des mots d’un embedding :

    • par exemple, pour “A est à B ce que C est à D”,
    • on utilise la distance entre les deux mots A et B dans l’espace de plongement lexical,
    • et on ajoute cette distance à un mot C pour générer un mot D qui aura une même relation entre des mots C et D que A et B.
    • Cela fait donc A-B + C = D

L’exemple - Exemple : A = “king”, B = “man”, C = “woman”, D = ?

4 Exemples : un RNN pour la prédiction de texte

En TD6 :

Entrainer un modèle de traitement de langage naturel permettant de générer la suite d’une phrase. Plus préciséement :

  • un RNN avec sur le word embedding,

  • entraîné sur un corpus d’environ 69370 mots des fables de Lafontaine,

  • avec environ 9909 mots différents, appelé token

  • pour une taille de contexte de 5, par exemple

  • à partir d’une séquence de mots, le réseaux apprend à prédire un prochain mot.

Nous pouvons ensuite faire des prédictions multiples, comme dans le TD5, pour générer un plus long texte.

5 Transformers avec attention

Les modèles basés sur des réseaux de neurones récurrents ne sont pas parallélisables, pour cela, un nouveau modèle est utilisé aujourd’hui avec un grand succès :

Les transformer with attention mechanism.

Ce sont ces modèles qui interviennent majoritairement dans le grands modèles de langage de type ChatGPT.