Accueil / Factory / Algos ML / Word2Vec — factory / algos ML / représentation de texte

MODÈLE WORD2VEC.

Word2Vec transforme chaque mot en une liste de nombres, apprise en observant ses voisins dans des milliers de phrases. Deux mots employés dans les mêmes contextes reçoivent des vecteurs proches. Publié par Google en 2013, c'est l'ancêtre direct des embeddings utilisés aujourd'hui par les LLM et les moteurs de recherche.

TexteReprésentationEmbeddingsNon superviséNiveau : intermédiaire

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceBon sens des mots, mais un seul vecteur par mot, sans contexte
InterprétabilitéDimensions sans sens lisible : seules les distances parlent
VitesseEntraînement en minutes sur un processeur ordinaire
Facilité de réglageQuelques réglages simples, valeurs par défaut correctes
Tolérance aux données brutesMots rares ignorés, fautes et pluriels à normaliser
EN 30 SECONDES

Dites-moi qui sont vos voisins, je vous dirai qui vous êtes. Un mot qui apparaît toujours près de « colis », « livré » et « délai » parle sûrement de logistique.

1. On fait glisser une fenêtre sur le texte

Pour chaque mot, on regarde les quelques mots qui l'entourent. Chaque couple (mot, voisin) devient un exemple d'apprentissage.

2. Un petit réseau apprend à deviner les voisins

En version skip-gram, le réseau reçoit un mot et doit prédire ses voisins. En version CBOW, il reçoit les voisins et doit deviner le mot. Aucune étiquette n'est nécessaire : le texte suffit.

3. On garde les poids comme vecteurs

Une fois entraîné, le réseau ne sert plus. On conserve sa couche interne : un vecteur de 50 à 300 nombres par mot. Des mots proches par l'usage ont des vecteurs proches.

LE CAS MÉTIER

lexique métier · service client / qualité
EN ENTRÉE

1 500 avis clients en texte libre

Aucune étiquette : Word2Vec apprend seul à partir de l'ordre des mots dans les avis.

EN SORTIE

Un vecteur par mot et ses plus proches voisins

Pour « livraison », « remboursement » ou « qualité », le modèle liste les mots employés dans les mêmes contextes. L'équipe qualité s'en sert pour enrichir ses listes de mots-clés et ses règles de tri. Sur un corpus aussi petit et répétitif que ce jeu d'exemple, les voisins reflètent surtout les mots qui apparaissent dans les mêmes phrases, pas de vrais synonymes.

CE QU'ON MESURE

Juger les voisins à l'œil, puis sur une tâche

Il n'y a pas de bonne réponse unique. On vérifie qu'un échantillon de voisins a du sens pour le métier, puis on mesure le gain sur une tâche réelle : recherche, classification, détection de doublons.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Construire ou enrichir un lexique métier à partir de vos propres textes
  • Représenter des mots d'un jargon spécifique absent des modèles grand public
  • Besoin d'une méthode légère, entraînable en interne, sans GPU
  • Représenter autre chose que des mots : produits d'un panier, pages d'un parcours web (même principe)

NON

  • Mot à plusieurs sens (« avocat », « livre ») : un seul vecteur les mélange, préférer un modèle contextuel type BERT
  • Représenter des phrases ou des documents entiers : des embeddings de phrases font mieux qu'une moyenne de vecteurs de mots
  • Petit corpus de quelques milliers de phrases : partir de vecteurs pré-entraînés (fastText français, par exemple)
  • Mots jamais vus à l'entraînement : Word2Vec n'a pas de vecteur pour eux, fastText sait les construire
LES 4 RÉGLAGES QUI COMPTENT

Noms donnés pour R (word2vec) et Python (gensim).

dim / vector_size

La taille des vecteurs. 100 à 300 sur un gros corpus, 50 suffit sur quelques milliers de phrases. Trop grand sur peu de texte, le modèle apprend du bruit.

window

La largeur de la fenêtre de voisins. Petite (2 à 5) : les voisins sont plutôt des mots de même fonction. Grande (10 et plus) : plutôt des mots du même sujet.

min_count

Les mots vus moins de min_count fois sont ignorés. Évite d'apprendre des vecteurs sur des fautes de frappe.

type / sg

skip-gram (sg=1) donne en général de meilleurs vecteurs pour les mots rares ; CBOW (sg=0, défaut de gensim) est plus rapide sur de gros volumes.

LE CODE MINIMAL

jeu d'exemple : avis_clients.csv ↓
# Vocabulaire des avis clients : Word2Vec en R
library(word2vec)

avis <- read.csv("avis_clients.csv")
textes <- tolower(avis$texte)

# Skip-gram : chaque mot apprend à prédire ses voisins dans une fenêtre de 3 mots
set.seed(42)
modele <- word2vec(x = textes, type = "skip-gram", dim = 50, window = 3,
                   iter = 50, min_count = 5, threads = 1)
vecteurs <- as.matrix(modele)
cat("Vocabulaire :", nrow(vecteurs), "mots, vecteurs de", ncol(vecteurs), "dimensions\n")

# Les mots les plus proches par similarité cosinus
print(predict(modele, c("livraison", "remboursement", "qualité"), type = "nearest", top_n = 4))

# Comparer deux mots
print(word2vec_similarity(vecteurs["rapide", , drop = FALSE], vecteurs["retard", , drop = FALSE], type = "cosine"))

QUESTIONS FRÉQUENTES

Que signifie roi - homme + femme = reine ?

Sur des vecteurs appris sur des milliards de mots, les écarts entre vecteurs capturent des relations : l'écart entre « homme » et « femme » ressemble à celui entre « roi » et « reine ». Le calcul roi - homme + femme donne un vecteur dont le plus proche voisin, hors mots de départ, est « reine ». Cela reste approximatif et ne marche pas pour toutes les relations.

Skip-gram ou CBOW ?

Skip-gram prédit les voisins à partir du mot et représente mieux les mots rares. CBOW prédit le mot à partir de ses voisins et s'entraîne plus vite. Sur un petit corpus métier, skip-gram est souvent le meilleur choix.

Word2Vec est-il dépassé par les LLM ?

Pour comprendre des phrases, oui : les embeddings issus de Transformers tiennent compte du contexte. Word2Vec reste utile pour un vocabulaire métier très spécifique, un budget de calcul minimal, ou pour représenter des séquences non textuelles comme des produits achetés ensemble.

LES ALGOS VOISINS

à comparer avant de choisir
la génération suivante

Embeddings

Des vecteurs de phrases ou de documents, appris par des Transformers. Ils tiennent compte du contexte de chaque mot.

Voir la fiche →
l'approche par comptage

TF-IDF

Chaque mot est une colonne indépendante : aucune notion de proximité entre « colis » et « paquet ». Plus simple, plus lisible.

Voir la fiche →
des vecteurs contextuels

BERT

Le même mot reçoit un vecteur différent selon la phrase. Règle le problème des mots à plusieurs sens.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →