Filtrado de colaboración: maneras de determinar las puntuaciones implícitas de los productos para cada usuario?

StackOverflow https://stackoverflow.com/questions/1243726

Pregunta

Después de haber implementado un algoritmo para recomendar productos con cierto éxito, ahora estoy buscando la manera de calcular los datos de entrada iniciales para este algoritmo.

Mi objetivo es calcular una puntuación para cada producto que un usuario tiene algún tipo de historia con.

Los datos actualmente Estoy recogiendo:

  • historial de pedidos de usuarios
  • Producto historial de visitas de página para los usuarios anónimos y registrados

Todos estos datos son sellos de tiempo.

Lo que estoy buscando

Hay un par de cosas que estoy en busca de sugerencias sobre, e idealmente esta pregunta deben ser tratados más para la discusión en lugar de con el objetivo de una única respuesta 'correcta'.

  • Cualquier dato adicional que puede obtener para un usuario que puede implicar directamente un interés en un producto
  • Algoritmos / ecuaciones para convertir estos datos en las puntuaciones para cada producto

Lo que no estoy buscando

Sólo para evitar esta pregunta salirse de los rieles con el tipo equivocado de respuestas, esto es lo que estoy haciendo una vez que tenga estos datos para cada usuario:

  • Generación de un número de grupos de usuarios (21 en el momento) utilizando el algoritmo de k-medias Clustering, utilizando el coeficiente de Pearson para la puntuación distancia
  • Para cada usuario (bajo demanda) calcular su un gráfico de usuarios similares mediante la búsqueda de sus más y menos usuarios similares dentro de su cluster, y repitiendo para una profundidad arbitraria.
  • El cálculo de una puntuación para cada producto en función de las preferencias de otros usuarios dentro gráfica del usuario
  • Clasificar los resultados para devolver una lista de recomendaciones

Básicamente, no estoy en busca de ideas sobre qué hacer una vez que Tienes los datos de entrada (Es posible que necesite más ayuda con esto más adelante, pero no es el punto de esta pregunta), simplemente para obtener ideas sobre cómo generar estos datos de entrada en el primer lugar

¿Fue útil?

Solución

He aquí un puñetazo de una respuesta:

  • tiempo dedicado a mirar a un producto
  • interpretación semántica de comentarios que dejan sobre el producto
  • hacer una página de discusión acerca de un producto, nombre o categoría de producto y semánticamente interpretar los comentarios
  • si compartían una página de producto (correo electrónico, del.icio.us, etc.)
  • navegador (móviles podrían hacer que pasan menos tiempo en la página vis-à-vis la computadora portátil mientras que indica un gran interés) y la velocidad de conexión (AMT afecta. De tiempo dedicado a la página)
  • perfil de facebook similitud
  • datos Zona de juego (por ejemplo, a la KISSmetrics)

¿Qué tipo de productos que usted está vendiendo? Eso podría ayudarnos a responder mejor. (Dado que esta es una vieja pregunta, me dirijo tanto @ Andrew Ingram y cualquier otra persona que tiene la misma pregunta y encontramos este hilo a través de la búsqueda.)

Otros consejos

  1. Puede permitir a los usuarios de forma explícita sus preferencias, la forma en Netflix permite a los usuarios asignar estrellas.
  2. Se puede asignar un valor numérico positivo para todas las cosas que han comprado, ya que decir que no tiene su historial de compras. Asignar cero para cosas que no compraron
  3. Se podría hacer algún tipo de valor ponderado por cosas que compró, ajustado por lo que es popular. (Si casi todo el mundo compró un producto, no dice mucho acerca de una persona que también lo compró) Ver "en frecuencia inversa término de frecuencia documento"
  4. También puede asignar un valor numérico menor para los artículos que los usuarios miraron pero no compraron.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top