L’IA vous parle. Mais comprend-elle ce qu’elle dit ?

14 min read
Artwork by Nicolau

Supposons que vous soyez dans une pièce, seul.

Vous regardez autour de vous. La pièce n’a ni fenêtres, ni portes, mais seulement une petite fente dans l’un des murs et des étagères remplies de livres et de gros volumes. Ils sont remplis de symboles étranges et accompagnés d’instructions en anglais qui vous aident à les convertir en de nouveaux symboles, tout aussi étranges.

Finalement, un bout de papier tombe à travers la fente. Il contient une suite de symboles que vous ne comprenez pas, semblables à ceux que vous avez trouvés dans les livres. Vous parcourez toutes les pages de tous les livres jusqu’à ce que vous trouviez les caractères correspondants, puis vous suivez les instructions qui vous indiquent quoi écrire sous le message d’origine puis de glisser le papier dans la fente par laquelle il est tombé.

Il ne s’agit pas là de symboles sans signification griffonnés sur un bout de papier. De l’autre côté de la pièce, il y a des sinophones, qui viennent de recevoir une réponse parfaite à la question qu’ils ont posée. Ils en concluent naturellement qu’il y a un vrai sinophone dans l’autre pièce. Mais nous savons que ce n’est pas le cas.

C’est la « chambre chinoise », une expérience de pensée très controversée imaginée en 1980 par le philosophe John Searle. Dans cette expérience, les livres ne sont pas des dictionnaires anglais-chinois ; ils ne tentent en aucun cas d’expliquer la signification des symboles. Ils vous donnent simplement des instructions sur la manière de prendre une entrée, de manipuler les caractères en fonction de leurs relations les uns avec les autres et de fournir un résultat. Les livres agissent comme un programme informatique.

Searle fit valoir que le test de Turing n’était pas fiable pour tester l’intelligence de la machine. Tout programme efficace d’IA pourrait en définitive apprendre les règles qui régissent une langue donnée et donner l’illusion qu’il comprend de la même façon qu’un locuteur natif.

Ces interactions entre les ordinateurs et les langages humains sont au centre du domaine du traitement du langage naturel, ou TLN.  Reconnaissance vocale, synthèse de texte, analyse des sentiments, traduction automatique : le TLN est omniprésent. Et il a connu des améliorations massives depuis les années 80. Bien qu’on trouve encore pas mal de perles dans la traduction automatique, nous avons fait d’énormes progrès depuis BabelFish. Nous (moi-même, en particulier, en tant que Yankee monolingue résidant à Lisbonne) prenons pour acquis le fait d’avoir accès à des traductions rapides et relativement précises.  

Vous êtes-vous déjà demandé comment les programmes informatiques arrivent à traiter des mots ?

Après tout, même les phrases les plus simples peuvent être des champs de mines sémantiques, jonchées de connotations et de nuances grammaticales que seuls les locuteurs natifs peuvent comprendre instantanément. Prenons, par exemple, la phrase suivante : « Yesterday, I went to the bank and ran into my friend (Hier, je suis allée à la banque et je suis tombé sur mon amie). » Comment un ordinateur peut-il traduire cela en français ? La façon la plus élémentaire serait peut-être de faire du mot à mot avec un dictionnaire bilingue. Nous finirions probablement avec la traduction : « Hier, je allée à le banque et couru dans mon amie ». Pour commencer, il y a des problèmes de conjugaison de verbe et d’accord de genre article/nom (« le banque » devrait être « la banque »). Mais si nous voulions vraiment traduire de cette façon, nous pourrions concevoir un ensemble de règles qui traiteraient ce cafouillage grammatical. Après leur mise en œuvre, nous pourrions nous retrouver avec la traduction suivante : « Hier, je suis allée à la banque et j’ai couru dans mon amie. » Sans aucun doute une amélioration ; mais, dans cette version, je continue de charger mon amie comme pour un plaquage.

Au moment de rédiger ces lignes, Google Translate (qui n’est pas spécialement connu pour ses traductions parfaites) nous donne ceci : « Hier, je suis allée à la banque et je suis tombé sur mon amie. ». Il traduit correctement l’expression signifiant « rencontrer quelqu’un par hasard ». Cela ne peut pas être le seul fait du mot à mot.

