Logo de l'association Je science donc je suis ou en abbrégé JS²
Logo de l'association Je science donc je suis ou en abbrégé JS²
broken image
  • ACCUEIL
  • A PROPOS 
    • Qui sommes nous ?
    • Nous rejoindre
  • JOURNAUX 
    • Je Science donc J'écris
    • Hors série
    • Journal junior
  • BLOG
  • PODCASTS 
    • Les Voix de la Science
    • Flash Sciences
  • EVENEMENTS 
    • Actuels
    • Passés
  • COM' DIGITALE 
    • Journée mondiale
    • Histoire de Sciences
    • Explique-moi
    • 1jour1question
    • Vidéos
  • CONTACT
  • …  
    • ACCUEIL
    • A PROPOS 
      • Qui sommes nous ?
      • Nous rejoindre
    • JOURNAUX 
      • Je Science donc J'écris
      • Hors série
      • Journal junior
    • BLOG
    • PODCASTS 
      • Les Voix de la Science
      • Flash Sciences
    • EVENEMENTS 
      • Actuels
      • Passés
    • COM' DIGITALE 
      • Journée mondiale
      • Histoire de Sciences
      • Explique-moi
      • 1jour1question
      • Vidéos
    • CONTACT
Logo de l'association Je science donc je suis ou en abbrégé JS²
Logo de l'association Je science donc je suis ou en abbrégé JS²
broken image
  • ACCUEIL
  • A PROPOS 
    • Qui sommes nous ?
    • Nous rejoindre
  • JOURNAUX 
    • Je Science donc J'écris
    • Hors série
    • Journal junior
  • BLOG
  • PODCASTS 
    • Les Voix de la Science
    • Flash Sciences
  • EVENEMENTS 
    • Actuels
    • Passés
  • COM' DIGITALE 
    • Journée mondiale
    • Histoire de Sciences
    • Explique-moi
    • 1jour1question
    • Vidéos
  • CONTACT
  • …  
    • ACCUEIL
    • A PROPOS 
      • Qui sommes nous ?
      • Nous rejoindre
    • JOURNAUX 
      • Je Science donc J'écris
      • Hors série
      • Journal junior
    • BLOG
    • PODCASTS 
      • Les Voix de la Science
      • Flash Sciences
    • EVENEMENTS 
      • Actuels
      • Passés
    • COM' DIGITALE 
      • Journée mondiale
      • Histoire de Sciences
      • Explique-moi
      • 1jour1question
      • Vidéos
    • CONTACT
Logo de l'association Je science donc je suis ou en abbrégé JS²

La rubrique IA :

Comment les applications savent-elles ce que vous allez écrire ? 

· Technologie

Si vous avez un smartphone et que vous vous en servez pour son usage premier, c’est à dire envoyer des messages, vous avez sûrement remarqué, quand vous tapez le début d’une phrase, que vos applications de messagerie arrivent à vous suggérer une suite, parfois pertinente. Comment savent-elles donc ce que vous allez écrire ? 

Intro : Conversation entre humains

Je suis sûre qu’il vous est déjà arrivé, lors d’une conversation, d’aider quelqu’un à finir sa phrase. Par exemple, pendant une discussion sur un de vos sujets de prédilection, la personne avec laquelle vous parlez commence une phrase, et ne trouve plus ses mots. Pour l’aider, vous lui en suggérez, qui termineraient sa phrase de façon plausible, et après quelques essais, félicitations ! C’était le mot juste : la conversation peut reprendre son cours. 
Proposer des mots en fonction du contexte, c’est exactement ce que font les logiciels qui suggèrent la suite de vos phrases, grâce à un mécanisme qu’on appelle le modèle de langue. Nous allons ici en étudier deux types.

1. Une vision initialement statistique de la langue

Vous savez quels mots succèdent aux autres, parce que vous avez appris à parler. Comment un programme informatique, lui, peut-il le savoir ?  Et bien, avec des statistiques, pardi ! Des chercheurs en informatique appliquée à la linguistique ont mis au point, dans les années 90, des modèles appelés “modèles de langue”. Ceux-ci fonctionnent selon l’idée suivante : si on possède de grandes quantités de texte dans une langue, on peut observer statistiquement quels mots succèdent à quels autres.

