Algorithme Object2Vec - Amazon SageMaker

Algorithme Object2Vec

Object2Vec Amazon SageMaker est un algorithme d'intégration neuronal polyvalent et hautement personnalisable. Il peut apprendre les intégrations denses à faible dimension des objets à haute dimension. Les intégrations sont apprises de manière à ce que la sémantique de la relation entre les paires d'objets de l'espace d'origine soit conservée dans le script d'intégration. Vous pouvez utiliser les intégrations apprises pour, par exemple, calculer efficacement les voisins les plus proches d'objets et visualiser les clusters naturels d'objets connexes dans l'espace à faible dimension. Vous pouvez également utiliser les intégrations comme caractéristiques des objets correspondants des tâches supervisées en aval, telles que la classification ou la régression.

Object2Vec généralise la technique bien connue d'intégration de mots Word2Vec optimisée pour SageMaker Algorithme BlazingText. Pour un billet de blog qui décrit comment appliquer les pratiques Object2Vec à certains cas d'utilisation, consultez la section de présentation d'Amazon SageMaker Object2Vec.

Interface d'entrée/sortie pour l'algorithme Object2Vec

Vous pouvez utiliser Object2Vec sur différents types de données d'entrée, y compris les éléments suivants :

Type de données d'entrée Exemple

Paires phrase-phrase

« Un match de foot avec plusieurs hommes qui jouent. » et « Certains hommes font du sport. »

Paire étiquettes-séquence

Les balises de genre du film « Titanic », par exemple « ROMANCE » et « Drame » et sa brève description : « Titanic de James Cameron est un film d'action romantique et épique qui raconte l'histoire tragique du navire Titanic. Ce navire de croisière était le plus luxueux de son époque, un bateau de rêve, qui a mené plus de 1 500 personnes à la mort dans les eaux glacées de l'Atlantique Nord aux premières heures du jour du 15 avril 1912. »

Paires client-client

L'ID client Jane et ID client Jackie.

Paires produit-produit

L'ID produit football et l'ID produit basket-ball

Paires utilisateur-élément de révision d'élément

Un ID d'utilisateur et les éléments qu'elle a achetés, tels que des pommes, des poires et des oranges.

Pour transformer les données d'entrée dans les formats pris en charge, vous devez les prétraiter. De façon native, Object2Vec prend actuellement en charge deux types d'entrée :

  • Un jeton discret, qui est représenté sous la forme d'une liste d'un seul integer-id. Par exemple, [10].

  • Une séquence de jetons discrets, qui est représentée sous la forme d'une liste de integer-ids. Par exemple, [0,12,10,13].

L'objet de chaque paire peut être asymétrique. Par exemple, les paires peuvent être (jeton, séquence) ou (jeton, jeton) ou (séquence, séquence). Pour les entrées de jeton, l'algorithme prend en charge les intégrations simples comme encodeurs compatibles. Pour les séquences de vecteurs de jetons, l'algorithme prend en charge les éléments suivants comme encodeurs :

  • Moyenne des intégrations de pools

  • Réseaux neuronaux convolutifs (CNN, convolutional neural networks) hiérarchiques

  • Mémoire BiLSTM (Multi-layered bidirectional long short-term memory) à plusieurs couches

L'étiquette d'entrée pour chaque paire peut être l'une des actions suivantes :

  • Une étiquette de catégorie qui exprime la relation entre les objets dans la paire

  • Un score qui exprime la puissance de la similarité entre les deux objets

Pour les étiquettes de catégorie utilisées dans la classification, l'algorithme prend en charge la fonction perte entropie croisée. Pour les étiquettes basées sur les évaluations/scores utilisées dans la régression, l'algorithme prend en charge la fonction d'erreur quadratique moyenne. Spécifiez ces fonctions de perte avec l'hyperparamètre output_layer lorsque vous créez la tâche d'entraînement du modèle.

Recommandation d'instance EC2 pour l'algorithme Object2Vec

Le type d'instance Amazon Elastic Compute Cloud (Amazon EC2) que vous utilisez dépend de si vous entraînez ou exécutez les inférences.

Recommandation d'instance pour l'entraînement

Lors de l'entraînement d'un modèle à l'aide de l'algorithme Object2Vec sur une UC, commencez par une instance ml.m5.2xlarge. Pour les entraînements sur un GPU, commencez par une instance ml.p2.xlarge. Si l'entraînement est trop long sur cette instance, vous pouvez utiliser une instance plus grande, par exemple une instance ml.m5.4xlarge ou ml.m5.12xlarge. Actuellement, l'algorithme Object2Vec peut entraîner sur une seule machine. Toutefois, il n'offre pas la prise en charge de plusieurs processeurs graphiques.

Recommandation d'instance pour l'inférence

Pour une inférence dotée d'un modèle Object2Vec entraîné qui comporte un réseau de neurones profond, nous vous recommandons d'utiliser l'instance GPU ml.p3.2xlarge. La mémoire GPU étant faible, la variable d'environnement INFERENCE_PREFERRED_MODE peut être spécifiée pour déterminer si le réseau d'inférence Optimisation du GPU : classification ou régression ou Optimisation du GPU : intégrations de l'encodeur doit être chargé dans le GPU.

Exemples de blocs-notes Object2Vec

Note

Pour exécuter les blocs-notes sur une instance de bloc-notes, consultez Exemples de blocs-notes. Pour exécuter les blocs-notes sous Studio, consultez Créer ou ouvrir un bloc-notes Amazon SageMaker Studio.