Mesurer l'impact commercial des recommandations de personnalisation d'Amazon

Nous sommes ravis d’annoncer qu’Amazon Personalize vous permet désormais de mesurer la manière dont vos recommandations personnalisées peuvent vous aider à atteindre vos objectifs commerciaux. Après avoir décidé des mesures que vous souhaitez suivre, vous pouvez identifier les campagnes et les propositions les plus influentes et comprendre l’impact des recommandations sur les mesures de votre entreprise.

Tous les clients veulent suivre la métrique la plus importante pour leur entreprise. Par exemple, une application d’achat en ligne peut souhaiter suivre deux mesures : le taux de clics (CTR) des recommandations et le nombre total d’achats. Une plate-forme de vidéo à la demande qui a des carrousels avec différents suggesteurs qui donnent des recommandations peut souhaiter comparer le CTR ou la durée de visionnage. Vous pouvez également surveiller le revenu total ou la marge pour un type d’événement spécifique, par exemple lorsqu’un utilisateur achète un article. Cette nouvelle fonctionnalité vous permet de mesurer l’impact de vos campagnes et candidats Amazon Personalize, ainsi que les interactions générées par des solutions tierces.

Dans cet article, nous vous expliquons comment suivre vos métriques et évaluer l’impact de vos recommandations de personnalisation dans un cas d’utilisation e-commerce.

Vue d’ensemble de la solution

Auparavant, pour comprendre l’impact des recommandations personnalisées, vous deviez organiser manuellement les flux de travail pour capturer les données des métriques commerciales, puis les présenter dans des représentations significatives à des fins de comparaison. Désormais, Amazon Personalize a éliminé cette charge opérationnelle en vous permettant de sélectionner les mesures que vous souhaitez suivre et surveiller. Amazon Personalize peut envoyer des données de performances à Amazon CloudWatch pour la visualisation et la surveillance, ou alternativement à un conteneur Amazon Simple Storage Service (Amazon S3) où vous pouvez accéder et intégrer des métriques avec d’autres outils de business intelligence. Cela vous permet de mesurer efficacement l’impact des événements et des recommandations sur les objectifs commerciaux et de surveiller le résultat de tout événement que vous souhaitez surveiller.

Pour mesurer l’impact des recommandations, vous pouvez définir une “attribution de mesure”, qui est une liste des types d’événements que vous souhaitez signaler à l’aide de la console Amazon Personalize ou des API. Pour chaque type d’événement, il vous suffit de sélectionner la métrique et la fonction que vous souhaitez calculer (somme ou nombre d’échantillons), et Amazon Personalize effectue le calcul, en envoyant les rapports générés à CloudWatch ou Amazon S3.

Le tableau suivant montre comment suivre les statistiques d’une proposition ou d’une campagne :

Figure 1. Présentation des fonctionnalités : L’ensemble de données d’interactions est utilisé pour former le conseiller ou la campagne. Ensuite, lorsque les utilisateurs interagissent avec les éléments recommandés, ces interactions sont envoyées à Amazon Personalize et attribuées à la partie ou à la campagne recommandée correspondante. Ensuite, ces métriques sont exportées vers Amazon S3 et CloudWatch afin que vous puissiez surveiller et comparer les métriques de chaque recommandation ou campagne.

Les références de métriques vous permettent également de soumettre un eventAttributionSource, pour chaque interaction, qui définit le scénario vécu par l’utilisateur lorsqu’il a interagi avec un élément. Le schéma suivant montre comment vous pouvez suivre les métriques de deux propositions différentes à l’aide de la métrique Amazon Personalize.

Figure 2. Mesure de l’impact commercial des recommandations dans deux scénarios: le jeu de données d’interactions est utilisé pour former deux promoteurs ou campagnes, dans ce cas marqués “bleu” et “orange”. Ensuite, lorsque les utilisateurs interagissent avec les éléments recommandés, ces interactions sont envoyées à Amazon Personalize et attribuées au recommandeur, à la campagne ou au scénario correspondant auquel l’utilisateur a été exposé lorsqu’il a interagi avec l’élément. Ensuite, ces métriques sont exportées vers Amazon S3 et CloudWatch afin que vous puissiez surveiller et comparer les métriques de chaque recommandation ou campagne.

Dans cet exemple, nous passons en revue le processus de profilage des métriques pour vos données d’interaction dans Amazon Personalize. Tout d’abord, vous importez vos données et créez deux métriques de référence pour mesurer l’impact des recommandations sur l’entreprise. Ensuite, vous créez deux recommandations de segment – c’est le même processus si vous utilisez une solution de recommandation personnalisée – et envoyez des événements pour les suivre à l’aide de métriques. Pour commencer, vous n’avez besoin que du jeu de données Interactions. Cependant, étant donné que l’une des mesures que nous suivons dans cet exemple est la marge, nous vous montrons également comment importer le jeu de données Items. Un exemple de code pour ce cas d’utilisation est disponible sur GitHub.

Exigences de base

Vous pouvez utiliser la console AWS ou les API prises en charge pour générer des recommandations à l’aide d’Amazon Personalize, par exemple à l’aide de l’interface de ligne de commande AWS ou du kit AWS SDK pour Python.

Pour calculer et signaler l’impact des recommandations, vous devez d’abord configurer certaines ressources AWS.

Vous devez créer le rôle AWS Identity and Access Management (IAM) qu’Amazon Personalize assumera avec le document de stratégie de rôle d’hypothèse pertinent. Vous devez également attacher des politiques pour permettre à Amazon de personnaliser l’accès aux données d’un compartiment S3 et d’envoyer des données à CloudWatch. Pour plus d’informations, consultez Accorder à Amazon Allocate l’accès à un compartiment Amazon S3 et Accorder à Amazon Allocate l’accès à CloudWatch.

Ensuite, vous devez créer des ressources Amazon Personalize. Créez votre ensemble de données, téléchargez vos données et formez vos recommandataires. Pour obtenir des instructions complètes, consultez Mise en route.

  1. Créez un jeu de données. Vous pouvez utiliser des attributs de mesure dans des ensembles de données de domaine et des collections d’ensembles de données personnalisés.
  2. inventer Interactions Définissez les données à l’aide du tableau suivant :
    { "type": "record", 
    "name": "Interactions",
     "namespace": "com.amazonaws.personalize.schema", 
    "fields": ( 
        {
            "name": "USER_ID",
            "type": "string"
        },
        {
            "name": "ITEM_ID",
            "type": "string"
        },
        {
            "name": "TIMESTAMP",
            "type": "long"
        },
        {
            "name": "EVENT_TYPE",
            "type": "string"
        }
    ),
     "version": "1.0" 
    }

  3. inventer Items Définissez les données à l’aide du tableau suivant :
    {
        "type": "record",
        "name": "Items",
        "namespace": "com.amazonaws.personalize.schema",
        "fields": (
            {
                "name": "ITEM_ID",
                "type": "string"
            },
            {
                "name": "PRICE",
                "type": "float"
            },
            {
                "name": "CATEGORY_L1",
                "type": ("string"),
                "categorical": True
            },
            {
                "name": "CATEGORY_L2",
                "type": ("string"),
                "categorical": True
            },
            {
                "name": "MARGIN",
                "type": "double"
            }
        ),
    "version": "1.0"
    }

Avant d’importer nos données dans Amazon Personalize, nous définirons des métriques d’attribution.

Configurer les attributs de mesure

Pour commencer à créer des métriques, vous devez sélectionner la liste des événements pour lesquels vous souhaitez collecter des métriques. Pour chaque type d’événement choisi, vous spécifiez la fonctionnalité qu’Amazon Personalize appliquera lors de la collecte des données – les deux fonctions disponibles sont SUM(DatasetType.COLUMN_NAME) Et SAMPLECOUNT()DatasetType Peut être INTERACTIONS ou ITEMS base de données. Amazon Personalize peut envoyer des données de métriques à CloudWatch pour la visualisation et la surveillance, ou bien les exporter vers un compartiment S3.

Après avoir créé une attribution de mesure et enregistré des événements ou importé des données agrégées incrémentielles, vous engagez un certain coût mensuel CloudWatch par métrique. Pour plus d’informations sur la tarification CloudWatch, consultez la page de tarification CloudWatch. Pour arrêter l’envoi de métriques à CloudWatch, supprimez la métrique d’attribution.

Dans cet exemple, nous allons créer deux attributs pour les métriques :

  1. Compter le nombre total d’événements “d’affichage” avec un fichier SAMPLECOUNT(). Seule cette fonctionnalité est requise INTERACTIONS base de données.
  2. Calculez la marge totale lorsque des événements d’achat se produisent en utilisant SUM(DatasetType.COLUMN_NAME) Dans ce cas, le fichier DatasetType Il est ITEMS et colonne MARGIN Parce que nous gardons une trace de la marge de l’article lorsque vous l’achetez. le Purchase L’événement est connecté INTERACTIONS base de données. Notez que pour que la marge soit déclenchée par l’événement d’achat, vous envoyez un événement d’achat pour chaque unité individuelle de chaque article acheté, même s’ils sont dupliqués – par exemple, deux chemises du même type. Si les utilisateurs peuvent acheter des multiples de chaque article à la caisse et que vous n’envoyez qu’un seul événement d’achat pour chacun d’eux, une échelle différente serait plus appropriée.

La fonction de calcul du nombre d’échantillons n’est disponible que pour INTERACTIONS base de données. Cependant, la marge brute exige que vous ayez ITEMS ensemble de données et pour configurer le compte. Pour chacun d’eux, nous définissons eventType Que nous suivrons, quelle fonction est utilisée et laquelle est donnée metricName Il définira les métriques une fois qu’elles seront exportées. Dans cet exemple, nous leur avons donné les noms “countViews” et “sumMargin”.

Exemple de code en Python.

import boto3 
personalize = boto3.client('personalize')

metrics_list = ({
        "eventType": "View",
        "expression": "SAMPLECOUNT()",
        "metricName": "countViews"
    },
    {
        "eventType": "Purchase",
        "expression": "SUM(ITEMS.MARGIN)",
        "metricName": "sumMargin"
})

Nous spécifions également où exporter les données. Dans ce cas, au compartiment S3.

output_config = {
    "roleArn": role_arn,
    "s3DataDestination": {
    "path": path_to_bucket    
    }
}

Ensuite, nous créons la référence de métrique.

response = personalize.create_metric_attribution(
name = metric_attribution_name,
datasetGroupArn = dataset_group_arn,
metricsOutputConfig = output_config,
metrics = metrics_list
)

metric_attribution_arn = response('metricAttributionArn')

Vous devez donner un name indique l’attribution de la métrique, ainsi que l’ensemble de données à partir duquel les métriques seront référencées à l’aide datasetGroupArnet le metricsOutputConfig Et metrics Les choses que nous avons créées plus tôt.

Maintenant que l’affectation de mesure est créée, vous pouvez passer à la tâche d’importation de l’ensemble de données qui chargera les ensembles de données d’objet et d’interaction de votre compartiment S3 dans les ensembles de données que nous avons configurés précédemment.

Pour plus d’informations sur la modification ou la suppression d’une attribution de mesure existante, consultez Gérer une attribution de mesure.

Importer des données et créer des propositions

Tout d’abord, importez les données d’interaction dans Amazon Personalize à partir d’Amazon S3. Dans cet exemple, nous utilisons le fichier de données suivant. Nous avons généré les données synthétiques basées sur le code du projet Retail Demo Store. Consultez le référentiel GitHub pour en savoir plus sur les données synthétiques et leurs utilisations potentielles.

Créez ensuite une proposition. Dans cet exemple, nous avons créé deux propositions :

  1. Suggestion “Recommandé pour vous”. Ce type de suggestion crée des recommandations personnalisées pour les éléments en fonction de l’utilisateur que vous sélectionnez.
  2. Les clients qui ont consulté X ont également consulté. Ce type de recommandation crée des recommandations pour les articles que les clients ont également consultés en fonction d’un article que vous sélectionnez.

Envoyez des événements à Amazon Personalize et attribuez-les à des recommandataires

Pour envoyer des interactions à Amazon Personalize, vous devez créer un outil de suivi des événements.

Pour chaque événement, Amazon Personalize peut enregistrer un fichier eventAttributionSource. peut être déduit de recommendationId Ou vous pouvez le spécifier explicitement et le reconnaître dans les rapports dans EVENT_ATTRIBUTION_SOURCE colonne. ce eventAttributionSource Il peut s’agir d’une suggestion, d’un script ou d’une partie de la page gérée par un tiers où les interactions se sont produites.

  • Si vous fournissez un fichier recommendationIdpuis Amazon Personalize extrait automatiquement la campagne ou la recommandation source.
  • Si vous fournissez les deux attributs, Amazon Personalize utilise uniquement la source.
  • Si vous ne fournissez pas de source ou de fichier recommendationIdpuis Amazon Personalize nomme la ressource SOURCE_NAME_UNDEFINED dans les rapports.

Le code suivant montre comment fournir un fichier eventAttributionSource à un événement dans un PutEvents processus.