Si on a suffisamment de textes sur lesquels faire ces calculs, le modèle pourra donc prédire de façon réaliste quelle est la suite la plus probable d’un début de phrase (en fonction, cependant, de ce qu’on lui aura montré; le modèle ne peut pas prédire ce qu’il n’a jamais vu). Par exemple, si nos données initiales contiennent 1000 fois “Le ciel est bleu” et 500 fois “Le ciel est gris”, la probabilité de “bleu” après “Le ciel est” est de 66% pour le modèle. Cependant, on ne peut pas étudier les probabilités de toutes les combinaisons de mots possibles, même si ce serait plus précis : les calculs seraient énormes ! Dans nos données, on doit donc faire des choix : on étudie seulement la probabilité qu’a un mot d’apparaître après les “n” mots qui le précèdent. Dans l’exemple au dessus, on a regardé la probabilité de “bleu” et “gris” quand n=3, donc après 3 mots (et on choisit en général des n pas trop grands). Les modèles de langue statistiques ainsi construits s’appellent des n-grams. 

Cependant, il y a un grand nombre de cas où le contexte proche n’est pas suffisant. Par exemple, dans la phrase “Je les vis de [?]”, un modèle uniquement statistique aura du mal a savoir si “les vis de” fait référence à un objet (vis de fixation?) ou au verbe au passé (voir de loin?). Comment faire, alors, si on souhaite obtenir des informations plus complexes sur les mots et leurs relations, pour prédire avec plus de précision ?

2. Une petite révolution informatique

Pour ce faire, des chercheurs, travaillant dans le domaine du traitement automatique des langues (un sous domaine de l’intelligence artificielle), ont développé dans les 20 dernières années de nouvelles méthodes informatiques pour obtenir ces informations de façon plus efficace et précise. Ces méthodes utilisent ce qu’on appelle des réseaux de neurones.

2.1. “Mathématiser” des mots, la puissance de l’informatique

Un réseau de neurones est une grosse fonction (une succession de calculs mathématiques qui transforment des nombres en d’autres nombres). Or, on veut appliquer ce réseau, donc ces calculs, à des mots. Bizarre, bizarre… Comment peut-on appliquer une addition, ou une multiplication à un mot ? 

Et bien, la première étape du travail consiste tout bêtement à transformer les mots en quelque chose d’utilisable pour des calculs mathématiques : des nombres. Comment faire ?
Le plus simple serait d’associer chaque mot à un unique nombre, par exemple son index dans la liste alphabétique de tous les mots du français. Cependant, un seul nombre, ça nous donne trop peu d’informations ! C’est comme pour mieux connaître les élèves d’une classe : si vous n’avez que la moyenne générale pour chaque élève, ça ne vous donne pas beaucoup d’informations, alors que si vous avez, pour chaque élève, la liste de ses moyennes matière par matière, c’est déjà plus indicatif pour connaître les profils individuels. Par exemple, savoir que Claude a comme moyennes [17, 18, 6.5, 6.5] et Alix [12, 10, 14, 12], c’est plus informatif que de savoir que les deux élèves ont 12 de moyenne générale. On veut donc associer chaque mot à une liste de nombres, ce qu’en mathématiques on appelle un vecteur.

Comment choisir ces vecteurs pour qu’ils contiennent des informations intéressantes sur nos mots ? On pourrait décider de leur contenu manuellement, avec par exemple le premier nombre qui indique si le mot est un objet, une personne,  ou un animal, le deuxième si le mot est masculin, neutre, ou féminin, etc, mais ce serait terriblement long et compliqué; et comment choisir de bonnes catégories ?

Des chercheurs ont donc créé des méthodes pour trouver ces vecteurs automatiquement. Un des réseaux de neurones les plus connus pour ça s’appelle word2vec. On lui demande de travailler sur une tâche adjacente : à partir des vecteurs de deux mots, il doit dire s’ils sont susceptibles d’être voisins ou non, donc d’apparaître à proximité l’un de l’autre ou pas. Hors, pour l’instant, nous n’avons pas ces vecteurs, car nous les cherchons : au début, l’association mot-vecteur est en fait effectuée complètement au hasard ! C’est le réseau, en essayant d’apprendre quels mots sont voisins, qui va changer leurs valeurs, pour que des mots qui apparaissent dans les mêmes contextes aient une représentation mathématique proche.

Au final, on obtient ainsi les représentations mathématiques de nos mots, sur lesquels on pourra donc faire des calculs mathématiques. Elles sont appelées embeddings (plongement lexical en français). Contrairement aux listes de moyennes de nos élèves, ici, on ne sait pas à quoi correspondent les différents nombres de nos listes (car le réseau de neurones les a appris tout seul, de façon difficilement interprétable pour un être humain, en cherchant juste à minimiser ses erreurs). Cependant, de façon surprenante, des chercheurs ont constaté que des calculs mathématiques sur ceux-ci avaient beaucoup de sens linguistique : l’exemple le plus connu est que le calcul “roi” moins “homme” plus “femme” donne “reine” ! On a donc capturé avec ces représentations mathématiques des notions de linguistique (un roi, quand on remplace le concept homme par femme, est une reine). Pas mal, n’est ce pas ? 

