Évaluation d'une version de solution à l'aide de métriques - 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.

Évaluation d'une version de solution à l'aide de métriques

Vous pouvez évaluer les performances de la version de votre solution à l'aide de mesures hors ligne et en ligne. Les métriques en ligne sont les résultats empiriques que vous observez lors des interactions de vos utilisateurs avec des recommandations en temps réel. Par exemple, vous pouvez enregistrer le taux de clics de vos utilisateurs lorsqu'ils parcourent votre catalogue. Vous êtes responsable de la génération et de l'enregistrement de toutes les statistiques en ligne.

Les métriques hors ligne sont celles qu'Amazon Personalize génère lorsque vous testez une version de solution. Vous pouvez utiliser des mesures hors ligne pour évaluer les performances du modèle avant de créer une campagne et de fournir des recommandations. Les métriques hors ligne vous permettent de visualiser les effets de la modification des hyperparamètres d'une solution ou de comparer les résultats de modèles entraînés avec les mêmes données. Dans le reste de cette section, le terme métriques fait référence aux métriques hors ligne.

Pour obtenir des indicateurs de performance, Amazon Personalize divise les données d'interactions d'entrée en un ensemble d'entraînement et un ensemble de test. La répartition dépend du type de recette que vous choisissez :

  • Pour les recettes USER_SEGMENTATION, l'ensemble d'apprentissage comprend 80 % des données d'interactions de chaque utilisateur et l'ensemble de tests comprend 20 % des données d'interactions de chaque utilisateur.

  • Pour tous les autres types de recettes, le kit d'entraînement comprend 90 % de vos utilisateurs et de leurs données d'interactions. L'ensemble de tests comprend les 10 % d'utilisateurs restants et leurs données d'interactions.

Amazon Personalize crée ensuite la version de la solution à l'aide du kit de formation. Une fois la formation terminée, Amazon Personalize fournit à la nouvelle version de la solution les 90 % les plus anciennes des données de chaque utilisateur issues de l'ensemble de tests en tant qu'entrées. Amazon Personalize calcule ensuite des mesures en comparant les recommandations générées par la version de la solution aux interactions réelles figurant dans les 10 % de données les plus récentes de chaque utilisateur issues de l'ensemble de tests.

Pour générer une base de référence à des fins de comparaison, nous vous recommandons d'utiliser la Comptage de popularité recette, qui recommande les K articles les plus populaires.

Récupération des métriques de version de la solution

Après avoir créé une version de solution, vous pouvez utiliser des mesures pour évaluer ses performances. Vous pouvez récupérer des métriques pour une version de solution à l'aide de la console Amazon Personalize, AWS Command Line Interface (AWS CLI) et des kits de développement logiciel (AWSSDK).

Récupération des métriques de version de la solution (console)

Pour consulter les statistiques relatives aux recommandations dans la console, accédez à la page de détails de la version de votre solution.

  1. Ouvrez la console Amazon Personalize à l'adresse https://console.aws.amazon.com/personalize/home et connectez-vous à votre compte.

  2. Sur la page Groupes de jeux de données, choisissez votre groupe de jeux de données personnalisé.

  3. Dans le volet de navigation, choisissez Ressources personnalisées, puis Solutions et recettes.

  4. Choisissez votre solution.

  5. Dans Versions de solution, choisissez la version de votre solution pour afficher sa page de détails. Les mesures sont répertoriées dans l'onglet Métriques de version de la solution dans le volet inférieur. Pour les définitions des métriques, reportez-vous à la sectionDéfinitions métriques.

    Maintenant que vous avez évalué la version de votre solution, vous pouvez créer une campagne en déployant la version de la solution avec les meilleurs indicateurs pour votre cas d'utilisation. Pour plus d'informations sur le déploiement d'une solution, consultezCréation d'une campagne.

Récupération des métriques de version de la solution () AWS CLI

Vous pouvez extraire les métriques pour une version de solutions spécifique en appelant l'opération GetSolutionMetrics. Le code suivant montre comment récupérer des métriques à l'aide duAWS CLI.

personalize get-solution-metrics --solution-version-arn solution version ARN

Voici un exemple de sortie d'une version de solution créée à l'aide de la Personnalisation par l'utilisateur recette avec un objectif d'optimisation supplémentaire.

{ "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/SolutionName/<version-id>", "metrics": { "coverage": 0.27, "mean_reciprocal_rank_at_25": 0.0379, "normalized_discounted_cumulative_gain_at_5": 0.0405, "normalized_discounted_cumulative_gain_at_10": 0.0513, "normalized_discounted_cumulative_gain_at_25": 0.0828, "precision_at_5": 0.0136, "precision_at_10": 0.0102, "precision_at_25": 0.0091, "average_rewards_at_k": 0.653 } }

Pour obtenir des explications sur chaque métrique, reportez-vous à la sectionDéfinitions métriques. Maintenant que vous avez évalué la version de votre solution, vous pouvez créer une campagne en déployant la version de la solution avec les meilleurs indicateurs pour votre cas d'utilisation. Pour plus d'informations sur le déploiement d'une solution, consultezCréation d'une campagne.

Récupération des métriques de version de la solution (AWSSDK)

Vous pouvez extraire les métriques pour une version de solutions spécifique en appelant l'opération GetSolutionMetrics. Utilisez le code suivant pour récupérer les mesures.

SDK for Python (Boto3)
import boto3 personalize = boto3.client('personalize') response = personalize.get_solution_metrics( solutionVersionArn = 'solution version arn') print(response['metrics'])
SDK for Java 2.x
public static void getSolutionVersionMetrics(PersonalizeClient personalizeClient, String solutionVersionArn) { try { GetSolutionMetricsRequest request = GetSolutionMetricsRequest.builder() .solutionVersionArn(solutionVersionArn) .build(); Map<String, Double> metrics = personalizeClient.getSolutionMetrics(request).metrics(); metrics.forEach((key, value) -> System.out.println(key + " " + value)); } catch (PersonalizeException e ) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }

Voici un exemple de sortie d'une version de solution créée à l'aide de la Personnalisation par l'utilisateur recette avec un objectif d'optimisation supplémentaire.

{ "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/MovieSolution/<version-id>", "metrics": { "coverage": 0.27, "mean_reciprocal_rank_at_25": 0.0379, "normalized_discounted_cumulative_gain_at_5": 0.0405, "normalized_discounted_cumulative_gain_at_10": 0.0513, "normalized_discounted_cumulative_gain_at_25": 0.0828, "precision_at_5": 0.0136, "precision_at_10": 0.0102, "precision_at_25": 0.0091, "average_rewards_at_k": 0.653 } }

Pour obtenir des explications sur chaque métrique, reportez-vous à la sectionDéfinitions métriques. Maintenant que vous avez évalué la version de votre solution, vous pouvez créer une campagne en déployant la version de la solution avec les meilleurs indicateurs pour votre cas d'utilisation. Pour plus d'informations sur le déploiement d'une solution, consultezCréation d'une campagne.

Définitions métriques

Les métriques générées par Amazon Personalize pour les versions de solution sont décrites ci-dessous en utilisant les termes suivants :

  • Une recommandation pertinente est une recommandation concernant un élément avec lequel l'utilisateur a réellement interagi. Ces éléments proviennent des 10 % les plus récentes des données d'interactions de chaque utilisateur issues de l'ensemble de tests.

  • Rang fait référence à la position d'un élément dans la liste des recommandations. La position 1 (en haut de la liste) est présumée comme étant la plus pertinente pour l'utilisateur.

Pour chaque métrique, des nombres plus élevés (plus proches de 1) sont préférables. Pour en savoir plus, consultez les ressources répertoriées dansRessources supplémentaires.

couverture

La valeur de la couverture indique la proportion d'articles uniques qu'Amazon Personalize est susceptible de recommander par rapport au nombre total d'articles uniques figurant dans les ensembles de données Interactions et Articles. Un score de couverture plus élevé signifie qu'Amazon Personalize recommande un plus grand nombre de vos articles, plutôt que les mêmes articles à plusieurs reprises pour différents utilisateurs. Les recettes qui proposent l'exploration d'éléments, comme la personnalisation par l'utilisateur, ont une couverture plus importante que celles qui n'en proposent pas, comme le nombre de popularité.

