L’objectif principal des plongements sémantiques est de représenter les mots de manière à capturer leurs relations sémantiques et leurs informations contextuelles. Ces vecteurs sont des représentations numériques dans un espace vectoriel continu, où les positions relatives des vecteurs reflètent les similarités et relations sémantiques entre les mots.
Si les vecteurs sont utilisés pour représenter les mots, c’est parce que la plupart des algorithmes de machine learning, y compris les réseaux neuronaux, sont incapables de traiter du texte brut dans sa forme brute. Ils ont besoin de chiffres comme entrées, quelle que soit la tâche.
La création de plongements lexicaux implique l’entraînement d’un modèle sur un grand corpus de texte (par exemple, Wikipédia ou Google News). Le corpus est prétraité en tokenisant le texte en mots, en supprimant les mots vides et la ponctuation et en effectuant d’autres tâches de nettoyage du texte.
Une fenêtre contextuelle glissante est appliquée au texte, et pour chaque mot cible, les mots voisins dans la fenêtre sont considérés comme des mots de contexte. Le modèle de plongement lexical est entraîné à prédire un mot cible en fonction de ses mots de contexte ou vice versa.
Cela permet aux modèles de capturer divers schémas linguistiques et d’attribuer à chaque mot un vecteur unique, qui représente la position de ce mot dans un espace vectoriel continu. Les mots ayant des significations similaires sont proches les uns des autres, et la distance et la direction entre les vecteurs encodent le degré de similarité.
Le processus d’entraînement consiste à ajuster les paramètres du modèle de plongement pour minimiser la différence entre les mots prédits et les mots réels dans le contexte.
Voici un exemple simplifié de plongements lexicaux pour un très petit corpus (6 mots), où chaque mot est représenté sous la forme d’un vecteur à 3 dimensions :
chat [0.2, -0.4, 0.7]
chien [0.6, 0.1, 0.5]
pomme [0.8, -0.2, -0.3]
orange [0.7, -0.1, -0.6]
content [-0.5, 0.9, 0.2]
triste [0.4, -0.7, -0.5]
Dans cet exemple, chaque mot (par exemple, « chat », « chien », « pomme ») est associé à un vecteur unique. Les valeurs du vecteur représentent la position du mot dans un espace vectoriel tridimensionnel continu. Les mots ayant des significations ou des contextes similaires sont censés avoir des représentations vectorielles similaires. Par exemple, les vecteurs « chat » et « chien » sont proches, ce qui reflète leur relation sémantique. De même, les vecteurs « content » et « triste » ont des directions opposées, indiquant leurs significations contraires.
L’exemple ci-dessus est simplifié à l’extrême pour illustrer notre propos. Les plongements lexicaux réels utilisent généralement des centaines de dimensions pour capturer des relations et des nuances de sens plus complexes.