Représentations vectorielles continues: obtenir des représentations vectorielles continues

Cette section décrit plusieurs méthodes d'obtention d'embeddings, ainsi que la manière de transformer des embeddings statiques en embeddings contextuels.

Techniques de réduction de la dimensionnalité

De nombreuses techniques mathématiques permettent de capturer les structures importantes d'un espace à haute dimension dans un espace à faible dimension. En théorie, n'importe laquelle de ces techniques peut être utilisée pour créer un vecteur d'encapsulation pour un système d'apprentissage automatique.

Par exemple, l'analyse en composantes principales (ACP) a été utilisée pour créer des embeddings lexicaux. Étant donné un ensemble d'instances telles que les vecteurs de sac de mots, l'ACP tente de trouver des dimensions fortement corrélées qui peuvent être regroupées en une seule dimension.

Entraîner un embedding dans un réseau de neurones

Vous pouvez créer un vecteur d'encapsulation lorsque vous entraînez un réseau de neurones pour votre tâche cible. Cette approche vous permet d'obtenir un vecteur d'encapsulation bien personnalisé pour votre système particulier, mais elle peut prendre plus de temps que l'entraînement du vecteur d'encapsulation séparément.

En général, vous pouvez créer une couche cachée de taille d dans votre réseau de neurones, qui est désignée comme la couche d'encapsulation, où d représente à la fois le nombre de nœuds dans la couche cachée et le nombre de dimensions dans l'espace d'encapsulation. Cette couche d'encapsulation peut être combinée à d'autres fonctionnalités et couches cachées. Comme dans tout réseau de neurones profond, les paramètres seront optimisés pendant l'entraînement afin de minimiser les pertes sur les nœuds de la couche de sortie du réseau.

Pour revenir à notre exemple de recommandation de repas, notre objectif est de prédire les nouveaux repas qui plairont à un utilisateur en fonction de ses repas préférés actuels. Tout d'abord, nous pouvons compiler des données supplémentaires sur les cinq aliments préférés de nos utilisateurs. Nous pouvons ensuite modéliser cette tâche en tant que problème d'apprentissage supervisé. Nous définissons quatre de ces cinq aliments comme données de caractéristique, puis nous mettons de côté de manière aléatoire le cinquième aliment en tant qu'étiquette positive que notre modèle vise à prédire, en optimisant ses prédictions à l'aide d'une perte softmax.

Lors de l'entraînement, le modèle de réseau de neurones apprend les poids optimaux pour les nœuds de la première couche cachée, qui sert de couche d'encapsulation. Par exemple, si le modèle contient trois nœuds dans la première couche cachée, il peut déterminer que les trois dimensions les plus pertinentes des aliments sont le sandwich, le dessert et le liquide. La figure 12 montre la valeur d'entrée encodée en one-hot pour "hot dog" transformée en vecteur tridimensionnel.

Figure 12 : Réseau de neurones pour l'encodage one-hot d'un hot-dog. La première couche est une couche d'entrée avec cinq nœuds, chacun annoté d'une icône représentant le plat qu'il représente (bortsch, hot-dog, salade, etc.). Ces nœuds ont respectivement les valeurs [0, 1, 0, ..., 0], qui représentent l'encodage one-hot de "hot dog". La couche d'entrée est connectée à une couche d'encapsulation à trois nœuds, dont les nœuds ont les valeurs 2,98, -0,75 et 0, respectivement. La couche d'encapsulation est connectée à une couche cachée à cinq nœuds, qui est ensuite connectée à une couche de sortie à cinq nœuds.
Figure 12 : Encodage one-hot de hot dog fourni en entrée à un réseau de neurones profond. Une couche d'encapsulation traduit l'encodage one-hot en vecteur d'encapsulation tridimensionnel [2.98, -0.75, 0].

Au cours de l'entraînement, les poids de la couche d'embedding seront optimisés afin que les vecteurs d'embedding pour les exemples similaires soient plus proches les uns des autres. Comme indiqué précédemment, les dimensions qu'un modèle réel choisit pour ses représentations vectorielles continues ne sont probablement pas aussi intuitives ni compréhensibles que dans cet exemple.

Représentations vectorielles continues contextuelles

Une limite des vecteurs d'encapsulation statiques word2vec est que les mots peuvent avoir des significations différentes selon le contexte. "Ouais" signifie une chose en soi, mais l'opposé dans l'expression "Ouais, c'est ça". "Post" peut signifier "courrier", "envoyer un courrier", "support d'une boucle d'oreille", "repère à la fin d'une course de chevaux", "postproduction", "pilier", "afficher un avis", "poster un garde ou un soldat" ou "après", entre autres possibilités.

Toutefois, avec les représentations vectorielles continues statiques, chaque mot est représenté par un seul point dans l'espace vectoriel, même s'il peut avoir plusieurs significations. Dans le dernier exercice, vous avez découvert les limites des représentations vectorielles continues statiques pour le mot orange,qui peut désigner une couleur ou un type de fruit. Avec un seul encodage statique, l'orange sera toujours plus proche des autres couleurs que du jus lors de l'entraînement sur l'ensemble de données word2vec.

Les embeddings contextuels ont été développés pour résoudre ce problème. Les embeddings contextuels permettent de représenter un mot par plusieurs embeddings qui intègrent des informations sur les mots environnants ainsi que sur le mot lui-même. Orange aurait un encodage différent pour chaque phrase unique contenant le mot dans l'ensemble de données.

Certaines méthodes de création d'embeddings contextuels, comme ELMo, prennent l'embedding statique d'un exemple, tel que le vecteur word2vec d'un mot dans une phrase, et le transforment à l'aide d'une fonction qui intègre des informations sur les mots qui l'entourent. Cela produit un vecteur d'encapsulation contextuel.

  • Plus précisément, pour les modèles ELMo, l'embedding statique est agrégé avec des embeddings issus d'autres couches, qui encodent les lectures de la phrase de l'avant vers l'arrière et de l'arrière vers l'avant.
  • Les modèles BERT masquent une partie de la séquence qu'ils reçoivent en entrée.
  • Les modèles Transformer utilisent une couche d'auto-attention pour pondérer la pertinence des autres mots d'une séquence par rapport à chaque mot individuel. Ils ajoutent également la colonne appropriée d'une matrice d'encapsulation positionnelle (voir encodage de position) à chaque encapsulation de jeton précédemment apprise, élément par élément, pour produire l'encapsulation d'entrée qui est transmise au reste du modèle à des fins d'inférence. Cet encapsulage d'entrée, propre à chaque séquence textuelle distincte, est un encapsulage contextuel.

Bien que les modèles décrits ci-dessus soient des modèles de langage, les représentations vectorielles continues contextuelles sont utiles pour d'autres tâches génératives, comme les images. L'encapsulation des valeurs RVB des pixels d'une photo d'un cheval fournit plus d'informations au modèle lorsqu'elle est combinée à une matrice de position représentant chaque pixel et à un encodage des pixels voisins, créant ainsi des représentations vectorielles continues contextuelles, que les représentations vectorielles continues statiques d'origine des valeurs RVB seules.