LLMs (2): Sens et contexte du mot.

Rêve d'IA

Rappel.

Les vecteurs de mots sont devenus ces dernières années un pilier des techniques modernes de traitement automatique du langage naturel. Derrière ce terme se cache un concept mathématique et informatique à la fois simple et puissant : représenter le sens des mots sous la forme de vecteurs de nombres réels.

Concrètement, chaque mot du vocabulaire se voit associé à un vecteur, c’est-à-dire un ensemble de valeurs réelles. Par exemple, le mot « chien » pourrait être représenté par le vecteur [0.3, 0.8, 0.5, …] et le mot « chat » par le vecteur [0.1, 0.9, 0.4, …]. Les valeurs composant les vecteurs sont déterminées automatiquement par des algorithmes d’apprentissage machine pour capturer les spécificités sémantiques de chaque mot.

Les dimensions qui constituent ces vecteurs, dont le nombre peut aller de quelques centaines à plusieurs milliers, forment ainsi un espace mathématique dans lequel viennent se positionner sémantiquement tous les mots les uns par rapport aux autres. Les mots qui apparaissent dans des contextes linguistiques similaires dans de grands corpus de texte se retrouveront avec des vecteurs proches dans cet « espace vectoriel ».

Par exemple, les vecteurs pour « chien » et « chat » seraient plus proches entre eux que ceux pour « chien » et « avion ». La distance précise entre les vecteurs de mots quantifie ainsi finement leur degré de similarité sémantique et contextuelle.

Cette capacité à encoder le sens des mots de manière distribuée dans un espace mathématique confère de nombreux avantages. Elle permet ensuite d’effectuer des opérations sur les vecteurs de mots pour diverses applications de traitement du langage : classification de textes, traduction automatique, génération de texte, etc.

Parmi les modèles les plus célèbres pour créer de tels vecteurs de mots, Word2Vec, développé par Google en 2013, a constitué une avancée majeure. Son principe ? Entraîner les vecteurs en tentant de prédire les mots situés autour d’un mot cible dans une phrase, à l’aide de réseaux de neurones. Ce mécanisme au cœur même du modèle Word2Vec lui permet d’encoder très précisément les « voisinages distributionnels » des mots, c’est-à-dire les contextes linguistiques typiques dans lesquels ils apparaissent.

Les vecteurs de mots sont ainsi un exemple de la rencontre entre statistiques, mathématiques et informatique en vue d’une quantification du sens. Leur compréhension intuitive et leurs performances en font désormais un standard pour toute tâche impliquant du traitement sémantique du langage.

Le sens dépend du contexte.

Un schéma de vecteurs de mots simple ne capture pas un fait important du langage naturel : les mots ont souvent plusieurs sens.

Par exemple, le mot fils peut désigner un ‘enfant mâle’ ou un matériau de couture ou de tricot. Ainsi :

Jean appelle son fils pour le repas.  

Charlotte achète des fils de laine pour tricoter une écharpe.

Les sens du mot “Fils” sont complètement différent. On parle d’homonymes.

La polysémie concerne des mots de sens proches, comme par exemple:

Thomas a emprunté le dernier numéro de son magazine préféré à la bibliothèque. 

Le magazine people pour lequel Lucie travaille vient de changer de direction.

Le mot “magazine” est utilisé dans les deux cas, mais avec des sens différents.

Dans la première phrase, “magazine” désigne la publication physique que Thomas peut lire, emprunter ou feuilleter.

Dans la seconde phrase, “magazine” fait référence à l’entreprise, l’organisation ou la maison d’édition qui publie ce magazine papier.

Les deux sens sont donc étroitement liés, mais non identiques. Un magazine (sens 1) est produit par un magazine (sens 2). On parle ici de polysémie, contrairement à l’homonymie vue précédemment.

La distinction entre ces nuances de sens est essentielle pour bien comprendre un texte. Un modèle de langage performant se doit de représenter chaque acception séparément, tout en codant le lien sémantique étroit entre elles dans l’espace vectoriel.

Les modèles de langage comme ChatGPT sont capables de représenter le même mot par différents vecteurs selon le contexte dans lequel ce mot apparaît. Il y a ainsi un vecteur pour “fil” (à tricoter) et un vecteur différent pour “fils” (enfant mâle). De même, il y a un vecteur pour “magazine” (publication physique) et un autre pour “magazine” (organisation). Comme on peut s’y attendre, les modèles de langage utilisent des vecteurs plus similaires pour les sens polysémiques que pour les sens homonymiques.

Jusqu’ici, nous n’avons rien dit sur la façon dont les modèles de langage font cela – nous y viendrons bientôt. Mais nous insistons sur ces représentations vectorielles car c’est fondamental pour comprendre le fonctionnement des modèles de langage.

