Cette section se concentre sur deux techniques courantes pour obtenir un vecteur d'encapsulation:
- Réduction de la dimensionnalité
- Extraire une représentation vectorielle continue d'un modèle de réseau de neurones plus grand
Techniques de réduction de la dimensionnalité
Il existe de nombreuses techniques mathématiques permettant de capturer la structure importante d'un espace à haute dimension dans un espace à faible dimension. En théorie, chacune 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 (ACP) a été utilisée pour créer des représentations vectorielles continues de mots. É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 entraînement faisant partie d'un réseau de neurones
Vous pouvez créer une représentation vectorielle continue tout en entraînant un réseau de neurones pour votre tâche cible. Cette approche vous permet d'obtenir un entraînement bien personnalisé pour votre système particulier, mais elle peut prendre plus de temps que l'entraînement de l'entraînement 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 à toutes les 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 pour minimiser les pertes sur les nœuds de la couche de sortie du réseau.
Pour reprendre 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éristiques, 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 à encodage one-hot pour le terme "hot dog", transformée en vecteur tridimensionnel.
Au cours de l'entraînement, les pondérations de la couche de représentation vectorielle continue seront optimisées de sorte que les vecteurs de représentation vectorielle continue d'exemples similaires soient plus proches les uns des autres. Les dimensions individuelles de la couche d'embedding (ce que chaque nœud de la couche d'embedding représente) sont rarement aussi compréhensibles que "dessertness" ou "liquidness". Parfois, ce qu'elles "signifient" peut être déduite, mais ce n'est pas toujours le cas.
Les représentations vectorielles continues sont généralement spécifiques à la tâche et diffèrent les unes des autres lorsque la tâche diffère. Par exemple, les représentations vectorielles continues générées par un modèle de classification végétarien ou non végétarien peuvent avoir deux dimensions: la teneur en viande et la teneur en produits laitiers. En parallèle, les représentations vectorielles continues générées par un classificateur pour le petit-déjeuner et le dîner pour la cuisine américaine peuvent avoir des dimensions légèrement différentes : teneur en calories, teneur en céréales et teneur en viande. "Céréales" et "sandwich au bacon et aux œufs" peuvent être proches dans l'espace d'encapsulation d'un classificateur de petit-déjeuner par rapport à un classificateur de dîner, mais très éloignés dans l'espace d'encapsulation d'un classificateur de végétarien par rapport à un classificateur de non-végétarien.
Entraîner la représentation vectorielle continue d'un mot
Dans la section précédente, vous avez exploré une visualisation des relations sémantiques dans l'espace d'encapsulation word2vec.
Word2vec est l'un des nombreux algorithmes utilisés pour entraîner des embeddings lexicaux. Il s'appuie sur l'hypothèse distributionnelle pour mapper des mots sémantiquement similaires à des vecteurs d'embedding géométriquement proches. L'hypothèse distributionnelle stipule que les mots qui ont souvent les mêmes mots voisins ont tendance à être sémantiquement similaires. "Chien" et "chat" apparaissent fréquemment à proximité du mot "vétérinaire", ce qui reflète leur similarité sémantique. Comme l'a dit le linguiste John Firth en 1957, "Vous devez connaître un mot par la compagnie qu'il garde."
La vidéo suivante présente une autre méthode permettant de créer une représentation vectorielle continue de mots dans le cadre du processus d'entraînement d'un réseau de neurones, à l'aide d'un modèle plus simple:
Embeddings statiques et contextuels
L'une des limites des représentations vectorielles continues de mots, comme celle décrite dans la vidéo ci-dessus, est qu'elles sont statiques. Chaque mot est représenté par un seul point dans l'espace vectoriel, même s'il peut avoir différentes significations, en fonction de la façon dont il est utilisé dans une phrase. Dans le dernier exercice, vous avez découvert la difficulté à mapper les similitudes sémantiques pour le mot orange,qui peut signifier une couleur ou un type de fruit.
Les embeddings contextuels ont été développés pour remédier à ces lacunes. Les représentations vectorielles continues contextuelles permettent de représenter un même mot de plusieurs façons, chacune intégrant des informations sur le contexte dans lequel le mot est utilisé. Dans un vecteur d'encapsulation contextuelle, le mot orange peut avoir deux représentations distinctes: l'une capturant l'utilisation du mot comme "couleur", comme dans les phrases "Mon pull préféré a des rayures orange", et l'autre capturant l'utilisation du mot comme "fruit", comme dans les phrases "L'orange a été cueillie sur l'arbre avant d'être complètement mûre".