W3: Performance of recommender algorithms on top-n recommendation tasks
Esta es mi critica a Performance of recommender algorithms on top-n recommendation tasks de Cremonesi, P., Koren, Y., & Turrin, R.
¿De qué se trata el paper?
El objetivo del paper es posicionar algoritmos de recomendación que prioricen métricas de accuracy por sobre métricas de error. Para esto, se muestran experimentos con varios algoritmos y sus resultados (respecto de métricas de accuracy) a la luz de los datasets MovieLens y Netflix.
Críticas y comentarios
El esquema del paper lo hace bastante amigable de leer, contiene una breve pero completa explicación de las diversas técnicas (del estado del arte) del tema. Además presenta las principales problemáticas del desempeño de los algoritmos actuales.
El primer reparo que tengo respecto de este trabajo, es respecto a la metodología de testeo, en particular, al sampling que realizan de los items. Básicamente están tomando dos decisiones, que a mi parecer, son cuestionables:
- Solo incluir en los items de testeo a items con calificación de 5 estrellas: los autores de este trabajo intentan forzar el hecho de que los resultados que obtengan sean relevantes. Para esto, deciden tomar como parámetro los items a los cuales el usuario le entrega 5 estrellas. Creo que es un buen comienzo, pero me parece demasiado simple. Tal como ellos mencionan una secciones más adelantes, la distribución de calificación para distintos usuarios es distinta, de modo que creo que se podría haber hecho algo más personalizado (p.ej: poner en el set de testeo el top x% de los ratings de cada persona).
- Hacer sampleo negativo unicamente de manera aleatoria: hacer sampleo negativo de forma aleatoria es una técnica que tiene buenos resultados, pero cuyos supuestos son demasiado fuertes (un item no consumido gusta menos que uno consumido y con buen rating); creo que los autores, al contar con un dataset de feedback explícito, podrían haber hecho un sampleo negativo mixto, entre items que al usuario no le gustan (que tienen rating bajo) e items que el usuario no ha consumido. De esta forma, sus métricas de desempeño podrían también haber incluido el hecho de recomendar un item que realmente desagrada al usuario en las primeras posiciones de recomendación.
Un punto importantísimo que toca el paper, es el hecho de que en general los sistemas recomendadores están sesgados a recomendar (valga la redundancia) los items más populares. Me parece excelente que toquen el tema y que hayan realizado distintos experimentos para medir cómo se portaban los algoritmos al medir su recomendación de items menos mainstream, sin embargo, me queda la duda si realmente es útil hacer esto con datasets de películas. Tengo la impresión de que es poca la gente que disfruta realmente de cine más alternativo/indie y que, en casos de películas, puede ser aceptable el tener ese sesgo a lo más popular.
Otro comentario, fue la decisión del k en las métricas. El seleccionado fue k=20 y las métricas tomaron igual peso para todas aquellas posiciones. Un reparo que tengo frente a esto es el por qué de ese 20 y no un número más pequeño? Por ejemplo: en una pantalla de Netflix, sin presionar flechas para buscar más resultados, solo alcanzan a mostrar aprox. 5–6 películas. Como usuario, si no me interesa ninguna de ellas, nisiquiera me molestaré en ver qué sigue en la lista.
Un aspecto que me gustó bastante del paper fue que intentaron darle interpretabilidad a los factores latentes y a su tamaño, mencionando que su intuición era que a mayor cantidad de factores latentes, mayor era la recuperación de items relevantes que estaban en la cola-larga (items menos populares). Me parece una observación muy interesante.
Para terminar, considero que el paper es bastante completo y que logra de buena manera su objetivo; aunque parece un poco injusta la comparación de algoritmos diseñados para minimizar error vs los diseñados para aumentar accuracy.