Breve introducción a la recomendación de productos. Un recomendador sencillo: Slope One. Evaluacion de recomendadores: métricas offline (RMSE, Precision & Recall, F-measure, Precision@K, NDCG, MAP, etc) vs métricas online. Propiedades deseables de un recomendador (novelty, serendipity, diversity, coverage, etc).
27. Métricas online
• Click-through rate (CTR)
• Conversion rate (CR)
• Corto y largo plazo (Lifetime value o LTV)
• A/B testing vs Multi armed bandits
29. Métricas offline
• Probar en producción tiene un costo
• Lleva tiempo alcanzar significancia estadística
30. Métricas offline
• Probar en producción tiene un costo
• Lleva tiempo alcanzar significancia estadística
• Permiten selección preliminar de
hiperparámetros y modelos
31. Train & test set
• Como separar los datos para train y test de los
modelos?
32. Train & test set
• Como separar los datos para train y test de los
modelos?
• No separar por usuarios completos…
33. Train & test set
• Como separar los datos para train y test de los
modelos?
• No separar por usuarios completos…
• Separar por interacciones de usuarios con
productos!
42. Root squared mean error
(RSME)
3. Calcular el RSME entre los N ratings que
guardamos para validación y los ratings que el
modelo predijo para esas posiciones
RMSE =
∑𝑖=1
𝑁
(𝑦
̂
𝑖 − 𝑦𝑖)2
𝑁
44. Root squared mean error
(RSME)
• Métricas similares: Mean Absolute Error (MAE),
Mean Squared Error (MSE)
45. Root squared mean error
(RSME)
• Métricas similares: Mean Absolute Error (MAE),
Mean Squared Error (MSE)
• Muy popular en la literatura de machine learning
para regresiones o clasificadores, pero…
46. Relevancia
• En general no nos interesa tanto predecir el
rating exacto de un usuario hacia un producto…
47. Relevancia
• En general no nos interesa tanto predecir el
rating exacto de un usuario hacia un producto…
• Nos interesa si un producto es relevante o no
para el usuario!
48. Reformulando el problema
• Pensemos en la recomendación como elegir un
conjunto de productos para el usuario
49. Reformulando el problema
• Pensemos en la recomendación como elegir un
conjunto de productos para el usuario
• Idealmente, queremos que todos los productos
en el conjunto sean relevantes para el usuario
50. Reformulando el problema
• Pensemos en la recomendación como elegir un
conjunto de productos para el usuario
• Idealmente, queremos que todos los productos
en el conjunto sean relevantes para el usuario
• Pensandolo como conjuntos…
61. Precision vs Recall
𝐹𝑚𝑒𝑎𝑠𝑢𝑟𝑒 =
2
1
recall
+
1
precision
= 2 ⋅
precision ⋅ rec
precision + re
• Se suele usar el promedio (armónico) entre
precision y recall como balance entre ambas
64. • Las recomendaciones se pueden mostrar en
distintos contextos (home, checkout, thank you
page, etc)
• Cada contexto tiene un propósito distinto
(inspirational, cross-selling, etc)
Contexto
65. • Las recomendaciones se pueden mostrar en
distintos contextos (home, checkout, thank you
page, etc)
• Cada contexto tiene un propósito distinto
(inspirational, cross-selling, etc)
• Y también una presentación distinta (carrousel
con K recomendaciones vs. scroll infinito)
Contexto
66. Precision at K
• Vimos que en algunos contextos siempre se
recomiendan exactamente K productos
67. Precision at K
• Vimos que en algunos contextos siempre se
recomiendan exactamente K productos
• Tienen sentido precision y recall que tienen en
cuenta todo el conjunto de recomendaciones?
68. Precision at K
• Vimos que en algunos contextos siempre se
recomiendan exactamente K productos
• Tienen sentido precision y recall que tienen en
cuenta todo el conjunto de recomendaciones?
• Precision at K (o Precision@K) es la precision
limitándose a los primeros K productos
recomendados
69. Orden
• En general nos importa el orden en que el
usuario ve las recomendaciones
70. Orden
• En general nos importa el orden en que el
usuario ve las recomendaciones
• Tienen sentido las métricas anteriores para
conjuntos para evaluar sistemas de
recomendación que devuelven listas?
Si les parece al principio damos la charla y al final hacemos las preguntas
Primero introducción a los sistemas de recomendación
Un ejemplo de un recomendador sencillo
Despues la parte de la evaluación
Sistema que, dado un usuario, le recomienda productos relevantes para el, es decir, productos en los que podría estar potencialmente interesado
El impacto de las recomendaciones es grande y de ahi el interés por estas tecnologías. Para ponerlo en numeros, el 35% de las ventas de Amazon surge a través de recomendaciones y en Netflix 2 de cada 3 películas que se vieron fueron recomendadas.
En los sistemas de recomendación hay dos grandes familias
Recomienda productos similares a los que ya te gustaron
1) Recomienda productos que le gustaron a usuarios similares
2) En general no se desempeña tan bien como content based filtering, pero content based filtering necesita metadata de los productos y este no
3) Los mejores algoritmos en general son híbridos
Como sabiamos en la slide anterior de que al chico le gustaba Spiderman o Batman?
Necesitamos feedback para saber si a un usuario le gusto o no un producto
El modelo subyacente a estos sistemas de recomendación es la matriz de utilidad
1) Es una matriz donde las columnas son los productos y las filas son los usuarios
2) Para cada par usuario producto hay un rating. No están todos.
3) Mas usuarios que productos y son mucho mas esparsas
4) El objetivo de los sistemas de recomendación es inferir los ? a partir de los ratings conocidos, o sea, completar la matriz
Pero es una muy buena linea de base para empezar
Pero es una muy buena linea de base para empezar
Pero es una muy buena linea de base para empezar
Queremos saber que rating tendría que tener el chico para Batman
Slope one es un algoritmo de recomendación que se basa en las diferencias entre ratings
El chico le puso 3 a Spiderman y la diferencia promedio es +0.5 así que el puntaje final es 3.5
Ahora queremos saber el rating de la chica hacia Harry Potter.Aca hay un caso mas complejo porque vamos a tener que ver las diferencias entre Batman y Harry Potter
Y las diferencias entre Spiderman y Harry Potter
Empecemos por las diferencias entre Batman y Harry Potter
Para cuantificar que tan bien se desempeña un recomendador necesitamos métricas
Las metricas online las podemos probar directamente en producción, con los usuarios reales
AB testing es ponerle al 50% del trafico la opción A y al otro 50 la opción B
Dejamos pasar un tiempo hasta juntar datos suficientes para alcanzar lo que se llama significancia estadística
Que es la significancia estadistica? Afirmar ponele con 95% de certeza que la opción A es mejor que la B o al revésDetrás de eso hay un test de hipótesis, un intervalo de confianza, un p-valor, etc. Estadística clasica.
AB testing es ponerle al 50% del trafico la opción A y al otro 50 la opción B
Dejamos pasar un tiempo hasta juntar datos suficientes para alcanzar lo que se llama significancia estadística
Que es la significancia estadistica? Afirmar ponele con 95% de certeza que la opción A es mejor que la B o al revésDetrás de eso hay un test de hipótesis, un intervalo de confianza, un p-valor, etc. Estadística clasica.
Obviamente cuanto mas trafico tiene tu sitio, menos tiempo te lleva
Pero por mas trafico que tengas nunca vas a poder achicar el tiempo hasta hacerlo despreciable
Y ademas obviamente nos sirven como “test”, saber que no rompimos nada
Se suele hacer un cross validation, esto mas que nada es para ver como en cada etapa o fold del cross validation separar en train y test
Y ahi vamos a necesitar métricas que nos digan que tan cerca o que tan lejos estamos de incluir productos relevantes en nuestras recomendaciones.
Entonces como dije recién hay métricas que nos permiten saber que tan bien o mal estamos haciendo las cosas según estos diagramas de Venn
F measure es un promedio armónico (pero promedio al fin) entre precision y recall.
Es una métrica que se usa para encontrar un balance entre ambas.