Alors qu’est-ce qui se passe ici ? Premièrement, nous devrions considérer la façon dont nous, humains, apprenons à résoudre les ambiguïtés verbales. Lorsque nous avons rencontré assez d’exemples au cours de notre enfance, nous commençons à attribuer une valeur sémantique aux mots, puis nous extrayons et extrapolons ces valeurs sémantiques selon les combinaisons de mots. En termes plus simples, sans avoir reçu une formation particulière, nous comprenons ce que les mots veulent dire et comment ils sont affectés par leur contexte. En nous référant à l’exemple précédent anglais-français, notre premier réflexe est de penser que nous avons rencontré notre amie et non que nous sommes entrés en collision avec elle. Nous avons des expériences du monde physique et une vie d’apprentissage linguistique qui nous aident à remettre les choses dans leur contexte.

Que signifient les mots et les expressions pour un ordinateur qui ne peut comprendre que des zéros et des uns ?

Bien que les ordinateurs ne puissent pas réellement « comprendre » le langage au sens humain, les former pour qu’ils génèrent des informations utiles à partir de texte n’est pas si différent de notre propre expérience d’acquisition du langage. Montrez à votre ordinateur suffisamment d’exemples et il commencera à reconnaître des modèles. Mais quel est le substitut de la compréhension humaine ? Les plongements de mots (word embeddings), unités fondamentales de toute tâche de traitement de langage naturel.

Un word embedding est essentiellement une séquence de chiffres (un vecteur) qui stocke des informations sur la signification du mot.

L’objectif de la création de plongements de mots est double : améliorer d’autres tâches du TLN, telles que la traduction automatique, ou analyser les similitudes entre des mots et des groupes de mots.

Grâce à un certain nombre d’avancées dans les méthodes de plongements de mots, 2018 a été saluée comme l’âge d’or du TLN. Ces nouvelles méthodes ont considérablement amélioré notre capacité à modéliser le langage, ce qui devrait bientôt se manifester tant dans les produits de consommation que dans les entreprises.

Prenons un exemple simple pour comprendre ce que signifie word embedding ou plongement de mots.

Supposons que nous voulions créer des plongements de mots en 2 dimensions (c’est-à-dire que chaque mot est représenté par un ensemble de deux nombres) pour certains animaux : hippopotame, serpent, papillon, ornithorynque. En outre, supposons que nos deux dimensions représentent deux caractéristiques que les animaux peuvent présenter à des degrés divers : « dangerosité » et « poilu ».

De faux word embeddings pour ces animaux pourraient être les suivants :

AnimalDangereuxPoilu
Hippopotame0.850.13
Serpent0.88-0.97
Papillon-0.91-0.86
Ornithorynque0.610.79

Dans cet exemple, « hippopotame » est représenté par le vecteur [0.85, 0.13], le serpent par [0.88, -0.97], etc. Nous avons maintenant une représentation numérique, bien que simplifiée à l’excès, de chacun de ces animaux en fonction de ces deux caractéristiques. Toutes sortes d’opérations mathématiques peuvent être effectuées sur ces vecteurs pour nous donner de nouvelles informations.

Roi – homme + femme = reine est un exemple souvent cité qui met en évidence le pouvoir des opérations de plongements de mots . Dans ce diagramme, on pourrait dire que les flèches bleues représentent le sexe et les flèches oranges représentent la royauté.

Une de ces opérations est la comparaison. À quel point un mot est-il similaire à un autre ? Dans notre exemple avec les animaux, nous pouvons imaginer la représentation numérique de « hippopotame », « serpent », « papillon » et « ornithorynque » dans un graphique 2D, sous la forme d’une ligne s’étendant de l’origine à travers les points indiqués par les nombres. La similarité de ces mots peut donc être déterminée par l’angle entre leurs vecteurs (nous appelons cela la similarité cosinus). Essentiellement, les mots séparés par un angle à 90 ° n’ont pas de relation sémantique, alors que les mots séparés par un angle à 180 ° sont exactement opposés.

