Evaluación de un recomendador de dominios de Amazon Personalize - Amazon Personalize

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Evaluación de un recomendador de dominios de Amazon Personalize

Puede evaluar el rendimiento de su generador de recomendaciones mediante métricas en línea y sin conexión. Las métricas en línea son los resultados empíricos que observa en las interacciones de sus usuarios con las recomendaciones en tiempo real. Por ejemplo, puede registrar la tasa de clics de sus usuarios mientras navegan por su catálogo. Usted es responsable de generar y registrar cualquier métrica en línea.

Las métricas offline son las que Amazon Personalize genera al crear un recomendador. Con las métricas offline, puede evaluar el rendimiento de los modelos que respaldan su recomendación. Puedes ver los efectos de modificar la configuración de un recomendante y comparar los resultados de los recomendantes entrenados para distintos casos de uso con los mismos datos y en el mismo grupo de conjuntos de datos.

Evita comparar las métricas de distintos recomendantes entrenados con datos diferentes. La diferencia en las métricas puede deberse a la diferencia en los datos y no en el rendimiento del modelo. Por ejemplo, puede tener un grupo de conjuntos de datos con datos de purchase eventos dispersos para cada usuario y otro con datos de view eventos sólidos. En función de métricas comoprecision at K, por ejemplo, el recomendante entrenado para ver los datos de los eventos podría dar la impresión de que su rendimiento es mejor debido al mayor número de interacciones.

Para obtener las métricas de rendimiento, Amazon Personalize divide los datos de las interacciones de entrada en un conjunto de entrenamiento y un conjunto de pruebas. El conjunto de entrenamiento consta del 90 % de los datos de sus usuarios y sus interacciones. El conjunto de pruebas está formado por el 10 % restante de los usuarios y sus datos de interacciones.

A continuación, Amazon Personalize crea el generador de recomendaciones con el conjunto de entrenamiento. Una vez finalizado el entrenamiento, Amazon Personalize proporciona al nuevo generador de recomendaciones el 90 % más antiguo de los datos de cada usuario del conjunto de pruebas como entrada. A continuación, Amazon Personalize calcula las métricas comparando las recomendaciones que genera el generador de recomendaciones con las interacciones reales del 10 % más reciente de los datos de cada usuario del conjunto de pruebas.

Recuperación de métricas

Una vez que su generador de recomendaciones esté activo, podrá ver las métricas del generador de recomendaciones en la consola de Amazon Personalize o recuperar las métricas llamando a la operación DescribeRecommender.

Visualización de métricas (consola)

Para ver las métricas de los generadores de recomendaciones en la consola, vaya a la página de detalles de su generador de recomendaciones.

  1. Abra la consola de Amazon Personalize en https://console.aws.amazon.com/personalize/home e inicie sesión en su cuenta.

  2. En la página Grupos de conjuntos de datos, elija su grupo de conjuntos de datos de dominio.

  3. En el panel de navegación, elija Recomendadores.

  4. En la lista de generadores de recomendaciones elija uno para ver sus métricas.

Recuperación de métricas (AWS CLI)

En el siguiente código se muestra cómo obtener las métricas para un generador de recomendaciones con la CLI AWS CLI.

aws personalize describe-recommender \ --recommender-arn recommender arn

A continuación se muestra un ejemplo del resultado de las métricas de un generador de recomendaciones creado para el caso práctico Mejores opciones del dominio de VIDEO_ON_DEMAND.

