Introducción a Sistemas de Recomendación

En el siguiente artículo hablaremos de los sistemas de recomendación, unas de las aplicaciones de la Inteligencia Artificial más presentes en nuestro día a día. Quién no abre su cuenta de Netflix, Amazon o Youtube todos los días y disfruta  (o padece) de las recomendaciones de nuevo contenido o productos. Desde luego estos sistemas funcionan en todas las plataformas de contenido o venta online, estando en auge y en constante evolución, debido a los grandes beneficios que reportan. Por poner un ejemplo, en Netflix más de un 80% de las visualizaciones que se realizan, son recomendaciones del sistema.

Los sistemas de recomendación son sistemas de filtrado de información automática. Estos sistemas nos permiten paliar la sobrecarga de información con la que contamos hoy en día en la red. Más en concreto, los sistemas de recomendación realizan sugerencias a los usuarios sobre elementos que pueden ser de su interés, descartando aquellos que no lo son.

Los sistemas de recomendación varían mucho según los ítems que recomienden y, sobre todo, según los usuarios a los que estén dirigidos. Aún así, todos cumplen las siguientes características:

  • Existe un conjunto de usuarios a los que realizar las recomendaciones.
  • Se dispone de un conjunto de ítems que recomendar.
  • Se tienen registradas las valoraciones de los usuarios sobre los ítems que consumen. Estas valoraciones pueden realizarse manera explícita: puntuaciones sobre un ítem, reacciones sobre un post o noticia…; o de manera implícita: monitorización o reacciones indirectas del usuario que pueden inferir que el ítem que se le recomendó es de su agrado, por ejemplo darle a ver el siguiente capítulo en una serie en Netflix.

ORIGEN DE LOS SISTEMAS DE RECOMENDACIÓN: De la web 1.0 a la web 2.0

Para conocer los orígenes de estos sistemas no tenemos que remontarnos mucho en el tiempo, basta remontarnos unos años, a mediados de la década de los 2000. Y es que, la aparición de estos sistemas está estrechamente ligada al nacimiento de la Web 2.0 y al cambio de paradigma del marketing en Internet que ello supuso.

En un inicio, el marketing en internet se producía de manera netamente unidireccional. Las páginas webs de las empresas eran meros catálogos donde se presentaban sus productos o servicios. Esto relegaba a los usuarios a ser meros consumidores de información, como mucho su interacción se limitaba a los comentarios en los “libros de visitas”.

Con la aparición de las webs de alojamiento de videos, tipo Youtube, blogs, wikis y, sobre todo, las redes sociales, el usuario pasó de ser un mero consumidor de información a interactuar de forma activa con el contenido que consumía. De esta manera, comenzó a generar una información muy valiosa para las empresas, que empezaron a contar con feedback directo de los usuarios sobre los contenidos que publicaban.

Así nacieron los Sistemas de Recomendación. Estos sistemas recogen los feedback de los usuarios y los utilizan para realizar recomendaciones de ítems que creen que van a ser de su agrado.

TIPOS DE SISTEMAS DE RECOMENDACIÓN.

Existen muchos tipos de sistemas de recomendación, dependiendo mucho de los ítems que se quiera recomendar, de la forma en que los usuarios interactúan con esos ítems y de la información del usuario que utiliza el sistema para realizar las recomendaciones. En este artículo vamos a centrarnos en las que consideramos más importantes y utilizadas.

Colaborativos

Se llaman colaborativos porque el sistema realiza las recomendaciones basándose en las valoraciones positivas de usuarios con un perfil de gustos similar al que se quiere recomendar, el llamado usuario activo.

A la hora de calcular el grupo de usuarios afines se pueden utilizar dos técnicas:

  • Estrategias basadas en memoria o vecinos: son las que utilizan las valoraciones de los usuarios vectorizadas, la llamada matriz de valoraciones, para calcular la similitud entre usuarios o ítems. Si se tienen en cuenta a los usuarios, sistemas usuario-usuario, el sistema buscará los usuarios con vectores de valoración de ítems más próximos. Por el contrario, teniendo en cuenta los ítems, sistemas ítem-ítem, el sistema buscará los ítems con vectores de valoraciones más próximos. La técnica para calcular los vectores más próximos se llama técnica de los k-vecinos. Teniendo como input la matriz de valoraciones se calculan los k-vecinos más próximos utilizando diferentes métricas como distancia coseno de los vectores, correlación de Pearson, diferencia cuadrática media… Estas recomendaciones se realizan online, teniendo en cuenta toda la información disponible, con lo que el coste computacional es enorme.
  • Basadas en modelos: se utiliza la matriz de valoraciones para crear diferentes modelos con algoritmos de “machine learning” para realizar la recomendación. Se toman muestras, conjunto de entrenamiento, de la matriz de valoraciones para entrenar los modelos de manera offline, reduciéndose así el coste computacional. Los algoritmos utilizados pasan desde redes neuronales, SVD, algoritmos genéticos…