Dans cet exemple, la distance entre l’hippopotame et l’ornithorynque est d’environ 16 °, tandis que la distance entre l’hippopotame et le papillon est de 104 °.

Bien sûr, il ne s’agit que d’un exemple hypothétique et amusant, qui explique juste ce que sont les plongements de mots et qui n’est qu’une ébauche de description montrant comment ils pourraient être utiles. En pratique, on utilise des valeurs de vecteurs de dimensions beaucoup plus élevées (généralement en centaines), et il serait difficile, voire injuste, d’attribuer à ces dimensions des champs sémantiques tels que « dangereux » et « poilu », puisque l’algorithme ne connaît pas la signification des mots. En outre, il faut d’importants corpus de l’ordre de dizaines de millions de mots pour « apprendre » un plongement de mots satisfaisant.

Mais d’abord, nous devons aborder rapidement un domaine de la linguistique appelé sémantique distributionnelle.

Les plongements de mots saisissent efficacement ce que l’on appelle « l’hypothèse de distribution », résumée de manière juste par le linguiste britannique John Rupert Firth dans son ouvrage paru en 1957, « A synopsis of linguistic theory » :

« Vous devriez comprendre un mot selon son contexte. »

Le champ de la sémantique distributionnelle énonce que les mots et les expressions qui apparaissent dans des contextes similaires (des distributions similaires) ont des significations similaires.

Par exemple, supposons que nous ayons un corpus de plusieurs phrases :

  • Il a caressé le chien au poil frisottant.
  • Il a caressé le chat au poil frisottant.
  • Il a joué à va-chercher avec le chien.

Pour un humain, il est tout de suite évident que les chiens et les chats sont liés (les deux sont des animaux domestiques), et que « caressé » et « jouer à va-chercher » sont liés (deux activités avec les animaux domestiques). Mais il est également évident qu’il est impossible de jouer à va-chercher avec un chat, même si ce n’est pas faute d’avoir essayé !

Les méthodes informatiques de plongements de mots tirent parti de cette idée : le contexte d’un mot peut nous aider à indiquer ce que le mot signifie si nous avons vu un nombre suffisant d’exemples et une multitude de modèles.

Cela nous ramène enfin aux algorithmes actuels de calcul des plongements de mots, comme Word2Vec, présenté en 2013 par Tomas Mikolov et ses collègues de Google. L’idée maîtresse de l’algorithme est de prédire, pour un mot donné, les termes similaires, en utilisant beaucoup de texte comme données d’apprentissage.

Revenons à une légère variation de notre phrase d’origine : « Hier, je suis allé à la banque et j’ai lu le journal. »

Avec Word2Vec, nous voulons d’abord définir une fenêtre contextuelle de mots, disons deux. Ainsi, pour chaque mot de nos données d’apprentissage, nous examinerons les deux mots précédents et les deux suivants, pour créer des paires avec le mot actuel et chacun des quatre mots de contexte. Le mot central est l’entrée et le mot contextuel est la sortie. Nous voulons utiliser le mot d’entrée pour prédire le mot de sortie.

Par exemple, si notre mot central est « banque », les paires d’apprentissage sont : (banque, à), (banque, la), (banque, et), (banque, je).

Ce processus de création de paires est répété pour chaque mot de la phrase et l’utilisation du mot d’entrée pour prédire le mot de sortie de chaque paire est ce qui génère finalement les plongements de mots.

Si vous imaginez que nous avons des millions de lignes de texte permettant l’apprentissage, plus d’associations apparaîtront plus fréquemment dans ces exemples, ce qui rendra le modèle plus susceptible d’apprendre ces combinaisons. Même dans cette phrase, on peut voir que (banque, la) / (journal, le) et (allé, je suis) / (lu, je) sont des paires similaires, car elles suivent les paradigmes article/nom et sujet/verbe pronom, respectivement.

L’étape suivante consiste à transformer ces mots en vecteurs de distribution, comme dans l’exemple avec les animaux, où les nombres ont une signification les uns par rapport aux autres.