Les logiciels traditionnels sont conçus pour traiter des données non ambiguës. Si l’on demande à un ordinateur de calculer “2 + 3”, il n’y a aucune ambiguïté sur le sens de 2, + ou 3. Mais le langage naturel regorge d’ambiguïtés qui vont au-delà de l’homonymie et la polysémie :

  • Dans “le client a demandé au mécanicien de réparer sa voiture”, « sa » réfère-t-il au client ou au mécanicien ?
  • Dans “le professeur a exhorté l’élève à faire ses devoirs”, « ses » réfère-t-il au professeur ou à l’élève ?

Les gens résolvent ce genre d’ambiguïtés en se basant sur le contexte, mais il n’y a pas de règles simples pour cela. Cela nécessite plutôt de comprendre des faits sur le monde réel. On doit savoir que les mécaniciens réparent généralement les voitures de leurs clients, que les élèves font normalement leurs propres devoirs.

Comparer deux mots: la similarité cosinus.

Avec l’avènement des techniques d’apprentissage profond, la similarité cosinus est devenue une mesure incontournable pour appréhender les relations sémantiques complexes entre les mots au sein des plongements lexicaux (word embeddings en anglais). Issus de modèles neuronaux révolutionnaires comme Word2Vec ou GloVe, ces espaces vectoriels multidimensionnels capturent toute la subtilité des associations contextuelles et des nuances de sens véhiculées par le langage naturel.

La similarité cosinus permet ainsi de sonder ces connaissances linguistiques encodées dans des centaines ou des milliers de dimensions mathématiques. Contrairement à nos cerveaux, limités pour appréhender de telles représentations, la similarité cosinus révèle les liens sous-jacents de façon fiable et objective, tout en étant facile à calculer.

Concrètement, cette métrique mesure le cosinus de l’angle θ entre les vecteurs de deux mots A et B dans l’espace vectoriel. Plus ces vecteurs pointent dans des directions proches, formant un petit angle, plus leur similarité cosinus sera élevée, tendant vers 1. Mathématiquement, le cosinus capture ainsi la corrélation linéaire entre les vecteurs : des vecteurs colinéaires ou très alignés voient leur produit scalaire dominer dans la formule du cosinus, menant à une similarité proche de 1.

À l’inverse, plus les vecteurs sont presque orthogonaux, avec un angle approchant 90 degrés, plus leur produit scalaire est faible comparativement à leurs magnitudes respectives. Leur similarité cosinus tend alors vers 0. Ces propriétés font donc de la similarité cosinus un parfait indicateur de distance contextuelle entre les mots au sein de l’espace sémantique créé par les réseaux neuronaux.

Grâce à elle, il devient possible de cartographier intuitivement les sens lexicaux qui émergent des statistiques distributionnelles : mots associés, synonymies, oppositions, genres, spécificités, tout en prenant en compte la polysémie ou l’homonymie.

Arithmétiques des vecteurs de mots.

Les mots ayant une représentation mathématiques, il est possible d’effectuer des opérations (additions et soustractions) entre eux, puis de chercher quels sont les mots les plus proches du résultat, via la similarité cosinus.

Une vaste farce (technologie gnome …)

Une vaste farce.

Imaginons que nous voulions créer un concept alliant humour et technologie.

Tout d’abord, nous pouvons entraîner ou récupérer un modèle de plongement lexical couvrant un vocabulaire étendu. Dans cet espace vectoriel, chaque mot est positionné en fonction des contextes textuels observés.

Ensuite, il nous suffit de récupérer les vecteurs des mots “humour” et “technologie”, par exemple en les cherchant dans la matrice des vecteurs de GloVe. Puis, nous pouvons ajouter ces deux vecteurs termes à termes : vhumour + vtechnologie. Cette addition crée un nouveau vecteur intermédiaire, reflétant un sens situé quelque part entre humour et technologie.

En calculant ensuite la similarité cosinus entre ce nouveau vecteur et tous les autres vecteurs du modèle, nous obtenons les mots dont le sens se rapproche le plus de cette combinaison. Dans notre cas, un des mots les plus similaires était “dysfonctionnement” – suggestif d’une technologie décalée et absurde. Un autre mot proche était “farces”, évoquant des technologies jouant des tours.

Madame l’IA rêve …

Madame l’IA rêve.

En partant des termes “rêve” et “IA”, en récupérant à nouveau leurs vecteurs dans l’espace sémantique créé par GloVe par exemple.

Mais au lieu de les additionner, soustrayons cette fois le vecteur de “IA” à celui de “rêve”. Cette soustraction vectorielle préserve une part de sémantique du mot “rêve”, tout en retirant les connotations d’intelligence artificielle.

En calculant les plus grandes similarités cosinus avec ce nouveau vecteur intermédiaire, nous voyons émerger des mots évocateurs comme “éthéré”, “évanescent”, “ésotérique” ou même “onirique”. Ces termes suggèrent avec poésie l’idée fascinante des songes et de l’inconscient chez une intelligence artificielle.

Comment capter le contexte ?

Les vecteurs de mots sont des outils limités pour capturer le contexte du mot. Un modalité spécifique de réseau neuronal, les Transformers, qui appliquent le concept d’attention, assurent ce rôle.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *