Al Sr. X le encanta hablar de películas. Con todos los que conoce, entabla una conversación sobre películas o, digamos, pregunta qué películas le gustaron a la persona y en qué medida. Una vez que tiene algunas calificaciones para las películas, intenta sugerir algunas películas que la persona pueda disfrutar. Ahora, el Sr. X tiene un recuerdo perfecto y también es bueno con las matemáticas. Él recuerda todas sus conversaciones y la calificación que obtuvo de diferentes personas. Él almacena esta tabla de usuarios de películas con cada celda correspondiente a la calificación de la película dada por los usuarios. Se ve algo como esto
Película1 Película2 Película3
Usuario1 5
Usuario2 1 4.1
Usuario3 3.3
Llamemos a esto la matriz de calificación. Ahora, como dije, el Sr. X es realmente bueno con las matemáticas y podría hacer un poco de malabarismo matemático y encontrar a partir de qué dos matrices se puede construir esta matriz. Esto puede ser complicado porque no conoce toda la calificación.
- ¿Cómo podría usar el aprendizaje automático para clasificar los datos 1D?
- Como estudiante universitario de ciencias de la computación, cuál es la mejor opción entre cs o estadísticas Ph.D. para la carrera de ciencia de datos?
- ¿Cuál es el mejor curso para especializarse en inteligencia artificial y aprendizaje automático?
- ¿Cuáles son algunos ejemplos de inteligencia artificial en sitios web?
- ¿Cuáles son las características de un motor BS4?
Entonces, obtiene dos matrices que son factores de esta matriz. Ahora, si recompone la matriz de calificación a partir de la obtenida de la descomposición, también obtiene algunas conjeturas para valores desconocidos. La nueva matriz de calificación se ve así.
Película1 Película2 Película3
Usuario1 4.9 2.8 4.7
Usuario2 3.8 1.1 4.0
Usuario3 4.4 3.2 4.9
Entonces, ahora puede sugerir fácilmente que al Usuario1 le gustará Movie3. Tenga en cuenta que User1 le dijo al Sr. X que le gusta Movie1.
Entonces, lo que está haciendo el Sr. X es básicamente tratar de sacar conclusiones del gusto general de las películas.
Más formalmente,
Los sistemas de recomendación intentan recomendar artículos (películas, música, páginas web, productos, etc.) a clientes potenciales interesados, en función de la información disponible sobre el usuario, el producto y las preferencias o calificaciones del usuario. Los sistemas de recomendación pueden segmentarse aún más en dos clases: sistemas basados en contenido y sistemas basados en filtrado colaborativo. Los enfoques basados en contenido analizan el contenido (p. Ej., Textos, metadatos, características) de los elementos para identificar elementos relacionados, mientras que el filtrado colaborativo utiliza el comportamiento general o el gusto de un gran número de usuarios para sugerir elementos relevantes a usuarios específicos.
La mayoría de los buenos sistemas utilizan un enfoque híbrido. Puede encontrar un gran ejemplo del uso del algoritmo CF en los datos de netflix en este blog (antiguo pero bien explicado): intente esto en casa Explica el conjunto de datos y el problema con posibles problemas.
Implementaciones de código abierto
En lo que respecta a la implementación, Apache Mahaout tiene un algoritmo CF realmente genial implementado. Puede consultar los algoritmos aquí: Algoritmos – Apache Mahout – Apache Software Foundation y es bastante fácil de usar, puede encontrar una gran introducción aquí: Página en Ibm. También puede encontrar algunas buenas implementaciones en otro software también, como el que se encuentra aquí: http://graphlab.org/toolkits/col…
Matemáticas
Esta pregunta http://stats.stackexchange.com/q… podría ser interesante. Algunos temas que surgen regularmente es la descomposición aproximada de la matriz de calificación en la preferencia del usuario y la matriz de elementos. Este es un domo que utiliza principalmente la descomposición de valores singulares SVD . Se proponen muchos algoritmos para el filtrado colaborativo (CF). La disponibilidad de la base de datos de netflix [3] y el premio de netflix aceleraron el desarrollo de algoritmos de FQ. Algunos de los métodos conocidos que usan Alternating-Least-Squares (ALS) son [1] [4] [5]. Otra categoría importante de algoritmos utiliza la descomposición del valor singular (SVD) en formas modificadas [2] [6]. Los algoritmos basados en el descenso de gradiente estocástico (SGD) también se pueden encontrar en la literatura [7] [8].
[1] Michael P. Holmes, Alexander G. Gray y Charles Lee Isbell, Jr. QUIC-SVD: SVD rápido usando árboles coseno
[2] Yunhong Zhou, Dennis Wilkinson, Robert Schreiber y Rong Pan. Filtrado colaborativo paralelo a gran escala para el Premio Netflix. Actas de la 4ª conferencia internacional sobre Aspectos Algorítmicos en Información y Gestión. Shanghai, China págs. 337-348, 2008.
[3] Netflix CineMatch. Mira programas de televisión en línea, mira películas en línea
[4] Filtrado colaborativo para conjuntos de datos de retroalimentación implícita Hu, Y .; Koren, Y .; Volinsky, C. IEEE International Conference on Data Mining (ICDM 2008), IEEE (2008).
D. Needell, JA Tropp CoSaMP: recuperación de señal iterativa de muestras incompletas e inexactas Análisis armónico computacional y aplicado, vol. 26, núm. 3. (17 de abril de 2008), págs. 301-321.
[5] Xi Chen, Yanjun Qi, Bing Bai, Qihang Lin y Jaime Carbonell. Análisis semántico latente escaso. En la Conferencia Internacional de SIAM sobre Minería de Datos (SDM), 2011.
[6] Y. Koren. La factorización se encuentra con el vecindario: un modelo de filtrado colaborativo multifacético. En ACM KDD 2008.
[7] Técnicas de factorización matricial para sistemas de recomendación Yehuda Koren, Robert Bell, Chris Volinsky en IEEE Computer, vol. 42, núm. 8. (07 de agosto de 2009), págs. 30-37.
Takács, G, Pilászy, I., Németh, B. y Tikk, D. (2009). Enfoques escalables de filtrado colaborativo para grandes sistemas de recomendación. Journal of Machine Learning Research, 10, 623-656.
[8] Y. Koren. La factorización se encuentra con el vecindario: un modelo de filtrado colaborativo multifacético. En ACM KDD 2008. Ecuación (5).