Logo Zéphyrnet

Configuration d'Amazon Personalize avec AWS Glue

Date :

Les données peuvent être utilisées de différentes manières pour satisfaire les besoins de différentes unités commerciales, telles que le marketing, les ventes ou les produits. Dans cet article, nous nous concentrons sur l'utilisation des données pour créer des recommandations personnalisées afin d'améliorer l'engagement des utilisateurs finaux. La plupart des applications de commerce électronique consomment une énorme quantité de données clients qui peuvent être utilisées pour fournir des recommandations personnalisées; cependant, ces données peuvent ne pas être nettoyées ou dans le bon format pour fournir ces précieuses informations.

Le but de cet article est de montrer comment utiliser Colle AWS pour extraire, transformer et charger vos données JSON dans un format CSV nettoyé. Nous vous montrons ensuite comment exécuter un moteur de recommandation alimenté par Amazon Personnaliser sur vos données d'interaction utilisateur pour offrir une expérience sur mesure à vos clients. Le résultat d'Amazon Personalize est constitué de recommandations que vous pouvez générer à partir d'une API.

Un cas d'utilisation courant est une plate-forme de commerce électronique qui collecte des données d'interaction utilisateur-article et suggère des produits ou produits similaires susceptibles de plaire à un client. À la fin de cet article, vous pourrez récupérer vos données JSON non nettoyées et générer des recommandations personnalisées basées sur les produits avec lesquels chaque utilisateur a interagi, créant une meilleure expérience pour vos utilisateurs finaux. Pour les besoins de cet article, reportez-vous à ce ensemble de données d'interaction utilisateur-élément pour construire cette solution.

Les ressources de cette solution peuvent entraîner des frais sur votre compte AWS. Pour obtenir des informations sur les prix, consultez Tarifs AWS Glue et Tarification personnalisée d'Amazon.

Le diagramme suivant illustre notre architecture de solution.

Pré-requis

Pour cet article, vous avez besoin des éléments suivants:

Pour obtenir des instructions sur la création d'un bucket, consultez Étape 1: Créez votre premier compartiment S3. Assurez-vous de joindre la politique d'accès Amazon Personalize.

Ce sont des politiques très permissives; en pratique, il est préférable d'utiliser le moindre privilège et de ne donner l'accès que là où c'est nécessaire. Pour obtenir des instructions sur la création d'un rôle, consultez Étape 2: créer un rôle IAM pour AWS Glue.

Exploration de vos données avec AWS Glue

Nous utilisons AWS Glue pour explorer le fichier JSON afin de déterminer le schéma de vos données et créer une table de métadonnées dans votre catalogue de données AWS Glue. Le catalogue de données contient des références aux données utilisées comme sources et cibles de vos tâches ETL dans AWS Glue. AWS Glue est un service de préparation de données sans serveur qui facilite l'extraction, le nettoyage, l'enrichissement, la normalisation et le chargement des données. Il aide à préparer vos données pour l'analyse ou l'apprentissage automatique (ML). Dans cette section, nous expliquons comment préparer vos données JSON pour Amazon Personalize, qui nécessite un fichier CSV.

Vos données peuvent avoir différentes colonnes que vous ne souhaitez pas nécessairement ou n'avez pas nécessairement besoin d'exécuter via Amazon Personalize. Dans cet article, nous utilisons le user-item-interaction.json fichier et nettoyez ces données à l'aide d'AWS Glue pour n'inclure que les colonnes user_id, item_idet timestamp, tout en le transformant au format CSV. Vous pouvez utiliser un robot d'exploration pour accéder à votre magasin de données, extraire des métadonnées et créer des définitions de table dans le catalogue de données. Il découvre automatiquement les nouvelles données et extrait les définitions de schéma. Cela peut vous aider à mieux comprendre vos données et ce que vous souhaitez inclure lors de l'entraînement de votre modèle.

