Représentations vectorielles continues

Il existe plusieurs façons d'obtenir une représentation vectorielle continue, y compris un algorithme de pointe créé par Google.

Techniques standards de réduction de la dimensionnalité

Il existe de nombreuses techniques mathématiques pour capturer la structure importante d'un espace de grande dimension dans un espace de faible dimension. En théorie, n'importe laquelle de ces techniques peut être utilisée pour créer une représentation vectorielle continue pour un système de machine learning.

Par exemple, l'analyse en composantes principales (PCA) a été utilisée pour créer des représentations vectorielles continues de mots. À partir d'un ensemble d'instances telles que des vecteurs "sac de mots", l'ACP tente de trouver des dimensions fortement corrélées qui peuvent être regroupées en une seule dimension.

Word2vec

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

L'hypothèse de distribution indique que les mots qui ont souvent les mêmes mots ont tendance à être sémantiquement similaires. Les mots "chien" et "chat" apparaissent souvent à proximité du mot "vétérinaire", et ils reflètent leur similarité sémantique. Comme l'a dit le linguiste John Firth en 1957, "vous devez connaître le mot de l'entreprise qu'il détient".

Word2Vec exploite des informations contextuelles comme celle-ci en entraînant un réseau de neurones pour distinguer des groupes de mots réellement associés d'un groupe aléatoire de mots. La couche d'entrée accepte une 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 crée un exemple négatif en remplaçant le mot cible par un mot aléatoire. Si l'on prend l'exemple positif "l'avion vole", le système peut échanger en "jogging" pour créer l'exemple négatif négatif "les mouches du jogging".

L'autre version de l'algorithme crée des exemples négatifs en associant le vrai mot cible à des mots de contexte choisis au hasard. Ainsi, il peut prendre les exemples positifs (l'avion), (voler, avion) et les exemples négatifs (compilés, avion) (qui, avion) et apprendre à identifier les paires qui sont apparues ensemble dans le texte.

Toutefois, le classificateur ne correspond à aucun des objectifs réels de l'une ou l'autre version du système. Une fois le modèle entraîné, vous disposez d'une représentation vectorielle continue. Vous pouvez utiliser les pondérations qui connectent la couche d'entrée à la couche cachée pour mapper des représentations creuses de mots avec des vecteurs plus petits. Cette représentation vectorielle continue peut être réutilisée dans d'autres classificateurs.

Pour en savoir plus sur WordPress2vec, consultez le tutoriel sur tensorflow.org.

Entraîner une représentation vectorielle continue dans un modèle plus grand

Vous pouvez également apprendre une représentation vectorielle continue faisant partie du réseau de neurones pour votre tâche cible. Cette approche vous permet d'obtenir une représentation vectorielle continue personnalisée pour votre système, mais cela peut prendre plus de temps que d'entraîner l'intégration séparément.

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 d'unité cachée 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 DNN, la couche finale correspond à la perte optimisée. Par exemple, imaginons que nous effectuons un filtrage collaboratif dans le but de prédire les centres d'intérêt d'un utilisateur à partir des centres d'intérêt d'autres utilisateurs. Nous pouvons modéliser cela comme un problème d'apprentissage supervisé en mettant de côté (ou en mettant en attente) un petit nombre de films que l'utilisateur a regardés comme étiquettes positives, puis en optimisant une perte softmax.

Figure 5. Exemple d'architecture DNN pour apprendre des représentations vectorielles continues de films à partir de données de filtrage collaboratifs

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 le prix des logements. Vous optimiserez alors une perte L2 en utilisant le prix de vente connu des logements dans vos données d'entraînement comme étiquette.

Lors de l'apprentissage d'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 à proximité 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 axes d.

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. Vue géométrique des pondérations de la couche de représentations vectorielles continues.