Sistemas de recomendación de contenido con Machine Learning

by Andrés González

Los sistemas de recomendación de contenidos se han hecho muy populares en los últimos años. Entre los ámbitos más extendidos se encuentran las recomendaciones de productos en tiendas online, películas, vídeos, música, libros, productos o recomendaciones de perfiles a los que seguir en redes sociales. En este artículo analizamos aspectos importantes a la hora de seleccionar o implementar un sistema de recomendación y el papel del Machine Learning en este ámbito.

¿Qué es un sistema de recomendación?

Un “recomendador” es un sistema que selecciona un producto que, si se compra, maximiza el valor tanto para el comprador como para el vendedor en un determinado momento del tiempo. Para hacer las recomendaciones, el sistema analiza y procesa información histórica de los usuarios (edad, compras previas, calificaciones…), de los productos o de los contenidos (marcas, modelos, precios, contenidos similares…) y la transforma en conocimiento accionable, es decir, predice qué producto puede ser interesante para el usuario y para la empresa. Los recomendadores, además, tienen cierto nivel de autonomía a la hora de presentar las recomendaciones al usuario final.

Desde un punto de vista más técnico, los recomendadores habitualmente son de dos tipos: los filtros colaborativos y los filtros  basados en contenido. En este contexto, un filtro es el algoritmo matemático que “decide” cuál es la recomendación óptima basado en los datos que le entreguemos.

Los filtros colaborativos (collaborative filtering)

Los filtros colaborativos generalmente basan su lógica en las características del usuario. Los datos que se tienen del usuario se convierten en el centro de un filtro colaborativo. El sistema analiza las compras anteriores, las preferencias, las calificaciones que ha dado de otros productos, el importe medio de las compras, etc. y busca otros usuarios que se parecen a él y que han tomado decisiones parecidas. Los productos que han tenido éxito con usuarios similares, seguramente también le interesarán al nuevo usuario.

Los filtros basados en contenido (content-based filtering)

Los filtros basados en contenido tienen el producto como base de la predicción, en lugar de tener al usuario. Es decir, utiliza las características del artículo (marca, precio, calificaciones, tamaño, categoría, etc.) para hacer las recomendaciones.

Veamos un ejemplo de filtro basado en contenido que usa Machine Learning para hacer las recomendaciones. Pensemos en un sistema de recomendaciones de un servicio de música en streaming. El “producto” en este caso serían las canciones. Los datos de los que disponemos para cada canción son por ejemplo el grupo, el cantante, la discográfica y el género (pop, rock, clásica, banda sonora…). Para enriquecer más al sistema, también vamos a valorar las calificaciones que el usuario ha hecho sobre los temas – calificaciones explícitas, como las puntuaciones con estrellas, o implícitas, como las veces que ha escuchado el tema –, así como las características propias del usuario (edad, sexo y país).

Estos datos, centrados en el producto y aliñados con datos del usuario, serán la materia prima de este sistema de recomendación. Veamos cómo se hace la predicción. El Machine Learning es una disciplina que hace predicciones en base a preguntas a los datos. La pregunta que debe responder en este caso es: este usuario al que tengo que hacer una recomendación y que tiene estas características, este comportamiento y que ha calificado previamente estas canciones, ¿qué calificación le daría a esta canción, que es del grupo X, de la discográfica Y y de género Rock? La respuesta del filtro (que hemos «entrenado» con los datos de cientos de miles de usuarios del sistema) nos daría un número entre 0 y 10, basado en las calificaciones que les han dado otros usuarios que se parecen a él. La pregunta se debe repetir con todas las canciones que se incluyan en el catálogo de recomendaciones y se obtendrá la predicción de las calificaciones de todas ellas. De todas las respuestas, las canciones que obtengan mejor nota serán las que se presenten al usuario.