rang réciproque moyen à 25

Cette métrique vous renseigne sur la capacité d'un modèle à générer une recommandation pertinente au premier rang. Vous pouvez choisir un modèle avec un classement réciproque moyen élevé (25) si vous générez des résultats de recherche pertinents pour un utilisateur et que vous ne vous attendez pas à ce que l'utilisateur choisisse un élément plus bas dans la liste. Par exemple, les utilisateurs choisissent fréquemment la première recette de cuisine dans les résultats de recherche.

Amazon Personalize calcule cette métrique en utilisant le score de classement réciproque moyen pour les demandes de recommandations. Chaque score de classement réciproque est calculé comme suit :1 / the rank of the highest item interacted with by the user, où le total des classements possibles est de 25. Les autres éléments de rang inférieur avec lesquels l'utilisateur interagit sont ignorés. Si l'utilisateur a choisi le premier élément, le score est de 1. S'ils ne choisissent aucun élément, le score est de 0.

Par exemple, vous pouvez présenter 25 recommandations à trois utilisateurs différents chacun :

  • Si l'utilisateur 1 clique sur l'élément de rang 4 et sur l'élément de rang 10, son score de classement réciproque est de 1/4.

  • Si l'utilisateur 2 clique sur un élément de rang 2, un élément de rang 4 et un élément de rang 12, son score de classement réciproque est de 1/2.

  • Si l'utilisateur 3 clique sur un seul élément au rang 6, son score de classement réciproque est de 1/6.

Le rang réciproque moyen pour toutes les demandes de recommandations (dans ce cas 3) est calculé comme suit(1/4 + 1/2 + 1/6) / 3 = .3056.

gain cumulé actualisé normalisé (NDCG) à K (5/10/25)

Cette métrique vous indique dans quelle mesure votre modèle classe les recommandations, K étant une taille d'échantillon de 5, 10 ou 25 recommandations. Cette métrique est utile si vous êtes particulièrement intéressé par le classement des recommandations au-delà de l'élément le mieux classé (pour cela, voirmean reciprocal rank at 25). Par exemple, la partition de NDCG at 10 serait utile si vous possédez une application qui affiche jusqu'à 10 films à la fois dans un carrousel.

Amazon Personalize calcule le NDCG en attribuant un poids aux recommandations en fonction de leur position dans le classement de chaque utilisateur dans l'ensemble de tests. Chaque recommandation est réduite (avec une pondération moindre) selon un facteur qui dépend de sa position. La métrique finale est la moyenne de tous les utilisateurs de l'ensemble de tests. Le gain cumulé actualisé normalisé à K suppose que les recommandations situées en bas d'une liste sont moins pertinentes que les recommandations situées en haut de la liste.

Amazon Personalize utilise un facteur de pondération de1/log(1 + position), où le haut de la liste correspond à la position1.

précision à K

Cette métrique vous indique dans quelle mesure les recommandations de votre modèle sont pertinentes sur la base d'un échantillon de recommandations K (5, 10 ou 25).

Amazon Personalize calcule cette métrique en fonction du nombre de recommandations pertinentes parmi les K principales recommandations pour chaque utilisateur de l'ensemble de tests, divisé par K, où K est égal à 5, 10 ou 25. L'indicateur final est la moyenne de tous les utilisateurs de l'ensemble de tests.

Par exemple, si vous recommandez 10 éléments à un utilisateur et que l'utilisateur interagit avec 3 d'entre eux, la précision à K est de 3 éléments correctement prédits divisés par le total des 10 éléments recommandés :3 / 10 = .30.

Cette métrique récompense les recommandations précises d'articles pertinents. Plus le score est proche de 1, plus le modèle est précis.

récompenses_moyenne_at_k

