¿Tiene sentido medir el recuerdo en los sistemas de recomendación?

8

Supongamos que he creado un sistema de recomendación que (dado, por ejemplo, clasificaciones de películas o cualquiera de los muchos usuarios) producirá una lista de 10 películas recomendadas para que cada usuario las vea. Imagine que también tengo un gran grupo de elementos de películas, junto con un registro de calificaciones de usuarios junto con películas que realmente decidieron ver. Así que quiero usar este conjunto de datos para evaluar mi sistema.

He visto en la literatura que estas tareas de "sugerir algunos elementos buenos" generalmente se evalúan utilizando precisión, memoria y puntajes F1 (por ejemplo, ver [1] ). Supongo que debería interesarme, en particular, en "precisión a las 10". Sin embargo, no estoy muy seguro de cómo se supone que uno debe calcular estas medidas (o si tienen algún sentido) en el escenario que he descrito anteriormente.

Aparentemente, lo preferido es dividir la muestra al azar en una parte de "entrenamiento" y una "prueba". Y luego alimentar los datos de entrenamiento a mi algoritmo para que pueda llegar a una lista de 10 predicciones.

Ahora, la precisión tiene sentido, puedo verificar a partir de las 10 predicciones cuántos de estos se encuentran realmente en las películas que ve el usuario en los datos de prueba.

Sin embargo, para recordar, si el usuario vio muchas películas en los datos de prueba, digamos 50 más o menos; no hay forma de obtener una "buena" puntuación de recuerdo, simplemente porque mi sistema estaba limitado a producir solo 10 películas y obtendría como máximo 1/5 = 0.2 de recuerdo.

Alternativamente, si limito la prueba solo para adivinar las "próximas 10 películas vistas" del usuario (para que exista la posibilidad de obtener una "recuperación perfecta"), la precisión y la recuperación siempre serán exactamente el mismo número (si el número recomendado y el número relevante para el usuario es el mismo, la precisión y el recuerdo también son siempre los mismos).

¿Estoy haciendo algo mal? ¿O estas métricas simplemente no tienen mucho sentido en el escenario considerado?

Juan A. Navarro
fuente

Respuestas:

7

En el caso de un sistema de recomendación "top-N", es útil construir un conjunto de datos de prueba "imparcial" (por ejemplo, agregando mil películas aleatorias no clasificadas / no clasificadas a la lista de películas vistas desde el conjunto de datos de reserva para un usuario determinado) ), y luego puntuar el conjunto de datos de prueba resultante utilizando un modelo. Una vez que se hace para un grupo de usuarios, se puede calcular la curva de "precisión frente a recuperación" y la curva "recordar a N frente a N" (así como las curvas de sensibilidad / especificidad y elevación) que se pueden utilizar para juzgar la calidad de un modelo dado Este documento, Desempeño de algoritmos de recomendación sobre tareas de recomendación Top-N de Cremonesi et al., Tiene más detalles.

Si un modelo dado incluye dinámica de tiempo, entonces la división entre entrenamiento y prueba debe hacerse a lo largo de la dimensión de tiempo (no completamente al azar)

Yevgeny
fuente
enlace roto es
ldmtwo
0

La mayoría de las veces, recordar no produce un resultado que pueda evaluarse en términos absolutos. Debe usar el valor de recuperación para evaluar un algoritmo con respecto a otro.

Si un algoritmo A tiene un valor de recuperación de 0.2 (como en su ejemplo) es difícil interpretar qué significa este valor. Sin embargo, si otro algoritmo B tiene un valor de recuperación de 0.15 (dada la misma configuración experimental), entonces puede concluir que el algoritmo A tiene un mejor rendimiento que el algoritmo B con respecto a la recuperación.

El error absoluto medio (MAE) no es así, se puede interpretar solo.

Sanyo Mn
fuente