Tought vectors: la pensée numérisée

Alternative aux réseaux neuronaux, ce principe d'intelligence artificielle est la cible de Google pour ses algorithmes.

Cela peut permettre au départ d'améliorer la traduction automatique, de rendre un moteur de recherche plus intelligent. La stade suivant serait la capacité pour un être virtuel d'entretenir une conversation sensée. Puis par la suite, donner une intelligence aux androïdes...

Le terme vector (vecteur) désigne un ensemble de nombres que l'on assigne à un mot. Ces nombres représentent une position dans un espace de signification, formé d'un nuage de mots.

Simone, Rachel Roberts

Simone, personnage virtuel avec le corps numérisé de Rachel Roberts, face à Al Pacino

Une phrase du langage est un chemin reliant plusieurs mots. A cette phrase peut être aussi associé un vecteur, un ensemble de valeurs-positions. Une phrase ainsi représente une pensée. Elle est indépendante du langage, le même vecteur peut s'appliquer à des langages humains différents.

Comment construire cette infinité de vecteurs? Google est bien placé pour parvenir à cette fin. Ayant accès à pratiquement tous les textes écrits dans le monde et pouvant grâce à ses algorithmes leur une signification à chaque phrase, ou les associer à des évènements, le moteur de recherche peut positionner les mots dans de multiples espaces sémantiques. C'est assez proche du principe du PageRank, ou les mots-clés d'une page sont notés en fonction des liens vers la page avec les mêmes mots-clés.

La pensée numérisée

A priori, ce type de technique n'est pas accessible à tout programmeur désirant donner un peu d'intelligence à une application, ou à un robot.

Pourtant, Google à mis en ligne un outil gratuit, word2vec, pour obtenir quelque chose de similaire. On lui donne des textes pour qu'il réalise un entrainement, ce qui dans la pratique génère une liste de nombres (un vecteur) pour chaque mot du vocabulaire, dont les valeurs sont la proximité avec un autre mot du vocabulaire. Par exemple un nom de ville est relié au nom de toute autre ville par un nombre élevé alors qu'il est lié à d'autres mots par un nombre plus faible.
Ce nombre est donc un indice de corrélation entre deux mots et une probabilité qu'ils apparaissent dans la même phrase.

On peut alors constater que si l'on écrit:

vector("Paris") - vector("France") + vector("Italie")

on obtient un vecteur, qui dont la liste de nombres est proche de celle de:

vector("Rome").

La pensée se réduit à des listes de nombres similaires! On pourrait donc donner Rome en réponse à une question qui dirait "Pour l'Italie, ce qu'est Paris à la France."

Le logiciel word2vec est fourni avec des tests pour mesurer la qualité des vecteurs réalisés avec l'entrainement que vous lui avez donné. Cet entraenement peut être réalisé avec des ensembles de documents (datasets) fournis par Wilkipedia et autres sources dont la liste est donnée sur le site de word2vec.

Vous pouvez donc vous lancer et commencer à travailler sur votre version de Simone, le personnage virtuel du film du même nom, qui était si réaliste qu'il a fait une carrière au cinéma - une image infiltrée parmi d'autres images, celles d'acteurs réels!

La psychologie automatisée

On peut tenter d'imaginer toutes les perspectives qu'offre la possibilité de convertir la pensée en chiffres et la stocker sur une unité de mémoire.

L'algorithme de Google a certainement pour but de pouvoir répondre à toutes les questions que pourraient poser les internautes, tel le Dr Know du film A.I. Et aussi d'associer des informations pertinentes à ses différents services comme Maps, Gmail, etc...

La même technologie permettra aussi de réaliser des prévisions et des simulations sur la base de larges ensembles de données.
Elle seront plus réalistes si l'on prend en compte les facteurs humains. La personnalité humaine devient numérisable sous forme de vecteurs, avec un ensemble de traits de caractères, qui tendent à induire des comportements. Si l'on peut trouver des similitudes entre les vecteurs d'une population - qu'un logiciel comme Windows 10 peut aider à tracer - cela permettra de prédire le comportement de toute personne sur la base de ce que l'on connait des vecteurs similaires.

Cela permettrait par exemple d'identifier des criminels avant qu'ils ne passent à l'acte. Cela permettrait aussi d'identifier des opposants au régime. Mais en théorie, si l'on applique le procédé à tous, on ne permettrait pas aux dictateurs potentiels d'accéder au pouvoir et les opposants n'auraient rien à craindre! En théorie.

Références