Agence web » Actualités du digital » Intégrez des recommandations d’apprentissage automatique dans votre application avec AWS Personalize

Intégrez des recommandations d’apprentissage automatique dans votre application avec AWS Personalize

[*]

integrez-des-recommandations-dapprentissage-automatique-dans-votre-application-avec-aws-3691028

AWS Personalize est un moteur de recommandation de produit qui fonctionne un peu comme celui utilisé pour Amazon.com, construit à partir de plus de 20 ans d’expérience en personnalisation. Vous pouvez l’implémenter en tant que votre propre API pour alimenter les suggestions de votre application avec l’apprentissage automatique.

Qu’est-ce qu’AWS Personalize?

«Moteur de recommandation de produit» est un terme général qui peut être étendu pour s’appliquer à de nombreuses choses, pas seulement aux achats en ligne. Prenons l’exemple de YouTube. Si vous vous inscrivez à un nouveau compte YouTube, vous obtiendrez de nombreuses vidéos générales qui attirent un public de masse, des contenus tendance, principalement. Cependant, si vous recherchez «minecraft letsplay» et regardez une vidéo d’une demi-heure, l’algorithme de recommandation YouTube en prendra note. Il examinera les balises, le titre, la chaîne, la date de publication et d’autres métadonnées de la vidéo que vous avez aimées, puis, à l’aide de l’apprentissage automatique, essaiera de trouver d’autres vidéos qui lui sont similaires et qui ont eu un engagement similaire de la part d’autres utilisateurs. . Vous aurez peut-être plus de vidéos de la même série, car les gens auront tendance à regarder les choses dans l’ordre chronologique. Il y a peut-être une autre chaîne qui propose un contenu similaire, que vous aimerez peut-être également.

Tout cela est alimenté par des recommandations d’apprentissage automatique. Le «produit» peut être n’importe quoi – dans le cas d’Amazon, ce sont les articles qu’ils ont à vendre. Pour YouTube, ce sont des vidéos. Pour Spotify, ce sont de nouvelles chansons à jouer. Pour Facebook (ou tout autre service de médias sociaux, vraiment), ce sont les messages des utilisateurs.

Ce moteur est intégré dans un PaaS autonome qui ne nécessite aucune sorte de connaissances spécifiques en apprentissage automatique. Vous alimentez les actions de l’utilisateur du moteur (cliqué sur ce post, écouté cette chanson pendant X minutes, etc.) et le moteur crachera de nouvelles recommandations de votre catalogue de produits sur demande. Les recommandations peuvent commencer un peu irrégulières, mais une fois que votre modèle est suffisamment formé, elles commenceront à devenir très précises.

Configuration d’AWS Personalize

Chaque projet AWS Personalize aura trois ensembles de données:

  • Utilisateurs, qui suivent les métadonnées sur les utilisateurs eux-mêmes
  • Articles, qui fonctionne comme un catalogue de produits
  • Interactions, qui consignent les événements d’interaction entre les utilisateurs et les éléments

La liste des interactions est celle qui est la plus importante, car elle suit tous les événements et fonctions comme base pour la formation du modèle. Les listes Utilisateurs et Éléments fournissent des données supplémentaires qui aideront le modèle à établir des connexions intelligentes. Par exemple, connaissant l’âge d’un utilisateur, Personalize peut recommander différents produits à différents groupes d’âge, en fonction de leur probabilité d’être applicable.

L’option par défaut consiste à importer des données historiques à partir d’un fichier CSV, bien que vous puissiez utiliser l’API Event Tracker pour envoyer des mises à jour en temps réel une fois que tout fonctionne. Vous aurez cependant besoin de certaines données d’entraînement à importer. L’importation échouera si vous avez moins de 1 000 entrées dans votre liste d’interactions. Si vous souhaitez simplement tester Personnaliser, vous devrez créer une sorte de données factices qui adhèrent à votre schéma avant de procéder à l’importation.

Rendez-vous sur AWS Personalize Management Console pour commencer. Créez un nouveau groupe de jeux de données, qui fonctionnera comme une «application» individuelle. Il demandera un nom:

1600875988_966_integrez-des-recommandations-dapprentissage-automatique-dans-votre-application-avec-aws-8436217

