Algoritmos de recomendación Machine Learning

5min

En este artículo vamos a abordar una de las aplicaciones más habituales donde se aplica el Machine Learning y que, nos demos cuenta o no, nos condiciona diariamente. Se trata de los sistemas de recomendación que encontramos en todo tipo de servicios y comercios online, estos sistemas que nos muestran todo tipo de sugerencias y que, en muchas ocasiones, apreciaremos que aciertan bastante.

El ejemplo más claro surge cuando estás comprando en un comercio electrónico y te abordan con artículos semejantes al que estás viendo. En Amazon son expertos en esto y suelen ofrecer sugerencias que encajan bastante con el perfil del comprador y el tipo de producto que busca. En muchos otros comercios electrónicos usan estrategias similares, con mayor o menor acierto. Sin embargo, los sistemas de recomendación van más allá de las simples ventas. Los encontramos en Google cuando te sugiere búsquedas similares, en Netflix cuando te indican series o películas que podrían gustarte, en Spotify cuando generan las listas de reproducción personalizadas etc… De hecho, los sistemas de recomendación son una de las aplicaciones más usadas dentro del Machine Learning y que mejores resultados ofrece.

Índice

Cómo funcionan los sistemas de recomendación con Machine Learning

Como todos los sistemas de Machine Learning, para conseguir un buen algoritmo de recomendación los ordenadores se basan en juegos de datos recogidos. Por tanto, para hacer funcionar estos sistemas y acertar en las predicciones, es importante contar con un buen banco de datos y que el propio algoritmo sea capaz de evolucionar en el aprendizaje a medida que el sistema se usa.

Existen diversos modelos de recomendación. Algunos pueden ser tan sencillos como ofrecer los productos más vendidos, o las películas más visualizadas. En algunos casos estos rudimentarios sistemas podrán acertar, pero lo cierto es que cada persona tiene sus gustos y preferencias, por lo que existen otro tipo de motores más eficaces. Los mejores son los que usan los datos de todos los usuarios y los combinan entre sí para encontrar perfiles y según éstos recomendar productos que tengan mayor afinidad con el usuario particular. Una variante de estos sistemas se basa en el tipo de producto en lugar del tipo de usuario, existiendo también herramientas que son capaces de combinar ambos juegos de datos.

Construir un sistema de Machine Learning para recomendación de ventas no es tarea fácil. Se requieren muchas matemáticas y el estudio de diversas variantes de algoritmos, pero afortunadamente existen librerías y frameworks que nos pueden ahorrar la parte complicada, de modo que podamos construir nuestro propio sistema a partir de los datos de entrenamiento que proporcionemos. Un ejemplo de librería muy usada para Machine Learning es Scikit-learn, una biblioteca basada en Python para aprendizaje automático, que incluye diversos tipos de algoritmos listos para utilizar en cualquier programa. Ejemplos de uso de esta librería ya hemos visto en el blog. Si te interesa puedes consultar el artículo sobre clasificación de textos con Machine Learning con Scikit-learn.

Uno de los algoritmos más utilizados para implementar sistemas de recomendación se llama «Nearest Neighbors» o «Vecinos más próximos». Este algoritmo se puede aplicar con la librería Scikit-learn tanto en versión supervisada como no supervisada y consiste en buscar “vecinos” similares, a través de la clasificación de los compradores, para proponerles lo que les ha gustado a ellos.

IaaS para Machine Learning

Obviamente, para construir sistemas de recomendación de ventas con Machine Learning necesitamos de una plataforma de desarrollo y ejecución de la solución y en muchos casos, elevada capacidad de cómputo y almacenamiento. Hoy gracias al cloud computing es posible contar con toda la infraestructura necesaria como servicio, de modo que disponemos de capacidad de cómputo y almacenamiento prácticamente ilimitado, con inmediata disponibilidad y pagando solamente por el tiempo de uso.

Lenguajes adecuados para hacer este tipo de programas de aprendizaje automáticos son Python y R. Además, existen plataformas que integran todo lo que sería la parte de desarrollo de los sistemas de Machine Learning, con la manipulación de los datos y la ejecución del software. Las más relevantes son:

Ambas plataformas están disponibles en el Servidor Cloud de Arsys mediante una instalación automática realizada sobre cualquier máquina virtual. Si deseamos comenzar con Machine Learning, contar con JupyterLab o RStudio es prácticamente inmediato, ya que está disponible la instalación y configuración de estas herramientas durante el proceso de alta de las máquinas virtuales. Las opciones las encontraremos en la pestaña «Aplicaciones».

Fernando Fuentes

Productos relacionados: