lunes, 22 de mayo de 2017

Clase n5: 15-Mayo-2017 - Maquinas de Factorizacion

Maquinas de Factorizacion

La máquinas de factorización (FM) que son un nuevo modelo de clase que combina las ventajas
de SVM con modelos de factorización. Al igual que las SVM, las FM son un predictor general que
vector de características con valor real. En contraste con SVMs, los FMs interacciones entre variables utilizando parámetros factorizados. Así son capaces de estimar las interacciones incluso en problemas con sparsity, donde fallan SVMs. Lla ecuación modelo de FMs se puede calcular en tiempo lineal por lo tanto las FM pueden ser optimizadas directamente. 

A diferencia de lo no lineal de SVMs, una transformación en la forma dual no es necesaria y los parámetros del modelo se pueden estimar directamente sin la necesidad de cualquier vector de soporte en la solución. Por otro lado, existen muchos modelos de factorización diferentes
Factorización de la matriz, análisis de factores paralelos o modelos como SVD ++, PITF o FPMC. El inconveniente de estos es que no son aplicables para las tareas generales de predicción pero sólo funcionan con datos de entrada especiales. Además su modelo las ecuaciones y los algoritmos de optimización se derivan individualmente para cada tarea. 



  • FMs combinan regresión lineal/polinomial con modelos de factorización.
  •  Interacción entre variables se aprenden vía representación low-rank. 
  • Es posible la estimación de observaciones no observadas. 
  • Se pueden calcular eficientemente y tienen una buena calidad de predicción. 

lunes, 15 de mayo de 2017

Clase n5: 15-Mayo-2017 - Sistemas Recomendadores Híbridos


Sistemas Recomendadores Híbridos

Las técnicas mencionadas en las clases anteriores funcionan correctamente pero tienen los ciertos problemas como cold start, sparcity entre otros. Por eso surge la idea de combinar dos o mas estrategias para evitar algunas de carencias nombradas. Existen 7 tipo de estrategias para hacer sistemas hibridios  y estas se pueden resumir en 3 grandes grupos: Monolitico, Parelelo y Distribuido.

Estrategia de Hibridización



Diseños Generales

  1. Monolítico: Es un híbrido virtual. Característica/Conocimiento de distintas fuentes son combinadas. Por ejemplo: Valoraciones y datos de usuario demográficos o requisitos de usuario utilizados para medir la similitud
Características híbridas:
  • Características sociales: Películas que le han gustado a un usuario 
  • Características del contenido: Tipo de película (género)
  • Características híbridas: Al usuario le han gustado muchas películas que son comedia…

    1. Feature Combination
    2. Feature Augmentation




  1. Paralelizado: La salida se obtiene a partir de la combinación de distintas implementaciones: 

    1. Weighted
    2. Switching
    3. Mixed

  1. Pipeline
Un recomendador pre-procesa alguna entrada para la siguiente etapa.
Las listas de recomendación se van refinando

  • El primer recomendador excluye elementos
  • El segundo recomendador asigna valoraciones

    1. Cascade
    2. Meta-Level


Clase n5: 15-Mayo-2017 - Recomendación Basada en Contexto

Recomendación Basada en Contexto


Definición por Dey(2001)
Context is any information that can be used to characterise the situation of an entity. An entity is a person, place, or object that is considered relevant to the interaction between a user and an application, including the user and applications themselves





lunes, 8 de mayo de 2017

Clase n4: 08-Mayo-2017 - Métricas de Evaluación

Métricas de Evaluación

Métricas para Lista de Recomendación



Precision




Recall


Metricas para Predicción de Ratings


MAE: Mean Absolute Error



MSE: Mean Square Error



RMSE: Root Mean Square Error.



Metricas para Conjuntos a Ranking


MRR
Precision@N
MAP
Rank Score
DGC
nDCG

Significancia Estadísticas


Estadisticas de los Resultados
Test de Grupos

Clase n4: 08-Mayo-2017 - Slope One

Slope One



  1. Fácil de Implementar y mantener 
  2. Actualizable en línea: nuevos ratings deberían cambiar las predicciones rápidamente. 
  3. Eficiente al momento de consulta: costo principal debería llevarlo el almacenamiento. 
  4. Funciona con poco feedback del usuario 
  5. Razonablemente preciso, dento de ciertos rangos en los que una pequeña ganancia en exactitud no signifique un gran sacrificio de simplicidad y escalabilidad.

martes, 2 de mayo de 2017

Clase n3: 02-Mayo-2017 - Solr

Solr



Apache Solr es una plataforma de búsqueda de código abierto basada en una biblioteca de Java llamada Lucene. Solr es una popular plataforma de búsqueda para sitios Web, ya que puede indexar y buscar múltiples sitios y devolver recomendaciones para contenido relacionado basado en la taxonomía de la consulta de búsqueda.




Guida Complementaria para aprender a usar
http://blog.cloudera.com/blog/2015/10/how-to-use-apache-solr-to-query-indexed-data-for-analytics/

Clase n3: 02-Mayo-2017 - Filtrado Basado en Contenido

Recomendación Basado en Contenido

Este sistema trabaja con datos entregados por los usuarios, ya sea explícitos mediante dando rating a un producto, compra de productos/servicios anteriores o implícitamente dando un click a un link más el contenido descriptivo (características) del item. Basados en estos datos, se hace un perfil para el usuario para luego hacer recomendaciones para él. Entre más datos se tenga mejor será el sistema de recomendación.

Los modelos colaborativos tienen las desventajas mencionas (cold-start, new-item problem, sparcity y transparency). Es por ellos que los sistema recomendación en contenido suelen ser utiles porque no sufren los problemas mencionados y se pueden combinar con diferentes modelos de aprendizajes y de procesamiento de texto.

Estos modelos funcionan bien como se centran un en solo tipo de contenido de items, como Pandora en recomendar música que escuchar o como IMDB en que película ver, pero cuando se quiere hacer recomendación de un item con otro tipo de contenido estos modelos no logran bien su objetivo.


Sin embargo tiene aspectos en contra:

  • sobre-especialización, creando recomendaciones similares creando burbujas.
  • pueden ser menos precisos en su recomendación que los basados en colaborativo 

Modelo del Algoritmo




Representación del Contenido


  • Bolsa de Palabras
  • VSM:
    • Frecuencia de Terminos
    • Log de Frecuencia de los Terminos
    • TF-IDF: más conocidos  y usado

Representación Semántica del Contenido

  • Opción 1: Semántica explicita
    • Ontologias
    • WordNet
    • ConcepNet
  • Opción 2:Inferir representación semántica
    • LSI: Latent Semantic Indexing
    • LDA Latent Dirichlet Allocation



Búsqueda de Items Similares

  • Distancia Euclidiana
  • Distancia Coseno
  • Okapi BM25

Procesamiento  Adicionales

  • Pasar a mayuscula/Minuscula
  • Tokenization
  • Stemming
  • Lemmatization




Modelos de aprendizajes ocupados:

  • a. Relevance Feedback
  • b. Genetic Algorithms
  • c. Neural Networks
  • d. Bayesian Classifier

 info


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