ml_icono Machine Learning - Mínimos Cuadrados

Machine Learning - Recomendación - Mínimos Cuadrados





Sistemas de Recomendación
Existen 2 grandes grupos de Sistemas de Recomendación

1- Sistemas basados en el análisis de contenidos asociados con artículos o usuarios, o ambos. La principal característica de este enfoque basado en contenidos es la acumulación y análisis de información relacionada con los usuarios y los elementos. El sistema puede recopilar información acerca de los usuarios de forma explícita a través de su respuesta a los cuestionarios o implícitamente a través de la extracción de perfil o de hábitos de lectura del usuario, correos, blogs, etc.

2- Sistemas de filtrado colaborativo que confían en el rastro que un usuario deja tras de sí a través de la interacción con un sistema. Normalmente, este rastro son las puntuaciones del usuario, tales como las puntuaciones de películas. Dependen del comportamiento pasado más que del contenido de cada elemento para la generación de interés y no requieren ni conocimiento del dominio ni recopilación o análisis inicial para producir recomendaciones.

En este ejemplo hemos implementado un filtrado colaborativo de películas ¿Cómo obtener recomendaciones de películas para un usuario?
1º Identificar vecinos del usuario objetivo (amigos). Necesaria función de similitud
2º Identificar artículos (películas) que los vecinos hayan puntuado positivamente.
3º Generar una predicción de los artículos desconocidos (películas no vistas) para el usuario objetivo.


Filtrado colaborativo

Dado un usuario X
Encontrar un subconjunto de usuarios N que son parecidos
Estimar las valoraciones de X's en función de esos usuarios N


Información

En esta demo hemos utilizado como algoritmo de aprendizaje para la factorización de la matriz el método de alternancia de mínimos cuadrados (ALS) en su versión incluida en Spark MLlib. http://spark.apache.org/docs/latest/mllib-collaborative-filtering.html
Estamos ejecutando Spark utilizando el gestor de clúster de Hadoop YARN


I+D+i BigData

En StrateBI creemos en el valor de las tecnologías Big Data para el procesamiento de datos y la obtención de conocimiento a partir de los mismos, con el objetivo siempre en mente de mejorar los procesos de toma de decisiones de las organizaciones de cualquier sector, nuestro equipo lleva a cabo una fuerte labor de I+D+i en Big Data.

Investigación

Revisamos novedades y documentación científica de las tecnologías Big Data.

Se hace tanto aquellas emergentes en las que detectamos un gran potencial, como sobre aquellas ya consolidadas.

Con ello detectamos los puntos en los que se puede desarrollar o aprovechar alguna mejora.

Desarrollo

Ponemos en práctica los resultados de las investigaciones anteriores.

Implementamos la mejoras y validamos su aplicación con diversos casos de estudio del mundo real, como los que podemos explorar en nuestra demos Big Data.

Innovación

Una vez hemos comprobado su utilidad y robustez, las introducimos en los proyectos que ofrecemos a nuestros clientes.

De esta forma, StrateBI garantiza el uso de la tecnologías Big Data más novedosas, previamente testeadas y mejoradas por nuestro equipo de I+D+i en Big Data.


Tecnologías Usadas

hadoop

Apache Hadoop es el entorno Big Data por excelencia, permitiendo la computación distribuida en clústeres formados por hardware comercial y de bajo coste.

En su forma más básica incluye almacenamiento distribuido (HDFS), un gestor de recursos de ejecución (YARN) y, funcionando sobre este, el entorno para el desarrollo y ejecución de aplicaciones que implementan en procesamiento distribuido (MapReduce).

Además, sobre la base de los componentes anteriores, han surgido numerosas herramientas, como Hive o Spark, que aportan modelos simplificados de programación para una amplia gama de tareas de procesamiento Big Data.

De entre las distintas tecnologías Big Data, Hadoop es la solución más completa y la que aporta un enfoque más general, siendo ideal para la implementación del novedoso concepto de Data Lake para la posterior explotación de los datos en aplicaciones analíticas.

flume

Flume es un sistema distribuido y confiable para la eficiente colección, agregación y movimiento de datos Streaming.

kafka

Kafka es un sistema de mensajería (publicador-suscriptor) distribuido, tolerante a fallos y de alto rendimiento.

hortonworks cloudera

Con el objetivo de facilitar la instalación y gestión del entorno Hadoop, y de todo el conjunto de aplicaciones que se integran con el mismo, disponemos de lo que se conoce como distribución de Hadoop.

Se trata de un paquete de software, que incluye los componentes básicos de Hadoop junto con una pila de herramientas adicional, listos para su instalación en sistemas operativos Ubuntu, Debian, CentOS o, incluso, Windows Server.

En este sentido, desde de StrateBI recomendamos el uso de una distribución, siendo Hortonworks y Cloudera actualmente las distribuciones líderes. Es por ello que los clústeres Hadoop sobre los que se ejecutan nuestras demos son Hortonworks y Cloudera, siendo ambas soluciones una opción ganadora.

spark spark streaming

Spark implementa el procesamiento de datos haciendo uso intensivo de la Memoria Ram del clúster, en lugar de hacer uso intensivo de disco como MapReduce.

De esta forma se consigue mejorar en gran medida el rendimiento de las aplicaciones Big Data, siendo adecuado para la implementación de algoritmos iterativos de Machine Learning (MLib), análisis estadístico (módulo R) o el análisis de datos en tiempo real (Spark Streaming), aplicación que hemos puesto en práctica en nuestra demo.