Filtrer les recommandations par lots et les segments d'utilisateurs (ressources personnalisées) - Amazon Personalize

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.

Filtrer les recommandations par lots et les segments d'utilisateurs (ressources personnalisées)

Le filtrage des recommandations par lots et des segments d'utilisateurs fonctionne presque de la même manière que le filtrage des recommandations en temps réel. Il suit le même flux de travail décrit dans Obtenir des recommandations d'articles par lots ouObtenir des segments d'utilisateurs par lots. Pour filtrer les recommandations par lots ou les segments d'utilisateurs, procédez comme suit :

  1. Créez un filtre comme vous le feriez pour les recommandations en temps réel. Pour plus d’informations, consultez Filtrer les recommandations en temps réel.

  2. Préparez vos données d'entrée et chargez-les sur Amazon S3 comme décrit dans Préparation des données d'entrée pour les recommandations par lots ouPréparation des données d'entrée pour les segments d'utilisateurs. Si votre filtre utilise des paramètres d'espace réservé, vous devez ajouter un filterValues objet supplémentaire. Pour plus d’informations, consultez Fournir des valeurs de filtre dans votre JSON d'entrée. Si votre filtre n'utilise pas de paramètres d'espace réservé, vos données d'entrée peuvent suivre les exemples fournis dans Exemples JSON d'entrée et de sortie de tâches d'inférence par lots Exemples JSON d'entrée et de sortie de tâches de segmentation par lots

  3. Créez un emplacement distinct pour vos données de sortie, qu'il s'agisse d'un dossier ou d'un autre compartiment Amazon S3.

  4. Créez une tâche d'inférence par lots ou une tâche de segmentation par lots. Lorsque vous créez la tâche, spécifiez l'Amazon Resource Name (ARN) de votre filtre.

  5. Lorsque le travail d'inférence ou de segmentation par lots est terminé, récupérez les recommandations ou les segments utilisateur depuis votre emplacement de sortie dans Amazon S3.

Fournir des valeurs de filtre dans votre JSON d'entrée

Pour les filtres comportant des paramètres d'espace réservé, par exemple$GENRE, vous devez fournir les valeurs des paramètres d'un filterValues objet dans votre code JSON d'entrée. Pour un filterValues objet, chaque clé est un nom de paramètre. Chaque valeur correspond au critère que vous transmettez en tant que paramètre. Entourez chaque valeur de guillemets évadés :"filterValues":{"GENRES":"\"drama\""}. Pour plusieurs valeurs, séparez chaque valeur par une virgule : "filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}

Exemple JSON de saisie d'une tâche d'inférence par lots

Voici un exemple des premières lignes d'un fichier d'entrée JSON pour une tâche d'inférence par lots. L'exemple inclut l'filterValuesobjet. La GENRES clé correspond à un $GENRES espace réservé dans l'expression du filtre. La tâche présentée dans cet exemple utilise la recette de personnalisation par l'utilisateur. Pour les recettes RELATED_ITEMS, fournissez un ItemID au lieu du UserId. Pour les recettes PERSONALIZED_RANKING, fournissez l'ID utilisateur et une ItemList.

{"userId": "5","filterValues":{"GENRES":"\"horror\",\"comedy\",\"drama\""}} {"userId": "3","filterValues":{"GENRES":"\"horror\",\"comedy\""}} {"userId": "34","filterValues":{"GENRES":"\"drama\""}}

Pour plus d'exemples de tâches d'inférence par lots, saisissez des données par recette, voirExemples JSON d'entrée et de sortie de tâches d'inférence par lots. Vous pouvez utiliser ces exemples comme point de départ et ajouter l'filterValuesobjet de l'exemple ci-dessus.

Exemple JSON de saisie de tâche par segment par lots

Voici un exemple des premières lignes d'un fichier d'entrée JSON avec des valeurs de filtre pour une tâche de segmentation par lots. La GENRES clé correspond à un $GENRES espace réservé dans l'expression du filtre.

{"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\"","filterValues":{"COUNTRY":"\"Japan\""}} {"itemAttributes": "ITEMS.genres = \"Horror\"","filterValues":{"COUNTRY":"\"United States\"\""}} {"itemAttributes": "ITEMS.genres = \"Action\" AND ITEMS.genres = \"Adventure\"","filterValues":{"COUNTRY":"\"England\""}}

Pour plus d'exemples de tâches d'inférence par lots, saisissez des données par recette, voirExemples JSON d'entrée et de sortie de tâches de segmentation par lots. Vous pouvez utiliser ces exemples comme point de départ et ajouter l'filterValuesobjet de l'exemple ci-dessus.

Filtrer les flux de travail par lots (console)

Pour filtrer les flux de travail par lots à l'aide de la console Amazon Personalize, vous créez un filtre, puis vous créez une tâche d'inférence par lots ou une tâche de segmentation par lots et vous choisissez le filtre. Pour obtenir des instructions détaillées étape par étape, reportez-vous Création d'une tâche d'inférence par lots (console) aux sections etCréation d'une tâche de segmentation par lots (console).

Filtrage des flux de travail par lots (AWS SDK)

Pour filtrer les recommandations par lots à l'aide AWS des SDK, créez un filtre et incluez le FilterArn paramètre dans la CreateBatchSegmentJob demande CreateBatchInferenceJob ou.

Le code suivant montre comment créer une tâche d'inférence par lots avec un filtre utilisant le AWS SDK for Python (Boto3). Nous vous recommandons d'utiliser un autre emplacement pour vos données de sortie (soit un dossier, soit un autre compartiment Amazon S3). Pour une explication complète de tous les champs, voirCréation d'une tâche d'inférence par lots (AWS SDK).

import boto3 personalize = boto3.client("personalize") personalize_rec.create_batch_inference_job ( solutionVersionArn = "Solution version ARN", jobName = "Batch job name", roleArn = "IAM role ARN", filterArn = "Filter ARN", jobInput = {"s3DataSource": {"path": "S3 input path"}}, jobOutput = {"S3DataDestination": {"path": "S3 output path"}} )