Word Embeddings

1er partie

David Gonçalves

David est responsable du développement de la plateforme de chatbot Inceptive, il est le principal développeur des solutions de traitement automatique du langage naturel chez Inceptive.

La technologie de chatbot d’Inceptive utilise des exemples de conversations afin d’entraîner des modèles statistiques à extraire de l’information de ces conversations.

Cependant, une partie importante des clients ciblés par Inceptive n’ont pas accès à des conversations sauvegardées et annotées. Nous leur fournissons donc un outil permettant de rentrer quelques exemples de conversations. Nos modèles statistiques peuvent en extraire les informations dont ils ont besoin pour faire fonctionner l’agent conversationnel automatique.

Mais comment, à partir de quelques exemples, généraliser une méthode d’extraction de données sur l’ensemble des possibilités du langage naturel ?

Par exemple, si un créateur d’agent conversationnel nous fournit la phrase suivante: “Je veux me rendre à Paris.” en annotant “Paris”  comme une entité de type LIEU. Comment à partir de cet exemple pouvons nous déduire que la phrase “J’aime la ville de Londres“ contient une autre entité de type LIEU, à savoir “Londres” ?

Une solution explorée par Inceptive consiste à utiliser la technologie des Word Embeddings.

Les Word Embeddings sont un ensemble de représentations vectorielles de tout les mots d’un vocabulaire. Par exemple, pour le vocabulaire V = {loutre, paris, londres}, on peut imaginer obtenir la représentation vectorielle suivante (valeurs d’exemples) :

  • loutre devient [0.25, 0.74, 0.14]
  • paris devient [0.98, 0.01, 0.12]
  • londres devient [0.80, 0.1, 0.14]

Une fois ces vecteurs obtenus on peut alors effectuer des opérations permettant de connaître la distance entre deux représentations vectorielles de mots différents. Pour cet exemple on peut utiliser la distance euclidienne.

  • distance (loutre, paris) = 1.03257
  • distance (paris, londres) = 0.202237

On voit que les mots “paris” et “londres” sont plus proches (0.202237 < 1.03257) que les mots “loutre” et “paris”. Cette similarité représente bien les nombreuses informations abstraites transportées par les représentations vectorielles. Ces informations peuvent être utilisées par nos modèles statistiques. Ainsi, la probabilité que “Londres” soit un mot compris comme un lieu sera plus élevée que la probabilité que “loutre” soit compris comme un lieu.

Cette représentation permet ainsi à nos modèles statisques d’évaluer la probabilité que le mot “Londres” dans le contexte de la phrase “J’aime la ville de Londres” soit du même type d’entité que le mot “Paris” dans le contexte “Je veux me rendre à Paris“.

Le GIF suivant est une visualisation de Word Embeddings dans un espace en trois dimensions. On distingue très nettement la formation de “groupes” de mots proches.

Word embeddings

GIF animé présentant une vue 3D d’une représentation vectorielle d’un ensemble de mots
Source : https://github.com/anvaka/pm

Cette technologie est donc une piste intéressante à explorer afin de généraliser une règle d’extraction d’informations à partir d’un exemple simple donné par un créateur d’agent conversationnel. Cela permettrait de proposer un service n’ayant pas besoin d’un nombre extrêmement élevé de données d’entraînements de la part des créateurs d’agents.

Pour aller plus loin : Distributed Representations of Words and Phrases and their Compositionality 

Notre prochaine publication à propos des “embeddings” s’attardera sur les moyens technologiques disponibles afin d’obtenir un ensemble de représentations vectorielles d’un vocabulaire de mots.