Evaluación de una versión de la solución Amazon Personalize con métricas - 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 una versión de la solución Amazon Personalize con métricas

Puede evaluar el rendimiento de su versión de evaluación 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 sin conexión son las métricas que Amazon Personalize genera cuando entrena una versión de la solución. Con las métricas fuera de línea, puede evaluar el rendimiento del modelo. Puede ver los efectos de modificar los hiperparámetros de una solución y comparar los resultados de modelos entrenados con diferentes recetas sobre los mismos datos del mismo grupo de conjuntos de datos.

Evite comparar métricas de diferentes versiones de la solución entrenadas 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, la versión de la solución basada en la visualización de los datos de los eventos podría parecer que funciona mejor de forma incorrecta 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, un conjunto de prueba y, para PERSONALIZED_ACTIONS, un conjunto de validación. La división depende del tipo de receta que elija:

  • En el caso de las recetas USER_SEGMENTATION, el conjunto de entrenamiento se compone del 80 % de los datos de interacciones de cada usuario y el conjunto de pruebas, del 20 % de los datos de interacciones de cada usuario.

  • Para los demás tipos de recetas, 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 la versión de la solución con el conjunto de entrenamiento. Una vez finalizado el entrenamiento, Amazon Personalize proporciona a la nueva versión de la solución 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 la versión de la solución con las interacciones reales del 10 % más reciente de los datos de cada usuario del conjunto de pruebas.

Para generar una referencia con fines de comparación, le recomendamos usar la receta Popularity-Count, que recomienda los K elementos más populares.

Recuperación de métricas de la versión de la solución

Después de crear una versión de la solución, puede utilizar las métricas para evaluar su rendimiento. Puede recuperar las métricas de una versión de la solución con la consola Amazon Personalize, AWS Command Line Interface (AWS CLI) y AWS los SDK.

Recuperación de métricas de la versión de la solución (consola)

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

  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 personalizados.

  3. En el panel de navegación, seleccione Recursos personalizados y elija Soluciones y recetas.

  4. Elija su solución.

  5. En Versiones de la solución, elija la versión de su solución para ver su página de detalles. Las métricas se muestran en la pestaña de Métricas de la versión de la solución, en el panel inferior. Para ver las definiciones de las métricas, consulte Definiciones de métricas.

    Ahora que ha evaluado su versión de la solución, puede crear una campaña implementando la versión de la solución con las mejores métricas par su caso de uso. Para obtener más información acerca cómo implementar una solución, consulte Implementación de una versión de la solución Amazon Personalize con una campaña.

Recuperación de las métricas de la versión de la solución (AWS CLI)

Las métricas de una versión de solución específica se recuperan llamando a la operación GetSolutionMetrics. En el siguiente código se muestra cómo recuperar las métricas con la AWS CLI.

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

A continuación se muestra un ejemplo de la salida de una versión de la solución creada mediante la receta User-Personalization con un objetivo de optimización adicional.

{ "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 } }

Para obtener una explicación de cada métrica, consulte Definiciones de métricas. Ahora que ha evaluado su versión de la solución, puede crear una campaña implementando la versión de la solución con las mejores métricas par su caso de uso. Para obtener más información acerca cómo implementar una solución, consulte Implementación de una versión de la solución Amazon Personalize con una campaña.

Recuperando las métricas de las versiones de la solución (SDK)AWS

Las métricas de una versión de solución específica se recuperan llamando a la operación GetSolutionMetrics. Utilice el siguiente código para recuperar las métricas.

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); } }

A continuación se muestra un ejemplo de la salida de una versión de la solución creada mediante la receta User-Personalization con un objetivo de optimización adicional.

{ "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 } }

Para obtener una explicación de cada métrica, consulte Definiciones de métricas. Ahora que ha evaluado su versión de la solución, puede crear una campaña implementando la versión de la solución con las mejores métricas par su caso de uso. Para obtener más información acerca cómo implementar una solución, consulte Implementación de una versión de la solución Amazon Personalize con una campaña.

Definiciones de métricas

Las métricas que Amazon Personalize genera para las versiones de soluciones 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 cobertura indica la proporción de artículos únicos (para recomendaciones de artículos), acciones (para recomendaciones de acciones) o usuarios (para recomendaciones de segmentos de usuarios) que Amazon Personalize podría recomendar del número total de registros únicos de sus conjuntos de datos.

Una puntuación de cobertura más elevada significa que Amazon Personalize recomienda más elementos de su catálogo, en lugar de los mismos registros de forma repetida. Las recetas que incluyen la exploración de elementos, como User-Personalization, tienen una mayor cobertura que las que no lo hacen, como Similar-Items.

rango recíproco medio en 25

Esta métrica indica la capacidad de un modelo para generar recomendaciones relevantes de elementos 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 de elementos para un usuario y no espera que este 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 no genera esta métrica para las recetas PERSONALIZED_ACTIONS ni USER_SEGMENTATION.

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 (NCDG) en K (5/10/25)

Esta métrica le indica lo bien que su modelo clasifica las recomendaciones de elementos o acciones, 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, aparte del elemento o la acción mejor clasificados (para ello, consultemean 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 NDCG at K de todos los usuarios del conjunto de pruebas. Esto NDCG at K supone que las recomendaciones que se encuentran en la parte inferior de la lista son menos relevantes que las recomendaciones que figuran en la parte superior de 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.

precisión

Si entrena una versión de solución con la receta Next-Best-Action, Amazon Personalize genera una métrica precision en lugar de precision at K. Esta métrica le indica cómo de bueno es su modelo para predecir las acciones que los usuarios realizarán realmente.

Para calcular precision, para cada acción del conjunto de datos, Amazon Personalize divide el número de usuarios que se predijo correctamente que realizaría la acción por el número total de veces que se recomendó la acción. A continuación, Amazon Personalize calcula el promedio de todas las acciones en el conjunto de datos.

Por ejemplo, si se recomendó una acción a 100 usuarios, de los cuales 60 la realizaron y 40 no, el valor precision de la acción es 60 / 100 = .60. A continuación, Amazon Personalize aplica este cálculo a todas las acciones y devuelve el promedio.

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

media_recompensas_en_k

Cuando crea una versión de solución (entrena un modelo) para una solución con un objetivo de optimización, Amazon Personalize genera una métrica average_rewards_at_k. La puntuación de average_rewards_at_k indica el rendimiento de la versión de la solución en cuanto al logro de su objetivo. Para calcular esta métrica, Amazon Personalize calcula las recompensas para cada usuario de la siguiente manera:

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

El average_rewards_at_k final es el promedio de todos los valores rewards_per_user normalizados para que sea un valor decimal menor o igual a 1 y mayor que 0. Cuanto más se acerque el valor a 1, más beneficios de media por usuario se pueden esperar de las recomendaciones.

Por ejemplo, si su objetivo es maximizar los ingresos de los clics, Amazon Personalize calcula la puntuación de cada usuario dividiendo los ingresos totales generados por los elementos en los que el usuario hizo clic de sus 25 recomendaciones más caras entre los ingresos de todos los elementos recomendados en los que hizo clic el usuario. Amazon Personalize devuelve entonces un promedio normalizado de todas las puntuaciones de los usuarios. Cuanto más cerca esté average_rewards_at_k de 1, más ingresos en promedio se pueden esperar por usuario a partir de las recomendaciones.

Para obtener más información, consulte Optimización de una solución para un objetivo adicional.

precisión de predicción de tendencias

Si entrenó la versión de la solución con la receta Trending-Now, la tasa de aumento de la popularidad de los elementos recomendados por el modelo. Cuanto mayor sea la precisión de la predicción de las tendencias (cuanto más cerca de 1), mejor será el modelo para identificar correctamente los elementos populares.

Para calcular la aceleración de la popularidad, Amazon Personalize divide la tasa de aumento de la popularidad de todos los elementos recomendados entre el aumento total de popularidad de los 25 elementos más populares. Estos elementos provienen de las interacciones reales en el conjunto de pruebas.

En función de la distribución de los datos y de la frecuencia de detección de tendencias que elija, el valor de la precisión de la predicción de tendencias puede ser 0,0.

acierto (acierto en K)

Si entrenó la versión de la solución con una receta USER_SEGMENTATION, el número medio de usuarios entre los K más relevantes previstos que coinciden con los usuarios reales. Los usuarios reales son los usuarios que realmente interactuaron con los elementos del conjunto de prueba. K corresponde al 1 % superior de los usuarios más relevantes. Cuanto mayor sea el valor, más precisas serán las predicciones.

recuperación (recuperación en K)

Si entrenó la versión de la solución con una receta USER_SEGMENTATION, el porcentaje medio de usuarios previstos entre los K más relevantes previstos que coinciden con los usuarios reales. Los usuarios reales son los usuarios que realmente interactuaron con los elementos del conjunto de prueba. K corresponde al 1 % superior de los usuarios más relevantes. Cuanto mayor sea el valor, más precisas serán las predicciones.

exhaustividad

Si entrena una versión de la solución con la receta Next-Best-Action, esta métrica le indica cómo de buena es la versión de la solución a la hora de detectar acciones con las que los usuarios interactuarán.

Para calcular recall, para cada acción del conjunto de datos, Amazon Personalize divide el número de usuarios que se predijo correctamente que realizaría la acción por el número total de usuarios que realmente ha realizado la acción en el conjunto de prueba. A continuación, Amazon Personalize calcula el promedio de todas las acciones en el conjunto de datos.

Por ejemplo, si 100 usuarios realizan una acción en el conjunto de prueba y Amazon Personalize predijo que 50 de estos usuarios la realizarían, el valor recall de la acción es 50 / 100 = .50. A continuación, Amazon Personalize aplica este cálculo a todas las acciones y devuelve el promedio.

Área bajo la curva (AUC)

Si ha entrenado la versión de la solución con una receta PERSONALIZED_ACTIONS, esta es el área situada bajo la curva de característica operativa del receptor para la versión de la solución. Esta métrica indica lo bien o no que funciona la versión de la solución a la hora de identificar correctamente las acciones que realizarán los usuarios.

La curva de característica operativa del receptor traza el rendimiento de la versión de la solución. Representa gráficamente las tasas de positivos reales (acciones que se predijeron correctamente como relevantes) y de falsos positivos (acciones que se predijeron incorrectamente como relevantes) en distintos valores de umbral. El área bajo la curva (AUC) es una puntuación que resume el rendimiento de la versión de la solución en función de su curva.

El valor de AUC de una versión de solución puede estar entre 0 y 1. Cuanto más se acerque a 1, mejor será el modelo a la hora de predecir las acciones relevantes para los usuarios.

Ejemplo

A continuación, se muestra un ejemplo sencillo para una versión de solución que produce una lista de 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 obtener información sobre la evaluación de una versión de solución con pruebas A/B, Uso de las pruebas A/B para medir la eficacia de las recomendaciones generadas por Amazon Personalize. Para profundizar en los diferentes tipos de métricas para los sistemas de recomendaciones, consulte los siguientes recursos externos: