El sistema te esta observando

[RecSys] Lecturas Semana 2. Collaborative Filtering for Implicit Feedback Datasets.

Los métodos de feedback implícito se basan en intentar de obtener información de gustos de los usuarios sobre items analizando la interacción que tuvieron. La gracia de los feedback implícitos es que se toma información del usuario sin necesidad de que él haga ratings ni un otro esfuerzo, por lo que en muchos casos el usuario ni se da cuenta de que el sistema esta observándolo para luego hacer recomendaciones. Cada usuario tiene un valor r[u][i] que muestra cuantas veces el usuario u interactúo con el item i. Cuando el usuario no ha interactuado aun con ese item, tendría valor 0 pero eso no significa que al usuario no le guste. El autor fijo una variable de confianza para sumarle un valor fijo a todos los pares usuario-item.

El feedback implícito consta de cuatro características fundamentales que lo diferencial del feedback explícito:

  • No tiene feedback negativo. El feedback explícito le da la opción al usuario de demostrar un rating malo para un item, donde el puede ponerle 0 estrellas de 5. En cambio, en el feedback implícito no podemos si a un usuario no le gusto un item, solo podemos saber aquellos que probablemente le guste. Por ejemplo, si un usuario no ha visto una item todavía, significa que no es de su preferencia?
  • La data viene sucia. El comportamiento de un usuario con un item no necesariamente implica que este sea de su gusto. Un usuario puede haber comprado un item de regalo (no sería de su preferencia) y el sistema podría captar que si lo es.
  • La data obtenida muestra la confianza del usuario no sus preferencias. Puede que el usuario interactúe poco con un item pero que le guste mucho.
  • Contextualizar la data es difícil. Contra que comparamos la data obtenida? Si un usuario ve 20 minutos de dos items (peliculas), ese valor pesa lo mismo?

Este paper me gustó porque encuentro que el desafío de hacer filtrado colaborativo en base a feedback implícito es grande y los autores lograron entrenar un sistema complejo que es capaz de recomendar bien; sus resultados muestran que puede recomendar hasta mejor que otros métodos como el Most Popular.

Es interesante como los usuarios manejaron el problema de la escalabilidad (los vectores de usuario era muy sparse) logrando hacer que el sistema crezca linealmente con el input sin tener pérdidas de información imporante. Además, encuentro que este sistema tiene una característica fundamental; el sistema puede explicar el porqué de sus recomendaciones, algo que no se ve frecuentemente.