Te has puesto a pensar, cómo tu tienda online favorita te ofrece artículos en oferta que te llaman la atención y acabas comparándolos. O cuando añades productos a tu carrito de mercado y te informan que otras personas han adquirido ese mismo artículo y te das cuenta que efectivamente son accesorios que te darían otras capacidades o harían ver mejor el producto que vas a comprar.
Otro caso muy común son los servicios de películas, series y libros online que te recomiendan y probablemente te gustarían; en algunos casos probaste y realmente llamaron tu atención.
Lo anterior es un ejemplo del uso que hacen estas compañías con nuestra información y cómo cada click que das en los vínculos de las páginas que visitas o cada vez que compras en un gran supermercado, al pagar asocias tu identificación para algún beneficio adicional; así mismo la encuesta que has diligenciado sobre tus gustos, cada like, retweet, o búsqueda, entre otras, son acciones que permiten registrar tus hábitos y gustos para de este modo, hacerte recomendaciones, ofertas y por qué no en algunos casos, hasta decirte quién podría ser tu media naranja.
La idea no es preocuparte del por qué tu información está tan expuesta, -éste no es el tema del artículo-, mejor es entender qué utilizan estos sitios para que en buena parte de las veces, dé en el blanco con tus gustos.
Lo que utilizan todos los sitios para ofrecerte esta personalización de sus servicios, se denomina: “sistemas de recomendación”, los cuales hacen uso de un subconjunto de algoritmos que pertenecen al Machine Learning, es decir, “Aprendizaje automático”.
Entonces te preguntarás, qué es el Machine Learning
El aprendizaje automático es un campo amplio y se puede definir como la construcción y el estudio de métodos para aprender a partir de datos y realizar predicciones sobre estos. Esta área es bastante amplia e implica herramientas e ideas desde varios dominios, incluyendo la informática, la probabilidad, la estadística y el álgebra lineal.
Otra definición que es muy aceptada acerca del aprendizaje automático es la siguiente:
“El aprendizaje automático es el proceso que le da a las computadoras la habilidad de aprender sin ser explícitamente programadas” . – A.L Samuel-
Aprendizaje supervisado
Existen varios tipos de aprendizaje automático, pero me centraré en el aprendizaje supervisado. En este se utiliza un conjunto de ejemplos de los cuales conocemos la respuesta, y lo que deseamos es, que a través del algoritmo, cuando tengamos nuevos objetos que no poseen la respuesta, podamos aproximarnos a indicarla de acuerdo a los datos que ya poseemos.
Por ejemplo, podemos contar con información de apartamentos (ubicación, número de habitaciones, área, etc.) y su valor (respuesta), (ejemplos +respuesta), y por medio de estos datos se podría predecir el valor de nuevos apartamentos.
Sistemas de recomendación
Los sistemas de recomendación utilizan las valoraciones y los gustos de los usuarios y lo que buscan es predecir el ranking que el usuario daría a nuevos elementos, basándose en la relación o acercamiento del usuario con este elemento o con el ambiente social del mismo usuario.
Estas valoraciones o gustos lo que entregan al sistema de recomendación es el perfil del usuario, y para la construcción de este perfil podemos hacerlo de dos formas:
1-Explícita: cuando le solicitamos al usuario que de una puntuación a un ítem y es un valor discreto entre un máximo y un mínimo. Ejemplos:
- Solicitar al usuario que pondere un conjunto de temas de una lista de favoritos
- Presentar al usuario dos temas y solicitarle que seleccione uno de ellos
- Solicitar al usuario que cree una lista de temas de su preferencia
2-Implícita: La segunda forma es recoger las valoraciones implícitamente, extrayendo la información pertinente de las acciones del usuario. Ejemplos:
- El tiempo que pasa leyendo un artículo
- Los enlaces que sigue
- La cantidad de veces que se escucha una canción
- Guardar un registro de los temas que el usuario ha visto en una tienda online
- Obtener un listado de los artículos que el usuario ha seleccionado o visto en su computadora.
Una vez tenemos la información del usuario, lo siguiente es utilizar el algoritmo que a través de los ejemplos que ya poseemos podamos empezar a hacer recomendaciones. Existe una gran variedad de estos algoritmos; uno de los más usados para sistemas de recomendación es el algoritmo Nearest Neighborhood (Acercamiento al Vecino más Cercano). Lo que busca este algoritmo para dar recomendaciones a través de diferentes fórmulas estadísticas, es hallar la correlación entre los datos y encontrar los vecinos con mayor correlación, y por otras técnicas poderle dar peso y encontrar cuáles vecinos nos permitirán inferir qué recomendarle a un usuario específico.
Obviamente no son tan sencillos estos algoritmos y como he comentado antes, existen gran cantidad de estos para realizar recomendaciones; lo bueno es que esta necesidad de poder darle esa personalización a los productos o servicios que ofrezcas al público, ha aumentado tanto en los últimos años, que ya muchas organizaciones han dispuesto herramientas que nos permiten facilitar el uso de los filtros colaborativos y del Machine Learning en general. Pues gran parte de estas herramientas no solo tienen los filtros colaborativos, sino una gran gama de algoritmos que aplican a diversidad de necesidades.
Aunque es posible desarrollar nuestras propias herramientas e implementar el algoritmo que necesitemos, el tiempo y el conocimiento necesario para poder lograrlo es bastante alto.
Estas son algunas de las alternativas que en la actualidad he podido revisar y que son de gran utilidad tanto para fines académicos, como para implementar en una idea de negocio.
No indicaré cuál sea mejor que otra porque sí están muy ligadas al gusto y el conocimiento de cada quien.
Oryx : //oryx.io/
Lista de algoritmos que tiene implementados: Collaborative filtering/recommendation, Classification and Regression, Clustering.
Apache Mahout: https://mahout.apache.org
Lista de algoritmos que tiene implementados:
https://mahout.apache.org/users/basics/algorithms.html
Azure Machine learning: //azure.microsoft.com/en-us/documentation/services/machine-learning/
Lista de algoritmos que tiene implementados:
https://azure.microsoft.com/en-us/documentation/articles/machine-learning-algorithm-cheat-sheet/
La cantidad de información que existe sobre aprendizaje automático es muy alta, por eso tomé una pequeña parte de todas las cosas geniales que se pueden hacer con estas herramientas y el valor que puede aportar a una idea o proyecto, es demasiado alto y compensa su curva de aprendizaje. Pero lo mejor es tratar de animarse a jugar y aprender de éstas, ya que no sólo se queda en predecir gustos de alguien, también tiene muchos otros usos y te invito a descubrirlos; porque vivimos ya en un mundo en el cual generamos datos a cada instante; aprovecharlos y entender en qué y cómo utilizarlos pueden dar un plus a nuestro trabajo y lo que podemos ofrecer a los clientes.