response = personalize_events.put_events(
trackingId = 'eventTrackerId',
userId= 'userId',
sessionId = 'sessionId123',
eventList = ({
'eventId': event_id,
'eventType': event_type,
'itemId': item_id,
'metricAttribution': {"eventAttributionSource": attribution_source},
'sentAt': timestamp_in_unix_format
}
})
)
print (response)

Afficher vos métriques

Amazon Personalize envoie des métriques à Amazon CloudWatch ou Amazon S3 :

Pour toutes les données agrégées, si vous provisionnez un compartiment Amazon S3 lorsque vous créez votre attribution de métrique, vous pouvez choisir de publier des rapports de métriques dans votre propre compartiment Amazon S3. Vous devez effectuer cette opération chaque fois que vous créez une tâche d’importation d’ensemble de données pour les données d’interaction.

import boto3

personalize = boto3.client('personalize')

response = personalize.create_dataset_import_job(
    jobName="YourImportJob",
    datasetArn = 'dataset_arn',
    dataSource = {'dataLocation':'s3://bucket/file.csv'},
    roleArn = 'role_arn',
    importMode="INCREMENTAL",
    publishAttributionMetricsToS3 = True
)

print (response)

Lors de l’importation de vos données, sélectionnez le bon mode d’importation INCREMENTAL ou FULL Demander à Amazon Personalize de déployer les métriques par configuration publishAttributionMetricsToS3 pour True. Pour plus d’informations sur le déploiement de rapports de métriques sur Amazon S3, consultez Déployer des métriques sur Amazon S3.

Pour les données PutEvents envoyées via Event Tracker et les importations de données en masse incrémentielles, Amazon Personalize envoie automatiquement les métriques à CloudWatch. Vous pouvez afficher les données des deux dernières semaines dans Amazon CloudWatch – les anciennes données sont supprimées.

Vous pouvez représenter graphiquement une métrique directement dans la console CloudWatch en spécifiant le nom que vous avez donné à la métrique lors de la création de la référence de métrique en tant que terme de recherche. Pour plus d’informations sur l’affichage de ces métriques dans CloudWatch, consultez Afficher les métriques dans CloudWatch.

figure 3: exemple de comparaison de deux versions de taux de clics (CTR) de deux propositions affichées dans la console CloudWatch.

Importer et publier des métriques sur Amazon S3

Lorsque vous avez chargé vos données sur Amazon Personalize via la tâche Importer un ensemble de données et que vous avez fourni un chemin d’accès à votre compartiment Amazon S3 dans Metric Referral, vous pouvez afficher vos métriques dans Amazon S3 lorsque la tâche est terminée.

Chaque fois que vous publiez des métriques, Amazon Personalize crée un nouveau fichier dans votre compartiment Amazon S3. Le nom du fichier spécifie la méthode et la date d’importation. champ EVENT_ATTRIBUTION_SOURCE Définit la source de l’événement, c’est-à-dire le scénario dans lequel l’interaction s’est produite. Amazon Personalize vous permet de sélectionner un fichier EVENT_ATTRIBUTION_SOURCE En utilisant explicitement ce champ, cela peut être un tiers recommandé. Pour plus d’informations, consultez Déployer des métriques sur Amazon S3.

résumé

L’ajout d’une attribution de métriques vous permet de suivre l’impact des recommandations sur les métriques commerciales. Vous pouvez créer ces métriques en ajoutant une affectation de métrique à votre jeu de données et en sélectionnant les événements que vous souhaitez suivre, ainsi que la fonction de comptage des événements ou de regroupement d’un champ de jeu de données. Ensuite, vous pouvez voir les métriques qui vous intéressent dans CloudWatch ou dans le fichier exporté dans Amazon S3.

Pour plus d’informations sur Amazon Personalization, consultez Qu’est-ce qu’Amazon Personalization ?


À propos des auteurs

Anna Grobler est un architecte de solutions spécialisées AWS axé sur l’intelligence artificielle. Elle a plus de 10 ans d’expérience dans le développement et le déploiement d’applications d’apprentissage automatique. Sa passion est de prendre les nouvelles technologies et de les mettre entre toutes les mains, de résoudre des problèmes complexes pour tirer parti des avantages de l’utilisation de l’IA dans le cloud.


Gabriel Dombra Un architecte de solutions spécialisé dans AWS dans le domaine de l’IA et de l’apprentissage automatique. Elle aime découvrir les nouvelles innovations en matière d’apprentissage automatique et aider les clients à atteindre leur plein potentiel avec des solutions bien conçues.

Enregistrer un commentaire

Plus récente Plus ancienne

نموذج الاتصال