Préparation des données d'entrée pour les segments d'utilisateurs - 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.

Préparation des données d'entrée pour les segments d'utilisateurs

Les tâches de segmentation par lots utilisent une version de solution pour créer des segments d'utilisateurs en fonction des données que vous fournissez dans un fichier JSON d'entrée. Avant de pouvoir obtenir des segments d'utilisateurs, vous devez préparer et télécharger votre fichier JSON dans un compartiment Amazon S3. Nous vous recommandons de créer un dossier de sortie dans votre compartiment Amazon S3 ou d'utiliser un compartiment de sortie Amazon S3 distinct. Vous pouvez ensuite exécuter plusieurs tâches d'inférence par lots en utilisant le même emplacement de données d'entrée.

Si vous utilisez un filtre avec 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 plus d’informations, consultez Fournir des valeurs de filtre dans votre entrée JSON.

Pour préparer et importer des données
  1. Formatez les données d'entrée par lots en fonction de la recette utilisée par votre solution. Séparez l'élément de données d'entrée par une nouvelle ligne. Vos données d'entrée sont soit une liste d'ItemID (Item-Affinity) soit des attributs d'article (Item-Attribute-Affinity).

  2. Téléchargez votre code JSON d'entrée dans un dossier d'entrée de votre compartiment Amazon S3. Pour plus d'informations, consultez la section Chargement de fichiers et de dossiers par glisser-déposer dans le guide de l'utilisateur d'Amazon Simple Storage Service

  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. En créant un emplacement distinct pour le JSON de sortie, vous pouvez exécuter plusieurs tâches de segmentation par lots avec le même emplacement de données d'entrée.

Une fois que vous avez préparé vos données d'entrée et que vous les avez téléchargées dans un compartiment Amazon S3, vous êtes prêt à générer des segments d'utilisateurs avec une tâche de segmentation par lots. Pour plus d’informations, consultez Obtenir des segments d'utilisateurs à l'aide d'une tâche de segmentation par lots.

Spécification des attributs d'article pour la recette Item-Attribute-Affinity

Si vous utilisez la recette Item-Attribute-Affinity, vos données d'entrée sont une liste d'attributs d'article. Vous pouvez mélanger différentes colonnes de métadonnées. Par exemple, une ligne peut être une colonne numérique et la suivante une colonne catégorique. Vous ne pouvez pas utiliser les métadonnées textuelles non structurées d'un élément comme attribut d'article.

Les métadonnées de votre élément d'entrée peuvent inclure des expressions logiques avec l'ANDopérateur pour obtenir un segment utilisateur pour plusieurs attributs. Par exemple, une ligne de vos données d'entrée peut être {"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\""} ou{"itemAttributes": "ITEMS.genres = "\Comedy\" AND ITEMS.audience = "\teen\""}.

Lorsque vous combinez deux attributs avec l'ANDopérateur, vous créez un segment d'utilisateurs avec les utilisateurs les plus susceptibles d'interagir avec des éléments dotés des deux attributs en fonction de l'historique des interactions des utilisateurs. Contrairement aux expressions de filtre (qui utilisent l'INopérateur pour l'égalité des chaînes), les expressions d'entrée de segments par lots ne prennent en charge que le = symbole d'égalité pour la correspondance de chaînes.

Exemples JSON d'entrée et de sortie de tâches de segmentation par lots

Pour une tâche de segmentation par lots, vos données d'entrée doivent être soit une liste d'ItemID (recette Item-Affinity), soit des attributs d'article (Item-Attribute-Affinity). Chaque ligne de données d'entrée est une requête d'inférence distincte. Chaque segment d'utilisateurs est trié par ordre décroissant en fonction de la probabilité que chaque utilisateur interagisse avec les articles de votre inventaire.

Si vous utilisez un filtre avec 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 plus d’informations, consultez Fournir des valeurs de filtre dans votre entrée JSON.

Vous trouverez ci-dessous des exemples d'entrée et de sortie JSON correctement formatés pour les tâches de segmentation par lots organisées par recette.

Affinité entre les objets

Input

Vos données d'entrée peuvent comporter un maximum de 500 éléments. Séparez chacune itemId par une nouvelle ligne comme suit.

{"itemId": "105"} {"itemId": "106"} {"itemId": "441"} ...
Output
{"input": {"itemId": "105"}, "output": {"recommendedUsers": ["106", "107", "49"]}} {"input": {"itemId": "106"}, "output": {"recommendedUsers": ["105", "107", "49"]}} {"input": {"itemId": "441"}, "output": {"recommendedUsers": ["2", "442", "435"]}} ...

Affinité entre les attributs et les objets

Input

Vos données d'entrée peuvent comporter un maximum de 10 requêtes, chaque requête portant sur un ou plusieurs attributs d'élément non textuels. Séparez chaque attribut ou expression d'attribut par une nouvelle ligne comme suit.

{"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\""} {"itemAttributes": "ITEMS.genres = \"Comedy\""} {"itemAttributes": "ITEMS.genres = \"Horror\" AND ITEMS.genres = \"Action\""} ...
Output
{"itemAttributes": "ITEMS.genres = \"Comedy\" AND ITEMS.genres = \"Action\"", "output": {"recommendedUsers": ["25", "78", "108"]}} {"itemAttributes": "ITEMS.genres = \"Adventure\"", "output": {"recommendedUsers": ["87", "31", "129"]}} {"itemAttributes": "ITEMS.genres = \"Horror\" AND ITEMS.genres = \"Action\"", "output": {"recommendedUsers": ["8", "442", "435"]}} ...