Los sistemas de recomendación son sistemas de filtrado de información destinados a seleccionar los ítems de la misma que puedan interesar más a cada usuario. En general, los sistemas de filtrado de información tratan de eliminar de forma automatizada los contenidos no deseados o redundantes de un flujo de información antes de presentarlos a los usuarios. El objetivo fundamental de este tipo de sistemas es reducir el impacto de la sobrecarga de información. Generalmente, los sistemas de filtrado comparan el perfil de un usuario con las características de otros usuarios o de los ítems de información para conseguir sus objetivos. Existen gran número de aplicaciones que incorporan la recomendación entre sus funcionalidades, especialmente las de carácter comerciales, entre ellas puede mencionarse Amazon [Amazon 2008] que sugiere libros y otros artículos y MovieLens [Movielens 2008] que propone películas. El problema de la recomendación consiste en estimar valoraciones de los ítems de información que no ha visto un usuario. Normalmente esta estimación se basa en la valoración realizada por ese usuario de otros ítems y en otras informaciones, según la aproximación empleada.
Los sistemas de recomendación suelen clasificarte en tres categorías [Adomavicius 2005]. La primera es la de recomendación basada en contenido, content-based recommendations, en la que se recomienda a los usuarios ítems parecidos a los que prefirieron en el pasado. La segunda categoría es la de recomendaciones colaborativas, collaborative recommendations, en la que se sugiere a los usuarios ítems que eligieron previamente otras personas con parecidos gustos y preferencias. Por último, la tercera categoría es híbrida de las dos anteriores, hybrid approaches, que combinan métodos colaborativos y basados en el contenido. Por otro lado, además de los procedimientos que establecen valores absolutos de valoración, existen otras aproximaciones que consideran valores de preferencia relativos para los usuarios, se trata del filtrado basado en preferencias, preferente-based filtering.
En los sistemas de recomendación basados en el contenido, la utilidad de un ítem para un usuario se estima a partir de los grados de utilidad asignados por el usuario a otros ítems que se
consideran similares al primero. Este tipo de recomendación está basado en el campo de recuperación de información y en el de filtrado de información. Debido al los avances recientes en estos dos campos y la importancia de varias aplicaciones basadas en texto, muchos sistemas basados en contenido se centran en la recuperación de ítems que contienen información textual, como documentos, sitios Web y mensajes de noticias Usenet. En estos sistemas, la mejora sobre los sistemas de recuperación de información está en el empleo del perfil del usuario como instrumento de filtrado, aprovechando la información sobre sus gustos, preferencias y necesidades.
El procedimiento básico que se sigue en los sistemas de recomendación basados en contenidos consiste en establecer un perfil de los ítems, que son un conjunto de atributos que los caracterizan [Adomavicius 2005]. Comparando estos perfiles, el sistema debe determinar si los ítems son adecuados o no para incluirlos en las recomendaciones. En el caso más habitual de contenidos asociados a textos, los ítems suelen expresarse en términos de palabras clave. La importancia de una palabra en la descripción de un ítem se indica mediante un peso que puede establecerse de distintas formas. El mecanismo más conocido para asignar pesos a las palabras en un documento dentro de una colección en el ámbito de Recuperación de Información, consiste en considerar la frecuencia de las palabras en el documento y en el conjunto de la colección, de modo que se asignen mayores peso a las palabras que son más frecuentes en el documento y menos en la colección. De este modo, como se hace también en Recuperación de Información, los ítems se representan por vectores de pesos de palabras, que pueden compararse entre si para determinar su parecido. El procedimiento más habitual para establecer el grado de similitud es determinar la distancia entre los vectores, que viene dada por el coseno del ángulo que forman. Sin embargo, esta no es la única aproximación propuesta para determinar la similitud entre ítems, entre las alternativas formuladas pueden mencionarse los clasificadores Bayesianos y varias técnicas de aprendizaje automático.
Existen varios problemas asociados con los sistemas de recomendación basados en contenido [Adomavicius 2005]. El primero de ellos es un par de limitaciones: una es la necesidad de que los ítems estén en un formato que permita su comparación automática, o que tengan asociada información adecuada para ello, lo que complica el tratamiento de material multimedia; y la otra limitación es que no se puede distinguir dos ítems distintos que tienen exactamente la misma caracterización. El segundo problema es la demasiada especialización, por la que los sistemas no pueden recomendar ítems que no se parezcan a otros ítems ya valorados por los usuarios, este inconveniente se trata de manejar en ocasiones introduciendo cierto grado de aleatoriedad en la recomendación, utilizando algoritmos genéticos por ejemplo. De forma parecida, los sistemas tampoco pueden recomendar ítems que son demasiado parecidos a otros que el usuario
ha visto anteriormente. Por último, el tercero de los problemas se produce cuando hay un usuario nuevo en el sistema y no se tiene constancia de los documentos que le interesan.
En los sistemas de recomendación colaborativos, la utilidad de un ítem para un usuario se estima a partir de los grados de utilidad asignados a dicho ítem por otros usuarios que son considerados similares al primero. Según el algoritmo empleado para la recomendación los sistemas de este tipo pueden clasificarse en dos grupos [Adomavicius 2005]: por un lado los basados en memoria o también llamados heurísticos, memory-based o heuristic-based, que hacen predicciones sobre la utilidad de los ítems partiendo de la experiencia obtenida analizando las valoraciones previas realizadas por los usuarios; y por otro lado los basados en modelo, model-based, que emplean las valoraciones generadas por los usuarios previamente para aprender y establecer modelos con los que predicción las valoraciones. Sin embargo, existen aproximaciones que combinan ambas modalidades en algunos sistemas.
La aproximación heurística o basada en memoria para la recomendación colaborativa emplea algoritmos empíricos para realizar predicciones sobre la utilidad de los ítems para los usuarios, agregando las valoraciones realizadas anteriormente por otros usuarios parecidos a los primeros. Existen diversas formas de llevar a cabo dicha agregación, que puede ser un simple promedio, pero en la mayoría de los casos tiene en cuenta la similitud entre los usuarios de algún modo. Se han propuesto distintos procedimientos para establecer la similitud entre dos usuarios, en la mayoría de los casos se establece comparando la valoración realizada por ambos sobre los mismos ítems. Las dos aproximaciones más populares [Adomavicius 2005] son la basada en correlación, correlation-based, y en el coseno, cosine-based. En el primer caso la similitud suele establecerse mediante el coeficiente de correlación de Pearson. En el segundo caso, los usuarios suelen representarse como vectores en un espacio multidimensional y la similitud medirse por el coseno del ángulo que forman, aunque existen diversas modificaciones del procedimiento base dirigidas a conseguir mejoras en el rendimiento.
Existen diversas aproximaciones para los sistemas basados en modelo para la recomendación colaborativa [Adomavicius 2005]. Algunas aproximaciones proponen el empleo de técnicas probabilísticas para el filtrado colaborativo, otras emplean procedimientos encuadrados en el marco del aprendizaje automático, y otras plantean soluciones basadas, por ejemplo, en modelos Bayesianos, en regresión lineal o también en modelos de máxima entropía.
Los sistemas de recomendación colaborativos puros no tienen algunos de los inconvenientes de los sistemas basados en contenido, en particular los problemas derivados de la incapacidad de estos sistemas para recomendar contenidos que no son similares a los ya vistos por los usuarios. Sin embargo, los sistemas colaborativos siguen teniendo problemas con los nuevos usuarios, puesto que necesitan aprender sus preferencias a partir de sus valoraciones previas para poder
hacer predicciones. Se han propuesto distintas técnicas para tratar mejor este inconveniente, como integrar procedimientos basados en contenidos y colaboración, considerar la popularidad de los ítems, su entropía, la personalización de los usuarios o combinaciones de unas y otras. Además, los sistemas colaborativos tienen dos nuevos problemas [Adomavicius 2005]. El primero se produce cuando se incorpora un nuevo ítem, puesto que hasta que el nuevo elemento es valorado por un número considerable de usuarios el sistema no puede recomendarlo. El segundo problema particular de la aproximación colaborativa es la producida por la escasez de usuarios, puesto que es necesaria una masa crítica de ellos para que el sistema pueda funcionar correctamente. El empleo de información sobre el perfil del usuario puede servir para superar este inconveniente, para el que se han propuesto otras soluciones. Los sistemas de recomendación híbridos [Adomavicius 2005] combinan los métodos de basados en contenido y basados en colaboración, con la intención de evitar algunas de las limitaciones de ambas aproximaciones. Se han planteado varios modos de combinación de dichos métodos en un sistema. Una posibilidad es implementar los métodos basados en colaboración y en contenido por separado y combinar sus predicciones. Otra alternativa consiste en incorporar algunas características del mecanismo basado en contenido en la aproximación colaborativa. También se puede hacer a la inversa e integrar características del mecanismo colaborativo en la aproximación basada en contenido. Por último, se ha propuesto la opción de construir un nuevo modelo unificado y único que incorpore ambas aproximaciones.
Una aplicación interesante de los sistemas de recomendación es la Navegación Colaborativa, que permite obtener información de los movimientos de una comunidad en el hiperespacio para facilitar la navegación de sus miembros en él. La búsqueda de información en la Web consume mucho tiempo y puede llegar a ser frustrante por la gran cantidad de información y recursos accesibles. La Navegación Colaborativa en la Web puede mejorar la manera de encontrar y manejar los contenidos disponibles, gracias a la información sobre ellos obtenida de forma automática o por otros usuarios dispuestos a compartirla.
Barra presenta en [Barra 2002] un proyecto en desarrollo, denominado GAS (Group Adaptative System) que permite la navegación colaborativa en la Web. El objetivo de dicho proyecto consiste en suministrar información que se adapte automáticamente a grupos dinámicos de usuarios. Para ello se tienen en cuenta: por un lado, la estructura de la Web, utilizando el algoritmo CLEVER [Chakrabarti 1998] y otros procedimientos [Kleinberg 1998, 1999]; y, por otro lado, las interacciones de los usuarios cuando navegan por ella. La información obtenida por ambos medios se reúne en un entorno colaborativo, que ofrece a los usuarios un área de información consistente adecuado a los intereses y actividades del grupo. En resumen, GAS es un sistema que permite a los usuarios realizar navegación colaborativa asíncrona, combinando
recursos descubiertos por un grupo de usuarios y sugerencias obtenidas aplicando el algoritmo CLEVER para proporcionar recomendaciones al grupo.
La ventaja obtenida de las actividades desarrolladas por otras personas del grupo son varias. Por un lado, permite el ahorro del tiempo necesario para encontrar en la Web información relevante gracias al aprovechamiento de las navegaciones y selecciones realizadas por otros, por otro, obtener recomendaciones de información relevante basada en otras opiniones y, también, utilizar la navegación por la Web como otro canal de comunicación.
La utilización del algoritmo CLEVER permite obtener información no sólo basada en las páginas Web recomendadas por el grupo, sino también en la estructura propia de las páginas. En este algoritmo una consulta -el resultado de una consulta a un motor de búsqueda basado en texto- determina un sub-grafo de nodos -páginas HTML- y vínculos -enlaces HTML- ampliado con varios nodos cercanos. En particular, el algoritmo comienza evaluando un primer grupo de páginas con ayuda de un motor de búsqueda convencional, incrementando el conjunto inicial con nuevas páginas apuntadas desde estas páginas o que apuntan a ellas. Este proceso es repite varias veces.
Kleinberg [Kleinberg 1998, 1999] ha desarrollado un grupo de herramientas algorítmicas para extraer información de estructuras enlazadas, demostrando su efectividad en una variedad de contextos dentro de la World Wide Web. En particular se enfocaron en la utilización de enlaces para analizar una colección de páginas relacionadas de una manera amplia con un tema, y descubrir la página más relevante en ese tema. La calidad de los métodos de búsqueda necesariamente requiere de una evaluación humana, debido a la subjetividad inherente en el concepto de relevancia. Mejorar la calidad de los métodos de búsqueda en la Web es un problema amplio e interesante que desde muchas perspectivas tiene que ver con la eficiencia y la facilidad de almacenje del algoritmo empleado.
Kurhila presenta en [Kurhila 2002] una experiencia interesante en la que se implementa un sistema para seguir la trayectoria de los usuarios entre páginas Web, en un entorno colaborativo de enseñanza basado en navegación social que se llama EDUCO. El sistema presenta a cada usuario la ubicación de los demás en tiempo real y permite el intercambio de opiniones mediante charlas y comentarios que se pueden asociar a las páginas accedidas. Además muestra mediante gráficos la popularidad de los sitios visitados por toda la comunidad. Para ello el sistema se comporta como un PROXY, que intermedia entre la comunidad de usuarios y las fuentes Web, sustituyendo los enlaces de las páginas por vínculos que pasan a través de él, y los clientes utilizan unos módulos especiales que mantienen abierto una conexión permanentemente por donde el servidor envía las actualizaciones del estado del sistema sin retardos.
Cantador presenta en [Cantador 2007] un mecanismo para la identificación de comunidades de interés a partir de los gustos y preferencias manifestados mediante perfiles basados en ontologías. Las comunidades identificadazas se emplean en un sistema de recomendación de elementos anotados para ilustrar su utilidad. Relacionado con este artículo está el trabajo de Castells [Castells 2005] que indaga en el empleo de técnicas de personalización basadas en ontologías, para mejorar la fiabilidad en sistemas de recuperación de la información procurando respetar la intimidad de los usuarios y mantener el control de los mismos sobre el proceso.