Représentations vectorielles continues

Imaginez que vous développiez une application de recommandation d'aliments, les utilisateurs saisissent leurs repas préférés, et l'application leur suggère des repas similaires. qui pourraient leur plaire. Vous souhaitez développer un modèle de machine learning (ML) capable de prédire la similarité alimentaire, ce qui permet à votre application recommandations ("Étant donné que vous aimez les crêpes, nous vous recommandons les crêpes).

Pour entraîner votre modèle, vous sélectionnez un ensemble de données composé de 5 000 les plats de repas, y compris le bortsch hot dog, salade, pizza et shawarma.

Figure 1. Ensemble d'illustrations de cinq aliments. Dans le sens des aiguilles d'une montre, à partir de
       en haut à gauche: bortsch, hot dog, salade, pizza, shawarma.
Image 1. Échantillon de repas inclus dans le jeu de données sur les aliments.

Vous créez une caractéristique meal qui contient un encodage one-hot de chaque plat du jeu de données.

Figure 2. Top: visualisation de l'encodage one-hot du bortsch.
       Le vecteur [1, 0, 0, 0, ..., 0] est affiché au-dessus de six cadres,
       chacun aligné à partir de la gauche
       à droite par l'un des nombres vectoriels. Les cases, de gauche à droite
       contenir les images suivantes: bortsch, hot dog, salade, pizza, [vide],
       Shawarma. Milieu: visualisation de l'encodage one-hot pour les hot-dogs.
       Le vecteur [0, 1, 0, 0, ..., 0] est affiché au-dessus de six cadres, chacun
       aligné de gauche à droite sur l'un des nombres vectoriels. Les boîtes ont
       les mêmes images de gauche à droite que pour la visualisation du bortsch
       ci-dessus. En bas: une visualisation de l'encodage one-hot du shawarma. La
       Le vecteur [0, 0, 0, 0, ..., 1] est affiché au-dessus de six cadres, chacun aligné
       de gauche à droite par l'un 
des nombres vectoriels. Les boîtes ont
       les mêmes images de gauche à droite que pour le bortsch et le hot-dog
       des visualisations.
Figure 2 : Les encodages one-hot de bortsch, de hot dog et de shawarma. Chaque vecteur d'encodage one-hot a une longueur de 5 000 caractères (une entrée pour chaque l'élément de menu du jeu de données). Les points de suspension du diagramme représentent les 4 995 entrées non affichées.

Pièges liés aux représentations de données creuses

En examinant ces encodages one-hot, vous remarquez deux problèmes principaux la représentation des données.

  • Nombre de pondérations. Les grands vecteurs d'entrée signifient un très grand nombre pondérations pour un réseau de neurones. Avec M entrées dans votre encodage one-hot et N dans la première couche du réseau après l'entrée, le modèle doit être entraîné les pondérations MxN pour cette couche. Un grand nombre de pondérations entraîne d'autres problèmes:
    • Nombre de points de données. Plus il y a de pondérations dans votre modèle, plus vous obtenez de données pour s'entraîner efficacement.
    • La quantité de calcul. Plus il y a de pondérations, plus il faut de calculs pour entraîner et utiliser le modèle. Il est facile de dépasser les capacités de votre matériel.
    • Quantité de mémoire. Plus il y a de pondérations dans le modèle, plus il y a de mémoire sur les accélérateurs qui l'entraînent et la diffusent. Scaling à la hausse efficacement est très difficile.
    • Difficultés d'assistance machine learning sur l'appareil (ODML). Si vous souhaitez exécuter votre modèle de ML sur des appareils locaux (plutôt que de diffuser vous devez vous concentrer sur la réduction de la taille de votre modèle. pour diminuer le nombre de pondérations.
  • Manque de relations significatives entre les vecteurs. Les valeurs vectorielles dans les encodages one-hot des aliments ne fournissent aucune information pertinente la similitude des aliments. Mathématiquement, l'indice 1 ("hot dog") correspond à plus proche de l'indice 2 ("salade") qu'avec l'indice 4999 ("shawarma"), même si une chien est plus similaire au shawarma (tous deux contiennent de la viande et du pain) qu'une salade.

Dans ce module, vous apprendrez à créer des représentations vectorielles continues, de dimensions inférieures de données creuses, qui répondent à ces deux problèmes.