La user-item-interaction Les données JSON sont un tableau d'enregistrements. Le robot traite les données comme un seul objet: juste un tableau. Nous créons un classificateur personnalisé pour créer un schéma basé sur chaque enregistrement du tableau JSON. Vous pouvez ignorer cette étape si vos données ne sont pas un tableau d'enregistrements.

  1. Sur la console AWS Glue, sous Rampeurs, choisissez Classificateurs.
  2. Selectionnez Ajouter un classificateur.
  3. Pour Nom du classificateurentrer json_classifier.
  4. Pour Type de classificateur, sélectionnez JSON.
  5. Pour Chemin JSON, Entrer $[*].
  6. Selectionnez Création.

Choisissez Créer.

  1. Sur le Page des robots d'exploration, choisissez Ajouter un robot.
  2. Pour Nom du robot, Entrer json_crawler.
  3. Pour Classificateurs personnalisés, ajoutez le classificateur que vous avez créé.

Pour les classificateurs personnalisés, ajoutez le classificateur que vous avez créé.

  1. Selectionnez Suivant.
  2. Pour Type de source du robot d'exploration, choisissez Magasins de données.
  3. Laissez tout le reste par défaut et choisissez Suivant.
  4. Pour Choisissez un magasin de données, entrez le chemin Amazon S3 vers votre fichier de données JSON.
  5. Selectionnez Suivant.

Choisissez Suivant.

  1. Passer la section Ajouter un autre magasin de données.
  2. Dans le Choisissez un rôle IAM section, sélectionnez Choisissez un rôle IAM existant.
  3. Pour Rôle IAM, choisissez le rôle que vous avez créé précédemment (AWSGlueServiceRole-xxx).
  4. Selectionnez Suivant.

Choisissez Suivant.

  1. Laissez la fréquence comme Exécuter à la demande.
  2. Sur le Sortie page, choisissez Ajouter une base de données.
  3. Pour Nom de la base de données, Entrer json_data.
  4. Selectionnez Finition.
  5. Selectionnez Exécutez-le maintenant. 

Vous pouvez également exécuter votre robot d'exploration en accédant au Rampeurs page, en sélectionnant votre robot d'exploration et en choisissant Exécuter le robot.

Utilisation d'AWS Glue pour convertir vos fichiers CSV en JSON

Une fois que votre robot d'exploration a fini de s'exécuter, accédez à la Tables page sur la console AWS Glue. Accédez à la table créée par votre robot d'exploration. Ici vous pouvez voir le schéma de vos données. Notez les champs que vous souhaitez utiliser avec vos données Amazon Personalize. Pour cet article, nous voulons garder le user_id, item_idet des colonnes d'horodatage pour Amazon Personalize.

Pour cet article, nous souhaitons conserver les colonnes user_id, item_id et timestamp pour Amazon Personalize.

À ce stade, vous avez configuré votre base de données. Amazon Personalize nécessite des fichiers CSV, vous devez donc transformer les données du format JSON en trois fichiers CSV nettoyés qui incluent uniquement les données dont vous avez besoin dans Amazon Personalize. Le tableau suivant présente des exemples des trois fichiers CSV que vous pouvez inclure dans Amazon Personalize. Il est important de noter que interactions des données sont requises, alors que utilisateur et questions d'examen les métadonnées de données sont facultatives.

Type de jeu de données champs requis Mots clés réservés
Utilisateurs

USER_ID (chaîne)

1 champ de métadonnées

Articles

ITEM_ID (chaîne)

1 champ de métadonnées

CREATION_TIMESTAMP(longue)
Interactions

USER_ID (chaîne)

ITEM_ID (chaîne)

TIMESTAMP (longue)

 

EVENT_TYPE (chaîne)

IMPRESSION (chaîne)

EVENT_VALUE (flottant, nul)

Il est également important de vous assurer que vous disposez d'au moins 1,000 XNUMX interactions historiques et d'événements uniques combinées afin de former le modèle. Pour plus d'informations sur les quotas, voir Quotas dans Amazon Personalize.

Pour enregistrer les données au format CSV, vous devez exécuter une tâche AWS Glue sur les données. Un travail est la logique métier qui effectue le travail ETL dans AWS Glue. Le travail change le format de JSON en CSV. Pour plus d'informations sur le formatage des données, voir Formatage de vos données d'entrée.

  1. Sur le Tableau de bord AWS Glue, choisissez Studio de colle AWS.