Pour ce faire, nous passons en revue chacune des paires de formation que nous avons créées et appliquons la procédure suivante. Nous commençons par initialiser le plongement de mots d’entrée en tant que vecteur de nombres aléatoires. Ensuite, une série de fonctions mathématiques est appliquée au vecteur. Le résultat de ces opérations est un nouveau vecteur qui représente à son tour un mot, dont nous voulons qu’il soit le mot de sortie de notre paire d’entraînement. Si le mot prédit n’est pas notre mot de sortie, nous ajustons légèrement les nombres du plongement de mots pour que le résultat des opérations ressemble plus au vecteur du mot de sortie.

Dans cet exemple, notre paire d’entraînement est (banque, la). Après avoir appliqué les fonctions de sortie au plongement de mots pour « banque » (en orange), nous examinons le vecteur du mot prédit (vert) pour voir s’il correspond au mot cible, « la ». Enfin, nous modifions le plongement en orange de « banque » de sorte que le vecteur vert prédit soit plus proche de « la ».

Nous mettons à jour ces plongements de mots pour maximiser la probabilité que, dans le cas d’un mot d’entrée, le mot de sortie généré apparaisse fréquemment comme un mot de contexte dans les données. Les mots similaires auront des contextes similaires et, par conséquent, des plongements de mots similaires.

Pour mettre en évidence la consistance de ces modèles, voici quelques exemples tirés de l’ article original présentant Word2Vec.

RelationExemple 1Exemple 2Exemple 3
France : ParisItalie : RomeJapon : TokyoFloride : Tallahassee
Einstein : scientifiqueMessi : milieu de terrainMozart : violonistePicasso : peintre
Microsoft : BallmerGoogle : YahooIBM : McNealyApple : Jobs

Remarque : comme on peut le constater, la précision est assez bonne, même si de nombreuses améliorations sont clairement possibles.

Grâce aux plongements de mots, nous pouvons demander au modèle de faire des analogies telles que « La France est à Paris ce que l’Italie est à ___ ? ». Même si l’ordinateur ne comprend toujours pas, c’est comme s’il savait que Rome était la capitale de l’Italie et que Picasso était un peintre. Sur la base de l’hypothèse de distribution, il traduirait le nom « Steve Jobs » par « Steve Jobs » dans un article technique, mais « jobs » par « emplois » dans un article économique. Il détecterait que je n’ai pas plaqué mon amie au sol ; je l’ai simplement rencontrée à la banque.

En utilisant ce type de technique de plongements de mots, nous avons obtenu des résultats étonnants pour différentes tâches, telles que l’analyse des sentiments, la génération de texte et, plus important encore, pour Unbabel, la traduction automatique.

Cependant, le problème de langue de l’IA n’est pas résolu : nous sommes encore loin d’obtenir que les ordinateurs aient une véritable compréhension du langage naturel. Après tout, le langage est une activité intrinsèquement humaine, une activité qui distingue notre intelligence. Cela nécessite un mélange d’abstraction et d’association, d’interaction avec le monde physique qui nous entoure et peut-être un peu d’ingéniosité humaine, chose que nous avons en abondance mais dont manque l’IA.

Dans la quête de machines vraiment intelligentes, il est difficile d’imaginer un système d’IA complexe qui ne soit pas basé sur le langage. Mais malgré ce que certaines entreprises et certains titres voudraient vous faire croire, cela n’est pas près de se produire de si tôt.

Sources :

Herbelot, A. « Distributional semantics: a light introduction ». https://aurelieherbelot.net/research/distributional-semantics-intro/

McCormick, C. (19 avril 2016). Tutoriel Word2Vec – Le modèle Skip-Gram. Consulté sur http://www.mccormickml.com

Mikolov, T. et al. « Efficient Estimation of Word Representations in Vector Space ». 2013. https://arxiv.org/pdf/1301.3781.pdf. Mikolov, T. et al. « Distributed Representations of Words and Phrases and their Compositionality ». 2013. https://arxiv.org/pdf/1301.3781.pdf.

 

ArtboardFacebook iconInstagram iconLinkedIn iconUnbabel BlogTwitter iconYouTube icon