Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Recette de personnalisation par l'utilisateur
Important
Nous vous recommandons d'utiliser la recette User-Personalization-v2. Il peut prendre en compte jusqu'à 5 millions d'éléments grâce à une formation plus rapide et générer des recommandations plus pertinentes avec une latence plus faible.
La recette User-Personalization (aws-user-personalization) est optimisée pour tous les scénarios de recommandation personnalisés. Il prédit les éléments avec lesquels un utilisateur est le plus susceptible d'interagir. Vous pouvez utiliser la personnalisation utilisateur pour générer des recommandations de films personnalisées pour une application de streaming ou des recommandations de produits personnalisées pour une application de vente au détail.
Avec User-Personalization, Amazon Personalize génère des recommandations principalement basées sur les données d'interaction entre les utilisateurs et les articles dans un ensemble de données d'interactions entre les articles. Il peut également utiliser n'importe quelle métadonnée d'élément et d'utilisateur dans vos ensembles de données Éléments et Utilisateurs. Pour plus d'informations sur les données qu'il utilise, consultezEnsembles de données obligatoires et facultatifs.
Rubriques
- Caractéristiques de la recette
- Ensembles de données obligatoires et facultatifs
- Propriétés et hyperparamètres
- Formation avec la recette de personnalisation utilisateur (console)
- Entraînement avec la recette de personnalisation utilisateur (Python) SDK
- Obtenir des recommandations et enregistrer des impressions (SDKpour Python (Boto3))
- Exemple de carnet Jupyter
Caractéristiques de la recette
La personnalisation par l'utilisateur utilise les fonctionnalités de recette Amazon Personalize suivantes lors de la génération de recommandations d'articles :
-
Personnalisation en temps réel — Grâce à la personnalisation en temps réel, Amazon Personalize met à jour et adapte les recommandations d'articles en fonction de l'évolution des intérêts de l'utilisateur. Pour de plus amples informations, veuillez consulter Personnalisation en temps réel.
-
Exploration — Dans le cadre de l'exploration, les recommandations incluent de nouveaux éléments ou des éléments contenant moins de données d'interactions. Cela améliore la découverte des articles et l'engagement lorsque vous avez un catalogue en évolution rapide, ou lorsque de nouveaux articles, tels que des articles de presse ou des promotions, sont plus pertinents pour les utilisateurs lorsqu'ils sont nouveaux. Pour plus d'informations sur l'exploration, consultezExploration.
-
Mises à jour automatiques : grâce aux mises à jour automatiques, Amazon Personalize met automatiquement à jour le dernier modèle (version de la solution) toutes les deux heures afin de prendre en compte les nouveaux articles et de les recommander. Pour de plus amples informations, veuillez consulter Mises à jour automatiques.
Ensembles de données obligatoires et facultatifs
Pour utiliser la personnalisation utilisateur, vous devez créer un jeu de données sur les interactions entre les articles et importer au moins 1 000 interactions entre les articles. Amazon Personalize génère des recommandations principalement basées sur les données d'interaction entre les articles.
Grâce à la personnalisation par l'utilisateur, Amazon Personalize peut utiliser les données relatives aux interactions avec les articles, notamment les suivantes :
-
Données relatives au type d'événement et à la valeur de l'événement : Amazon Personalize utilise les données relatives aux types d'événements, telles que les types d'événements à cliquer ou à regarder, pour identifier les intentions et les intérêts des utilisateurs en fonction de leurs comportements. Vous pouvez également utiliser les données relatives au type et à la valeur de l'événement pour filtrer les enregistrements avant l'entraînement. Pour de plus amples informations, veuillez consulter Données relatives au type et à la valeur de l'événement.
-
Métadonnées contextuelles — Les métadonnées contextuelles sont des données d'interaction que vous collectez sur l'environnement de l'utilisateur au moment d'un événement, telles que sa localisation ou son type d'appareil. Pour de plus amples informations, veuillez consulter Métadonnées contextuelles.
-
Données relatives aux impressions : les impressions sont des listes d'articles visibles par un utilisateur lorsqu'il interagissait avec un article en particulier (cliqué, regardé, acheté, etc.). Pour de plus amples informations, veuillez consulter Données sur les impressions.
Les ensembles de données suivants sont facultatifs et peuvent améliorer les recommandations :
-
Ensemble de données utilisateurs — Amazon Personalize peut utiliser les données de votre jeu de données utilisateurs pour mieux comprendre vos utilisateurs et leurs centres d'intérêt. Vous pouvez également utiliser les données d'un jeu de données Utilisateurs pour filtrer les recommandations. Pour plus d'informations sur les données utilisateur que vous pouvez importer, consultezMétadonnées utilisateur.
-
Ensemble de données d'articles : Amazon Personalize peut utiliser les données de votre jeu de données d'articles pour identifier les connexions et les modèles de comportement. Cela permet à Amazon Personalize de comprendre vos utilisateurs et leurs centres d'intérêt. Vous pouvez également utiliser les données d'un jeu de données Items pour filtrer les recommandations. Pour plus d'informations sur les données d'articles que vous pouvez importer, consultezMétadonnées de l'article.
Propriétés et hyperparamètres
La recette de personnalisation utilisateur possède les propriétés suivantes :
-
Nom –
aws-user-personalization
-
Nom de la ressource Amazon de la recette (ARN) —
arn:aws:personalize:::recipe/aws-user-personalization
-
Algorithme ARN —
arn:aws:personalize:::algorithm/aws-user-personalization
Pour de plus amples informations, veuillez consulter Choisir une recette.
Le tableau suivant décrit les hyperparamètres de la recette de personnalisation utilisateur. Un hyperparamètre est un paramètre d'algorithme que vous pouvez régler pour améliorer les performances du modèle. Les hyperparamètres d'algorithme contrôlent les performances du modèle. Les hyperparamètres d’organisation de fonction contrôlent la façon de filtrer les données à utiliser dans la formation. Le processus de sélection de la meilleure valeur pour un hyperparamètre est appelé optimisation des hyperparamètres ()HPO. Pour de plus amples informations, veuillez consulter Hyperparamètres et HPO.
Le tableau fournit les informations suivantes pour chaque hyperparamètre :
-
Plage: [lower bound, upper bound]
-
Type de valeur : integer (entier), Continuous (float) [continu (flottant)], Categorical (Boolean, list, string) [catégorique (booléen, liste, chaîne)]
-
HPOtunable : le paramètre peut-il participer ? HPO
Name (Nom) | Description |
---|---|
Hyperparamètres de l'algorithme | |
hidden_dimension |
Nombre de variables masquées utilisées dans le modèle. Les variables masquées recréent l'historique des achats des utilisateurs et les statistiques des articles pour générer des scores de classement. Spécifiez un plus grand nombre de dimensions masquées lorsque votre jeu de données d'interactions entre objets inclut des modèles plus complexes. L'utilisation de dimensions masquées nécessite un ensemble de données plus volumineux et plus de temps pour le traitement. Pour choisir le meilleur rapport qualité-prix, utilisezHPO. Pour l'utiliserHPO, définissez Valeur par défaut : 149 Plage : [32, 256] Type de valeur : entier HPOréglable : Oui |
bptt |
Détermine s'il convient d'utiliser la technique de propagation de retour à travers le temps. La propagation du retour au fil du temps est une technique qui met à jour les pondérations dans les algorithmes récurrents basés sur les réseaux neuronaux. Utilisez Valeur par défaut : 32 Plage : [2, 32] Type de valeur : entier HPOréglable : Oui |
recency_mask |
Détermine si le modèle doit prendre en compte les dernières tendances de popularité dans le jeu de données d'interactions entre articles. Les dernières tendances de popularité peuvent inclure des modifications soudaines dans les modèles sous-jacents des événements d'interaction. Pour former un modèle qui accorde plus de poids aux événements récents, définissez Valeur par défaut : Plage : Type de valeur : booléen HPOréglable : Oui |
Hyperparamètres de fonctionnalité | |
min_user_history_length_percentile |
Le percentile minimal des longueurs d’historique d'utilisateur à inclure dans la formation du modèle. La longueur de l'historique correspond à la quantité totale de données sur un utilisateur. Utilisez Par exemple, la définition de Valeur par défaut : 0.0 Plage : [0.0, 1.0] Type de valeur : flottante HPOréglable : Non |
max_user_history_length_percentile |
Le percentile maximal des longueurs d’historique d'utilisateur à inclure dans la formation du modèle. La longueur de l'historique correspond à la quantité totale de données sur un utilisateur. Utilisez Par exemple, la définition de Valeur par défaut : 0.99 Plage : [0.0, 1.0] Type de valeur : flottante HPOréglable : Non |
Hyperparamètres de configuration de la campagne d'exploration d'objets | |
exploration_weight |
Détermine la fréquence à laquelle les recommandations incluent des éléments présentant moins de données d'interaction ou de pertinence. Plus la valeur est proche de 1,0, plus l'exploration est intense. À zéro, aucune exploration n'a lieu et les recommandations sont basées sur les données actuelles (pertinence). Pour plus d'informations, voir CampaignConfig. Valeur par défaut : 0.3 Plage : [0.0, 1.0] Type de valeur : flottante HPOréglable : Non |
exploration_item_age_cut_off |
Spécifiez l'âge maximal des éléments, en jours, depuis la dernière interaction entre tous les éléments du jeu de données d'interactions entre articles. Cela définit la portée de l'exploration des objets en fonction de leur âge. Amazon Personalize détermine l'âge d'un article en fonction de son horodatage de création ou, si les données d'horodatage de création sont manquantes, des données d'interaction avec l'article. Pour plus d'informations sur la façon dont Amazon Personalize détermine l'âge d'un article, consultezDonnées d'horodatage de création. Pour augmenter le nombre d'articles pris en compte par Amazon Personalize lors de l'exploration, entrez une valeur supérieure. Le minimum est de 1 jour et la valeur par défaut est de 30 jours. Les recommandations peuvent inclure des articles dont l'âge est supérieur à l'âge limite que vous spécifiez. Cela est dû au fait que ces éléments sont pertinents pour l'utilisateur et que l'exploration ne les a pas identifiés. Valeur par défaut : 30.0 Plage : valeurs flottantes positives Type de valeur : flottante HPOréglable : Non |
Formation avec la recette de personnalisation utilisateur (console)
Pour utiliser la recette de personnalisation utilisateur afin de générer des recommandations dans la console, commencez par entraîner une nouvelle version de solution à l'aide de cette recette. Déployez ensuite une campagne à l'aide de la version de la solution et utilisez-la pour obtenir des recommandations.
Formation à une nouvelle version de solution à l'aide de la recette de personnalisation utilisateur (console)
-
Ouvrez la console Amazon Personalize https://console.aws.amazon.com/personalize/chez
vous et connectez-vous à votre compte. -
Créez un groupe de jeux de données personnalisé avec un nouveau schéma et téléchargez votre jeu de données avec les données d'impressions. Vous pouvez éventuellement inclure les Métadonnées de texte non structurées données CREATION_ TIMESTAMP et dans votre ensemble de données d'articles afin qu'Amazon Personalize puisse calculer avec plus de précision l'âge d'un article et identifier les articles froids.
Pour plus d'informations sur l'importation de données, consultezImportation de données de formation dans les ensembles de données Amazon Personalize.
-
Sur la page Groupes de jeux de données, choisissez le nouveau groupe de jeux de données qui contient le ou les ensembles de données contenant des données d'impressions.
-
Dans le volet de navigation, sélectionnez Solutions et recettes, puis sélectionnez Créer une solution.
-
Sur la page Créer une solution, pour le nom de la solution, entrez le nom de votre nouvelle solution.
-
Dans Type de solution, choisissez Recommandation d'article pour obtenir des recommandations d'articles pour vos utilisateurs.
-
Pour Recipe, choisissez aws-user-personalization. La section Configuration de la solution apparaît et propose plusieurs options de configuration.
-
Dans Configuration supplémentaire, si votre ensemble de données d'interactions avec les articles comporte les colonnes EVENT EVENT _ TYPE TYPE ou les deux VALUE colonnes EVENT _, utilisez éventuellement les champs Type d'événement et Seuil de valeur d'événement pour choisir les données d'interactions entre articles utilisées par Amazon Personalize lors de l'entraînement du modèle. Pour de plus amples informations, veuillez consulter Choix des données d'interaction entre les objets utilisées pour l'entraînement.
-
Configurez éventuellement des hyperparamètres pour votre solution. Pour obtenir la liste des propriétés et des hyperparamètres des recettes de personnalisation utilisateur, consultez. Propriétés et hyperparamètres
-
Choisissez Create and train solution pour commencer la formation. La page Tableau de bord s'affiche.
Vous pouvez accéder à la page des détails de la solution pour suivre la progression de la formation dans la section Versions de la solution. Lorsque l'entraînement est terminé, le statut est Actif.
Création d'une campagne et obtention de recommandations (console)
Lorsque le statut de la version de votre solution est Actif, vous êtes prêt à créer votre campagne et à obtenir les recommandations suivantes :
-
Sur la page de détails de la solution ou sur la page Campagnes, choisissez Créer une nouvelle campagne.
-
Sur la page Créer une nouvelle campagne, pour les détails de la campagne, fournissez les informations suivantes :
-
Nom de la campagne : entrez le nom de la campagne. Le texte que vous saisissez ici apparaît sur le tableau de bord et la page de détails de la campagne.
-
Solution : Choisissez la solution que vous venez de créer.
-
ID de version de solution : Choisissez l'ID de la version de solution que vous venez de créer.
-
Minimum de transactions provisionnées par seconde : définissez le nombre minimum de transactions provisionnées par seconde pris en charge par Amazon Personalize. Pour plus d'informations, consultez l'CreateCampaignopération.
-
-
Pour la configuration de la campagne, fournissez les informations suivantes :
-
Poids d'exploration : configurez la quantité à explorer, les recommandations incluant les éléments présentant moins de données d'interaction ou de pertinence, d'autant plus fréquemment que vous spécifiez le niveau d'exploration. Plus la valeur est proche de 1, plus l'exploration est intense. À zéro, aucune exploration n'a lieu et les recommandations sont basées sur les données actuelles (pertinence).
-
Âge limite de l'objet d'exploration : entrez l'âge maximum de l'objet, en jours depuis la dernière interaction, pour définir l'étendue de l'exploration de l'objet. Pour augmenter le nombre d'articles pris en compte par Amazon Personalize lors de l'exploration, entrez une valeur supérieure.
Par exemple, si vous entrez 10, seuls les éléments dont les données d'interaction entre les éléments datent des 10 jours écoulés depuis la dernière interaction dans le jeu de données sont pris en compte lors de l'exploration.
Note
Les recommandations peuvent inclure des éléments sans données d'interaction entre les éléments en dehors de cette période. Cela est dû au fait que ces éléments correspondent aux intérêts de l'utilisateur et qu'il n'était pas nécessaire de les explorer pour les identifier.
-
-
Choisissez Create campaign (Créer une campagne).
-
Sur la page des détails de la campagne, lorsque le statut de la campagne est Actif, vous pouvez utiliser la campagne pour obtenir des recommandations et enregistrer des impressions. Pour plus d'informations, consultez Étape 5 : Obtenir des recommandations la section « Mise en route ».
Amazon Personalize met automatiquement à jour la dernière version de votre solution toutes les deux heures pour inclure les nouvelles données. Votre campagne utilise automatiquement la version mise à jour de la solution. Pour de plus amples informations, veuillez consulter Mises à jour automatiques.
Pour mettre à jour manuellement la campagne, vous devez d'abord créer et entraîner une nouvelle version de la solution à l'aide de la console ou de l'CreateSolutionVersionopération, avec
trainingMode
set toupdate
. Vous pouvez ensuite mettre à jour manuellement la campagne sur la page Campagne de la console ou en utilisant l'UpdateCampaignopération.Note
Amazon Personalize ne met pas automatiquement à jour les versions des solutions que vous avez créées avant le 17 novembre 2020.
Entraînement avec la recette de personnalisation utilisateur (Python) SDK
Une fois que vous avez créé un groupe de jeux de données et que vous avez chargé vos jeux de données contenant des données d'impressions, vous pouvez élaborer une solution à l'aide de la recette de personnalisation utilisateur. Vous pouvez éventuellement inclure les Métadonnées de texte non structurées données CREATION_ TIMESTAMP et dans votre ensemble de données d'articles afin qu'Amazon Personalize puisse calculer avec plus de précision l'âge d'un article et identifier les articles froids. Pour plus d'informations sur la création de groupes de jeux de données et le téléchargement de données d'entraînement, consultezCréation de JSON fichiers de schéma pour les schémas Amazon Personalize.
Pour élaborer une solution à l'aide de la recette de personnalisation utilisateur à l'aide du AWS SDK
-
Créez une nouvelle solution à l'aide de
create_solution
cette méthode.solution name
Remplacez-le par le nom de votre solution etdataset group arn
par le nom de ressource Amazon (ARN) de votre groupe de jeux de données.import boto3 personalize = boto3.client('personalize') print('Creating solution') create_solution_response = personalize.create_solution(name = '
solution name
', recipeArn = 'arn:aws:personalize:::recipe/aws-user-personalization', datasetGroupArn = 'dataset group arn
', ) solution_arn = create_solution_response['solutionArn'] print('solution_arn: ', solution_arn)Pour obtenir la liste des propriétés et des hyperparamètres des aws-user-personalization recettes, consultezPropriétés et hyperparamètres.
-
Créez une nouvelle version de solution avec les données d'entraînement mises à jour et configurez
trainingMode
pourFULL
utiliser l'extrait de code suivant. Remplacez lesolution arn
par celui ARN de votre solution.import boto3 personalize = boto3.client('personalize') create_solution_version_response = personalize.create_solution_version(solutionArn = '
solution arn
', trainingMode='FULL') new_solution_version_arn = create_solution_version_response['solutionVersionArn'] print('solution_version_arn:', new_solution_version_arn) -
Lorsque Amazon Personalize a fini de créer la version de votre solution, créez votre campagne avec les paramètres suivants :
-
Fournissez un nouveau
campaign name
et lesolution version arn
généré à l'étape 2. -
Modifiez l'hyperparamètre de configuration de l'exploration des
explorationWeight
objets pour configurer la quantité à explorer. Les éléments présentant moins de données d'interaction ou de pertinence sont recommandés plus fréquemment à mesure que la valeur est proche de 1,0. La valeur par défaut est 0,3. -
Modifiez le paramètre hyperparamètre de configuration de l'exploration des
explorationItemAgeCutOff
objets pour indiquer la durée maximale, en jours par rapport à la dernière interaction, pendant laquelle les éléments doivent être explorés. Plus la valeur est élevée, plus le nombre d'objets pris en compte lors de l'exploration est important.
Utilisez l'extrait de code Python suivant pour créer une nouvelle campagne mettant l'accent sur l'exploration, avec une limite d'exploration de 30 jours. La création d'une campagne prend généralement quelques minutes, mais peut prendre plus d'une heure.
import boto3 personalize = boto3.client('personalize') create_campaign_response = personalize.create_campaign( name = '
campaign name
', solutionVersionArn = 'solution version arn
', minProvisionedTPS = 1, campaignConfig = {"itemExplorationConfig": {"explorationWeight": "0.3
", "explorationItemAgeCutOff": "30
"}} ) campaign_arn = create_campaign_response['campaignArn'] print('campaign_arn:', campaign_arn)Grâce à la personnalisation utilisateur, Amazon Personalize met automatiquement à jour la version de votre solution toutes les deux heures pour inclure les nouvelles données. Votre campagne utilise automatiquement la version mise à jour de la solution. Pour de plus amples informations, veuillez consulter Mises à jour automatiques.
Pour mettre à jour manuellement la campagne, vous devez d'abord créer et entraîner une nouvelle version de la solution à l'aide de la console ou de l'CreateSolutionVersionopération, avec
trainingMode
set toupdate
. Vous pouvez ensuite mettre à jour manuellement la campagne sur la page Campagne de la console ou en utilisant l'UpdateCampaignopération.Note
Amazon Personalize ne met pas automatiquement à jour les versions des solutions que vous avez créées avant le 17 novembre 2020.
-
Obtenir des recommandations et enregistrer des impressions (SDKpour Python (Boto3))
Lorsque votre campagne est créée, vous pouvez l'utiliser pour obtenir des recommandations pour un utilisateur et enregistrer ses impressions. Pour plus d'informations sur l'obtention de recommandations par lots à l'aide du AWS SDKsvoirCréation d'une tâche d'inférence par lots ()AWS SDKs.
Pour obtenir des recommandations et enregistrer les impressions
-
Appelez la méthode
get_recommendations
. Changezcampaign arn
le nom ARN de votre nouvelle campagne et celuiuser id
userId de l'utilisateur.import boto3 rec_response = personalize_runtime.get_recommendations(campaignArn = '
campaign arn
', userId = 'user id
') print(rec_response['recommendationId']) -
Créez un nouveau système de suivi des événements pour envoyer PutEvents des demandes.
event tracker name
Remplacez-le par le nom de votre outil de suivi des événements etdataset group arn
par le nom ARN de votre groupe de données.import boto3 personalize = boto3.client('personalize') event_tracker_response = personalize.create_event_tracker( name = '
event tracker name
', datasetGroupArn = 'dataset group arn
' ) event_tracker_arn = event_tracker_response['eventTrackerArn'] event_tracking_id = event_tracker_response['trackingId'] print('eventTrackerArn:{},\n eventTrackingId:{}'.format(event_tracker_arn, event_tracking_id)) -
Utilisez
recommendationId
les étapes 1 et 2 pour créer une nouvellePutEvents
demande.event tracking id
Cette demande enregistre les nouvelles données d'impression issues de la session de l'utilisateur. Remplacezuser id
le par l'ID de l'utilisateur.import boto3 personalize_events.put_events( trackingId = '
event tracking id
', userId= 'user id
', sessionId = '1', eventList = [{ 'sentAt': datetime.now().timestamp(), 'eventType' : 'click', 'itemId' : rec_response['itemList'][0]['itemId'], 'recommendationId': rec_response['recommendationId
'], 'impression': [item['itemId'] for item in rec_response['itemList']], }] )
Exemple de carnet Jupyter
Pour un exemple de bloc-notes Jupyter qui montre comment utiliser la recette de personnalisation utilisateur, voir Personnalisation utilisateur