Temps partiel
Apprenez les differentes techniques de traitement de langage (NLP) et de l'image (Computer Vision).

Pour rappel, le word embedding est capable en réduisant la dimension de capturer le contexte, la similarité sémantique et syntaxique (genre, synonymes, …) d’un mot .

Par exemple, on pourrait s’attendre à ce que les mots « remarquable » et « admirable » soient représentés par des vecteurs relativement peu distants dans l’espace vectoriel où sont définis ces vecteurs.

La méthode d’embedding généralement utilisée pour réduire la dimension d’un vecteur consiste à utiliser le résultat que retourne une couche dense, c’est à dire de multiplier une matrice d’embedding W par la représentation « one hot » du mot :

Il existe deux variantes du Word2vec, les deux utilisent un réseau de neurones à 3 couches (1 couche d’entrée, 1 couche cachée, 1 couche de sortie) : Common Bag Of Words (CBOW) et Skip-gram.

Dans l’image suivante, le mot dans la case bleu est appelé le mot cible et les mots dans les cases blanches sont appelés mots du contexte dans une fenêtre de taille 5 .

CBOW : Le modèle est nourri par le contexte , et prédit le mot cible. Le résultat de la couche cachée est la nouvelle représentation du mot ( 1, …, ℎ𝑁 ).

Skip Gram : Le modèle est nourri par le mot cible , et prédit les mots du contexte. Le résultat de la couche cachée est la nouvelle représentation du mot ( 1, …, ℎ𝑁 ).

  1. La couche Embedding va transformer chaque mot du contexte en vecteur d’embedding . La matrice W de l’embedding sera apprise au fur et à mesure que le modèle s’entraîne. Les dimensions résultantes sont : (lot, context_size, embedding).
  2. Ensuite, la couche GlobalAveragePooling1D permet de sommer les différents embedding pour avoir une dimension en sortie (batch_size, embedding).
  3. Enfin, La couche Dense de taille « voc_size » permet de prédire le mot cible .

Maintenant que le modèle est entraîné, il peut être intéressant de comparer la distance entre les mots.

La « Cosine similarity » est généralement utilisée comme métrique pour mesurer la distance lorsque la norme des vecteurs n’a pas d’importance. Cette métrique capture la similitude entre deux mots.

Plus la cosine similarity » est proche de 1, plus les deux mots sont liés.

Avec cette métrique et dans ce sous-espace vectoriel, les 5 mots les proches de « body » sont :

intestines  --  0.30548161268234253
bodies  --  0.2691531181335449
arm  --  0.24878980219364166
chest  --  0.2261650413274765
leg  --  0.2193179428577423

Les nombres ci-dessus représentent les distances cos-similarité entre le mot « body » et des mots les plus proches.

Pour le mot « <b>zombie </b>» :

slasher  --  0.3172745406627655
cannibal  --  0.28496912121772766
zombies  --  0.2767203450202942
horror  --  0.2607246935367584
zombi  --  0.25878411531448364

Pour le mot « <b>amazing </b>» :

brilliant  --  0.3372475802898407
extraordinary  --  0.319326251745224
great  --  0.29579296708106995
breathtaking  --  0.2907085716724396
fantastic  --  0.2871546149253845

Pour le mot «<b> god</b> » :

heavens  --  0.268303781747818
jesus  --  0.26807624101638794
goodness  --  0.2618488669395447
gods  --  0.24795521795749664
doom  --  0.22242328524589539

Nous pouvons maintenant nous poser la question si notre sous-espace vectoriel des mots a des propriétés arithmétiques. Prenons le célèbre exemple suivant :

𝐾𝑖𝑛𝑔 𝑀𝑎𝑛 + 𝑊𝑜𝑚𝑎𝑛 = 𝑄𝑢𝑒𝑒𝑛

Dans cet exemple la propriété arithmétique est la royauté . Nous souhaitons vérifier si cette propriété va se propager à « woman ». C’est-à-dire que nous allons rechercher les mots les plus proches du vecteur suivant :

arithmetic_vector = word2vec[index_word1] – word2vec[index_word2] + word2vec [index_word3]

Ici, le mot « queen » n’est pas beaucoup représenté dans notre jeu de données, ce qui explique une mauvaise représentation. Pour cette raison, nous allons plutôt nous intéresser à la propriété de nombre :

Men 𝑀𝑎𝑛 + 𝑊𝑜𝑚𝑎𝑛 = Women

En utilisant l’opération définie précédemment et une métrique de cos similarité, les 5 mots les plus proches sont :

women  --  0.2889893054962158
females  --  0.272260844707489
strangers  --  0.24558939039707184
teens  --  0.2443128377199173
daughters  --  0.24117740988731384

Le résultat pour Zombies − Zombie + 𝑊𝑜𝑚𝑎𝑛 :

women  --  0.2547883093357086
females  --  0.23258551955223083
ladies  --  0.22764989733695984
stripper  --  0.22274985909461975
develops  --  0.2202150821685791

Le résultat pour Men − Man + Soldier :
soldiers  --  0.3547001779079437
daughters  --  0.21896378695964813
letters  --  0.21452251076698303
backyard  --  0.21437858045101166
veterans  --  0.21067838370800018

Le résultat pour Zombies − Zombie + monster :

werewolves  --  0.2724993824958801
monsters  --  0.25695472955703735
creature  --  0.24453674256801605
dragons  --  0.22363890707492828
bloke  --  0.21858260035514832

Le « word2vec embedding » capture efficacement les propriétés sémantiques et arithmétiques d’un mot . Il permet également de réduire la dimension du problème et par conséquent la tâche d’apprentissage .

Nous pouvons nous imaginer utiliser l’algorithme word2vec pour pré-entraîner la matrice d’embedding du modèle de classification. Par conséquent, notre modèle de classification aura une bien meilleure représentation des mots lors de la phase d’apprentissage des sentiments.

Envie de démarrer une formation plus détaillée sur les différents aspects abordés de cet article ?

La certification qualité a été délivrée au titre des catégories d’actions suivantes:
- Actions de formation
- Actions de formation par apprentissage