Création d'une attribution métrique Amazon Personalize - 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.

Création d'une attribution métrique Amazon Personalize

Important

Une fois que vous avez créé une attribution de métrique et enregistré des événements ou importé des données en masse incrémentielles, vous devrez payer un certain CloudWatch coût mensuel par métrique. Pour plus d'informations sur CloudWatch les tarifs, consultez la page de CloudWatch tarification d'Amazon. Pour arrêter d'envoyer des métriques à CloudWatch, supprimez l'attribution des métriques.

Pour commencer à générer des rapports de mesures, vous devez créer une attribution de métrique et importer des données d'interactions. Lorsque vous créez une attribution de métrique, vous spécifiez une liste de types d'événements à signaler. Pour chaque type d'événement, vous spécifiez une fonction qu'Amazon Personalize applique lors de la collecte des données. Les fonctions disponibles incluent SUM(DatasetType.COLUMN_NAME) etSAMPLECOUNT().

Par exemple, vous avez peut-être une application de streaming vidéo en ligne et souhaitez suivre deux indicateurs : le taux de clics pour les recommandations et la durée totale des films visionnés, chaque vidéo du jeu de données Items incluant un LENGTH attribut. Vous créeriez une attribution de métriques et ajouteriez deux métriques, chacune associée à un type d'événement et à une fonction. Le premier peut concerner le type d'Clickévénement avec une SAMPLECOUNT() fonction. La seconde peut concerner le type d'Watchévénement avec une SUM(Items.LENGTH) fonction.

Vous pouvez appliquer SUM() des fonctions uniquement aux colonnes numériques des éléments et aux ensembles de données d'interactions entre éléments. Pour appliquer une SUM() fonction à une colonne d'un jeu de données Items, vous devez d'abord importer les métadonnées des éléments.

Vous pouvez créer une attribution métrique à l'aide de la console Amazon Personalize AWS Command Line Interface, ou AWS SDKS.

Création d'une attribution métrique (console)

Pour créer une attribution métrique avec la console Amazon Personalize, accédez à la page d'attribution métrique et choisissez Create metric attribution. Lorsque vous créez une attribution de métrique, vous spécifiez un chemin de compartiment Amazon S3 facultatif, votre rôle de IAM service Amazon Personalize et une liste de métriques à signaler.

Lorsque vous créez une tâche d'importation de jeux de données Item interactions avec la console Amazon Personalize, vous avez la possibilité de créer une attribution métrique dans un nouvel onglet. Vous pouvez ensuite retourner à la tâche d'importation pour la terminer. Si vous êtes déjà sur la page Configurer l'attribution des métriques, vous pouvez passer à l'étape 4.