Studio de colle AWS est une interface graphique facile à utiliser pour la création, l'exécution et la surveillance des tâches AWS Glue ETL.

  1. Selectionnez Créer et gérer des emplois.
  2. Sélectionnez Source et cible ajoutées au graphique.
  3. Pour Identifier, choisissez S3.
  4. Pour Target, choisissez S3.
  5. Selectionnez Création.

Choisissez Créer.

  1. Choisissez le compartiment S3 de la source de données.
  2. Sur le Propriétés de la source de données - S3 tab, ajoutez la base de données et la table que nous avons créées précédemment.

Dans l'onglet Propriétés de la source de données - S3, ajoutez la base de données et la table que nous avons créées précédemment.

  1. Sur le Transformer onglet, sélectionnez les cases à supprimer user_login et location.

Dans cet article, nous n'utilisons aucune métadonnée supplémentaire pour exécuter notre algorithme de personnalisation.

Dans cet article, nous n'utilisons aucune métadonnée supplémentaire pour exécuter notre algorithme de personnalisation.

  1. Choisissez le compartiment S3 cible de données.
  2. Sur le Propriétés de la cible de données - S3 onglet, pour Format, choisissez CSV.
  3. Pour Emplacement cible S3, entrez le chemin S3 de votre cible. 

Pour cet article, nous utilisons le même bucket que nous avons utilisé pour le fichier JSON.

Pour cet article, nous utilisons le même bucket que nous avons utilisé pour le fichier JSON.

  1. Sur le Détails du poste page, pour Prénom, entrez un nom pour votre travail (pour ce message, json_to_csv).
  2. Pour Rôle IAM, choisissez le rôle que vous avez créé précédemment.

Vous devriez également avoir inclus le AmazonS3FullAccess politique plus tôt.

  1. Laissez le reste des champs à leurs paramètres par défaut.

Laissez le reste des champs à leurs paramètres par défaut.

  1. Selectionnez Épargnez.
  2. Selectionnez Courir.

L'exécution du travail peut prendre quelques minutes.

Dans votre compartiment Amazon S3, vous devriez maintenant voir le fichier CSV que vous utilisez dans la section suivante.

Configurer Amazon Personalize

À ce stade, vos données sont formatées dans un type de fichier qu'Amazon Personalize peut utiliser. Amazon Personalize est un service entièrement géré qui utilise le ML et plus de 20 ans d'expérience de recommandation sur Amazon.com pour vous permettre d'améliorer l'engagement de l'utilisateur final en générant des recommandations de produits et de contenus personnalisés en temps réel et des promotions marketing ciblées. Dans cette section, nous expliquons comment créer une solution Amazon Personalize pour utiliser vos données pour créer des expériences personnalisées.

  1. Sur la console Amazon Personalize, sous Nouveaux groupes de jeux de données, choisissez C'est parti.
  2. Saisissez le nom de votre groupe de jeux de données.

Un groupe de jeux de données contient les jeux de données, les solutions et l'API d'ingestion d'événements.

  1. Entrez un nom de jeu de données et entrez les détails du schéma en fonction de vos données.

Pour cet ensemble de données, nous utilisons le schéma suivant. Vous pouvez modifier le schéma en fonction des valeurs de votre ensemble de données.

{ "type": "record", "name": "Interactions", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "USER_ID", "type": "string" }, { "name": "ITEM_ID", "type": "string" }, { "name": "TIMESTAMP", "type": "long" } ], "version": "1.0"
}

  1. Selectionnez Suivant.
  2. Entrez le nom de la tâche d'importation de votre ensemble de données pour importer des données depuis Amazon S3.

Assurez-vous que votre rôle de service IAM a accès à Amazon S3 et Amazon Personalize, et que votre compartiment a le bon stratégie de compartiment.

  1. Entrez le chemin d'accès à vos données (le compartiment Amazon S3 de la section précédente).
  2. Sur le Tableau de bord page pour vos groupes de jeux de données, sous Télécharger des ensembles de données, importez le user-item-interactions data (les données utilisateur et les données article sont facultatives mais peuvent améliorer la solution).