broken image

 “Non, vos phrases ne sont pas prédites par cet oiseau”

2.2 Comprendre la langue à partir de phrases à trou

Maintenant que nous avons transformé nos mots en représentations mathématiques, que pouvons nous donc en faire ? Vous souvenez-vous des modèles de langues statistiques, qui s'intéressaient au contexte ? Et bien, nous allons appliquer le même type de raisonnement, avec cette fois de nouveaux réseaux de neurones, des modèles de langues neuronaux. Un modèle de langue neuronal “apprend” à associer, à un contexte, le mot correspondant. 

Si je vous dis “La [ ?] tous les chats sont gris”, vous pouvez deviner, si vous connaissez l’expression, que le mot [ ?] est “nuit”. Une des façons de faire apprendre un modèle de langue neuronal est très similaire : on lui montre plein de phrases à trou ou des débuts de phrases (des contextes), en lui demandant de faire une proposition de mot pour les combler, puis on compare chaque proposition faite à la vraie réponse attendue. Chacune de ces étapes (proposition de réponse à partir d’une phrase à trou, amélioration du modèle en comparant avec la vérité) est calculée à partir des représentations mathématiques.

Pour que le modèle s’améliore, on veut réduire la différence entre chaque proposition et la bonne réponse associée : pour chaque contexte, on modifie donc la mécanique interne du modèle, afin que les calculs faits rapprochent sa proposition de la bonne réponse. Ainsi, si jamais le modèle est confronté de nouveau, plus tard, à un contexte similaire, ses calculs donneront directement une réponse plus proche de la vérité. (Le mécanisme qu’on vient de voir, qui revient en arrière sur les calculs passés pour améliorer les calculs futurs s’appelle la rétro-propagation. C’est un aspect très intéressant des réseaux de neurones, mais son fonctionnement détaillé mérite son propre article).

Plus on montre d’exemples au modèle de langue neuronal, plus la façon de faire les calculs pour associer des contextes aux mots appropriés devient précise et adaptée. 

Conclusion

Ainsi, à notre question de départ, nous pouvons répondre que les applications de messagerie ne “savent” pas ce que vous allez écrire, mais qu’elles utilisent des modèles de langue pour proposer des mots plausibles pour vos phrases. Ces modèles mathématiques (statistiques pour les plus anciens, neuronaux pour les plus récents) ont appris des associations entre des mots et leurs contextes. Et voilà! Petite question, d’ici la prochaine fois : à quoi ces modèles de langue peuvent-ils servir, mis à part suggérer des mots? Pourriez vous rédiger votre dissertation avec un modèle de langue entraîné sur des textes de philosophes? 

La réponse au prochain épisode de la rubrique IA, où l’on verra comment fonctionne la génération automatique de texte !

En savoir plus

Pour comprendre word2vec avec des images 

Pour jouer avec des plongement lexicaux 
Petit module de visualisation 
Explication de la littérature scientifique autour de word2vec

Cours de référence 
Les modèles de langues statistiques
Les modèles de langues neuronaux

Article paru dans Je Science donc J'écris n°26 - Mars 2021

Couverture Je Science donc J'écris Mars 2021
S'abonner
Billet précédent
Mathématiques :  Compter sur nos dix doigts
Billet suivant
Question con :  Bébé fait-il ses besoins dans le ventre...
 Revenir au site
strikingly iconPropulsé par Strikingly
Photo de profil
Annuler
Utilisation des cookies
Nous utilisons des cookies pour améliorer l'expérience de navigation, la sécurité et la collecte de données. En acceptant, vous consentez à l'utilisation de cookies à des fins publicitaires et d'analyse. Vous pouvez modifier vos paramètres de cookies à tout moment. En savoir plus
Accepter tout
Paramètres
Refuser Tout
Paramètres des Cookies
Cookies nécessaires
Ces cookies sont destinés pour des fonctionnalités de base telles que la sécurité, la gestion du réseau et l'accessibilité. Ces cookies ne peuvent pas être désactivés.
Cookies pour les statistiques
Ces cookies nous aident à mieux comprendre comment les visiteurs interagissent avec notre site web et nous aident à découvrir les erreurs de navigation.
Préférence pour les Cookies
Ces cookies permettent au site web de se souvenir des choix que vous avez faits afin de fournir une fonctionnalité et une personnalisation améliorées.
Enregistrer