

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
<a name="native-recipe-new-item-USER_PERSONALIZATION"></a>

**Important**  
Nous vous recommandons d'utiliser la recette [User-Personalization-v2](native-recipe-user-personalization-v2.md). 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 moindre.

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, consultez[Ensembles de données obligatoires et facultatifs](#user-personalization-datasets). 

**Topics**
+ [Caractéristiques de la recette](#user-personalization-features)
+ [Ensembles de données obligatoires et facultatifs](#user-personalization-datasets)
+ [Propriétés et hyperparamètres](#bandit-hyperparameters)
+ [Formation avec la recette de personnalisation utilisateur (console)](#training-user-personalization-recipe-console)
+ [Formation avec la recette de personnalisation utilisateur (SDK Python)](#training-user-personalization-recipe)
+ [Obtenir des recommandations et enregistrer des impressions (SDK pour Python (Boto3))](#user-personalization-get-recommendations-recording-impressions)
+ [Exemple de carnet Jupyter](#bandits-sample-notebooks)

## Caractéristiques de la recette
<a name="user-personalization-features"></a>

La personnalisation par l'utilisateur utilise les fonctionnalités de recette Amazon Personalize suivantes pour générer des 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](use-case-recipe-features.md#about-real-time-personalization).
+ 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, consultez[Exploration](use-case-recipe-features.md#about-exploration).
+ 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 à recommander. Pour de plus amples informations, veuillez consulter [Mises à jour automatiques](use-case-recipe-features.md#automatic-updates).

## Ensembles de données obligatoires et facultatifs
<a name="user-personalization-datasets"></a>

Pour utiliser la personnalisation utilisateur, vous devez créer un jeu de [données d'interactions entre articles](interactions-datasets.md) et importer au moins 1 000 interactions entre 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 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 d'événement et à la valeur de l'événement](interactions-datasets.md#event-type-and-event-value-data). 
+ 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](interactions-datasets.md#interactions-contextual-metadata). 
+ 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](interactions-datasets.md#interactions-impressions-data).

 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, consultez[Métadonnées utilisateur](users-datasets.md).
+ 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, consultez[Métadonnées de l'article](items-datasets.md). 

## Propriétés et hyperparamètres
<a name="bandit-hyperparameters"></a>

La recette de personnalisation utilisateur possède les propriétés suivantes :
+  **Nom** – `aws-user-personalization`
+  **Nom de la ressource Amazon (ARN) de la recette** — `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](working-with-predefined-recipes.md).

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](customizing-solution-config-hpo.md). 

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)]
+ **HPO tunable (HPO réglable)** : le paramètre peut-il participer à HPO ?


| Nom | Description | 
| --- | --- | 
| Hyperparamètres de l'algorithme | 
| hidden\$1dimension |  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, utilisez HPO. Pour utiliser HPO, définissez `performHPO` sur `true` lorsque vous appelez les opérations [CreateSolution](API_CreateSolution.md) et [CreateSolutionVersion](API_CreateSolutionVersion.md). Valeur par défaut : 149 Plage : [32, 256] Type de valeur : entier HPO personnalisable : 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 `bptt` pour les crédits à long terme afin de connecter les récompenses retardées à des événements précoces. Par exemple, une récompense retardée peut être un achat effectué après plusieurs clics. Un événement précoce peut être un clic initial. Même dans les mêmes types d'événements, comme un clic, il est judicieux de prendre en compte les effets à long terme et d'optimiser le total des récompenses. Pour prendre en compte les effets à long terme, utilisez des valeurs `bptt` plus élevées. L'utilisation d'une valeur `bptt` plus importante nécessite des ensembles de données plus volumineux et plus de temps pour le traitement. Valeur par défaut : 32 Plage : [2, 32] Type de valeur : entier HPO personnalisable : oui  | 
| recency\$1mask |  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 `recency_mask` sur `true`. Pour former un modèle qui pèse de manière égale toutes les interactions passées, définissez `recency_mask` sur `false`. Pour obtenir de bonnes recommandations en utilisant un poids égal, vous pouvez avoir besoin d'un ensemble de données de formation plus grand. Valeur par défaut : `True` Plage : `True` ou `False` Type de valeur : booléen HPO personnalisable : oui  | 
| Hyperparamètres de fonctionnalité | 
| min\$1user\$1history\$1length\$1percentile |  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 `min_user_history_length_percentile` pour exclure un pourcentage d'utilisateurs avec des longueurs d'historique courtes. Les utilisateurs avec un court historique affichent souvent des modèles basés sur la popularité des éléments plutôt que sur les besoins ou les souhaits personnels de l'utilisateur. Leur suppression peut former des modèles en mettant davantage l'accent sur les modèles sous-jacents dans vos données. Choisissez une valeur appropriée après avoir examiné les longueurs de l'historique utilisateur, à l'aide d'un histogramme ou d'un outil similaire. Nous vous recommandons de définir une valeur qui conserve la majorité des utilisateurs, mais supprime les cas périphériques.  Par exemple, la définition de `min_user_history_length_percentile to 0.05` et `max_user_history_length_percentile to 0.95` inclut tous les utilisateurs, sauf ceux dont la longueur de l'historique figure dans les 5 % du bas ou du haut. Valeur par défaut : 0.0 Plage : [0.0, 1.0] Type de valeur : flottante HPO personnalisable : non  | 
| max\$1user\$1history\$1length\$1percentile |  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 `max_user_history_length_percentile` pour exclure un pourcentage d'utilisateurs avec de longues longueurs d'historique, car les données de ces utilisateurs ont tendance à contenir du bruit. Par exemple, un robot peut avoir une longue liste d'interactions automatisées. La suppression de ces utilisateurs limite le bruit dans la formation. Choisissez une valeur appropriée après avoir examiné les longueurs de l'historique utilisateur, à l'aide d'un histogramme ou d'un outil similaire. Nous vous recommandons de définir une valeur qui conserve la majorité des utilisateurs, mais supprime les cas périphériques. Par exemple, la définition de `min_user_history_length_percentile to 0.05` et `max_user_history_length_percentile to 0.95` inclut tous les utilisateurs, sauf ceux dont la longueur de l'historique figure dans les 5 % du bas ou du haut. Valeur par défaut : 0.99 Plage : [0.0, 1.0] Type de valeur : flottante HPO personnalisable : non  | 
| Hyperparamètres de configuration de la campagne d'exploration d'objets | 
| exploration\$1weight |  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 de plus amples informations, veuillez consulter [CampaignConfig](API_CampaignConfig.md). Valeur par défaut : 0.3 Plage : [0.0, 1.0] Type de valeur : flottante HPO personnalisable : non  | 
| exploration\$1item\$1age\$1cut\$1off |  Spécifiez l'âge maximal des objets en jours depuis la dernière interaction entre tous les éléments du jeu de données des 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, consultez[Données d'horodatage de création](items-datasets.md#creation-timestamp-data).  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 plus anciens que 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 HPO personnalisable : non  | 

## Formation avec la recette de personnalisation utilisateur (console)
<a name="training-user-personalization-recipe-console"></a>

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)**

1. Ouvrez la console Amazon Personalize [https://console.aws.amazon.com/personalize/chez](https://console.aws.amazon.com/personalize/home) vous et connectez-vous à votre compte.

1. 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 [CREATION\$1TIMESTAMP]() et les [Métadonnées de texte non structurées](items-datasets.md#text-data) données dans votre jeu de données 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, consultez[Importation de données de formation dans les ensembles de données Amazon Personalize](import-data.md).

1. 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.

1. Dans le volet de navigation, sélectionnez **Solutions et recettes**, puis sélectionnez **Créer une solution**.

1. Sur la page **Créer une solution**, pour le **nom de la solution**, entrez le nom de votre nouvelle solution.

1. Dans **Type de solution**, choisissez **Recommandation d'article** pour obtenir des recommandations d'articles pour vos utilisateurs. 

1. Pour **Recipe**, choisissez **aws-user-personalization**. La section **Configuration de la solution** apparaît et propose plusieurs options de configuration. 

1. Dans **Configuration des événements**, si votre ensemble de données d'interactions avec les articles contient les colonnes EVENT\$1TYPE ou EVENT\$1TYPE et EVENT\$1VALUE, 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 la formation 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](event-values-types.md). 

    Si vous avez plusieurs types d'événements et que vous utilisez la recette User-Personalization-v 2 ou Personalized-Ranking-v 2 recettes, vous pouvez également spécifier des pondérations différentes pour les différents types. Par exemple, vous pouvez configurer une solution pour donner plus de poids aux événements d'achat qu'aux événements de clics. Pour de plus amples informations, veuillez consulter [Optimisation d'une solution avec configuration d'événements](optimizing-solution-events-config.md). 

1. 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](#bandit-hyperparameters) 

1. 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 : 

1. Sur la page de détails de la solution ou sur la page **Campagnes**, choisissez **Créer une nouvelle campagne**.

1.  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'[CreateCampaign](API_CreateCampaign.md)opération.

1. 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.

1. Choisissez **Create campaign (Créer une campagne)**.

1. 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](getting-started-console.md#getting-started-console-get-recommendations) 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](use-case-recipe-features.md#automatic-updates). 

   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'[CreateSolutionVersion](API_CreateSolutionVersion.md)opération, avec `trainingMode` set to`update`. Vous mettez ensuite manuellement à jour la campagne sur la page **Campagne** de la console ou en utilisant l'[UpdateCampaign](API_UpdateCampaign.md)opération. 
**Note**  
 Amazon Personalize ne met pas automatiquement à jour les versions des solutions que vous avez créées avant le 17 novembre 2020. 

## Formation avec la recette de personnalisation utilisateur (SDK Python)
<a name="training-user-personalization-recipe"></a>

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 [CREATION\$1TIMESTAMP]() et les [Métadonnées de texte non structurées](items-datasets.md#text-data) données dans votre jeu de données 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, consultez[Création de fichiers JSON pour les schémas Amazon Personalize](how-it-works-dataset-schema.md).

**Pour élaborer une solution à l'aide de la recette de personnalisation utilisateur à l'aide du SDK AWS**

1. Créez une nouvelle solution à l'aide de `create_solution` cette méthode.

   `solution name`Remplacez-le par le nom de votre solution et `dataset group arn` par le nom de ressource Amazon (ARN) de votre groupe 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, consultez[Propriétés et hyperparamètres](#bandit-hyperparameters).

1. Créez une nouvelle *version de solution* avec les données d'entraînement mises à jour et configurez `trainingMode` pour `FULL` utiliser l'extrait de code suivant. Remplacez le `solution arn` par l'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)
   ```

1. 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 le `solution 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 lorsque 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](use-case-recipe-features.md#automatic-updates). 

   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'[CreateSolutionVersion](API_CreateSolutionVersion.md)opération, avec `trainingMode` set to`update`. Vous mettez ensuite manuellement à jour la campagne sur la page **Campagne** de la console ou en utilisant l'[UpdateCampaign](API_UpdateCampaign.md)opé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 (SDK pour Python (Boto3))
<a name="user-personalization-get-recommendations-recording-impressions"></a>

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 de la AWS SDKs section[Création d'une tâche d'inférence par lots ()AWS SDKs](creating-batch-inference-job.md#batch-sdk).



**Pour obtenir des recommandations et enregistrer les impressions**

1. Appelez la méthode `get_recommendations`. Remplacez `campaign arn` l'ARN de votre nouvelle campagne par `user id` l'userID de l'utilisateur.

   ```
   import boto3
               
   rec_response = personalize_runtime.get_recommendations(campaignArn = 'campaign arn', userId = 'user id')
   print(rec_response['recommendationId'])
   ```

1. 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 d'événements et `dataset group arn` par l'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))
   ```

1.  Utilisez `recommendationId` les étapes 1 et 2 pour créer une nouvelle `PutEvents` demande. `event tracking id` Cette demande enregistre les nouvelles données d'impression issues de la session de l'utilisateur. Remplacez `user 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
<a name="bandits-sample-notebooks"></a>

Pour un exemple de bloc-notes Jupyter qui montre comment utiliser la recette de personnalisation utilisateur, voir Personnalisation [utilisateur](https://github.com/aws-samples/amazon-personalize-samples/blob/master/next_steps/core_use_cases/user_personalization/user-personalization-with-exploration.ipynb) avec exploration.