Pour créer une attribution métrique
  1. Ouvrez la console Amazon Personalize https://console.aws.amazon.com/personalize/chez vous et connectez-vous à votre compte.

  2. Choisissez votre groupe de jeux de données.

  3. Dans le volet de navigation, sous Ressources personnalisées, sélectionnez Attribution métrique.

  4. Dans Détails de l'attribution métrique, choisissez Créer une attribution métrique.

  5. Sur la page Configurer l'attribution des métriques, nommez l'attribution des métriques.

  6. Si vous souhaitez publier des métriques sur Amazon S3 pour le chemin de sortie des données Amazon S3, entrez le compartiment Amazon S3 de destination. Cela permet de publier des métriques chaque fois que vous créez une tâche d'importation de jeu de données. Utilisez la syntaxe suivante :

    s3://amzn-s3-demo-bucket/<folder> path>

  7. Si vous utilisez AWS KMS pour le chiffrement, pour la KMSclé ARN, entrez le nom de ressource Amazon (ARN) pour la AWS KMS clé. Vous devez autoriser Amazon Personalize et votre rôle de IAM service Amazon Personalize à utiliser votre clé. Pour de plus amples informations, veuillez consulter Autoriser Amazon Personalize à utiliser votre AWS KMS clé.

  8. Dans IAMrôle, choisissez de créer un nouveau rôle de service ou d'utiliser un rôle existant. Le rôle que vous choisissez doit disposer PutMetricData d'autorisations pour CloudWatch. Si vous souhaitez publier sur Amazon S3, le rôle doit disposer d'PutObjectautorisations pour votre compartiment Amazon S3.

    Pour utiliser le rôle que vous avez créé dansCréation d'un rôle IAM pour Amazon Personalize, vous devrez peut-être ajouter des politiques pour CloudWatch Amazon S3.

    Pour des exemples de politiques, voir Donner à Amazon Personalize l'accès à CloudWatch etDonner à Amazon Personalize l'accès à votre compartiment Amazon S3.

  9. Choisissez Suivant.

  10. Sur la page Définir les attributs des métriques, choisissez comment définir les métriques. Choisissez Créer des attributs métriques pour utiliser l'outil de création. Choisissez Input metric attributes (Attributs de mesure en entrée) pour saisir les métriques au JSON format.

    • Si vous choisissez Créer des attributs de métrique, pour chaque métrique, indiquez un nom, un type d'événement et choisissez une fonction. Pour les SUM() fonctions, choisissez le nom de la colonne. Choisissez Ajouter un attribut de métrique pour ajouter des métriques supplémentaires.

    • Si vous sélectionnez Attributs de mesure en entrée, entrez chaque métrique au JSON format. Ce qui suit montre comment formater une métrique.

      { "EventType": "watch", "MetricName": "MinutesWatchedTracker", "MetricMathExpression": "SUM(Items.LENGTH)" }
  11. Choisissez Suivant.

  12. Sur la page Réviser et créer, passez en revue les détails de la nouvelle attribution de métriques. Pour effectuer des modifications, sélectionnez Précédent. Pour créer l'attribution métrique, choisissez Create. Lorsque l'attribution des métriques est active, vous pouvez commencer à importer des données et consulter les résultats. Pour plus d'informations sur l'affichage des résultats, consultezAffichage de graphiques de données métriques dans CloudWatch. Pour plus d'informations sur la publication des résultats sur Amazon S3, consultezPublication de rapports d'attribution de métriques sur Amazon S3.

Création d'une attribution métrique (AWS CLI)

Le code suivant montre comment créer une attribution métrique avec le AWS Command Line Interface. Le rôle que vous spécifiez doit disposer PutMetricData d'autorisations CloudWatch et, en cas de publication sur Amazon S3, PutObject d'autorisations pour votre compartiment Amazon S3. Pour utiliser le rôle que vous avez créé dansCréation d'un rôle IAM pour Amazon Personalize, vous devrez peut-être ajouter des politiques pour CloudWatch Amazon S3. Pour des exemples de politiques, voir Donner à Amazon Personalize l'accès à CloudWatch etDonner à Amazon Personalize l'accès à votre compartiment Amazon S3.

Pour chaque métrique, spécifiez un nom, un type d'événement et une expression (une fonction). Les fonctions disponibles incluent SUM(DatasetType.COLUMN_NAME) etSAMPLECOUNT(). Pour les fonctions SUM (), spécifiez le type de jeu de données et le nom de colonne. Par exemple, SUM(Items.LENGTH). Pour plus d'informations sur chaque paramètre, consultezCreateMetricAttribution.

aws personalize create-metric-attribution \ --name metric attribution name \ --dataset-group-arn dataset group arn \ --metrics-output-config "{\"roleArn\": \"Amazon Personalize service role ARN\", \"s3DataDestination\":{\"kmsKeyArn\":\"kms key ARN\",\"path\":\"s3://amzn-s3-demo-bucket/folder-name/\"}}" \ --metrics "[{ \"eventType\": \"event type\", \"expression\": \"SUM(DatasetType.COLUMN_NAME)\", \"metricName\": \"metric name\" }]"

Création d'une attribution métrique (AWS SDKs)

Le code suivant montre comment créer une attribution métrique avec SDK for Python (Boto3). Le rôle que vous spécifiez doit disposer PutMetricData d'autorisations CloudWatch et, en cas de publication sur Amazon S3, PutObject d'autorisations pour votre compartiment Amazon S3. Pour utiliser le rôle que vous avez créé dansCréation d'un rôle IAM pour Amazon Personalize, vous devrez peut-être ajouter des politiques pour CloudWatch Amazon S3. Pour des exemples de politiques, voir Donner à Amazon Personalize l'accès à CloudWatch etDonner à Amazon Personalize l'accès à votre compartiment Amazon S3.