{ "recommender": { "recommenderArn": "arn:aws:personalize:region:acct-id:recommender/recommenderName", "datasetGroupArn": "arn:aws:personalize:region:acct-id:dataset-group/dsGroupName", "name": "name123", "recipeArn": "arn:aws:personalize:::recipe/aws-vod-top-picks", "modelMetrics": { "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, } "recommenderConfig": {}, "creationDateTime": "2022-05-06T10:11:24.589000-07:00", "lastUpdatedDateTime": "2022-05-06T10:34:33.270000-07:00", "status": "ACTIVE", } }

Recuperando métricas (SDK)AWS

En el siguiente código se muestra cómo obtener las métricas para un generador de recomendaciones con el SDK para Python (Boto3).

import boto3 personalize = boto3.client('personalize') response = personalize.describe_recommender( recommenderArn = 'recommender_arn' ) print(response['recommender']['modelMetrics'])

A continuación se muestra un ejemplo del resultado de las métricas de un generador de recomendaciones creado para el caso práctico Mejores opciones del dominio de VIDEO_ON_DEMAND.

{ "recommender": { "recommenderArn": "arn:aws:personalize:region:acct-id:recommender/recommenderName", "datasetGroupArn": "arn:aws:personalize:region:acct-id:dataset-group/dsGroupName", "name": "name123", "recipeArn": "arn:aws:personalize:::recipe/aws-vod-top-picks", "modelMetrics": { "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, } "recommenderConfig": {}, "creationDateTime": "2022-05-06T10:11:24.589000-07:00", "lastUpdatedDateTime": "2022-05-06T10:34:33.270000-07:00", "status": "ACTIVE", } }

Definiciones de métricas

Las métricas que Amazon Personalize genera para los generadores de recomendaciones se describen a continuación con los siguientes términos:

  • La recomendación relevante es una recomendación para un elemento con el que el usuario ha interactuado realmente. Estos elementos provienen del 10 % más reciente de los datos de interacciones de cada usuario del conjunto de pruebas.

  • Laclasificación hace referencia a la posición de un elemento recomendado en la lista de recomendaciones. Se supone que la posición 1 (al principio de la lista) es la más importante para el usuario.

Para cada métrica, los números más altos (cercanos a 1) son mejores. Para profundizar aún más, consulte los recursos que se enumeran en Recursos adicionales de .

coverage

El valor de la cobertura indica la proporción de elementos únicos que Amazon Personalize podría recomendar del número total de elementos únicos en los conjuntos de datos de interacciones y elementos. Una puntuación de cobertura más elevada significa que Amazon Personalize recomienda más elementos tuyos, en lugar de los mismos elementos una y otra vez para distintos usuarios. Los casos de uso en los que se incluye la exploración de elementos, como Mejores opciones (VIDEO_ON_DEMAND) y Recomendaciones (ECOMMERCE), tienen una mayor cobertura que los que no lo hacen.

rango recíproco medio en 25

Esta métrica indica la capacidad de un modelo para generar una recomendación relevante en la posición mejor clasificada. Puede elegir un modelo con un rango recíproco medio alto de 25 si está generando resultados de búsqueda relevantes para un usuario y no espera que el usuario elija un elemento que se encuentre más abajo en la lista. Por ejemplo, los usuarios suelen elegir la primera receta de cocina en los resultados de búsqueda.

Amazon Personalize calcula esta métrica utilizando la puntuación de rango recíproco medio de las solicitudes de recomendaciones. Cada puntuación de rango recíproco se calcula de la siguiente manera: 1 / the rank of the highest item interacted with by the user, donde el total de clasificaciones posibles es 25. Se ignoran otros elementos de menor rango con los que interactúa el usuario. Si el usuario eligió el primer elemento, la puntuación es 1. Si no elige ningún elemento, la puntuación es 0.

Por ejemplo, puede mostrar a tres usuarios diferentes 25 recomendaciones para cada uno:

  • Si el usuario 1 hace clic en el elemento del rango 4 y en el elemento del rango 10, su puntuación de rango recíproco es de 1/4.

  • Si el usuario 2 hace clic en un elemento del rango 2, en un elemento del rango 4 y en un elemento del rango 12, su puntuación de rango recíproco es de 1/2.

  • Si el usuario 3 hace clic en un solo elemento del rango 6, su puntuación de rango recíproco es de 1/6.

El rango recíproco medio de todas las solicitudes de recomendaciones (en este caso, 3) se calcula de la siguiente manera: (1/4 + 1/2 + 1/6) / 3 = .3056.

ganancia acumulada descontada normalizada (NDCG) en K (5, 10 o 25)

Esta métrica le indica lo bien que su modelo clasifica las recomendaciones, donde K es un tamaño de muestra de 5, 10 o 25 recomendaciones. Esta métrica es útil si lo que más le interesa es clasificar las recomendaciones más allá del elemento mejor clasificado (para ello, consulte mean reciprocal rank at 25). Por ejemplo, la puntuación de NDCG at 10 sería útil si tiene una aplicación que muestra hasta 10 películas en un carrusel a la vez.

Amazon Personalize calcula la NDCG asignando ponderación a las recomendaciones en función de su posición en la clasificación de cada usuario del conjunto de pruebas. Se descuenta cada recomendación (se le asigna una ponderación inferior) por un factor según su posición. La métrica final es la media de todos los usuarios en el conjunto de pruebas. La ganancia acumulada descontada normalizada en K supone que las recomendaciones que se encuentran más abajo en una lista son menos relevantes que las recomendaciones que están más arriba en la lista.

Amazon Personalize utiliza un factor de ponderación de 1/log(1 + position), donde el principio de la lista es la posición 1.

precisión en K

Esta métrica indica la relevancia de las recomendaciones de su modelo, en función de un tamaño de muestra de K (de 5, 10 o 25) recomendaciones.

Amazon Personalize calcula esta métrica en función del número de recomendaciones relevantes de las K recomendaciones principales para cada usuario de las pruebas, dividido por K, donde K es 5, 10 o 25. La métrica final es la media de todos los usuarios en el conjunto de pruebas.

Por ejemplo, si recomiendas 10 elementos a un usuario y el usuario interactúa con 3 de ellos, la precisión en K es de 3 elementos predichos correctamente divididos por el total de 10 elementos recomendados: 3 / 10 = .30.

Esta métrica recompensa la recomendación precisa de los elementos relevantes. Cuanto más cerca esté la puntuación a uno, más preciso será el modelo.

Ejemplo

El siguiente es un ejemplo sencillo de un generador de recomendaciones que produce una lista de las recomendaciones para un usuario específico. La segunda y la quinta recomendación coinciden con los registros de los datos de prueba de este usuario. Estas son las recomendaciones pertinentes. Si K se establece en 5, se generan las siguientes métricas para el usuario.

reciprocal_rank

Cálculo: 1/2

Resultado: 0,5000

normalized_discounted_cumulative_gain_at_5

Cálculo: (1/log(1 + 2) + 1/log(1 + 5)) / (1/log(1 + 1) + 1/log(1 + 2))

Resultado: 0,6241

precision_at_5

Cálculo: 2/5

Resultado: 0,4000

Recursos adicionales de

Para profundizar en los diferentes tipos de métricas para los sistemas de recomendaciones, consulte los siguientes recursos externos: