Représentations vectorielles continues : comment les obtenir

Il existe de nombreuses façons d'obtenir une représentation vectorielle continue, notamment via un algorithme de pointe développé par Google.

Techniques standards de réduction des dimensions

Il existe de nombreuses techniques mathématiques pour retranscrire la structure importante d'un espace de grande dimension dans un espace de faible dimension. En théorie, toutes ces techniques peuvent être utilisées pour créer une représentation vectorielle continue pour un système de Machine Learning.

Par exemple, l'analyse en composantes principales (ACP) a été utilisée pour créer des représentations vectorielles continues de mots. Lorsqu'on lui donne un ensemble d'instances, comme des vecteurs de sacs de mots, l'ACP tente d'identifier les dimensions hautement corrélées qui peuvent être regroupées en une seule dimension.

Word2vec

Word2vec est un algorithme inventé par Google pour former des représentations vectorielles continues de mots. Word2vec s'appuie sur l'hypothèse distributionnelle pour associer des mots sémantiquement similaires à des vecteurs de représentations vectorielles continues proches d'un point de vue géométrique.

L'hypothèse distributionnelle part du principe que les mots souvent entourés des mêmes mots voisins ont tendance à être sémantiquement similaires. "Chien" et "chat" apparaissent tous les deux souvent à côté du mot "vétérinaire". Cela indique leur similarité sémantique. Comme le déclarait le linguiste John Firth en 1957, "Vous pouvez connaître un mot par son entourage".

Word2Vec exploite de telles informations contextuelles en apprenant à un réseau neuronal à faire la distinction entre des groupes de mots réellement associés et des mots regroupés par hasard. La couche d'entrée associe la représentation creuse d'un mot cible avec un ou plusieurs mots contextuels. Cette entrée se connecte à une seule couche cachée, plus petite.

Dans une version de l'algorithme, le système prend un exemple négatif en substituant le mot cible par un mot choisi au hasard. Partant de l'exemple positif "l'avion vole", le système peut effectuer un remplacement avec "jogging" pour créer l'exemple négatif "le jogging vole", qui forme un contraste.

L'autre version de l'algorithme crée des exemples négatifs en associant le véritable mot cible avec des mots contextuels choisis au hasard. Ainsi, il peut utiliser les exemples positifs (l', avion), (vole, avion) et les exemples négatifs (compilé, avion), (la, avion), et apprendre à identifier les paires qui apparaissent vraiment ensemble dans le texte.

Cependant, le classificateur n'est le véritable objectif pour aucune des versions du système. Une fois que le modèle a été formé, vous obtenez une représentation vectorielle continue. Vous pouvez utiliser les pondérations qui relient la couche d'entrée à la couche cachée pour associer des représentations creuses de mots à de plus petits vecteurs. Cette représentation vectorielle continue peut être réutilisée dans d'autres classificateurs.

Pour en savoir plus sur word2vec, consultez le didacticiel sur tensorflow.org.

Entraîner une représentation vectorielle continue faisant partie d'un plus grand modèle

Vous pouvez également entraîner une représentation vectorielle continue faisant partie du réseau neuronal de votre tâche cible. Cette approche vous permet d'obtenir une représentation vectorielle continue adaptée à votre système particulier, mais peut prendre plus de temps que la formation séparée de la représentation vectorielle continue.

En général, lorsque vous disposez de données creuses (ou de données denses que vous souhaitez intégrer), vous pouvez créer un bloc de représentations vectorielles continues qui n'est qu'un type spécial de bloc caché de taille d. Cette couche de représentations vectorielles continues peut être combinée avec d'autres caractéristiques et couches cachées. Comme dans tout réseau neuronal profond, la dernière couche correspond à l'optimisation de la perte. Par exemple, imaginons que nous effectuons un filtrage collaboratif, où l'objectif est de prédire le centre d'intérêt d'un utilisateur à partir des centres d'intérêt des autres utilisateurs. Nous pouvons modéliser cela en tant que problème d'apprentissage supervisé en mettant de côté (ou en conservant) au hasard un petit nombre de films que l'utilisateur a regardés pour en faire des étiquettes positives, puis en optimisant une perte softmax.

Figure 5 : Un exemple d'architecture de réseau de neurones profond permettant d'entraîner les représentations vectorielles continues de films à partir des données du filtrage collaboratif.

Prenons un autre exemple. Si vous souhaitez créer une couche de représentations vectorielles continues pour les mots d'une annonce immobilière en l'intégrant à un réseau de neurones profond pour prédire les prix des logements, vous optimisez une perte L2 en utilisant le prix de vente connu des logements dans vos données d'apprentissage comme étiquette.

Lorsque vous entraînez une représentation vectorielle continue à d dimensions, chaque élément est associé à un point dans un espace à d dimensions, de sorte que les éléments similaires se trouvent proches les uns des autres dans cet espace. La figure 6 illustre la relation entre les pondérations apprises dans la couche de représentations vectorielles continues et la vue géométrique. La pondération des arêtes entre un nœud d'entrée et les nœuds de la couche de représentations vectorielles continues à d dimensions correspond aux valeurs des coordonnées de chacun des d axes.

Une figure illustrant la relation entre les pondérations de la couche de représentations vectorielles continues et la vue géométrique de la représentation vectorielle continue.

Figure 6 : Une vue géométrique des pondérations de la couche de représentations vectorielles continues.