Lorsque vous créez une version de solution (entraînez un modèle) pour une solution avec un objectif d'optimisation, Amazon Personalize génère une average_rewards_at_k métrique. Le score de vous average_rewards_at_k indique dans quelle mesure la version de la solution atteint votre objectif. Pour calculer cet indicateur, Amazon Personalize calcule les récompenses pour chaque utilisateur comme suit :

rewards_per_user = total rewards from the user's interactions with their top 25 reward generating recommendations / total rewards from the user's interactions with recommendations

La finale average_rewards_at_k est la moyenne de toutes les valeurs rewards_per_user normalisées pour être une valeur décimale inférieure ou égale à 1 et supérieure à 0. Plus la valeur est proche de 1, plus vous pouvez vous attendre à des gains en moyenne par utilisateur grâce aux recommandations.

Par exemple, si votre objectif est de maximiser les revenus générés par les clics, Amazon Personalize calcule le score de chaque utilisateur en divisant le chiffre d'affaires total généré par les articles sur lesquels l'utilisateur a cliqué dans ses 25 recommandations les plus chères par le chiffre d'affaires provenant de tous les articles recommandés sur lesquels l'utilisateur a cliqué. Amazon Personalize renvoie ensuite une moyenne normalisée de tous les scores des utilisateurs. Plus cette valeur average_rewards_at_k est proche de 1, plus vous pouvez vous attendre à gagner de revenus en moyenne par utilisateur grâce aux recommandations.

Pour de plus amples informations, veuillez consulter Optimisation d'une solution pour un objectif supplémentaire.

précision de la prévision des tendances

Si vous avez formé la version de la solution à l'aide de la Tendances du moment recette, taux d'augmentation de la popularité des articles recommandés par le modèle. Plus la précision de la prévision des tendances est élevée (plus elle est proche de 1), plus le modèle identifie correctement les éléments de tendance.

Pour calculer l'accélération de la popularité, Amazon Personalize divise le taux d'augmentation de la popularité de tous les articles recommandés par l'augmentation de popularité totale des 25 articles les plus populaires. Ces éléments proviennent des interactions réelles du kit de test.

En fonction de la distribution de vos données et de la fréquence de découverte des tendances que vous choisissez, la valeur de la précision des prévisions des tendances peut être de 0,0.

hit (frappe à K)

Si vous avez entraîné la version de la solution à l'aide d'une recette USER_SEGMENTATION, le nombre moyen d'utilisateurs figurant dans les K les plus pertinents prévus correspond aux utilisateurs réels. Les utilisateurs réels sont les utilisateurs qui ont réellement interagi avec les éléments du set de test. K est le 1 % des utilisateurs les plus pertinents. Plus la valeur est élevée, plus les prévisions sont précises.

rappel (rappel à K)

Si vous avez entraîné la version de la solution à l'aide d'une recette USER_SEGMENTATION, le pourcentage moyen d'utilisateurs prévus dans les K les plus pertinents prévus correspond aux utilisateurs réels. Les utilisateurs réels sont les utilisateurs qui ont réellement interagi avec les éléments du set de test. K est le 1 % des utilisateurs les plus pertinents. Plus la valeur est élevée, plus les prévisions sont précises.

Exemple

Voici un exemple simple d'une version de solution qui produit une liste de recommandations pour un utilisateur spécifique. Les deuxième et cinquième recommandations correspondent aux enregistrements des données de test pour cet utilisateur. Voici les recommandations pertinentes. Si K est défini sur 5, les métriques suivantes sont générées pour l'utilisateur.

reciprocal_rank

Calcul : 1/2

Résultat : 0,5000

normalized_discounted_cumulative_gain_at_5

Calcul : (1/log(1 + 2) + 1/log(1 + 5)) / (1/log(1 + 1) + 1/log(1 + 2))

Résultat : 0,6241

precision_at_5

Calcul : 2/5

Résultat : 0,4000

Ressources supplémentaires

Pour plus d'informations sur l'évaluation d'une version de solution à l'aide de tests A/B, consultez Utilisation des tests A/B pour mesurer l'efficacité des recommandations générées par Amazon Personalize. Pour en savoir plus sur les différents types de métriques pour les systèmes de recommandation, consultez les ressources externes suivantes :