Sur la page Tableau de bord de vos groupes de jeux de données, sous Télécharger des jeux de données,

Nous incluons un exemple item.csv déposer dans le GitHub repo. La capture d'écran suivante montre un exemple des données d'article.

La capture d'écran suivante montre un exemple des données d'article.

  1. Sous Créer des solutions, Pour Formation aux solutions, choisissez Accueil.

Une solution est un modèle entraîné des données que vous avez fournies avec l'algorithme ou la recette que vous sélectionnez.

  1. Pour Nom de la solution, Entrer aws-user-personalization.
  2. Selectionnez Suivant.
  3. Revoir et choisir Finition.
  4. Sur le tableau de bord, sous Lancer des campagnes, Pour Création de campagne, choisissez Accueil.

Une campagne permet à votre application d'obtenir des recommandations à partir de votre version de solution.

  1. Pour Nom de la campagne, entrez un nom.
  2. Choisissez la solution que vous avez créée.
  3. Selectionnez Créer une campagne.

Vous avez maintenant utilisé avec succès les données de votre lac de données et créé un modèle de recommandation qui peut être utilisé pour obtenir diverses recommandations. Avec cet ensemble de données, vous pouvez obtenir des recommandations personnalisées pour les produits ménagers en fonction des interactions de l'utilisateur avec d'autres produits de l'ensemble de données.

Utiliser Amazon Personalize pour obtenir vos recommandations

Pour tester votre solution, accédez à la campagne que vous avez créée. Dans le Tester les résultats de la campagne section, sous ID utilisateur, saisissez un identifiant pour lequel obtenir des recommandations. Une liste d'identifiants s'affiche, avec un score relatif. Les identifiants des articles correspondent aux produits spécifiques recommandés.

La capture d'écran suivante montre une recherche d'ID utilisateur 1. Ils ont été ID d'article recommandé 59, qui correspond à un cadre photo en bois. Le score indiqué à côté de l'élément vous donne la pertinence prévue de chaque élément pour votre utilisateur.

La capture d'écran suivante montre une recherche de l'ID utilisateur 1.

Pour en savoir plus sur les scores Amazon Personalize, consultez Présentation des scores de recommandation dans Amazon Personalize.

Pour générer des recommandations, vous pouvez appeler le GetRecommendations or GetPersonalizedRanking API utilisant le Interface de ligne de commande AWS (AWS CLI) ou un SDK spécifique à une langue. Avec Amazon Personalize, vos recommandations peuvent changer à mesure que l'utilisateur clique sur les éléments pour plus de cas d'utilisation en temps réel. Pour plus d'informations, consultez Obtenir des recommandations en temps réel.

Conclusion

AWS propose une large gamme de AI / ML et analytique services que vous pouvez utiliser pour obtenir des informations et guider de meilleures décisions commerciales. Dans cet article, vous avez utilisé un ensemble de données JSON qui comprenait des colonnes de données supplémentaires, et nettoyé et transformé ces données à l'aide d'AWS Glue. En outre, vous avez créé un modèle personnalisé à l'aide d'Amazon Personalize pour fournir des recommandations à vos clients.

Pour en savoir plus sur Amazon Personalize, consultez le guide du développeur. Essayez cette solution et faites-nous savoir si vous avez des questions dans les commentaires.


À propos des auteurs

Zoish PithwafaZoish Pithawala est un architecte de solutions de démarrage chez Amazon Web Services basé à San Francisco. Elle travaille principalement avec des clients en démarrage pour les aider à créer des solutions sécurisées et évolutives sur AWS.

 

 

 

Sam TranSam Tran est un architecte de solutions de démarrage chez Amazon Web Services basé à Seattle. Il se concentre sur l'aide à ses clients pour créer des solutions bien architecturées sur AWS.

Source : https://aws.amazon.com/blogs/machine-learning/setting-up-amazon-personalize-with-aws-glue/

spot_img

Dernières informations

spot_img