lunes, 24 de abril de 2017

Clase n2: 24-Abril-2017 - Filtrado Colaborativo basado en USUARIOS & ITEMS + otros

 Filtrado Colaborativo

Este sistema se basa en la recopilación de grande volumen de dato del comportamiento de los usuarios para predecir una recomendación a un usuario basado a un usuario similar a él. Una ventaja de este modelo es que no es necesario entender el contenido del item por ende puedo predecir con precision items complejos. El modelo puede basar en usuarios similares o en items similares.

La lógica del algoritmo es decir que dos usuario son parecidos si tienen un historial de gusto en el pasado, por ende se puede recomendar un producto consumido por un usuario al otro usuario si no lo ha recomendado, lo mismo corresponde si se basa por items.

1. Basado en Usuario

Filtrado Colaborativo (Basado en el usuario): Buscamos los K usuarios más parecidos a nuestro "active" o "center" user (K-NN). Luego, hacemos predicción de items que los vecinos han consumido, pero que el "active user" no ha consumido aún.

Pasos del Algoritmo basado en Usuarios



1. k-NN:
2. Correlación de Pearson:
3. Predicción de Ranking:

Este tipo de Modelo sufren los siguientes problemas:
  • Cold Start,: es necesario mucho datos del usuario para hacer predicciones presisas
  • Scalability: Cuando existen millones de usurios/items se require un alto costo de computación
  • Sparsity. Cuando existe una gran variedad de items cae el problema que estos tienen poco ranking sobre todo los items menos consumidos, lo cual traer un problema de hacer predicciones precisas.

2. Basado en Items


Esta metodología toma relevancia debido que mejora el balance entre escalabilidad y exactitud. Por ejemplo, el método KNN para aumentar su exactitud debe aumentar el numero de vecinos lo que conlleva que la complejidad aumente a un orden O(dnk) y crea problemas de dispersión.

Pasos del Algoritmo basado en Items

  1. Calcular similaridad entre los items
    1. a.Cosine-Based
    2. b.Correlation-Based
    3. Jaccard distance
  2. Calculo de Predicción 
    1. Suma ponderada
    2. Regresión

Resultados Importante para medir

  • a. Efecto de la métricas de Similaridad
  • b. Sensitividad de la proporción de training/test
  • c. Tamaño de Vecindario
  • d. Comparación con otros métodos

Google usa los siguientes modelos colaborativos en conjunto en modelo lineal para su recomendaciones de Google News.
Mas detalles en su paper: http://www2007.org/papers/paper570.pdf
  • Minhash
  • LSH
  • MapReduce
  • PLSI

3. Model-Based

Redes Bayesianas (ideales en casos en que las preferencias del usuario no cambian tan a menudo), Reducción de dimensionalidad (estado del arte, pero tiene algunos costos de implementación, especialmente en "tunear" los parámetros)

4. Clustering

Aunque tienen como efecto producir recomendaciones "no tan personalizadas" y, disminuir la exactitud de las predicciones en algunos casos (Breese et al. 1998)

5. Graph-based Metthods

Horting, Random Walks, Spread of activation. Son menos precisos, pero contribuyen a dar mayor diversidad a las recomendaciones


lunes, 17 de abril de 2017

Clase n1: 17-Abril-2017 - Rule-Based & Ranking no personalizado

Rule-Based & Ranking no personalizado 

1. Ranking no Personalizado

El sistema más básico y simple de implementar no requiere un alto computo y tampoco aplicar complejos modelos. Algunas opciones son:
  • Por Popularidad: El item más vendido
  • Por Puntos: Puntos positivos menos puntos negativo
  • Por Puntos Promedio: Puntos Positivos / Total de Puntos
Estos modelos pueden ser utilizado donde hay poca información del usuario y a pesar de su simplesa varias empresa en sus tiendas físicas ocupan estos modelos para remendar productos.

2. Basado en Reglas (Rule-based)

Estos sistemas ocupan regalas (if...then...else...) definidas con prioridad y bajo estas reglas se definen si se recomienda un producto o no.


Clase n1: 17-Abril-2017 - Introducción

Introducción a sistema de recomendaciones


Los sistema de recomendaciones deben su existencia a que existe una gran variedad de productos y servicios que abruman a los consumidores. En este escenario, la decision de que producto comprar supera el poder cognitivo de los seres humanos, este fenómeno es llamado "paradox of choice"  por los psycologos cognitivos. Por lo tanto, estos sistema facilitan la toma decision porque mediante el análisis de la información entregan un recomendacion depurada para el consumidor con productos o servicios que satisfacerán en mayor proporción sus necesidades.

MacNee (2006) define el concepto de la siguiente forma:
"Recommender Systems aim to help a user or a group of users to select items from a crowded item or information space. (MacNee et. al 2006)."
Dentro del area, el ejemplo más citado es el famoso premio de 1.000.000 de dolares de netflix al mejor sistema recomendación colaborativo . El concurso finalizo en 2009 y el equipo ganador entro un modelo que que mejoraba el actual algoritmo en un 10%. Lo curioso de este concurso fue que Netflix nunca ocupo el algoritmo ganador debido a alto costo de implementación y por cambio de datos ha ocupar en sus futuros algoritmos. Más sobre este dato en este link.

Actualmente existen varias metodologías para hacer un sistema de recomendación. A continuación se lista los modelos que se describirán en este blog.

Tipos de Sistemas de Recomendación


  1. Ranking no personalizado
  2. Rule-Based
  3. Filtrado Colaborativo
    1. Por Usuarios
    2. Por items
  4. Content-Based
  5. Híbridos
  6. Maquinas de Factorización