Cliquez sur suivant, et vous serez automatiquement amené à configurer l’importation des interactions. Donnez-lui un nom («interactions») et définissez votre schéma. Ceci est au format Apache Avro et indique à Personnaliser les champs de chaque interaction (ou produit / utilisateur). Pour les interactions, la plus élémentaire est une liaison de USER_ID à PRODUCT_ID, qui est utilisée pour rechercher les utilisateurs et les produits des autres tables (un lien relationnel plusieurs-à-plusieurs).

1600875988_109_integrez-des-recommandations-dapprentissage-automatique-dans-votre-application-avec-aws-3585785

Vous devrez ensuite importer des données dans Personalize, à partir d’un fichier CSV dans S3. Tout d’abord, sélectionnez ou créez un rôle de service pouvant accéder à ce compartiment. Vous devrez également attacher la stratégie de compartiment suivante au compartiment cible pour permettre à Personalize d’y accéder, en remplaçant bucketname avec le nom de votre seau:

{
    "Version": "2012-10-17",
    "Id": "PersonalizeS3BucketAccessPolicy",
    "Statement": [
        {
            "Sid": "PersonalizeS3BucketAccessPolicy",
            "Effect": "Allow",
            "Principal": {
                "Service": "personalize.amazonaws.com"
            },
            "Action": [
                "s3:GetObject",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::bucket-name",
                "arn:aws:s3:::bucket-name/*"
            ]
        }
    ]
}

Ensuite, vous pouvez coller le chemin d’accès au fichier:

1600875988_581_integrez-des-recommandations-dapprentissage-automatique-dans-votre-application-avec-aws-6089153

Cliquez sur Terminer et vous serez redirigé vers le panneau des ensembles de données, où vous verrez que l’ensemble de données d’interactions est maintenant configuré. Vous devrez répéter ce processus deux fois de plus, en créant des ensembles de données pour les utilisateurs et les produits. Tout prendra probablement quelques minutes à importer en fonction de la taille de vos données.

Une fois que tout est importé, vous devez créer une solution, qui est un modèle entraîné basé sur vos données, qui peut être utilisé comme base pour des campagnes qui donneront des recommandations réelles. Créez-en un à partir du tableau de bord:

1600875988_581_integrez-des-recommandations-dapprentissage-automatique-dans-votre-application-avec-aws-6089153

Donnez-lui un nom et sélectionnez la recette que vous souhaitez utiliser pour alimenter la solution. Vous pouvez le sélectionner manuellement ou choisir «AutoML», qui utilisera le HRNN d’AWS pour effectuer des prédictions. En cas de doute, sélectionnez AutoML.

1600875988_795_integrez-des-recommandations-dapprentissage-automatique-dans-votre-application-avec-aws-9518148

Les solutions auront plusieurs versions pour faciliter leur gestion. Lorsque vous créez la solution, la version initiale sera également créée.

Une fois l’initialisation de la version de votre solution terminée, vous pouvez créer une campagne: en gros, un moteur d’inférence instancié, pour obtenir des recommandations réelles. Il dispose d’un point de terminaison d’API REST que vous pouvez interroger et utiliser à partir de votre application.

Dans l’onglet « Campagnes » de la barre latérale, créez une nouvelle campagne, donnez-lui un nom et sélectionnez votre solution. Une fois créé, vous devriez pouvoir le tester à partir de l’AWS CLI:

aws personalize-rec get-recommendations --campaign-arn $CAMPAIGN_ARN 
--user-id $USER_ID --query "itemList[*].itemId"

Cette commande récupérera les recommandations de votre campagne pour l’ID utilisateur spécifié. Si tout fonctionne correctement, vous devriez voir une liste des ID d’élément recommandés pour l’utilisateur.

Pour ajouter des données en temps réel à la solution, vous devrez créer un Event Tracker à partir de la barre latérale. Cela vous donnera un identifiant de suivi que vous pouvez utiliser pour saisir des données.

1600875988_501_integrez-des-recommandations-dapprentissage-automatique-dans-votre-application-avec-aws-1748937

Il existe deux façons de configurer cela: si vous utilisez AWS Amplify, le cadre de backend des applications Web et mobiles d’AWS, la configuration est simple et vous n’aurez qu’à la configurer à partir de la console Amplify. Si ce n’est pas le cas, vous devrez configurer une fonction Lambda pour traiter les données et les envoyer à Personalize.