34

Cómo funcionan los sistemas de recomendación de servicios como Netflix o Spotify

19178Puntos

hace 6 años

Todos hemos estado expuestos a los famosos “filtros colaborativos”: cuando estabas comprando online y automáticamente el sitio web te recomienda otro artículo similar, o cuando le diste “me gusta” a algo y de repente te empezaron a salir recomendaciones similares en una red social. Los sistemas de recomendación evalúan patrones de tu comportamiento y de miles de usuarios a la vez para emitir nuevas recomendaciones. Ésta es una de las aplicaciones más comunes de “Machine Learning”, porque te da la sensación de estar navegando en un sitio web programado únicamente para tí.

Machine Learning a nuestro servicio

Aunque los científicos hablan de carros voladores, robots, y reconocimiento de voz avanzado, machine learning no está nada lejos de lo que podemos aprender y crear hoy mismo, de hecho, es uno de nuestro cursos más consultados en Platzi.

La mayoría de sistemas de recomendación de productos usan filtros colaborativos. Estamos en una era donde nosotros como usuarios generamos más información que nunca antes en la historia. Esta información es usada por los servicios que usamos a diario para darnos una experiencia mas personalizada.

Un claro ejemplo de esto es Netflix, ellos usan la información que nosotros generamos para hacernos recomendaciones y mostrarnos categorías y películas según nuestros gustos. Otro ejemplo es Amazon, que hace recomendaciones de productos que nos podrían interesar, basándose en los productos que ya compramos.

Qué es el filtro colaborativo

El filtro colaborativo es una técnica usada por los sistemas de recomendación, se basa en el hecho de que si dos personas X y Y en un mismo sistema tienen gustos similares, entonces recomendarle a la persona X cosas que le gusten a la persona Y será de gran relevancia, en contraste a simplemente darle una opción cualquiera.

Hay una variación de filtro colaborativo que se basa en comparar los items en vez de los usuarios para arrojar los items relacionados, de modo que si un usuario entra a ver un determinado item, le podemos recomendar otro.

Ejemplo de filtro colaborativo

Queremos recomendarle a Pedro otro topic de lectura. Contamos con la información de los usuarios y con unas etiquetas basadas en sus gustos de lectura.

artefotografíacinediseño
PEDROxxx-
PABLO--x-
JUANxxxx

Como podemos observar, Pedro y Pablo solo tienen un item en común: el cine; mientras que Pedro y Juan tienen varios gustos en común. Entonces escogemos a Juan como nuestro usuario similar. Para buscar la recomendación revisamos las etiquetas de ambos, y podemos observar cómo Juan tiene el tag diseño y Pedro no la tiene, la recomendación es entonces el tag diseño.

Retos

Este fue un ejemplo muy sencillo, pero ahora piensa que cada tag tiene como valor un porcentaje de gusto, o que en vez de 3 usuarios, tengamos cientos de miles. También hay que tener en cuenta el contexto, no es lo mismo un like dado hace 10 años que otro hace 5 minutos. Hay ciertas consideraciones que debes tomar en cuenta si quieres implementar filtros colaborativos.

Información inicial

En el momento en que inicias un nuevo proyecto no vas a tener datos de otros usuarios, así que tus recomendaciones no van a ser mejores que hacerlas aleatoriamente, es preferible que evites usar un filtro colaborativo hasta que tengas la suficiente cantidad de información.

Escalabilidad

Como mencionaba anteriormente, entre más usuarios tengas, más complicado será hacer comparaciones de todos los usuarios, así que lo mejor es tratar de representar los gustos de los usuarios de tal forma que sea más fácil compararlos. Por ejemplo: guardar los gustos en una matriz binaria.

Calidad de la información

No toda la informacion es de fiar, se debe escoger con mucho cuidado qué datos nos son útiles y cuáles no.

Si te gusta programar en Python o te gustan las ciencias de datos, en Platzi hemos trabajado para que puedas formarte en ello y des el paso a ciencias de datos en tu carrera. Justamente estamos próximos a lanzar el curso de Machine Learning aplicado a Python en donde podrás explorar y entender familias de modelos de Machine Learning, aplicar algoritmos de Machine Learning con Sciki-Learn y más. Te dejo este link con toda la información.

David
David
davidtoca

19178Puntos

hace 6 años

Todas sus entradas
Escribe tu comentario
+ 2