¿Cuál es la mejor manera de normalizar los datos implícitos para un sistema de recomendación de música mediante el filtrado colaborativo?

Interpreto su pregunta de la siguiente manera: cómo se normalizan los datos de retroalimentación implícita para la FQ dada cuando solo hay datos de retroalimentación positiva unaria y no hay retroalimentación negativa. Mi respuesta es relevante para el tipo de factorización matricial de CF. Mi respuesta es independiente del dominio, ya que no se dio en la pregunta qué especificidad es posible que desee explotar desde el dominio de la música. Entonces, primero, supongo que los usuarios pueden escuchar (o no escuchar) las canciones.

Existen dos dificultades principales cuando modela preferencias utilizando datos de retroalimentación implícitos:

  1. las interacciones del usuario solo pueden interpretarse como comentarios positivos, y esto puede ser inexacto: la música puede estar en segundo plano y el usuario no interactúa realmente con el sistema, o uno puede decepcionarse con el bien comprado (dominio de comercio electrónico), haga clic en un artículo debido a cebo de clics (dominio de noticias), solo para dar algunas pistas.
  2. faltan completamente las preferencias negativas directas; La falta de interacción generalmente significa que el usuario desconoce la existencia del elemento.

Por lo tanto, la importancia de la retroalimentación positiva es mucho mayor que la falta de retroalimentación negativa, por lo tanto, los tipos de retroalimentación deben ponderarse (normalizarse) de manera diferente en el modelo.

Por lo tanto, la función de error que optimizamos no es RMSE sino RMSE ponderada:

donde W es una matriz de confianza, y su elemento es un valor fijo pequeño si no hay interacción entre u e i , o un valor grande si hay interacción. Los valores típicos son 1 para pequeño y 100 * # (interacciones u, i ), donde suponemos que puede consumir un elemento i varias veces. La otra parte de la función de error es el estándar, los dos últimos miembros de la suma son sesgos de usuario y elemento.

Entonces, aquí creamos dos matrices a partir de las interacciones del usuario, R es una matriz binaria que tiene 1 en ( u, i ) si interactuamos con i . La matriz de confianza W que especifica nuestra confianza en la celda apropiada de la matriz R.

El modelo de aprendizaje con ALS (implícito) se describe en el artículo de Yu et al.

En este modelo, también puede agregar información adicional sobre escuchar música. Si conoce la duración de la escucha (en comparación con la duración de la canción), puede variar las confidencias de retroalimentación positiva en W. Incluso, puede ponderar una retroalimentación “positiva” existente por debajo del valor de la “retroalimentación negativa”, si , por ejemplo, el usuario escucha solo unos segundos de una canción. Pero tenga en cuenta que estas son interpretaciones: en realidad no sabe por qué el usuario hace clic.

Lo responderé dando un ejemplo,

Existe un sistema de recomendación musical basado en “Filtrado colaborativo basado en elementos”

Deje que U1, U2, U3 … Um sean los usuarios del sistema.

Deje que S1, S2 ……… Sn son n canciones (elementos) en el sistema presente en este momento.

Cada canción tendrá un valor de similitud calculado para cada otra canción (como una actividad de fondo)

Ahora en una sesión activa (digamos que la sesión es el alcance de la recomendación) U2 ya ha escuchado algunas canciones (S1, S5, S6) y les ha gustado (calificado) de manera diferente ahora, para mostrar la próxima recomendación de U2.

Elija las mejores canciones K que coincidan con S1, S5, S6. Aquí elijo K = 3 canciones (S8, S11, S21)

Calcular puntaje para K canciones

Normalizarlos y mostrar el reco

Este documento de Fabio Aiolli (enlace pdf) podría ayudarlo. Describe cómo ganó el Million Song Dataset Challenge (enlace kaggle), que parece bastante similar a su caso.

TL; DR

Los conteos de escucha no son un buen proxy para el gusto del usuario, simplemente binarice los conteos.

Use una similitud de coseno asimétrica con el filtrado colaborativo basado en elementos. La asimetría reduce el efecto de popularidad, por lo que no necesita normalizar para obtener popularidad.