Plongements de mots

Antoine Ameloot, Pascal Flores, Léopold Varlamoff

20/01/2025

1 Plongement de mots : étude du sujet

1.1 Définition

Techniques pour apprendre à un ordinateur les relations syntaxiques et sémantiques entre les mots d’un corpus de texte.

1.2 Principe et fonctionnement

Données nécessaires à l’entrainement

  • Du texte :

  • Un dictionnaire :

Jeu de données

Soient :

  • une liste de mots \(W = \{w_i\} : i \in \mathbb{N}\)
  • une fenêtre glissante \(F(n, i) = \{w_{i-n}, ..., w_{i-2}, w_{i-1}\} \cup \{w_{i+1}, w_{i+2}, ..., w_{i+n}\} : n \in \mathbb{N}\)
  • le jeu de données \(D = \{(w_i, F(n,i))\}\)

Exemple :

Le chat mange la souris et la souris le fromage


  • \(n = 2\), \(i = 3\)
  • le mot : “mange”.
  • la fenêtre : “Le”, “chat”, “la”, “souris”

Encodage et représentation des données

Inconvénients des mots sous la forme de chaines de caractères

  • taille variable (entre les mots et entre les fenêtres)
  • pas de relation sémantique entre les lettres qui forment les mots
  • grande complexité computationnelle

Solution : le one hot encoding

Représentation des mots sous la forme de vecteurs à \(n\) dimensions, \(n\) étant la taille du dictionnaire.

Avantages :

  • absence de biais dans la représentation des mots
  • simplicité de représentation et de calcul
  • possibilité d’aplatir les vecteurs de différents mots pour créer un contexte (fenêtre)

Exemple

Le chat mange la souris et la souris le fromage

7 mots différents : vecteurs de taille 7

  • le : \([1,0,0,0,0,0,0]\)
  • chat : \([0,1,0,0,0,0,0]\)
  • mange : \([0,0,1,0,0,0,0]\)
  • la : \([0,0,0,1,0,0,0]\)
  • souris : \([0,0,0,0,1,0,0]\)
  • et : \([0,0,0,0,0,1,0]\)
  • fromage : \([0,0,0,0,0,0,1]\)

Couple mot-fenêtre : \(([0,0,1,0,0,0,0], [1,1,0,1,1,0,0])\)

Le modèle

Forme du modèle

Fonctionnement

  1. Réduction de dimension des données d’entrée (plongement)
  2. Prédiction de la sortie à partir de la représentation latente des données d’entrée
  3. Rétropropagation et correction de l’erreur

Effets de l’apprentissage du modèle

  • Apprentissage des relations sémantiques entre les mots
  • Représentation des mots porteuse de sens (représentation latente)
  • Possibilité de manipuler ces représentations (opérations mathématiques)

Variantes

  • CBOW : Prédire un mot à partir de la fenêtre.
  • Skip gram : Prédire la fenêtre à partir d’un mot.

1.3 Applications

Classification et analyse de sentiments

Traduction

2 Implémentation, performances et comparaisons

2.1 Choix du dataset

Harry Potter + Games of Thrones + A la recherche du temps perdu → Trop de données pour nos machines…

Corpus retenu : A la recherche du temps perdu, M. Proust.

Nettoyage des données :

  • Retrait des mots à faible occurrence (<= 2).
  • Retrait de la ponctuation.

Données finales : Liste de mots.

2.2 Génération du dataset

jeu de données complet trop volumineux pour rentrer en mémoire (~80Go)

Génération des couples mot-fenêtre one-hot-encodés on-the-fly à partir du corpus et du dictionnaire

Séparation des données en deux corpus : entrainement et validation (ratio 80:20)

2.3 Implémentation des modèles

Couches du modèle :

  1. Couche d’entrée de taille \(n\)
  2. Couche dense de taille \(m < n\)
  3. Couche de sortie de taille \(n\)

Fonction de loss : categorical crossentropy

CBOW et Skip Gram sont symétrique → même forme de modèle, inversion des entrées / sorties pour passer d’un modèle CBOW à un modèle Skip Gram

2.4 Performances et comparaisons

Perte en fonction de la taille des représentations latentes

Perte en fonction de la taille de la fenêtre

Mots prédits pour le mot “Paris”

Déductions

  • modèle peu performant
  • perte des données de validation élevées → suraprentissage ?
  • manque de quantité de données ?
  • mauvaise représentation des données ?
  • mauvaise fonction de perte ?

3 Difficultés rencontrées

  • compréhension du sujet
  • quantité de données à manipuler (ressources nécessaires pour l’entrainement)
  • temps consacré au projet (peu de séances, échéance trop rapide)

4 Conclusion

  • sujet intéressant mais complexe
  • manque de temps et de moyens
  • théorie acquise mais pratique à renforcer et à pousser plus avant