Pour chaque métrique, spécifiez un nom, un type d'événement et une expression (une fonction). Les fonctions disponibles incluent SUM(DatasetType.COLUMN_NAME) etSAMPLECOUNT(). Pour les fonctions SUM (), spécifiez le type de jeu de données et le nom de colonne. Par exemple, SUM(Items.LENGTH). Pour plus d'informations sur chaque paramètre, consultezCreateMetricAttribution.

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') metricsList = [{ "eventType": "event type", "expression": "SUM(DatasetType.COLUMN_NAME)", "metricName": "metric name" }] outputConfig = { "roleArn": "Amazon Personalize service role ARN", "s3DataDestination": { "kmsKeyArn": "key ARN", "path": "s3://amzn-s3-demo-bucket/<folder>" } } response = personalize.create_metric_attribution( name = 'metric attribution name', datasetGroupArn = 'dataset group arn', metricsOutputConfig = outputConfig, metrics = metricsList ) metric_attribution_arn = response['metricAttributionArn'] print ('Metric attribution ARN: ' + metric_attribution_arn) description = personalize.describe_metric_attribution( metricAttributionArn = metric_attribution_arn)['metricAttribution'] print('Name: ' + description['name']) print('ARN: ' + description['metricAttributionArn']) print('Status: ' + description['status'])
SDK for Java 2.x
public static String createMetricAttribution(PersonalizeClient personalizeClient, String eventType, String expression, String metricName, String metricAttributionName, String roleArn, String s3Path, String kmsKeyArn, String datasetGroupArn) { String metricAttributionArn = ""; try { MetricAttribute attribute = MetricAttribute.builder() .eventType(eventType) .expression(expression) .metricName(metricName) .build(); ArrayList<MetricAttribute> metricAttributes = new ArrayList<>(); metricAttributes.add(attribute); S3DataConfig s3DataDestination = S3DataConfig.builder() .kmsKeyArn(kmsKeyArn) .path(s3Path) .build(); MetricAttributionOutput outputConfig = MetricAttributionOutput.builder() .roleArn(roleArn) .s3DataDestination(s3DataDestination) .build(); CreateMetricAttributionRequest createMetricAttributionRequest = CreateMetricAttributionRequest.builder() .name(metricAttributionName) .datasetGroupArn(datasetGroupArn) .metrics(metricAttributes) .metricsOutputConfig(outputConfig) .build(); CreateMetricAttributionResponse createMetricAttributionResponse = personalizeClient.createMetricAttribution(createMetricAttributionRequest); metricAttributionArn = createMetricAttributionResponse.metricAttributionArn(); System.out.println("Metric attribution ARN: " + metricAttributionArn); return metricAttributionArn; } catch (PersonalizeException e) { System.out.println(e.awsErrorDetails().errorMessage()); } return ""; }
SDK for JavaScript v3
// Get service clients and commands using ES6 syntax. import { CreateMetricAttributionCommand, PersonalizeClient } from "@aws-sdk/client-personalize"; // create personalizeClient const personalizeClient = new PersonalizeClient({ region: "REGION" }); // set the metric attribution param export const createMetricAttributionParam = { name: "METRIC_ATTRIBUTION_NAME", /* required */ datasetGroupArn: "DATASET_GROUP_ARN", /* required */ metricsOutputConfig: { roleArn: "ROLE_ARN", /* required */ s3DataDestination: { kmsKeyArn: "KEY_ARN", /* optional */ path: "s3://amzn-s3-demo-bucket/<folderName>/", /* optional */ }, }, metrics: [ { eventType: "EVENT_TYPE", /* required for each metric */ expression: "SUM(DatasetType.COLUMN_NAME)", /* required for each metric */ metricName: "METRIC_NAME", /* required for each metric */ } ] }; export const run = async () => { try { const response = await personalizeClient.send( new CreateMetricAttributionCommand(createMetricAttributionParam) ); console.log("Success", response); return response; // For unit tests. } catch (err) { console.log("Error", err); } }; run();