El Filtrado colaborativo (FC) es una técnica utilizada por algunos sistemas recomendadores. En general, el filtrado colaborativo es el proceso de filtrado de información o modelos, que usa técnicas que implican la colaboración entre múltiples agentes, fuentes de datos, etc. Las aplicaciones del filtrado colaborativo suelen incluir conjuntos de datos muy grandes. Los métodos de filtrado colaborativo se han aplicado a muchos tipos de datos, incluyendo la detección y control de datos (como en la exploración mineral, sensores ambientales en áreas grandes o sensores múltiples, datos financieros) tales como instituciones de servicios financieros que integran diversas fuentes financieras, o en formato de comercio electrónico y aplicaciones web 2.0 donde el foco está en los datos del usuario, etc. Esta discusión se centra en el filtrado colaborativo para datos de usuario, aunque algunos de los métodos y enfoques pueden aplicarse a otras aplicaciones.
En el enfoque más reciente, el filtrado colaborativo es un método para hacer predicciones automáticas (filtrado) sobre los intereses de un usuario mediante la recopilación de las preferencias o gustos de información de muchos usuarios (colaborador). El Filtrado colaborativo se basa, en que si una persona A tiene la misma opinión que una persona B sobre un tema, A es más probable que tenga la misma opinión que B en otro tema diferente que la opinión que tendría una persona elegida azar. Por ejemplo, un sistema de recomendación basado en el filtrado colaborativo para televisión podría hacer predicciones acerca de los programas que le gustarían a un usuario a partir de una lista parcial de los gustos de ese usuario (gustos o disgustos).An Integrated Approach to TV & VOD Recommendations Publicado por Red Bee Media Nótese que estas predicciones son específicas para el usuario, pero utilizan la información obtenida de muchos usuarios. Esto difiere del enfoque más simple de otorgarle una puntuación promedio (poco específico) para cada elemento de interés, por ejemplo sobre la base de su número de votos.
Introducción El crecimiento de Internet y de la información disponible en línea ha hecho que sea mucho más difícil extraer información útil de manera efectiva. La abrumadora cantidad de datos requiere mecanismos de filtrado de información eficientes. Una de las técnicas utilizadas para hacer frente a este problema se denomina filtrado colaborativo. La motivación para el filtrado colaborativo proviene de la idea de que las personas a menudo obtienen la mejor recomendación de alguien con un gusto similar. El Filtrado colaborativo explora las técnicas para hacer coincidir a las personas con intereses similares y formular recomendaciones sobre esta base. Los algoritmos de filtrado colaborativo requieren (1) la participación activa de los usuarios, (2) una forma fácil para representar los intereses de usuarios para el sistema, y (3) los algoritmos que son capaces de encontrar a las personas con intereses similares. Típicamente, el flujo de trabajo de un sistema de filtrado colaborativo es: El usuario expresa sus preferencias evaluando elementos (por ejemplo, libros, películas o CDs) del sistema. Estas calificaciones pueden ser vistas como una representación aproximada del interés del usuario en el dominio correspondiente. El sistema compara las evaluaciones de este usuario con las de otros usuarios y encuentra las personas con gustos "similares". Con los usuarios similares, el sistema recomienda elementos que los estos han evaluado de su preferencia pero todavía no han sido evaluados por este usuario (la ausencia de evaluación es a menudo considerada como el desconocimiento de un elemento).
Un problema fundamental del filtrado colaborativo es cómo combinar y ponderar las preferencias de los vecinos de los usuarios. A veces, los usuarios pueden inmediatamente calificar los elementos recomendados. Como resultado, el sistema obtiene una representación cada vez más precisa de las preferencias del usuario con el tiempo.
Metodología Los sistemas de filtrado colaborativos tienen muchas variantes, pero muchos sistemas comunes pueden reducirse a dos pasos: Búsqueda de usuarios que comparten los mismos patrones de evaluación con el usuario activo (el usuario para el que se está haciendo la predicción). Utilizar las evaluaciones por parte de aquellos usuarios afines que se encuentran en el paso 1 para calcular una predicción para el usuario activo Esto entra en la categoría del filtrado colaborativo basado en el usuario. Una aplicación específica de ello es el algoritmo del vecino más cercano basado en el usuario.
Como alternativa, el filtrado colaborativo basado en elementos inventado por Amazon.com (usuarios que compraron x, también han comprado y), procede de manera centrada en los elementos: Construir una matriz de elemento-elemento que determina las relaciones entre pares de elementos Usando la matriz, y los datos sobre el usuario actual, inferir sus gustos Véase, por ejemplo, la familia de filtros colaborativos basados en elementos Slope One.
Otra forma de filtrado de colaboración pueden estar basadas en observaciones implícitas del comportamiento del usuario (en oposición al comportamiento artificial impuesta por una tarea de calificación). En estos sistemas se observa lo que un usuario ha hecho junto con lo que todos los usuarios han hecho (la música que han escuchado, qué artículos se han comprado) y utilizar esos datos para predecir el comportamiento del usuario en el futuro o para predecir cómo un usuario puede comportarse si sólo se le dio una oportunidad. Estas predicciones tienen entonces que ser filtrados a través de la lógica de negocio para determinar cómo estas predicciones podrían afectar el desempeño del sistema de negocios. Por ejemplo, no es útil ofrecer a alguien la venta de música si ya han demostrado que la tienen, o no es útil para sugerir más guías de viaje a París a alguien que ya ha comprado una guía de viaje para esta ciudad. Basándose en un sistema de puntuación o puntuaciones que se promedia entre todos los usuarios ignora las demandas específicas de un usuario, y es particularmente pobre en tareas en las que existe una gran variación de interés, por ejemplo en la recomendación de música. Sin embargo, hay otros métodos para luchar contra el gran despliegue de la información, por ejemplo búsquedas web, algoritmos de agrupamiento, y más.
Tipos
Basado en memoria Este mecanismo utiliza los datos de las evaluaciones de los usuarios para calcular la similitud entre los usuarios o elementos. Esto se utiliza para hacer recomendaciones. Este fue de los primeros mecanismos y se usa en muchos sistemas comerciales. Es fácil de implementar y es eficaz. Ejemplos típicos de este mecanismo son los FC basados en el vecino más cercano y recomendaciones de los N-primeros basadas en elementos o usuarios.Xiaoyuan Su, Taghi M. Khoshgoftaar, A survey of collaborative filtering techniques, Advances in Artificial Intelligence archive, 2009. Por ejemplo, en los enfoques basados en el usuario, el valor de la evaluación del usuario u con respecto al elemento i se calcula como una agregación de las evaluaciones de usuarios similares para el elemento:
Donde U denota el conjunto de los mejores N usuarios que son más similares al usuario u con respecto a i. Algunos ejemplos de la función de agregación incluye:
Donde k es un factor de normalización se define como . y es el promedio de las evaluaciones del usuario u para todos los elementos que ha evaluado.
El algoritmo basado en vecindad calcula la similitud entre dos usuarios o elementos, produce una predicción para el usuario tomando el promedio ponderado de todas las evaluaciones. Calcular la similitud entre los elementos o usuarios es una parte importante de este enfoque. Múltiples mecanismos tales como la correlación de Pearson y la similitud basada en el coseno entre vectores sirven para esto. La similitud de correlación de Pearson de dos usuarios x, y se define como
donde Ixy es el conjunto de elementos evaluados por ambos usuarios. El enfoque basado en coseno define la similitud entre dos usuarios x e y como:
El algoritmo de recomendación basado en los N-primeros usuarios identifica los k más similares al usuarios actual usando el modelo de similitud basado en vectores. Después de que los k usuarios más similares se encuentran, sus correspondientes matrices de usuario- elementos se agregan para identificar el conjunto de elementos que se recomiendan. Un método popular para encontrar a los usuarios similares es el, que implementa en el tiempo lineal. Las ventajas de este enfoque incluyen: la interpretación de los resultados, lo cual es un aspecto importante de los sistemas de recomendación, es fácil de crear y utilizar; los nuevos datos se pueden agregar fácilmente y de forma incremental, no es necesario considerar el contenido de los elementos que se recomiendan, y mecanismo escala adecuadamente con elementos revaluados. Hay varias desventajas con este enfoque. En primer lugar, depende de las puntuaciones de las personas. En segundo lugar, su rendimiento disminuye cuando los datos son dispersos, lo cual es frecuente en elementos relacionados con la web. Esto evita la escalabilidad de este enfoque y tiene problemas con grandes conjuntos de datos. A pesar de que puede manejar eficientemente los nuevos usuarios porque cuenta con una estructura de datos, añadiendo nuevos elementos se hace más complicada, ya que la representación general se basa en un espacio vectorial específico. Para ello sería necesario incluir el nuevo elemento y volver a insertar todos los elementos de la estructura.
Basado en modelo Los modelos se desarrollan utilizando la minería de datos, algoritmos de aprendizaje automático para encontrar patrones basados en los datos de entrenamiento. Estos se utilizan para realizar predicciones de datos reales. Hay muchos algoritmos de FC basados en modelos. Estos incluyen redes bayesianas, modelos de clustering, modelos de semántica latente tales como la descomposición de valor singular, el análisis semántico latente probabilístico, Multiple Multiplicative Factor, Latent Dirichlet allocation y markov decision process basados en modelos.
Este enfoque tiene un objetivo más holístico para descubrir los factores latentes que explican las evaluaciones observadas.Factor in the Neighbors: Scalable and Accurate Collaborative Filtering La mayoría de los modelos se basan en técnicas de clasificación o clustering para identificar al usuario basándose en el conjunto de datos de prueba. El número de los parámetros puede reducirse utilizando el análisis de componentes principales. Hay varias ventajas con este paradigma. Maneja los datos esparcidos mejor que los basados en memoria. Esto ayuda con la escalabilidad con grandes conjuntos de datos. Se mejora el rendimiento de la predicción. Da un fundamento intuitivo para las recomendaciones. Las desventajas de este método es el costo de la construcción del modelo. Uno tiene que tener un compromiso entre el rendimiento de la predicción y la escalabilidad. Se puede perder información útil debido a la reducción del modelo. Un número de modelos tienen dificultad para explicar las predicciones.
Híbridos Una serie de aplicaciones combina los algoritmos basados en memoria y basado los basados en modelos. Estos superan las limitaciones de los enfoques nativos. Se mejora el rendimiento de predicción. Es importante destacar, que supera los problemas tales como dispersión y pérdida de información. Sin embargo, han aumentado la complejidad y son costosos de implementar.Google News Personalization: Scalable Online Collaborative Filtering
Aplicación en la red social Servicios como Reddit, YouTube y Last.fm son un ejemplo típico de los medios de comunicación basados en filtrado colaborativo.Collaborative Filtering: Lifeblood of The Social Web