¿Qué es el filtrado colaborativo en términos simples?

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.

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).

El filtrado colaborativo es un conjunto de tecnologías que predicen qué elementos de un conjunto de productos (o información) le gustará a un cliente en particular en función de las preferencias de muchas otras personas.

Tomemos el ejemplo simple de recomendar películas.

Si conozco tus preferencias de películas, y las de muchas otras personas, puedo hacerte buenas recomendaciones de películas.

Una solución simple sería recomendar lo que sea más popular. Eso sería colaborativo, pero no sería personalizado y no funcionaría bien si no tienes gustos convencionales.

Los sistemas de filtrado colaborativo originales tomaron sus preferencias pasadas (las películas que le gustaron) y las usaron para identificar a otras personas que tenían gustos similares. Una vez que haya identificado a estas personas, puedo encontrar las películas que le gustan a este “vecindario” y recomendarlas. Funciona bastante bien si tenemos suficiente gente, y sus gustos son razonablemente consistentes.

Con el tiempo, las personas han desarrollado formas más sofisticadas de computar esencialmente lo mismo. En la mayoría de los algoritmos actuales, en lugar de crear una lista de vecinos para usted, usamos las calificaciones de todos para formar algún tipo de representación intermedia de gustos de películas, algo así como un espacio de sabor en el que podemos ubicarlo a usted y a las películas, y luego usar esa representación para evaluar rápidamente las películas para ver si coinciden con esta representación comunitaria de sus gustos.

El filtrado colaborativo es una técnica de aprendizaje automático.

El concepto detrás del filtrado colaborativo es bastante sencillo: se basa en la idea de que las personas que comparten un interés en ciertas cosas probablemente también tendrán intereses similares en otras cosas.

Experimenta el filtrado colaborativo de primera mano cada vez que se conecta y ve “Los clientes que compraron este artículo también compraron” o “A los usuarios como usted también les gustó”.

Selecciona las similitudes en los diferentes usuarios para filtrar los productos que probablemente sean más comprados por un conjunto de usuarios, lo que aumenta sus posibilidades de hacer una venta más grande en este ejemplo.

El filtrado colaborativo (CF) es un método utilizado por algunos sistemas de recomendación. Consiste en dos sentidos, uno angosto y uno más general. En general, el filtrado colaborativo es el proceso de filtrado de información o patrones utilizando técnicas que implican la colaboración entre múltiples agentes, puntos de vista, fuentes de datos.

Es el proceso de filtrado de información utilizando técnicas que implican la colaboración entre múltiples agentes. Las aplicaciones de filtrado colaborativo generalmente involucran conjuntos de datos muy grandes. He compartido un enlace de video que proporcionará una mejor comprensión sobre el filtrado colaborativo y otros conceptos de ciencia de datos.

El filtrado colaborativo es una técnica utilizada por los sistemas de recomendación para proporcionar recomendaciones de artículos o servicios a los usuarios del sitio web de comercio electrónico como Amazon, YouTube, etc.

CF realiza predicciones automáticas de calificación de elementos que son de interés potencial para un usuario en función de su historial de calificación común anterior con otros usuarios.

Entonces, si a dos personas les gustaron los productos A y B en el pasado y a la segunda persona también le gusta C, es probable que a la primera persona también le guste C.

Echa un vistazo a esta excelente encuesta sobre el tema.

http://downloads.hindawi.com/jou

Imagina que estás vagando por un bosque (quizás amazónico), tratando de encontrar flores interesantes. El filtrado colaborativo hace que los caminos tomados por los aventureros, como usted, sean visibles para que sepa en qué dirección debe ir para ver algo atractivo.

El filtrado colaborativo no es más que la palabra técnica para pedir sugerencias a las personas.
Esto es algo que ha existido desde el tiempo, excepto el nombre.
¿Qué haces cuando quieres ver una película pero no sabes cuál? No comienzas a mirar a todos y cada uno, le preguntas a tu amigo o alguien que conoces que tiene un gusto de las películas similar al tuyo. Esto es lo que es el filtrado colaborativo. Nada más que el filtrado de opciones sobre la base de la colaboración entre usuarios.

Lo más probable es que me guste algo que les gusta a mis amigos, ya que la mayoría de mis amigos son muy parecidos a mí, por ejemplo, no les gustó la película Birdman, por lo que tampoco me gustará. Cuando realmente lo vi, no me gustó.

O

Lo más probable es que me guste algo que sea similar a lo que ya me gusta o que vaya bien con mi preferencia. por ejemplo, me gusta mi iPhone, así que puedo apreciar más cuando alguien me regala una funda de iPad o iPhone NO una tableta de Android, me gusta DC universe NO Marvel’s para que sepa qué cómic me regala.

Lo anterior es de lo que se trata la mayor parte del filtrado colaborativo actual.

Ahora, en el futuro, podría ser un poco sorprendente, pero podría gustarme su Raspberry Pi o la caja de regalo de la edición especial de Marvel, lo que puede despertar un nuevo interés en mí. Este elemento sorpresa se conoce como casualidad y la diferencia de mis preferencias existentes (universo DC o dispositivos de Apple) se denomina diversidad. Esto es bueno para los Vengadores, ya que ahora tienen un nuevo fanático que puede leer más de sus cómics, ver sus películas y comprar parte de su mercancía. La Raspberry Pi puede inspirar al hacker / rooter dentro de mí y puede hacerme la transición a Android (bueno para mí financieramente, lo siento Apple). Estas sugerencias son realmente inteligentes y pueden necesitar un poco de investigación sobre el lado algorítmico del filtrado colaborativo.