Esta es una aproximación a un sistema de recomendaciones. Existen otras que se pueden valorar en función del tipo de producto que se esté analizando y de los objetivos de negocio. En todo caso, más allá del tipo de filtro y su diseño, hay cuestiones importantes que se deben tener en cuenta.

Asegúrate de que realmente necesitas un recomendador

Si el catálogo de productos es pequeño o si tienes pocos clientes, seguramente no necesitas un recomendador. La rentabilidad de un recomendador crece exponencialmente a medida que crecen tanto el catálogo como el número de clientes.

La experiencia del usuario es más importante que el algoritmo

Asegúrate de que el usuario ve las recomendaciones en el momento y sitio adecuado. Definir por adelantado su ubicación no es algo que se pueda generalizar, cada tipología de producto tiene sus necesidades. Una web de vídeos como youtube ofrece recomendaciones principalmente en tres momentos: al acceder a la página principal, cuando termina de reproducirse un vídeo y en la zona a la derecha del reproductor. En cambio en una web de comercio electrónico puede ser más eficiente situarlas en la parte inferior del producto que se está viendo y al final del proceso de compra. Lo imprescindible es que se muestren en el flujo de navegación cuando al usuario le sea más útil recibirlas. El A/B testing es una buena técnica para tomar este tipo de decisiones.

Las recomendaciones deben tener un sentido estratégico

¿La mejor recomendación para un cliente es también la mejor para el negocio? No siempre. Desde el punto de vista del cliente, es diferente una buena recomendación que una recomendación útil. A menudo las recomendaciones con máxima probabilidad de ser correctas son demasiado obvias como para serle útiles. En ocasiones es mejor hacer recomendaciones arriesgadas que ofrezcan productos desconocidos para el cliente.

En cambio desde el punto de vista del negocio es necesario hacer un balance entre las ganancias a corto plazo y el retorno a largo. La lógica de negocio debe estar inserta en el sistema de recomendación para poder ajustar los valores a los objetivos de negocio. Contar con valores como la rentabilidad del producto como parámetro de decisión puede ser un enfoque de partida.

Balancea adecuadamente los datos y los algoritmos

La calidad y cantidad de los datos es más importante que los algoritmos. Un buen algoritmo con unos datos de poca calidad ofrecerá asimismo recomendaciones de baja calidad. Pero unos buenos datos, con el volumen suficiente y organizados eficientemente, nos darán recomendaciones razonablemente buenas aunque el algoritmo no sea óptimo.

La fase de ingeniería de datos, selección de características, categorización (lo que en inglés se llama feature engineering) es un proceso particularmente importante en cualquier proyecto que implique un análisis masivo de datos para hacer predicciones.

Mídelo todo

Desde las impresiones o la tasa de clic (CTR), pasando por las acciones secundarias, la eficiencia en distintos tipos de dispositivos, el tiempo medio de compra, comparaciones entre usuarios con recomendaciones y sin ellas, precio medio de la compra, número de interacciones totales, tiempo de visualización de vídeos, tasas de rebote, número total de artículos revisados… Todo.

Conclusiones

Un sistema de recomendaciones es mucho más que un algoritmo o un filtro que selecciona productos con más o menos acierto. Podemos dividir un recomendador en 4 partes: la base de conocimiento (la información, los datos), el procesamiento de la base de conocimientos (tecnología, algoritmos, filtros), la analítica y control de negocio (medir todo, estrategia de negocio) y finalmente el interface del usuario.

Para terminar, y ya que estamos en un mundo de datos, pongamos un peso a cada una de ellas:

  • Base de conocimiento – 25%
  • Procesamiento de la base de conocimientos – 5%
  • Analítica y control de negocio – 20%
  • Interface del usuario – 50%

 

Evalúa tu entorno, tu producto, tu negocio, la calidad y cantidad de tus datos, el comportamiento de tus clientes y construye el recomendador adecuado a tus necesidades. Si deseas conocer más sobre el tema, no dudes en ponerte en contacto con nosotros.