Estoy intentando para desarrollar un sitio que recomiende elementos (libros de texto) a los usuarios según sus preferencias. Hasta ahora, he leído la "Inteligencia Colectiva" de O'Reilly y muchos otros artículos en línea. Sin embargo, todos parecen tratar con instancias únicas de recomendación; por ejemplo, si te gusta el libro A, te puede interesar el libro B.¿Filtrado colaborativo en MySQL?
Lo que intento hacer es crear un conjunto de 'nodos de preferencia' para cada usuario en mi sitio. Digamos que a un usuario le gustan los libros A, B y C. Luego, cuando agreguen el libro D, no quiero que el sistema recomiende otros libros basados únicamente en la experiencia de otros usuarios con el libro D. Quiero que el sistema busque un libro similar. 'preferencia-nodos' y recomendar libros basados en eso.
He aquí un ejemplo de 4 nodos:
User1: 'book A'->'book B'->'book C'
User2: 'book A'->'book B'->'book C'->'book D'
user3: 'book X'->'book Y'->'book C'->'book Z'
user4: 'book W'->'book Q'->'book C'->'book Z'
lo tanto, un sistema de recomendación, tal como se describe en el material que he leído, lo recomiendo el libro de Z a Usuario 1, porque hay dos personas que se recomienda Z en conjunción con gusto C (es decir, Z pesa más que D), aunque un usuario con un 'nodo de preferencia' similar, Usuario2, estaría más capacitado para recomendar el libro D porque tiene un patrón de interés más similar.
¿Alguno de ustedes tiene alguna experiencia con este tipo de cosas? ¿Hay algunas cosas que debería intentar leer o existe algún sistema de código abierto para esto?
¡Gracias por su tiempo!
Pequeña edición: Creo que el algoritmo de last.fm está haciendo exactamente lo que mi sistema hace. Usar los árboles preferidos de las personas para recomendar música más personalmente a las personas. En lugar de decir "te pueden gustar B porque te gustó A"
Guau, esta es una respuesta muy completa. ¡Muchas gracias! –
esta es una respuesta increíble, he estado usando una versión modificada de esto para mi sitio y su funcionamiento tan bien. – Franco