En esta entrada vamos a centrarnos en qué es y como funciona un sistema de recomendación y, en especial, los sistemas de recomendación colaborativos. Para ello, comenzamos con la definición de sistema de recomendación, para continuar con sus características y terminar con los sistemas de recomendación colaborativos.
Definición y características de un sistema de colaboración
«Resnick y Varian» ofrecen una primera definición sobre la finalidad de un sistema de recomendación: “Un sistema de recomendación utiliza la opinión de una comunidad de usuarios para ayudar a individuos de esa comunidad más efectivamente identificando contenido que sea de su interés de un conjunto sobrecargado de posibles elecciones.”
Atendiendo a este definición, se puede decir que un sistema de clasificación puede formar parte de la fase minería de datos dentro del KDD. Este sistema utiliza como información un almacén de datos formado por la información de algunos atributos (normalmente la opinión, aunque pueden ser atributos menos subjetivos) de los usuarios que han utilizado el sistema. Al utilizar un nuevo usuario la aplicación e introducir sus atributos, esta identifica qué contenido puede ser de interés para el usuario.
Con una buena aplicación, un sistema de recomendación representa un gran avance, ya que automatiza y optimiza una labor muy complicada pero en ocasiones fundamental, que es pedir una gran cantidad opiniones y utilizarlas para tomar decisiones más acertadas de forma automática. Un sistema de recomendación mejora la efectividad de esta toma de decisión en dos aspectos: automatiza radicalmente este proceso (es decir, es prácticamente trasparente para el usuario y solo debe ofrecer su información) y utiliza la información de muchos usuarios (y al tener en cuenta la opinión de más usuarios será también más efectiva).
Clasificación de los sistemas de colaboración
Fundamentalmente existen dos maneras de enfocar este proceso de toma de decisión. Por un lado, tener en cuenta los gustos de usuarios muy parecidos al nuevo usuario como puede ser, por ejemplo, ver los gustos de personas de una edad y profesión similar al nuevo usuario e informar a este de las actividades que realizan en su tiempo libre. Un sistema que utiliza este enfoque se denomina “Sistema de recomendación colaborativo”. Este tipo de sistemas lo veremos en el siguiente apartado.
Por otro lado, también es posible buscar objetos similares a los que el nuevo usuario se siente atraído. Por ejemplo, a un nuevo usuario le gusta un disco de música, el sistema buscaría un nuevo disco que sea similar a este y se lo ofrecería al nuevo usuario. Los sistemas que utilizan este enfoque se denominan “Sistemas de recomendación basado en contenido”.
Por tanto, sintetizando estos dos tipos de sistema trabajan de la siguiente manera:
- Sistema de recomendación colaborativo: Identifican los gustos de usuarios similares.
- Sistema de recomendación basado en contenido: Identifican objetos (denominados items) similares.
El gran inconveniente de estos dos sistemas de recomendación es la necesidad de crear y mantener una gran cantidad de datos de usuarios y objetos para que funcione de forma efectiva. Conseguir esta base de datos puede ser una tarea muy complicada teniendo en cuenta que se necesita la incorporación de nuevos usuarios reales. Existen otros sistemas de recomendación menos comunes, que no presentan este inconveniente de forma tan acentuada:
- Sistemas de recomendación demográficos: Recomienda objetos basado en el perfil demográfico del nuevo usuario. Ejemplo: Los usuarios al entrar a un sitio web son dirigidos a otros que concuerdan en idioma con su región.
- Sistema de recomendación basado en el conocimiento: Se basan en conocer específicamente el dominio de la aplicación utilizando datos de otros usuarios (haciendo una extrapolación, por lo que no se requiere una gran cantidad de datos) y, de esta manera, determinar las necesidades y preferencias de un usuario.
- Sistema de recomendación basado en la comunidad: Este tipo de sistema utiliza la información de los individuos seleccionados por el usuario, normalmente denominados amigos. Normalmente, un usuario prefiere la opinión de sus amistades antes que de individuos anónimos utilizando, por tanto, un menos número de usuarios. Este tipo de sistemas están, poco a poco, haciéndose más populares gracias al impacto de las redes sociales.
- Sistemas de recomendación híbridos: Utiliza una combinación de dos o más tipos de sistemas de recomendación para solventar los inconvenientes que puede tener uno en particular.
Los sistemas de recomendación colaborativos
Como hemos dicho, esta entrada estará centrada en estos tipos de sistema de recomendación. Su funcionamiento es el siguiente:
Al recibir un nuevo usuario, un sistema de recomendación colaborativo buscará los usuarios más similares a él y le recomendará en base a sus gustos. El problema reside en encontrar a esos usuarios que son más parecidos, los denominados vecinos más cercanos. Para que sea efectivo, antes de comenzar a efectuar recomendaciones con una tasa de éxito relativamente aceptable, el sistema de recomendación ha de recibir una gran cantidad de usuarios con sus correspondientes atributos para que el sistema aprenda sobre ellos.
Características principales de los sistemas de recomendación colaborativos
Los sistemas de recomendación colaborativos usan distintas técnicas o métodos para buscar personas con intereses similares y para ello se basa en tres pilares fundamentales:
- Se necesita una gran cantidad de usuarios: Como se ha comentado, el sistema necesitará de muchos usuarios para emitir juicios con valor. La razón es que, idealmente, cualquier nuevo usuario por muy distinto que sea debe tener atributos parecidos con los atributos de otros usuarios. De otro modo el sistema definiría como usuario más similar uno con atributos radicalmente distinto, emitiendo recomendaciones equivocadas con prácticamente total seguridad, como puede verse en la siguiente imagen:

- Debe haber una manera sencilla de representar sus atributos o gustos al sistema: El sistema debe ser capaz de recoger información de los usuarios de la manera más sencilla posible y esto, en muchas ocasiones, ocurre de forma trasparente para el usuario. En un portal de una tienda online, acceder a un producto u a otro ya puede ser, por si misma, una información valiosa que un sistema puede recoger. Otro ejemplo podría ser el número de reproducciones de una canción, si un usuario ha reproducido muchas veces una canción el sistema puede entender que ese usuario siente predilección por ese estilo o grupo mientras que si una canción ha sido reproducida una única vez, puede deducirse que el usuario escuchó la canción y no se sintió atraído por ella. Por naturaleza las personas son perezosas y no ofrecen esta información por si mismas haciendo que el sistema no funcione correctamente pero recogerla es fundamental.
- El algoritmo utilizado ha de ser capaz de encontrar gente con intereses similares: Esta es la base del sistema, si el algoritmo que realiza la búsqueda de gente no devuelve a los usuarios más similares, el sistema recomendaría objetos aleatorios o con poca fiabilidad.
Problemas de los sistemas de recomendación colaborativos
Partiendo de estos pilares que hemos detallado, los sistemas de recomendación basados en contenido tienen que hacer frente a un conjunto de problemas que han ido apareciendo al hacerse más populares con el paso del tiempo. Los más importantes son los siguientes: la clasificación temprana, la escasez y las “ovejas negras”.
- Problema de la clasificación temprana: Los sistemas de recomendación colaborativa no son capaces de asignar una predicción adecuada sobre un objeto que aparece por primera vez en el sistema ya que ninguno de los usuarios lo ha valorado. Incluso las predicciones que se hagan sobre ese objeto al principio no serán certeras debido a las pocas valoraciones.
- Problema de la escasez: En muchos sistemas, el número de objetos supera con creces la cantidad de valoraciones que un usuario pueda aportar de manera que muchas de estas valoraciones no existirán complicando al sistema encontrar usuarios en los que basar sus recomendaciones.
- Problemas de las “ovejas negras”: En todos los conjuntos de datos aparecen usuarios que no se benefician de las opiniones de otros aun siendo, a priori, similares. Estos se denominan como “ovejas negras”. Sus opiniones no están a favor o en contra de forma consistente con el resto de usuarios haciendo que, en muchas ocasiones, no reciban predicciones acertadas. Este tipo de usuarios siempre aparecerá y es necesario tratar con ellos de forma que su opinión no sea determinante para otros usuarios.
Algoritmos de los sistemas de recomendación colaborativos
Los sistemas de recomendación colaborativos utilizan algoritmos que pueden clasificarse en dos categorías: los algoritmos basados en memoria y los algoritmos basados en modelo
- Algoritmos basados en memoria. Este tipo de algoritmos utilizan la totalidad de los ejemplos para generar una predicción. Cada usuario es parte de un grupo de personas con intereses muy similares. La forma de efectuar las predicciones es identificar esos usuarios, denominados vecinos más cercanos. Un ejemplo de este tipo de algoritmo es la computación de similitud.
- Algoritmos basados en modelo. Estos algoritmos utilizan un modelo, lo que permite que el sistema pueda aprender a reconocer patrones complejos basados en el conjunto de entrenamiento y entonces hacer predicciones cuando llegan nuevos casos en base a esos patrones. En aquellos casos que sean probabilísticos hace una aproximación que calcula el valor esperado de una predicción. Algunos ejemplos de este tipo de algoritmos son: Redes bayesianas, algoritmo TAN-ELR.
Además, como se ha mencionado en el apartado anterior, un sistema de recomendación colaborativo puede combinarse con otros tipos de técnicas de recomendación, como puede ser las basadas en contenido para hacer mejores predicciones o recomendaciones. Esto da lugar a los denominados sistemas de recomendación híbridos. El motivo de esta combinación es solventar las deficiencias que ofrece cada sistema en singular.
Deja una respuesta