Los sistemas recomendadores utilizan distintos tipos de input para lograr sus objetivos de mejorar la experiencia del usuario. La forma mas conveniente para el analisis de esta informacion es el feedback explicito, por lo que la mayoria de la literatura existente esta concentrada en procesar este tipo de informacion. Sin embargo, muchas veces este no esta disponible pero podemos intentar inferir las preferencias del usuario usando el mas abundante feedback implicito (ejs, historial de compras/busquedas, patrones de busqueda, movimientos del mouse). La traduccion de algoritmos pensados para que modelos feedback explicito funcionen con datos de tipo implicito puede no ser directa por varias caracteristicas:
Tradicionalmente se han usado modelos de vecindad (heighborhood models) para filtrado colaborativo (generalmente mejores que los content based) pero este tipo de modelos tienen una desventaja, no permiten distinguir entre preferencia y confianza (del sistema en la preferencia). Los autores toman esto en consideracion y eligen usar modelos de factores latentes (descubren caracteristicas latentes que explican los datos) en particular, SVD. Este descompone la matriz de interacciones usario-item para obtener representaciones de los usuario e items en un espacio conjunto que pueda ser utilizado para predecir si el usuario u
interactura o no con el item i
(binario, no cuantas veces).
Por el ruido que probablemente contengan las observaciones obtenidas con feedback implicito (clicks accidentales, etc) convendría considerar de distinto modo aquellos items en los que tenemos mayor confianza. Esto lo logran los autores penalizando en mayor medida en la funcion de perdida por errores en la prediccion de aquellos items para los que se tiene mayor confianza c_ui
. Luego, para evitar overfitting utilizan terminos regularizadores forzando a que las matrices de embedding (tanto para usuarios como items) se complejizen demasiado. Por ultimo, se propone como alternatica a SGD el uso de alternating least squares como tecnica de optimizacion, para lograr que el tiempo de entrenamiento escale linealmente con el tamaño de la libreria. Efecto secundario de esto es que pueda reescribirse el modelo como uno lineal que predice la preferencia por el item i
como suma de las confianzas de acciones pasadas (i'
) ponderadas por la similaridad entre los items i
e i'
. Lo anteior nos permite explicar la preferencia por el item i
considerando los elementos que son similares a este para el usuario u
.
Usaron datos recolectados de cajas de television que contenian 32 millones de pares usuario-item (cuantas veces cada usuario vio cada item). Luego escalaron logaritmicamente los valores para calcular las confianzas y midieron el rendimiento del modelo usando un set de test recolectado similarmente. Como metrica para el rendimiento usan rank
que considera la diferencia entre el valor observado para un par usuario-item vs. la importancia otorgada al par por el modelo.
Se comparan 3 modelos: most-popular, neighborhood based y el propio con distintas dimensionalidades para la reprenentacion en el espacio latente. Observan:
u
vio item i
sin considerar cuantas veces).Se comienza haciendo un resumen de distintos metodos utilizados en sistemas recomendadores que no incluyo dado que se parece bastante al survey en mi post anterior (link). A grandes rasgos introduce el concepto y diferencia entre sistemas basados en filtrado por contenido y aquellos que lo hacen con filtrado colaborativo. Tambien nombra como principales areas en el filtrado colaborativo aquellas que comparan vecindades y la mas enfocada en extraccion de representaciones ricas en un nuevo espacio, enfocandose en esta ultima area, particularmente en metodos de factorizacion de matrices.
En mapear usuarios e items a espacios conjuntos se buscan matrices de embedding p
y q
(para usuarios e items respectivamente) tal que el producto interno \(p_u q_i\) devuelva el rating estimado. Una forma de obtener estas matrices resulta de obtener la representacion SVD (singular value descomposition) de la matriz de interacciones usuario-item (preocupandose de imputar los valores faltantes o bien regularizar los embeddings obtenidos para considerar la sparseness de la conjunta). El entrenamiento para obtener los valores en p
y q
pueden obtenerse usando SGD para minimizar la funcion de perdida regularizada. De otra manera puede usarse ALS (alternating least squares) alternando entre asumir fijos los \(q_i\) y los \(p_u\). Esta ultima tecnica ayuda a paralelizar y evita iterar sobre todos los datos en situaciones donde la matriz a descomponer esta mas populada.
Otras extensiones al modelo son:
El escrito hace un excelente trabajo en comunicar la importancia que han tenido los metodos de factorizacion de matrices para mejorar los resultados de sistemas recomendadores. Ademas, lo hace desde la perspectiva de personas que participaron en el netflix prize, aterrizando el tema. Lo que puedo criticar es no haberse explayado en las ventajas de obtener representaciones conjuntas (mismo espacio vectorial) para aumentar la explicabilidad del modelo como lo hizo Collaborative Filtering for Implicit Feedback Datasets o para obtener recomendaciones directamente usando distancias entre usuarios/items. La figura dos explicitamente muestra un usuario (Dave) y su relacion con distintas peliculas en el espacio compartido, pero no se comenta sobre sus preferencias en relacion a los vecinos mas cercanos. Un analisis poco profundo de las implicancias de embeber juntos usuarios e items habria ilustrado la relevancia de este tipo de sistemas de factores latentes de mejor manera que simplemente mostrar resultados para justificar su uso. Además, considerar las distancias entre usuarios e items nos da la intuicion de porque funciona el sistema y hasta explica la formulacion matematica usada en tanto el producto punto en \(\hat r_{ui} = p_u q_i\) puede ser interpretado como el cuadrado de la distancia euclidiana entre los elementos en su espacio conjunto. Asi, creo que el autor se equivoca al no incluir estas conclusiones al presentar modelos de factores latentes ya que podria haber servido para ayudar al lector a entender lo que esta pasando y darle la intuicion de por que funciona.
Por ultimo, no puedo criticarlo por no profundizar en las matematicas tras la descomposicion matricial, pero me habria encantado que se elaborara en el calculo de los gradientes a traves de la descomposicion en valores singulares SVD.