Una gran ventaja de este tipo de sistemas de recomendación es que no necesitan guardar un gran catálogo de información, simplemente el vector de valoraciones de cada usuario. Permiten realizar recomendaciones difíciles de analizar. A un usuario se le pueden recomendar con éxito ítems de muy diferentes características a las que había reaccionado positivamente, creando una sensación de novedad al usuario.

Sin embargo, los sistemas colaborativos no funcionan en sistemas poco maduros,  se necesitan vectores de valoración de gran tamaño para que las recomendaciones sean precisas, por no hablar del gran coste computacional de los algoritmos de cálculo de usuarios parecidos. También, estos sistemas tienen problemas a la hora de recomendar los nuevos ítems del sistema, y funcionan mal con los nuevos usuarios del sistema. Otro problema, es que dependen 100% de las valoraciones de los usuarios, si las valoraciones no se han realizado de forma rigurosa nuestro sistema no funcionará nunca de una manera óptima.

Filtrado basado en contenido:

En los sistemas de recomendación basados en contenido el sistema recomienda ítems al usuario basándose exclusivamente en su experiencia pasada. Se recomiendan ítems de características similares a los que reaccionó positivamente el usuario activo.

Para ello, primero se analiza el contenido de los ítems del sistema, sacando palabras clave de cada uno de ellos, las cuales se van ponderando, ya que no todas las etiquetas tienen el mismo peso en las recomendaciones. Con las palabras clave de los ítems que han obtenido un feedback positivo del usuario se elabora su perfil. Con la información del perfil, se filtran los ítems no recomendados previamente al usuario que encajan con su perfil y que el sistema cree que van a ser de su agrado.

La recomendación basada en contenido reduce la subjetividad de las opiniones de otros usuarios y el mal uso que puedan hacer de las valoraciones. Además, este tipo de sistemas de recomendación resuelven el problema de los ítems nuevos en el sistema, al tener el perfil del usuario definido, basta con comprobar si el contenido de ese nuevo ítem encaja. Sin embargo, aparece el problema del nuevo usuario, que, al no haber valorado ningún ítem carece de un perfil definido, y por lo tanto, no puede recibir recomendaciones. Al igual que en los filtrados colaborativos se sigue necesitando un sistema muy maduro para que el sistema empiece a funcionar con exactitud. Otro problema de estos sistemas es que pueden caer en la sobre especialización. El usuario queda limitado a recomendaciones similares a las de su perfil.

Filtrado basado en conocimiento:

En estos sistemas se utiliza información proporcionada por el usuario sobre sus preferencias o restricciones de manera directa, así como el conocimiento que se pueden obtener sobre los ítems para realizar las recomendaciones. Son muy útiles en mercados muy cambiantes en los que los gustos del pasado reciente no son válidos en el presente. Este tipo de sistema resuelven los problemas de los dos tipos de recomendadores anteriores frente a la aparición de nuevos usuarios e ítems.

Filtrado demográfico:

En los sistemas de recomendación con filtrado demográfico se clasifican a los usuarios según un perfil demográfico. Las recomendaciones se hacen basándose en las cualidades de este perfil, de una manera muy similar cómo actúan los sistemas basados en contenidos, pero las similitudes son calculadas según cualidades demográficas en lugar de valoraciones de los diferentes ítems.

Híbridos:

Debido a la complementariedad de las virtudes y debilidades de los tipos de sistemas de recomendación descritos con anterioridad, lo más habitual en la realidad es combinarlos.

Es muy normal pedir a un usuario que se da de alta en un sistema que cree un perfil de usuario. De esta manera se le podrán hacer recomendaciones en base a sus cualidades demográficas hasta que el número de feedback de ítems sea suficiente para poder realizarle recomendaciones con filtrado colaborativo o basado en contenido.

También es muy normal que sistemas que utilizan filtrado colaborativo utilicen un sistema basado en contenido para poder recomendar los nuevos ítems que llegan al sistema.

CONCLUSIÓN

Teniendo en cuenta que hoy en día casi la inmensa mayoría de las plataformas online cuentan con sofisticados sistemas de recomendación, y que son una base importante de su marketing, estos sistemas se han convertido en sistemas muy complejos y elaborados. El artículo de hoy solo pretende ser una introducción e intentar explicar la base y fundamentos de los mismos.

En siguientes artículos profundizaremos en los diferentes tipos de sistemas que hemos visto en este artículo y veremos algún ejemplo de su funcionamiento.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*
*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.