Dans l’article précédent, nous avons exploré les tenseurs comme structures fondamentales pour représenter les données en deep learning. Aujourd’hui, concentrons-nous sur un type de données particulièrement riche et complexe : le texte. Comment transformer des mots, des phrases ou des documents en représentations numériques exploitables par les modèles d’apprentissage automatique ? Découvrons les méthodes clés, étape par étape.
Lorsqu’il s’agit de convertir des catégories discrètes en valeurs numériques, le Label Encoding offre une solution simple et immédiate. Prenons un exemple concret : imaginez que vous avez trois couleurs, ["Rouge", "Vert", "Bleu"]. Le Label Encoding attribue à chaque couleur un nombre unique, comme ceci :
[Rouge, Vert, Bleu] → [0, 1, 2]Cela permet aux modèles de traiter des données non numériques tout en conservant leur structure discrète.
Cependant, cette simplicité cache un écueil majeur. Le modèle interprète les valeurs numériques comme des grandeurs ordinales. Ainsi, $Bleu > Vert > Rouge$ (puisque $2 > 1 > 0$) devient une hiérarchie artificielle, sans fondement sémantique. De plus, des opérations comme $Bleu - Vert = 1$ n’ont aucun sens dans ce contexte catégoriel.
Pour résoudre ce problème, l’One-Hot Encoding propose une alternative radicale : chaque catégorie est représentée par un vecteur binaire dont la dimension correspond au nombre total de catégories. Par exemple :
Rouge = [1, 0, 0], Vert = [0, 1, 0], Bleu = [0, 0, 1]Cette méthode élimine toute notion d’ordre entre les catégories, car chaque token est isolé dans un espace vectoriel distinct.
Malgré cet avantage, l’One-Hot Encoding génère rapidement des vecteurs creux (presque exclusivement composés de zéros) lorsque le vocabulaire est large. Avec 10 000 mots uniques, chaque token devient un vecteur de 10 000 dimensions, ce qui rend les calculs coûteux et inefficaces.
Face à ces limitations, les word embeddings offrent une solution élégante : représenter les mots dans un espace vectoriel continu, où les relations sémantiques et syntaxiques sont capturées par la proximité géométrique des vecteurs.
Prenons un exemple célèbre :
roi - homme + femme ≈ reineCe calcul montre comment les embeddings capturent des analogies linguistiques. Les modèles comme Word2Vec ou GloVe apprennent ces relations en analysant des milliards de phrases. Chaque mot est encodé comme un vecteur dense (ex: 300 dimensions), où les similarités entre vecteurs reflètent des analogies linguistiques.
Cependant, ces embeddings statiques ont une limite majeure : un même mot possède une seule représentation, quel que soit son contexte.
Prenons le mot "Rouge" :
Avec Word2Vec, les trois sens de "Rouge" partagent le même vecteur, alors qu'ils n'ont aucun lien sémantique. Cette ambiguïté limite leur utilité dans des tâches complexes.
Les embeddings contextuelsrésolvent les limites des embeddings statiques en générant des représentations dynamiques, adaptées au sens d’un mot dans une phrase. Prenons l’exemple du mot "Rouge", dont le sens varie selon le contexte.
Avec des modèles comme BERT, chaque occurrence de "Rouge" est encodée différemment grâce à un mécanisme d’attention multi-tête(Multi-Head Attention), qui analyse les relations entre tous les mots de la phrase. Mathématiquement, ce processus repose sur des matrices de Query (Q), Key (K), et Value (V) dérivées des embeddings initiaux. L’attention calcule des pondérations via :
Attention(Q, K, V) = softmax( (QKT) / sqrt(dk) ) Voù dk est la dimension des clés. Cette formule permet au modèle de "peser" l’importance de chaque mot dans le contexte. Ainsi, dans "vin rouge", le mot "Bordeaux" influence fortement l’interprétation de "rouge" comme un type de vin, tandis que dans "idées rouges", il s’associe à des termes politiques comme "communisme".
Grâce à cette approche, les embeddings contextuels capturent des nuances sémantiques et syntaxiques complexes, désambiguïsant les mots polyvalents et intégrant des variations linguistiques (fautes, synonymes, conjugaisons). Cela révolutionne des tâches comme la traduction ou l’analyse des sentiments, où le contexte détermine la signification.
Les architectures comme les Transformers traitent les mots en parallèle, sans notion d’ordre séquentiel. Pour pallier cette limitation, les position embeddings ajoutent des informations de position aux embeddings de mots.
["Chat", "mange", "souris"] → [Embedding("Chat") + PE(0), Embedding("mange") + PE(1), Embedding("souris") + PE(2)]Les positions sont encodées via des fonctions sinus et cosinus :
PE(pos, 2i) = sin( pos / 100002i⁄d ), PE(pos, 2i+1) = cos( pos / 100002i⁄d )où d est la dimension de l’embedding. Cette méthode permet au modèle de généraliser à des séquences de longueurs variables tout en capturant les relations de proximité.
Méthode | Avantages | Limites | Cas d'utilisation |
---|---|---|---|
Label Encoding | Simple, peu coûteux | Hiérarchie artificielle | Variables ordinales |
One-Hot Encoding | Pas de hiérarchie | Explosion dimensionnelle | Petits vocabulaires |
Word Embeddings | Relations sémantiques | Ambiguïté contextuelle | NLP classique |
Embeddings Contextuels | Nuances sémantiques | Coût computationnel élevé | Modèles avancés |
Position Embeddings | Intègre l'ordre des mots | Complexité mathématique | Transformers |
La représentation du texte en deep learning a évolué d’approches basiques comme le Label Encoding vers des méthodes sophistiquées comme les embeddings contextuels. Chaque étape résout des limitations de la précédente, permettant aux modèles de capturer nuances sémantiques et structures syntaxiques. En combinant embeddings contextuels et positionnels, les architectures modernes atteignent des performances remarquables dans des tâches comme la traduction ou l’analyse des sentiments.
Pour approfondir vos connaissances et explorer des outils avancés, voici quelques ressources incontournables :
Ma recommandation musicale du jour : à écouter sans modération !
Écouter sur YouTube