Publicidad y sistemas de recomendación
-
Upload
pedro-camacho -
Category
Documents
-
view
213 -
download
0
description
Transcript of Publicidad y sistemas de recomendación
UNIVERSIDAD INTERNACIONAL DE LA RIOJA
TRABAJO FINAL MASTER EN DIRECCIÓN E INGENIERÍA DE SITIOS WEB
Publicidad y Sistemas de Recomendación Web
Autor: Pedro Camacho Ortega Director: Oscar Sanjuan Martínez
Madrid 2012
Resumen
Nos encontramos en una situación en la que no es suficiente contar con un gran
almacén de información, tal y como se configura actualmente Internet. Nos hace falta
contar con mecanismo que faciliten la recuperación de información y nos recomienden
qué es lo mejor para cada uno de los usuarios que acceden a la red de redes.
Los sistemas de marketing son pioneros en tratar de enfocar, personalizar,
clasificar y buscar lo que más se adecúa a cada tipo de persona. La tecnología brinda
la posibilidad de conseguir que lo depositado en Internet sea comprensible no solo a
seres humanos, sino también a procesos automáticos que naveguen por nosotros, con
nuestras preferencias y características individuales, en busca de nuevo conocimiento.
La web semántica dentro del paradigma de la web 3.0 es el escenario donde
todo esto se hace posible. En este trabajo se explora la situación actual de estas
tecnologías y se realiza un prototipo cuyo escenario está acotado a la utilización de
una web social por un agente automático para conseguir clasificar al usuario
protagonista del experimento.
Palabras Clave
Ontología, taxonomía, Web semántica, Web social, Web extendida, sistemas de
recomendación, filtrado colaborativo, marketing, agente automático, perfil de usuario.
.
Abstract
We are in a situation where is not enough to have a large store of information,
as nowadays is configured Internet. We need to have mechanism to facilitate
information retrieval and recommend us what is the best for each of the users accessing
the Net.
The marketing systems are pioneers in trying to focus, customize, sort and find
what is most suited to each kind of person. Technology gives us the possibility of what it
is posted on Internet can be not only understandable to humans, but also automatic
processes which waves for us, with our preferences and individual characteristics, in
search of new knowledge.
This paper explores the current status of these technologies and a prototype is
made. This prototype has a limited scenario for using a social web by an automatic
agent to achieve the classification of the main character user of the experiment.
Keywords
Ontology, taxonomies, semantic Web, social Web, extended Web, recommender
systems, collaborative filtering, marketing, automatic agent, user profile.
Agradecimientos
A mi familia
Gracias a ellos por el apoyo incondicional, que con paciencia y compresión, me ha llegado
durante la elaboración de este trabajo.
En especial a mis padres por ser estímulo y referencia, a Esther por llenarme el camino de
adorable momentos y a mis amigos y compañeros de trabajo por creer en mí desde el principio.
El resultado no hubiera sido posible sin la guía y dirección de mi tutor, a quién debo la
orientación hacia los objetivos conseguidos.
Mi deuda para con todos ellos será la búsqueda de nuevos retos de investigación científica y
docente, un legado que si duda merecen.
Tabla de Contenidos
PARTE I. INTRODUCCIÓN A LA INVESTIGACIÓN ............................ VII CAPÍTULO 1. NTRODUCCIÓN .................................................................. 3
1.1 Planteamiento y justificación del trabajo ................................................ 4
1.2 Hipótesis y objetivos ............................................................................... 5
1.3 Metodología seguida durante la investigación ....................................... 6 1.4 Organización del Trabajo Fin de Máster ................................................ 7
PARTE II. ESTADO DEL ARTE ..................................................................... 9 CAPÍTULO 2. LA WEB SEMÁNTICA ..................................................... 11
2.1 Guía breve de la web semántica ........................................................... 12
2.2. Estado actual y requisitos futuros ........................................................ 19 2.3. Aplicaciones de la Web Semántica ...................................................... 26 2.4. Líneas futuras ....................................................................................... 32
CAPÍTULO 3. SISTEMAS DE RECOMENDACIÓN ............................. 36 3.1. introducción ......................................................................................... 37
3.2. Clasificación de los sistemas de recomendación ................................. 38 3.3. Personalización de los sistemas de recomendación ............................. 46
3.4. Métodos de evaluación del rendimiento .............................................. 60 3.5. Conclusiones ........................................................................................ 63
PARTE III. DESARROLLO DE LA INVESTIGACIÓN ............................ 65 CAPÍTULO 4. ONTOLOGÍA EN TWITTER .......................................... 67
4.2. Materiales y métodos ........................................................................... 70 4.2. Elementos tecnólogicos ....................................................................... 71 4.3. Modelo de datos ................................................................................... 77 4.4 Aplicaciones prácticas .......................................................................... 79
PARTE IV. CONCLUSIONES ....................................................................... 81
CAPÍTULO 5. CONCLUSIONES .............................................................. 83 5.1. Verificación, contraste y evaluación de los objetivos ......................... 84
5.2. Síntesis del modelo propuesto ............................................................. 85 5.3. Aportaciones originales ....................................................................... 86 5.4. Trabajos derivados ............................................................................... 87 5.5. Líneas de investigación futuras ........................................................... 88
BIBLIOGRAFÍA .............................................................................................. 89
REFERENCIAS WEB ..................................................................................... 91 ANEXOS ............................................................................................................ 93
CLASIFICACIÓN ONTOLÓGICA EN TWITTER ................................... I
II
V
Tabla de Figuras
Figura 1 - Resultados obtenidos con un buscador normal .................................. 12 Figura 2 - Resultados obtenidos con un buscador semántico ............................. 13 Figura 3 - Ejemplo grafo RDF ............................................................................ 14 Figura 4 - Ilustración del ejemplo de consulta de eventos de calendario ........... 18
Figura 5 - Bus de la Web Semántica (Tim Berners-Lee) ................................... 19
Figura 6 - Capas de la Web Semántica .............................................................. 20 Figura 7 - Mapa conceptual de la web semántica ............................................... 25 Figura 8 – Navegador Semántico ....................................................................... 26
Figura 9 – Buscador semántico Swoogle ............................................................ 27 Figura 10 – Proyecto CORESE .......................................................................... 27
Figura 11 – El superorganismo Social y su cerebro global ................................ 32 Figura 12 – La Web inteligente. ......................................................................... 33 Figura 13 – Ontología basada en ítems y perfiles de usuario ............................. 42
Figura 14 – Esquema de los sistemas de recomendación ................................... 46 Figura 15 – Esquema de los sistemas de recomendación ................................... 47
Figura 16 – Personalización a través del contexto .............................................. 48 Figura 17 – Modelo de un sistema de filtrado colaborativo ............................... 53
Figura 18 – Esquema general Ontología Twitter ................................................ 69 Figura 19 – Twitter developers ........................................................................... 71 Figura 20 - Datos de autenticación de la aplicación en twitter ........................... 72 Figura 21 - Pantalla inicial de Protègè ................................................................ 73
Figura 22 – Formato para la ontología ............................................................... 73 Figura 23 - Ontología de los estados de ánimo, realizada con Protègé .............. 74 Figura 24 - Utilidad MySQL para crear una base de datos ................................ 74 Figura 25 - Primera pantalla de “rdfdb-utils” ..................................................... 75 Figura 26 - Cargar de ontología rdf en MySQL ................................................. 76
Figura 27 – Estructura de tablas en MySQL ...................................................... 77 Figura 28 – Tripletas sujeto, predicado y objeto en MySQL ............................. 77
Figura 29 – Ontología de los estados de ánimo .................................................. 85
VI
VII
Tabla de Códigos
Código 1 – PHP: Autenticación de usuarios ....................................................... 72 Código 2 – Parte del fichero config.inc.php ....................................................... 75 Código 3 – PHP: Obtención del perfil ................................................................ 78
VIII
PARTE I
Introducción a la Investigación
3
Capítulo 1 Introducción
Una de las actividades más recientes en los desarrollos orientados a la web es
la web semántica cuya finalidad es dotar de significado a todas las clases de
información sobre la web. En este capítulo se introducen las bases del Trabajo Fin de
Máster, desde el planteamiento inicial hasta la fijación de los objetivos finales.
Capítulo 1
4
1.1 PLANTEAMIENTO Y JUSTIFICACIÓN DEL
TRABAJO
Los sistemas de recomendación han evolucionado rápidamente dentro del
entorno interactivo de la Web, tanto en sitios de comercio electrónico, como en las webs
sociales. Es un entorno donde todavía no hay resultados a gran escala y se hace
necesaria una investigación multidisciplinar. Por un lado la situación de la web
semántica [MORA09] y las taxonomías [SOLE09] que permitan clasificar y entender
mejor la información almacenada. Por otro lado, los agentes que ayudar al usuario en su
proceso de decisión mediante diferentes mecanismos. Todo ello pasando por el
modelado del comportamiento del usuario, que en una primera aproximación puede ser
su clasificación en un determinado tipo de perfil.
Este trabajo se sitúa precisamente en ese contexto, en el que se utiliza la
información suministrada por un usuario en una web social, junto con una ontología,
para crear una información nueva como es el perfil de usuario.
Introducción a la Investigación
5
1.2 HIPÓTESIS Y OBJETIVOS
En la situación actual, las web sociales son un gran repositorio de información
generada por los usuarios de las mismas. Toda esa información, que no tiene que ver
directamente con ítems (productos o servicios en procesos de compra), se desperdicia.
El objetivo del presente trabajo es dar utilidad a una información muy útil que
puede ser aprovechada en beneficio del usuario.
Capítulo 1
6
1.3 METODOLOGÍA SEGUIDA DURANTE LA
INVESTIGACIÓN
La metodología utilizada consiste en ir de lo general a lo particular, analizando
las bases teóricas que sustentan el modelo.
El siguiente paso es aplicar ese conocimiento al reto y por último, el objetivo
final es generar un prototipo que ilustra los conceptos teóricos planteados.
Con respecto al prototipo, se comenzó con un estudio de las distintas Web
sociales utilizadas a nivel masivo y que contaran con la posibilidad de ser utilizadas
desde entornos externos de programación. Entre la gran variedad existente, se
seleccionó Twitter por la sencillez de la información que maneja. Al ser mensajes cortos
de texto, eran susceptibles de ser manipulados con total libertad. Además, existe una
plataforma estable que da soporte a todos los desarrolladores que necesitan interactuar
con Twitter desde otros entornos de programación.
Por otro lado, se hacía necesario la implementación de una ontología y la
herramienta Protègè era la que mejor opción, ya que era capaz de crear ficheros en
formato RDF. Dentro de las posibilidades que se abrían en ese momento, se
investigaron herramientas que fueran capaces de manejar la información de la ontología
y se optó por RAP, que es un conjunto de API’s y herramientas para tratar la
información de la ontología.
Como el prototipo iba a estar implementado en PHP, que se encuentra
perfectamente integrado con MySQL, el paso final fue utilizar una de las herramientas
de RAP para cargar una base de datos con toda la información de la ontología.
Finalmente, mediante un programa muy sencillo se fusionaban los entornos de
mensajería de Twitter con la ontología, para genera un perfil de usuario.
Introducción a la Investigación
7
1.4 ORGANIZACIÓN DEL TRABAJO FIN DE MÁSTER
En primer lugar se estudia la web semántica, desde su estado actual, pasando por
las acciones necesarias para obtener su verdadero valor y las aplicaciones que tiene. En
segundo lugar se analizan los sistemas de recomendación, su personalización y los
mecanismos y herramientas para el filtrado de la información. En la tercera parte se
estudian dos de los soportes tecnológicos que darán sustento al prototipo desarrollado.
Como aplicación práctica se propone un prototipo sobre un escenario concreto, que
demuestre las teorías utilizadas. Como parte final se incluyen las conclusiones y los
trabajos futuros que serán posibles a corto y medio plazo.
La web semántica
La Web Semántica es una Web extendida, dotada de mayor significado en la que
cualquier usuario en Internet podrá encontrar respuestas a sus preguntas de forma más
rápida y sencilla gracias a una información mejor definida. Al dotar a la Web de más
significado y, por lo tanto, de más semántica, se pueden obtener soluciones a problemas
habituales en la búsqueda de información gracias a la utilización de una infraestructura
común, mediante la cual, es posible compartir, procesar y transferir información de
forma sencilla. Esta Web extendida y basada en el significado, se apoya en lenguajes
universales que resuelven los problemas ocasionados por una Web carente de semántica
en la que, en ocasiones, el acceso a la información se convierte en una tarea difícil y
frustrante.
Estado actual
El gigantesco y creciente número de recursos web evidencia que las técnicas
léxico-estadísticas, por sí solas, no pueden solucionar la problemática de la recuperación
de la información. El proyecto de web semántica intenta paliar estos problemas (y
mucho más) mediante la "comprensión" del contenido de los recursos por los
ordenadores. Este trabajo analiza el estado de las "capas" propuestas por Berners-Lee
[BERN99] como necesarias para el desarrollo de la web semántica: la capa de
identificación uniforme, la capa de representación, la capa lógica y la capa de seguridad.
Hacia la web semántica
De forma similar a como la presentó Tim Berners-Lee en 1998 y adaptando los
ejemplos al hipertexto, podemos decir que la World Wide Web, basada en documentos
y enlaces de hipertexto, fue diseñada para la lectura humana y no para que la
información que contiene pudiera procesarse de forma automática. Si hacemos una
búsqueda de documentos, por ejemplo, por el término "hipertexto", la Web no distingue
entre los distintos significados o contextos en los que aparece este término (programas
para diseñar hipertexto, información docente, empresas que anuncian su web, etc.). La
Web actual tampoco permite automatizar procesos, como por ejemplo, buscar un
seminario sobre hipertexto, hacer la reserva de plaza, consultar los medios de transporte
disponibles hasta la ciudad donde se celebre el evento, reservar billete, y conseguir un
plano de dicha ciudad. Aun utilizando un potente buscador, se pierden muchas horas
navegando por los resultados obtenidos tras la consulta, para acceder a la información
de forma manual, cuando esto lo podría hacer un programa o agente inteligente.
Capítulo 1
8
La Web Semántica vendría a ser una extensión de la Web actual dotada de
significado, esto es, un espacio donde la información tendría un significado bien
definido, de manera que pudiera ser interpretada tanto por agentes humanos como por
agentes computerizados.
Aplicaciones
Desde la investigación clínica o farmacológica a portales turísticos pasando por la
mejora de algunos procesos judiciales, el e-goverment, la reparación de automóviles, la
recomendación de contenidos móviles, la búsqueda de expertos locales, etc.
En nuestro caso, la aplicación será los sistemas de recomendación y publicidad en
internet.
Sistemas de recomendación semánticos
Los sistemas de filtrado basados en contenido generan recomendaciones equiparando
las preferencias del usuario (expresadas por éste de forma implícita o explícita) con los
metadatos o características utilizados en la representación de los recursos o productos,
ignorando de esta forma la información relativa a otros usuarios. Estos sistemas, al igual que los
sociales, son poco fiables cuando se dispone de poca información sobre el usuario.
La tendencia actual se inclina por el desarrollo de sistemas de filtrado híbridos que
combinan características de los sistemas basados en contenido y de los colaborativos, para
atenuar las desventajas de cada una de ellos y mejorar de esta manera la eficiencia global del
funcionamiento del sistema en términos de precisión y exhaustividad.
Los sistemas de personalización resultan hoy en día indispensables ante la enorme
cantidad de información sobre productos y servicios que pueblan Internet. Un buen sistema de
recomendación constituye una de las bases del éxito del sitio virtual que lo sostiene. Se trata de
sistemas de recomendación que integran técnicas de personalización basadas en
comportamientos de usuario junto a estrategias de marketing.
Herramientas para el filtrado
Los sistemas de recomendaciones son herramientas que generan recomendaciones sobre
un determinado objeto de estudio, a partir de las preferencias y opiniones dadas por los usuarios.
El uso de estos sistemas se está poniendo cada vez más de moda en Internet debido a que son
muy útiles para evaluar y filtrar la gran cantidad de información disponible en la Web con
objeto de asistir a los usuarios en sus procesos de búsqueda y recuperación de información. En
este trabajo realizaremos una revisión de las características y aspectos fundamentales
relacionados con el diseño, implementación y estructura de los sistemas de recomendaciones
analizando distintas propuestas que han ido apareciendo en la literatura al respecto.
Filtros colaborativos
Los sistemas de recomendación basados en algoritmos de filtrado colaborativo utilizan
las valoraciones de los usuarios sobre ciertos elementos del conjunto total para predecir
valoraciones en el resto de los elementos y recomendar los de mayor valoración predicha. En
este punto se ofrece una descripción de los sistemas de filtrado colaborativo. Intenta cubrir los
múltiples aspectos que comprenden: Las diversas aproximaciones estadísticas: Basados en
modelo, basados en datos. También algunos métodos de evaluación, y los problemas relativos a
la implementación.
PARTE II
Estado del Arte
11
Capítulo 2 La web semántica
La Web Semántica [BERN00] es una Web extendida, dotada de mayor
significado, en la que cualquier usuario en Internet podrá encontrar respuestas a sus
preguntas de forma más rápida y sencilla gracias a una información mejor definida. Al
dotar a la Web de más significado y, por lo tanto, de más semántica, se pueden obtener
soluciones a problemas habituales en la búsqueda de información gracias a la
utilización de una infraestructura común, mediante la cual, es posible compartir,
procesar y transferir información de forma sencilla. Esta Web extendida y basada en el
significado, se apoya en lenguajes universales que resuelven los problemas
ocasionados por una Web carente de semántica en la que, en ocasiones, el acceso a la
información se convierte en una tarea difícil y frustrante.
Capítulo 2
12
2.1 GUÍA BREVE DE LA WEB SEMÁNTICA
La Web ha cambiado profundamente la forma en la que nos comunicamos,
hacemos negocios y realizamos nuestro trabajo. La comunicación prácticamente con
todo el mundo en cualquier momento y a bajo coste es posible hoy en día. Podemos
realizar transacciones económicas a través de Internet. Tenemos acceso a millones de
recursos, independientemente de nuestra situación geográfica e idioma. Todos estos
factores han contribuido al éxito de la Web. Sin embargo, al mismo tiempo, estos
factores que han propiciado el éxito de la Web, también han originado sus principales
problemas: sobrecarga de información y heterogeneidad de fuentes de información con
el consiguiente problema de interoperabilidad.
La Web Semántica [MORA09] ayuda a resolver estos dos importantes
problemas permitiendo a los usuarios delegar tareas en software. Gracias a la semántica
en la Web, el software es capaz de procesar su contenido, razonar con éste, combinarlo
y realizar deducciones lógicas para resolver problemas cotidianos automáticamente.
2.1.1. ¿Cómo funciona?
Supongamos que la Web tiene la capacidad de construir una base de
conocimiento sobre las preferencias de los usuarios y que, a través de una combinación
entre su capacidad de conocimiento y la información disponible en Internet, sea capaz
de atender de forma exacta las demandas de información por parte de los usuarios en
relación, por ejemplo, a reserva de hoteles, vuelos, médicos, libros, etc.
Si esto ocurriese así en la vida real, el usuario, en su intento, por ejemplo, por
encontrar todos los vuelos a Praga para mañana por la mañana, obtendría unos
resultados exactos sobre su búsqueda. Sin embargo la realidad es otra. La figura
1 muestra los resultados inexactos que se obtendrían con el uso de cualquier buscador
actual, el cual ofrecería información variada sobre Praga pero que no tiene nada que ver
con lo que realmente el usuario buscaba. El paso siguiente por parte del usuario es
realizar una búsqueda manual entre esas opciones que aparecen, con la consiguiente
dificultad y pérdida de tiempo.
Figura 1 - Resultados obtenidos con un buscador normal
La Web Semántica
13
Con la incorporación de semántica a la Web los resultados de la búsqueda serían
exactos. La figura 2 muestra los resultados obtenidos a través de un buscador
semántico. Estos resultados ofrecen al usuario la información exacta que estaba
buscando. La ubicación geográfica desde la que el usuario envía su pregunta es
detectada de forma automática sin necesidad de especificar el punto de partida,
elementos de la oración como "mañana" adquirirían significado, convirtiéndose en un
día concreto calculado en función de un "hoy". Algo semejante ocurriría con el segundo
"mañana", que sería interpretado como un momento determinado del día. Todo ello a
través de una Web en la que los datos pasan a ser información llena de significado. El
resultado final sería la obtención de forma rápida y sencilla de todos los vuelos a Praga
para mañana por la mañana.
Figura 2 - Resultados obtenidos con un buscador semántico
La forma en la que se procesará esta información no sólo será en términos de
entrada y salida de parámetros sino en términos de su semántica. La Web Semántica
[MORA09] como infraestructura basada en metadatos aporta un camino para razonar en
la Web, extendiendo así sus capacidades.
No se trata de una inteligencia artificial mágica que permita a las máquinas
entender las palabras de los usuarios, es sólo la habilidad de una máquina para resolver
problemas bien definidos, a través de operaciones bien definidas que se llevarán a cabo
sobre datos existentes bien definidos.
Para obtener esa adecuada definición de los datos, la Web Semántica utiliza
esencialmente RDF, SPARQL, y OWL; mecanismos que ayudan a convertir la Web en
una infraestructura global en la que es posible compartir, y reutilizar datos y
documentos entre diferentes tipos de usuarios.
RDF proporciona información descriptiva simple sobre los recursos que se
encuentran en la Web y que se utiliza, por ejemplo, en catálogos de libros, directorios,
colecciones personales de música, fotos, eventos, etc.
SPARQL es lenguaje de consulta sobre RDF, que permite hacer búsquedas sobre
los recursos de la Web Semántica utilizando distintas fuentes datos.
OWL es un mecanismo para desarrollar temas o vocabularios específicos en los
que asociar esos recursos. Lo que hace OWL es proporcionar un lenguaje para definir
ontologías estructuradas que pueden ser utilizadas a través de diferentes sistemas. Las
ontologías, que se encargan de definir los términos utilizados para describir y
representar un área de conocimiento, son utilizadas por los usuarios, las bases de datos y
las aplicaciones que necesitan compartir información específica, es decir, en un campo
determinado como puede ser el de las finanzas, medicina, deporte, etc. Las ontologías
Capítulo 2
14
incluyen definiciones de conceptos básicos en un campo determinado y la relación entre
ellos.
Otra tecnología que ofrece la Web Semántica para enriquecer los contenidos de
la Web tradicional es RDFa.
Mediante RDFa se pueden representar los datos estructurados visibles en las
páginas Web (eventos en calendarios, información de contacto personal, información
sobre derechos de autor, etc.), a través de unas anotaciones semánticas incluidas en el
código e invisibles para el usuario, lo que permitirá a las aplicaciones interpretar esta
información y utilizarla de forma eficaz. Por ejemplo, una aplicación de calendario
podría importar directamente los eventos que encuentra al navegar por cierta página
Web, o se podrían especificar los datos del autor de cualquier foto publicada, así como
la licencia de cualquier documento que se encuentre. Para extraer el RDF se podría
utilizar GRDDL, una técnica estándar para extraer la información expresada en RDF
desde documentos XML, y en particular, de las páginas XHTML.
2.1.1.1. RDF
El Resource Description Framework (RDF) es un lenguaje para representar la
información sobre recursos en la World Wide Web. Tiene características que facilitan la
fusión de los datos incluso si los esquemas subyacentes son diferentes.
RDF extiende la estructura clásica de enlaces en la Web para utilizar URI, con el
objetivo de nombrar la relación entre los dos extremos del enlace (esto generalmente se
conoce como "triple"). El uso de este modelo simple, permite que los datos
estructurados y semi-estructurados se mezclen, y sean compartidos a través de
diferentes aplicaciones.
Esta estructura forma un grafo dirigido y etiquetado, donde los bordes
representan el enlace de nombre entre dos recursos, representados por los nodos del
grafo. Este punto de vista gráfico es el modelo mental más fácil posible para RDF y se
utiliza a menudo de una manera fácil de entender las explicaciones visuales.
La descripción de los recursos se realiza en términos de propiedades simples y
valores para esas propiedades. Esto permite que con RDF se puedan representar
declaraciones simples sobre recursos como un grafo de nodos y arcos que representan
los recursos, y sus propiedades y valores.
Se puede apreciar mejor con un ejemplo, como el de la figura 3:
Figura 3 - Ejemplo grafo RDF
La Web Semántica
15
2.1.1.2. Las ontologías y OWL
Es necesario introducir el concepto de ontología para entender OWL. Aunque el
concepto de ontología ha estado presente desde hace mucho tiempo en la filosofía,
recientemente se utiliza en Informática para definir vocabularios que las máquinas
puedan entender y que sean especificados con la suficiente precisión como para permitir
diferenciar términos y referenciarlos de manera precisa.
Una ontología define los términos a utilizar para describir y representar un área
de conocimiento. Las ontologías son utilizadas por las personas, las bases de datos, y las
aplicaciones que necesitan compartir un dominio de información (un dominio es
simplemente un área de temática específica o un área de conocimiento, tales como
medicina, fabricación de herramientas, bienes inmuebles, reparación automovilística,
gestión financiera, etc.). Las ontologías incluyen definiciones de conceptos básicos del
dominio, y las relaciones entre ellos, que son útiles para los ordenadores. Codifican el
conocimiento de un dominio y también el conocimiento que extiende los dominios. En
este sentido, hacen el conocimiento reutilizable.
El Lenguaje de Ontologías Web (OWL) está diseñado para ser usado en
aplicaciones que necesitan procesar el contenido de la información en lugar de
únicamente representar información para los humanos.
En realidad, OWL no es un acrónimo verdadero. El lenguaje comenzó su
andadura como "Web Ontology Language" (Lenguaje de Ontologías Web), pero al
Grupo de Trabajo no le gustaba el acrónimo "WOL", así que decidieron llamarlo OWL.
OWL facilita un mejor mecanismo de para interpretar el contenido Web que los
mecanismos admitidos por XML, RDF, y esquema RDF (RDF-S) proporcionando
vocabulario adicional junto con una semántica formal. OWL tiene tres sub-lenguajes,
con un nivel de expresividad creciente: OWL Lite, OWL DL, y OWL Full.
La Web semántica [MORA09] es una visión del futuro de la Web donde la
información está dando un significado explícito, permitiendo que las máquinas puedan
procesar automáticamente e integrar la información disponible en la Web. La Web
semántica se basará en la capacidad de XML para definir esquemas de etiquetas a
medida y en la aproximación flexible de RDF para representar datos. El primer nivel
requerido por encima de RDF para la Web semántica es un lenguaje de ontologías que
pueda describir formalmente el significado de la terminología usada en los documentos
Web. Si se espera que las máquinas hagan tareas útiles de razonamiento sobre estos
documentos, el lenguaje debe ir más allá de las semánticas básicas del RDF Schema.
OWL ha sido diseñado para cubrir esta necesidad de un lenguaje de ontologías
Web. OWL forma parte de un conjunto creciente de recomendaciones del W3C
relacionadas con la Web semántica.
OWL es un lenguaje de Ontologías Web. Otros lenguajes similares habían sido
utilizados para desarrollar herramientas y ontologías destinadas a comunidades
específicas (especialmente para ciencias y aplicaciones específicas de comercio
electrónico), no fueron definidos para ser compatibles con la arquitectura de la World
Wide Web en general, y la Web Semántica en particular.
OWL rectifica esto proporcionando un lenguaje que utiliza la conexión
proporcionada por RDF para añadir las siguientes capacidades a las ontologías:
- Capacidad de ser distribuidas a través de varios sistemas
- Escalable a las necesidades de la Web
- Compatible con los estándares Web de accesibilidad e internacionalización
- Abierto y extensible
Capítulo 2
16
Para conocer mejor la utilidad de las ontologías para la Web se han identificado
los principales casos de uso:
Portales Web
Reglas de categorización utilizadas para mejorar la búsqueda
Colecciones Multimedia
Búsquedas basadas en contenido para medios no textuales
Administración de Sitios Web Corporativos
Organización taxonómica automatizada de datos y documentos
Asignación entre Sectores Corporativos (¡fusiones!)
Documentación de Diseño
Explicación de partes "derivadas" (p.ej. el ala de un avión)
Administración explícita de Restricciones
Agentes Inteligentes
Expresión de las Preferencias y/o Intereses de los usuarios
Mapeo de contenidos entre sitios Web
Servicios Web y Computación Ubicua
Composición y Descubrimiento de Servicios Web
Administración de Derechos y Control de Acceso
Un gran número de organizaciones han estado investigando sobre la utilización
de OWL con varias de las herramientas actualmente disponibles, como la ampliamente
utilizada Protègè system, que también dispone de soporte para OWL.
La Web Semántica
17
2.1.2. Ejemplos
Dos de los ejemplos más conocidos de aplicación de Web Semántica son RSS y
FOAF.
RSS es un vocabulario RDF basado en XML que permite la catalogación de
información (noticias y eventos) de tal manera que sea posible encontrar información
precisa adaptada a las preferencias de los usuarios. Los archivos RSS contienen
metadatos sobre fuentes de información especificadas por los usuarios cuya función
principal es avisar a los usuarios de que los recursos que ellos han seleccionado para
formar parte de esa RSS han cambiado sin necesidad de comprobar directamente la
página, es decir, notifican de forma automática cualquier cambio que se realice en esos
recursos de interés seleccionados. Un ejemplo de la aplicación de RSS se puede
encontrar en las Noticias de la Oficina Española del W3C como canal RSS.
FOAF es un proyecto de Web Semántica, que permite crear páginas Web para
describir personas, vínculos entre ellos, y cosas que hacen y crean. Se trata de un
vocabulario RDF, que permite tener disponible información personal de forma sencilla
y simplificada para que pueda ser procesada, compartida y reutilizada. Dentro de FOAF
podemos destacar FOAF-a-Matic, que se trata de una aplicación Javascript que permite
crear una descripción FOAF de uno mismo. Con esta descripción, los datos personales
serán compartidos en la Web pasando a formar parte de un motor de búsqueda donde
será posible descubrir información a cerca de una persona en concreto y de las
comunidades de las que es miembro de una forma sencilla y rápida.
Capítulo 2
18
Ejemplo de extracción de datos usando RDFa, GRDDL y SPARQL:
Se desea establecer una reunión entre tres personas, que tienen publicados en sus
sitios Web los calendarios de sus citas y eventos. Estos datos están expuestos en páginas
XHTML de forma gráfica, pero además se incluye información en RDFa.
Una herramienta nos permite extraer, mediante GRDDL, los datos de sus
calendarios en un formato homogéneo y fácil de tratar (RDF), para poder procesarlo
posteriormente.
Se realiza una consulta sobre la disponibilidad de las personas para un cierto día
a una hora concreta. Los datos consultados están en formato RDF y la consulta se
podría realizar mediante SPARQL.
La herramienta procesa y analiza el resultado obtenido, concluyendo si las
personas están disponibles en el instante que se había elegido previamente.
Figura 4 - Ilustración del ejemplo de consulta de eventos de calendario
Los buscadores semánticos son un ejemplo más de aplicaciones basadas en Web
Semántica. El objetivo es satisfacer las expectativas de búsqueda de usuarios que
requieren respuestas precisas.
La Web Semántica
19
2.2. ESTADO ACTUAL Y REQUISITOS FUTUROS
El gigantesco y creciente número de recursos web evidencia que las técnicas
léxico-estadísticas, por sí solas, no pueden solucionar la problemática de la recuperación
de la información. El proyecto de web semántica [MORA09] intenta paliar estos
problemas (y mucho más) mediante la "comprensión" del contenido de los recursos por
los ordenadores. Este trabajo analiza el estado de las "capas" propuestas por Berners-
Lee [BERN99] como necesarias para el desarrollo de la web semántica: la capa de
identificación uniforme, la capa de representación, la capa lógica y la capa de
seguridad. Este artículo se basa principalmente en el análisis de la web semántica, que
estudia su situación actual y requisitos futuros [PEIS03], así como en el trabajo de M.J.
Lamarca, en su trabajo “Hacia la web semántica”, dentro de la sus Tesis doctoral:
“Hipertexto: El nuevo concepto de documento en la cultura de la imagen” [LAMA11].
2.2.1. Introducción
La web, tal y como la conocemos, es un gigantesco repositorio de
hiperdocumentos cuyo diseño únicamente permite su comprensión por humanos. Estos
materiales están confeccionados usando lenguajes de etiquetado que expresan la forma
en que los navegadores deben presentar su contenido (colores, maquetación, fuentes,
etc.) y no su significado o semántica.
Dado el gigantesco y creciente número de estos recursos, los actuales motores de
búsqueda son incapaces de ofrecer tasas de precisión mínimamente adecuadas en sus
resultados, evidenciando que las técnicas léxicoestadísticas no pueden solucionar por sí
solas la problemática de la recuperación de información.
La propuesta inicial de world wide web que Berners-Lee (1989) ideó, ya
apuntaba a lo que posteriormente se ha denominado web semántica (BernersLee;
Hendler; Lassila, 2001), una extensión de la actual web cuyo objetivo es que no sólo los
humanos, sino también las máquinas, sean capaces de “comprender” el contenido de los
documentos. De esta forma, en el proceso de recuperación de información, el usuario
interrogaría a un agente software que realizaría tareas complejas de asociación e
inferencia de conocimiento, devolviendo al usuario resultados precisos y
contextualizados. Para conseguirlo, sería necesario proporcionar semántica a la web y,
esta tarea, podría realizarse mediante la elaboración de ontologías y etiquetados
descriptivos. En la figura 5 puede apreciarse un esquema general:
Figura 5 - Bus de la Web Semántica (Tim Berners-Lee)
Capítulo 2
20
Para cumplir los objetivos, Berners-Lee [BERN99] considera que son
necesarias varias capas o niveles, entre las que destacamos: un modelo básico para
establecer asertos (propiedades sobre los recursos), para el que se empleará RDF
(Resource Description Framework) (Lassila; Swick, 1999); un modelo para definir
relaciones entre las fuentes a través de clases y objetos expresado mediante RDF
Schema (Brickley; Guha, 2002); una capa lógica que permita realizar consultas e inferir
conocimiento, donde entrarían en juego las ontologías y los agentes software; y una
capa de seguridad que permita asignar niveles de fiabilidad a determinados recursos de
forma comprobable posteriormente por los agentes, para lo que se usarán firmas
digitales y redes de “confianza”. El diagrama de la figura 6, presentado por Berners-Lee
en la Xml conference de 2000, nos puede servir como aproximación visual al conjunto
de tecnologías que forman el esquema de capas mencionado.
Figura 6 - Capas de la Web Semántica
Veamos ahora cada una de las funciones que aportan las distintas capas de la
Web Semántica:
Unicode: el alfabeto. Se trata de una codificación del texto que permite utilizar
los símbolos de diferentes idiomas sin que aparezcan caracteres extraños. De esta forma,
se puede expresar información en la Web Semántica en cualquier idioma.
URI: las referencias. URI es el acrónimo de "Uniform Resource Identifier" o
Identificador Uniforme de Recursos, identificador único que permite la localización de
un recurso que puede ser accedido vía Internet. Se trata del URL (descripción de la
ubicación) más el URN (descripción del espacio de nombre).
XML + NS + xmlschema: se trata de la capa más técnica de la Web Semántica.
En esta capa se agrupan las diferentes tecnologías que hacen posible que los agentes
puedan entenderse entre ellos. XML ofrece un formato común para intercambio de
documentos, NL (namespaces) sirve para cualificar elementos y atributos de nombres
usados en XML asociándolos con los espacios de nombre identificados por referencias
La Web Semántica
21
URI y XML Schema ofrece una plantilla para elaborar documentos estándar. De esta
forma, aunque se utilicen diferentes fuentes, se crean documentos uniformes en un
formato común y no propietario.
RDF + rdfschema: basada y apoyada en la capa anterior, esta capa define el
lenguaje universal con el cual podemos expresar diferentes ideas en la Web Semántica.
RDF es un lenguaje simple mediante el cual definimos sentencias en el formato de una
3-upla o triple (sujeto: el recurso al que nos referimos; predicado: el recurso que indica
qué es lo que estamos definiendo; y objeto: puede ser el recurso o un literal que podría
considerarse el valor de lo que acabamos de definir). El modelo RDF o Resource
Description Framework es un modelo común (Framework) que permite hacer
afirmaciones sobre los recursos (Description) y que hace posible que estos recursos
pueden ser nombrados por URIs (Resource). Por su parte RDF Schema provee un
vocabulario definido sobre RDF que permite el modelo de objetos con una semántica
claramente definida. Esta capa no sólo ofrece descripción de los datos, sino también
cierta información semántica. Tanto esta capa como la anterior corresponden a las
anotaciones de la información (metadatos).
Lenguaje de Ontologías: ofrece un criterio para catalogar y clasificar la
información. El uso de ontologías permite describir objetos y sus relaciones con otros
objetos ya que una ontología es la especificación formal de una conceptualización de un
dominio concreto del conocimiento. Esta capa permite extender la funcionalidad de la
Web Semántica, agregando nuevas clases y propiedades para describir los recursos.
Lógica: además de ontologías se precisan también reglas de inferencia. Una
ontología puede expresar la regla "Si un código de ciudad está asociado a un código de
estado, y si una dirección es el código de ciudad, entonces esa dirección tiene el código
de estado asociado". De esta forma, un programa podría deducir que una dirección de la
Universidad Complutense, al estar en la ciudad de Madrid, debe estar situada en España,
y debería por lo tanto estar formateado según los estándares españoles. El ordenador no
"entiende" nada de lo que está procesando, pero puede manipular los términos de modo
mucho más eficiente beneficiando la inteligibilidad humana.
Pruebas: será necesario el intercambio de "pruebas" escritas en el lenguaje
unificador (se trata del lenguaje que hace posible las inferencias lógicas hecha posibles
a través del uso de reglas de inferencia tal como es especificado por las ontologías) de la
Web Semántica.
Confianza: los agentes deberían ser muy escépticos acerca de lo que leen en la
Web Semántica hasta que hayan podido comprobar de forma exhaustiva las fuentes de
información. (Web Of Trust RDF Ontology -WOT- http://xmlns.com/wot/0.1/ y FOAF
http://xmlns.com/foaf/0.1/))
Firma digital: bloque encriptado de datos que serán utilizados por los
ordenadores y los agentes para verificar que la información adjunta ha sido ofrecida por
una fuente específica confiable. (XML Signature WG: http://www.w3.org/Signature/)
Capítulo 2
22
2.2.2. Agentes inteligentes
Son una entidad software que recoge, filtra y procesa información contenida en
la web, realiza inferencias sobre dicha información e interactúa con el entorno sin
necesidad de supervisión o control constante por parte del usuario. Estas tareas son
realizadas en representación del usuario o de otro agente.
Para Hendler (1999) las cualidades que ha de tener un agente inteligente son:
Comunicativo. Debe entender las necesidades, objetivos y preferencias del
usuario, ya que de dicha comunicación o interacción usuario-agente depende que éste
pueda llevar a cabo su función de forma eficiente. Así mismo, debe poder comunicarse
con el entorno mediante representaciones compartidas de conocimiento (ontologías).
Autónomo. Además de comunicarse, debe poder interactuar con el entorno,
tomando decisiones y actuando por sí solo, limitando sus acciones según el nivel de
autonomía permitida por el usuario.
Adaptable. Debe ser capaz de aprender del entorno: usuarios (preferencias),
fuentes de información y otros agentes.
Capaz. El agente debe poder actuar en una determinada clase de mundo. El
agente no sólo debe proporcionar una información, sino también un servicio, es decir,
debe tener capacidad para hacer cosas. Por ejemplo, si se precisa un artículo de revista y
ésta es de pago, el agente debe ser capaz de encontrar el artículo, informar del precio,
dar el número de tarjeta de crédito, etc.
El papel del agente inteligente en el proceso de recuperación "semántica" de
información no debe confundirse con el de un buscador inteligente. Un buscador
inteligente se aprovechará del enriquecimiento semántico de los recursos web para
mejorar (principalmente en la precisión) la recuperación de información, aunque su
funcionamiento se basará, como los actuales buscadores, en la previa indización de
todos aquellos recursos susceptibles de ser recuperados. En cambio, un agente
inteligente recorrerá la Web a través de los enlaces entre recursos (hiperdocumentos,
ontologías, etc.) en busca de aquella información que le sea solicitada, pudiendo además
interactuar con el entorno para el cumplimiento de tareas encomendadas. Por ejemplo,
un agente inteligente, ante una consulta dada, podría consultar autónomamente un
buscador, y a partir de sus resultados, explorar la Web hasta encontrar la información
solicitada, pudiendo finalmente llevar a cabo una acción sobre dicho recurso, como
podría ser la reserva de una plaza en un Seminario, de un vuelo, y/ o de una habitación
en un hotel. Según P. Raghaban, las necesidades de información de un usuario cuando
acude a los buscadores son las siguientes:
Informacional: Aprender o saber acerca de algo (~40%). Por ejemplo:
hemoglobina baja.
Navegacional: Ir a determinada página (~25%). Por ejemplo: United Airlines.
Transaccional: Hacer algo por medio de la Web (~35%):
Acceder a un servicio. Por ejemplo: Mendocino weather.
Descargar algo (downloads). Por ejemplo: imágenes de la superficie de Marte.
Comprar. Por ejemplo: Nikon Coopix.
Áreas grises: Encontrar un buen hub. Por ejemplo: Alquiler de coches Finlandia.
Búsqueda exploratoria "ver lo que hay allí"
La Web Semántica
23
La Web Semántica debería ser capaz de procesar contenido, razonarlo y hacer
deducciones lógicas a partir de éste, y realizar, cuando un usuario quiera delegar ciertas
tareas en el software, todas estas acciones de forma automática.
Un agente inteligente entiende (lo que se pide), comprende (el contenido de los
sitios), valida (si lo encontrado corresponde a lo pedido) y deduce (nueva información
sobre la ya obtenida). Pero, para entender una consulta, comprender sitios web, validar
información y deducir nueva información, se precisa estandarizar:
el alfabeto
las referencias
el lenguaje
el formato
las anotaciones sobre significados
los conceptos generales
las reglas y sistemas de deducción
En este escenario, las características propias de un entorno abierto como la web,
y por ende de la web semántica, dificultan la implementación de agentes inteligentes.
Por ello, llegados a este punto cabe preguntarse qué sería necesario para el
funcionamiento de agentes inteligentes en la web semántica. Por un lado, sería
imprescindible un lenguaje estandarizado y compartido de definición de ontologías
(OWL podría ser la mejor opción) y, por otro, sería conveniente la creación de
ontologías y la anotación de recursos web en función de las mismas.
Hasta que esto no suceda no se podrán crear agentes inteligentes interoperativos
y mientras tanto, como es lógico, un usuario podría preguntarse qué ventajas tiene
anotar sus páginas web mediante ontologías si no existen agentes que justifiquen este
esfuerzo. Este fenómeno, denominado por Hendler (2001) como “el problema del
huevo y la gallina”, es similar al que se dio en los primeros días de la web: ¿para qué
publicar si había tan pocos usuarios? o, ¿para qué desarrollar navegadores si no había
páginas web? (Palmer, 2001).
La solución podría alcanzarse llevando a cabo aplicaciones informáticas de
publicación web, que anotaran automáticamente las páginas creadas por el usuario en
función de ontologías ya existentes en la web, con la menor intervención posible del
usuario en el proceso.
Capítulo 2
24
2.2.3. Firmas digitales y redes de “confianza”
Como indican Berners-Lee, Hendler y Lassila (2001), una de las características
fundamentales de la web semántica serán las firmas digitales. Estos autores las definen
como “bloques de datos cifrados que las computadoras y agentes podrán usar para
verificar que la información adjunta ha sido proporcionada por una fuente fiable”. Al
aplicar un algoritmo de “hashing” sobre un documento o mensaje a firmar, obtenemos
un bloque de datos, llamado “hash” o “digest”, que representa su “resumen”. La firma
digital se obtiene al cifrar dicho “hash” mediante un sistema de criptografía de clave
pública, que se basa en el empleo de dos tipos de claves: pública y privada (todo lo que
se cifre mediante una de carácter público sólo puede ser descifrado a través de su
correspondiente privada y viceversa).
Las ventajas que confiere la firma digital a los recursos, documentos o mensajes
de la web son principalmente: identificación (posibilidad de determinar la identidad del
emisor o autor del recurso) e integridad (facilidad para detectar su manipulación o
alteración ilícita). Ambas se comprueban aplicando el algoritmo de “hashing” sobre el
recurso y comparando su resultado con el “hash” obtenido al descifrar la firma digital a
través de la clave pública del autor (Simon; Madsen; Adams, 2001).
El grupo de trabajo Xml Signature 11, fruto del esfuerzo conjunto entre el W3C
y el IETF (Internet Engineering Task Force), ha desarrollado una especificación con
sintaxis XML para la representación de firmas digitales en recursos web (Eastlake;
Reagle; Solo, 2002), que alcanzó el grado de recomendación W3C en febrero de 2002.
Este grupo, ofrece desde su web, enlaces a multitud de herramientas y bibliotecas de
programación para el procesado y verificación de firmas digitales definidas bajo esta
especificación.
Sin embargo, aunque resultan de utilidad para describir la autenticidad de las
relaciones de autoría (predicados) entre individuos y recursos, no describen la confianza
de los usuarios y agentes inteligentes sobre dichos autores y, por lo tanto, sobre el
contenido de sus recursos (Hendler; Golbeck; Parsia, 2002). A esto hay que añadir que
la infraestructura de clave pública (PKI) utilizada en las firmas digitales tiene un
carácter centralizado. De hecho, la única forma de asegurar la validez del vínculo entre
el titular de la clave pública y ella misma es utilizar un certificado emitido por una
autoridad de certificación. En este sentido, no debemos olvidar que la web semántica
pretende tener un carácter completamente descentralizado. La solución podría ser la
denominada “web of trust”, que basa su funcionamiento en el concepto de confianza o
fiabilidad, el cual es definido por Reagle (2002) como “el grado en que un agente
considera un aserto como verdadero para un contexto dado”.
Esta capa, ubicada en la zona más alta del esquema de la figura 2.5, es una
aplicación de la investigación sobre redes sociales a las redes de recursos (URIs),
expresados en forma de tripletas RDF de la web semántica.
Los individuos, identificados por medio de URIs, expresarían su grado de
confianza (o desconfianza) sobre otros, que a su vez harían lo mismo sobre los demás,
lo que daría como resultado extensas e interoperables redes de confianza procesables
por agentes inteligentes.
Hendler, Golbeck y Parsia (2002) muestran de forma práctica cómo las redes
sociales pueden ser aplicadas para construir la llamada “web of trust”. Toman como
base FOAF (Friend-of-a-friend), un vocabulario RDF para describir información sobre
los individuos y sus relaciones en una red social, el cual extienden con el objetivo de
poder expresar el nivel de confianza entre los individuos de la Red para, finalmente,
mostrar su implementación práctica en áreas como el correo electrónico.
La Web Semántica
25
El uso conjunto de firmas digitales y redes de confianza, aplicadas sobre reglas
de inferencia de la capa lógica, puede proporcionar mecanismos complejos de
autenticación de usuarios y validación de permisos de acceso a determinados recursos
por parte de dichos usuarios.
En opinión de Reagle (2002), el problema de la centralización de la PKI puede
ser resuelto mediante el uso generalizado de redes de confianza y bloques de datos
“hash” que harían innecesario el empleo de criptografía en la mayoría de los casos y,
consecuentemente, de las autoridades de certificación.
2.2.4. Base de datos de conocimiento
El objetivo de la Web Semántica es que la Web pase de ser una simple colección
de documentos, para convertirse en una base de conocimiento.
Figura 7 - Mapa conceptual de la web semántica
La principal fuente de información sobre la Web Semántica es el W3C
Consortium, una de cuyas actividades actuales es desarrollar y estandarizar un marco
común que permita compartir y reutilizar datos entre distintas aplicaciones y
plataformas para hacer posible la Web Semántica.
Capítulo 2
26
2.3. APLICACIONES DE LA WEB SEMÁNTICA
Existen algunos proyectos muy interesantes que apuestan por aproximaciones
semánticas como TV Finder [CECC03], recomendación personalizada de oferta
televisiva. En esa misma línea también destacamos Avatar [RAMO05], que también se
basa en información semántica. También resultan interesantes las investigaciones que se
realizan sobre los sistemas de información para la salud [SEGU09], que utilizan los
sistema de recomendación. Para clasificar el resto de aplicaciones, se han dividido en
navegadores, buscadores y otros proyectos
2.3.1. Navegadores
He aquí un ejemplo de navegador semántico desarrollado dentro del proyecto
Haystack del MIT, que personaliza la navegación según los intereses y gustos
del usuario. Entre las funciones de esta navegador podemos destacar las siguientes:
importa archivos RDF/XML de la Web o archivos del sistema, navega por las páginas
web y los recursos semánticos, crea colecciones de recursos de la Web Semántica y
permite navegar por ellos, lee weblogs basados en RSS, permite el etiquetado de
cualquier objeto, maneja colecciones de fotos digitales y organiza archivos de música,
monta la información en mini-portales, desarrolla ontologías a medida, etc.
Figura 8 – Navegador Semántico
La Web Semántica
27
2.3.2. Buscadores
También contamos con algunos buscadores para la Web Semántica, que realizan
las búsquedas sobre ontologías y lenguajes semánticos tales como RDF y OWL. El más
conocido es SWoogle: Semantic Web Search http://swoogle.umbc.edu/ desarrollado por
la Universidad de Maryland (Baltimore, USA). Se trata de un buscador que busca
ontologías (tiene indizadas más de 10.000), documentos y términos escritos tanto en
RDF como OWL, esto es, busca documentos de la Web Semántica o Semantic Web
Documents (SWDs). Curiosamente, tanto su propio nombre como su interfaz de
presentación son muy similares a los de Google.
Figura 9 – Buscador semántico Swoogle
Pero también encontramos otros buscadores semánticos como Semantic Web
Searching: http://www.semanticwebsearching.com/ un motor de búsqueda que localiza
tanto vocabularios como recursos basados en vocabularios RDF, RSS, FOAF, DOAP,
calendarios y otras aplicaciones RDF. También está CORESE, un proyecto del INRIA
(Institut National de Recherche en Informatique et en Automatique) que se enfoca a
visualizar la Web Semántica, puesto que se basa en gráficos conceptuales: http://www-
sop.inria.fr/acacia/corese.
Figura 10 – Proyecto CORESE
Capítulo 2
28
2.3.3. Otros proyectos
Los proyectos más importantes en el campo de la Web Semántica son los
siguientes:
AKT (Advanced Knowledge Technologies): el consorcio AKT agrupa 5
universidades del Reino Unido y fue fundado por el Engineering and Physical Sciences
Research Council (EPSRC). Su fin es ayudar a desarrollar la próxima generación de
tecnologías del conocimiento para dar soporte a la gestión del conocimiento de las
organizaciones. AKT pretende desarrollar y extender métodos integrados y servicios
para capturar, modelar, publicar, reutilizar, compartir y gestionar el conocimiento. Para
ello se tienen en cuenta los recientes desarrollos en inteligencia artificial, psicología,
lingüística, multimedia y tecnologías de Internet. http://www.aktors.org/akt/
ASG (Adaptive Services Grid): es un proyecto integrado dentro del 6º Programa
Marco de la Comisión Europea. El proyecto que comenzó en septiembre de 2004 y dura
2 años, agrupa 22 participantes de 7 países. El objetivo es desarrollar un prototipo de
plataforma abierta para la innovación, creación, composición y lanzamiento de
servicios. ASG cuenta con las principales organizaciones de producción científica y
tecnológica que hacen uso del conocimiento y con las instituciones europeas líderes en
la investigación y desarrollo del software, las telecomunicaciones y la industria
telemática. http://asg-platform.org/cgi-bin/twiki/view/Public/WebHome
DBin: es una nueva clase de aplicación web: un P2P Web Semántico con una
filosofía para "compartir archivos" y/o un Cliente de Grupos de noticias semántico.
Similar a un cliente para compartir archivos, DBin conecta directamente a otros peers.
Instead of files, sin embargo, éste bajará "información relevante" sobre los temas que se
especifiquen. De forma más técnica, permite compartir y recibir "información
estructurada semánticamente" usando RDF y otros componentes de la Web Semántica.
http://www.dbin.org/
La Web Semántica
29
DIP (Data, Information, and Process Integration with Semantic Web Services):
el objetivo de DIP es desarrollar y extender la Web Semántica y las tecnologías de los
Servicios Web para producir una nueva infraestructura tecnológica para los Servicios de
la Web Semántica. http://dip.semanticweb.org/
ELeGI (The European Learning Grid Infraestructure): Una red semántica para el
aprendizaje humano para la puesta en marcha de escenarios futuros de aprendizaje
basado en la ubicuidad y la colaboración, y centrados en la experiencia y el aprendizaje
contextualizado a través del diseño, implementación y validación del aprendizaje en red.
http://www.elegi.org/
Esperonto Project: es un proyecto que fue desarrollado entre 2002 y 2005 dentro
del 5º Programa Marco de la Comisión Europea y cuyo objetivo era hacer de puente
entre la Web actual y la Web Semántica. La descripción del proyecto y los resultados
se pueden encontrar en: http://esperonto.semanticweb.org/
ESWS. European Semantic Web Symposium: el primero de estos simposios se
celebró en Creta en el año 2004. Estos encuentros tienen como fin mostrar las
tecnologías, desarrollos y aplicaciones de la Web Semántica a nivel europeo y mundial.
http://www.esws.org
KW (Knowledge Web): es una Red de Excelencia FP6 que ayuda a dar soporte
de transición a las tecnologías de ontologías desde el sector académico a la industria. El
consorcio actual está integrado por 18 participantes que incluyen líderes en Web
Semántica, multimedia, tecnologías del lenguaje humano, agentes, etc.
http://knowledgeweb.semanticweb.org/
IMS Global: se trata de un consorcio en el que participan más de 50
organizaciones y empresas, que tiene como objetivo el aprendizaje global a través de la
Web. En este marco, se trabaja con esquemas XML y documentación estructurada en
donde RDF juega un papel fundamental, por ejemplo en la definición de vocabularios y
taxonomías. http://www.imsglobal.org
Capítulo 2
30
NeOn: proyecto fundado por la Comisión Europea dentro del 6º Programa
Marco. Coordinado por la Open University. En el proyecto también participan
instituciones líderes de Europa en el área del modelado del conocimiento y las
ontologías. El fin de NeOn es crear el primer servicio orientado de infraestructura
abierta y metodología asociada para soportar el desarrollo de aplicaciones de la Web
Semántica, con el objetivo de extender el estado de la cuestión a soluciones viables
económicamente. Estas aplicaciones se realizarán sobre una red de ontologías
contextualizadas, mostradas localmente que no necesariamente tengan una consistencia
global. El proyecto NeOn es impulsado por diferentes sectores como el farmacéutico, el
de la agricultura y pesca, que utilizan un amplio volumen de conjuntos de datos que no
se pueden gestionar utilizando las tecnologías actuales. http://www.neon-project.org/
OpenKnowledge: tiene por objetivo crear una nueva forma de abrir y compartir
arquitecturas de conocimiento de forma coordinada poniendo el foco de atención en la
semántica para la interacción y uso en las comunidades web. "Open" en
OpenKnowledge se emplea en 2 sentidos: como un sistema abierto en el cuál cualquiera
puede utilizarlo en cualquier momento; y en el sentido de abierto para ser ensamblado,
logrado por medio de la participación con un coste individual bajo.
http://www.openk.org/
ESSI (European Semantic System Initiative): es la suma de dos proyectos SDK
Project Cluster y ASG: El SDK (SEKT, DIP, Knowledge Web) Cluster se ha unido
estratégicamente con ASG (Adaptive Services Grid). Este nuevo ESSI Cluster combina
los Servicios de la Web Semántica y las soluciones basados en sistemas semánticamente
potentes con arquitecturas orientadas a servicios semánticos. ASG añadirá valor al
nuevo ESSI cluster porque provee un prototipo conceptual de plataforma abierta para
adaptar los servicios a las innovaciones, creación, composición y publicación. ESSI es
un cluster de 4 grandes proyectos europeos en el área de la Web Semántica y de los
Servicios de la Web Semántica conocidos como: SEKT, DIP, Knowledge Web y ASG.
Mediante la cooperación de estos proyectos, se pretende fortalecer la investigación y la
industria europeas por medio de la estandarización a nivel mundial. Cada proyecto se
especializa en un aspecto concreto de la Web Semántica, como construir la
infraestructura, desarrollar y explotar las tecnologías del conocimiento basadas en la
Web Semántica, enriquecer los Servicios Web con metadatos semánticos y soportar el
proceso de transición de las tecnologías de ontologías desde el mundo académico a la
industria. http://www.sdk-cluster.org/
SEKT Project (Semantically -Enabled Knowledge Technologies): co-fundado
por el 6º Programa Marco de la UE parar llevar a cabo la Sociedad del Conocimiento.
La visión de SEKT es desarrollar y explotar las tecnologías del conocimiento bajo unos
La Web Semántica
31
nuevos parámetros de gestión donde se rompan las fronteras entre gestión de
documentos, gestión del contenido y y gestión del conocimiento, y donde la gestión del
conocimiento se convierta en una actividad cotidiana sin gran esfuerzo. El conocimiento
se ofrece de forma automática al usuario por medio de una gama de dispositivos. La
estrategia del SEKT se basa en la sinergia de los conocimiento técnicos de varios
centros de excelencia en las tecnologías de ontologías y metadatos, la innovación y las
tecnología del lenguaje humano, con las grandes empresas que lideran el mercado.
http://www.sekt-project.com/
Capítulo 2
32
2.4. LÍNEAS FUTURAS
El proyecto de web semántica, en su organización y funcionamiento, tiene
bastantes similitudes con la organización de una biblioteca, donde la semántica de las
obras (recursos) se describe mediante metadatos (RDF, RDFs, DC, etc.), los usuarios
pueden ayudarse de bibliotecarios (agentes inteligentes) así como del conocimiento y
capacidad de razonamiento de éstos (ontologías) para localizar y recuperar la
información que necesitan.
La web, vista de esta forma, sería la más extensa y heterogénea biblioteca
existente y justificaría que la única forma eficiente de recuperar información fuera
mediante agentes computacionales y no humanos. Sin embargo, el problema de estos
agentes es doble: todo el conocimiento que poseen (ontologías) debe ser definido por
usuarios y autores y, además, con ese conocimiento únicamente podrían ofrecer un
servicio de consulta, ya que no son capaces de describir recursos por sí solos, por lo que
éstos también tendrán que ser descritos por usuarios y autores. Esta descripción de
fuentes y el conocimiento de los agentes, realizados de forma descentralizada y
cooperativa, es la que previsiblemente provocará mayores problemas en la futura
implementación de la web semántica. No obstante, no es posible negar que además de
en la recuperación de información, con este nuevo modelo se abren prometedores
horizontes en los servicios web, en las bibliotecas digitales o en la computación ubicua.
Ciertos autores han abundado en la concepción de esta red global del
conocimiento: Francis Heylighen, Cliff Joslyn y Johan Bollen hablan de la futura Web
como algo que piensa y aprende, como un superorganismo social que tiene un cerebro
global. En la figura 11 puede apreciarse esta analogía, sacado de la siguiente web:
http://pespmc1.vub.ac.be/SUPORGLI.html
Figura 11 – El superorganismo Social y su cerebro global
La Web Semántica
33
2.4.1. Introducción
Es necesario apuntar los problemas de recuperación de información a través de
metadatos en un entorno abierto y descentralizado como la web semántica. La falta de
normalización en la descripción de recursos podrá llevar a que cada usuario, por
ejemplo, describa el nombre de un autor de forma totalmente diferente al resto. Hay que
recordar también el fracaso de uno de los primeros intentos de describir metadatos sobre
los recursos en la web a través de etiquetas <meta> incrustadas en los ficheros html.
Muy pronto los motores de búsqueda dejaron de utilizarlas debido principalmente al uso
interesado e ilícito que muchos websites hicieron de ellas como técnica para
posicionarse en sus resultados por encima de los recursos de la competencia.
En un nivel más técnico, otro problema al que se debe de enfrentar es al propio
esquema de capas ideado por Berners-Lee [BERN99]. En éste, cada nivel posee sintaxis
y, al menos la mayoría, semántica. El problema es que no todas extienden de la misma
forma la semántica, ni mantienen la sintaxis de su capa subyacente. RDF es un
subconjunto sintáctico de XML pero no mantiene su semántica, por lo que, como ya se
ha mencionado, XML es considerado la base sintáctica de la web semántica.
RDFs, en cambio, no sólo mantiene la sintaxis de RDF sino que además extiende
su semántica. En este sentido, es importante desarrollar relaciones sintáctico-semánticas
alternativas para solucionar el problema de ubicación de OWL sobre RDFs.
Por otra parte, es totalmente necesario intentar mantener un equilibrio entre
facilidad de uso y capacidad expresiva, ya que no podemos olvidar que la simplicidad y
accesibilidad de HTML fueron las características clave que contribuyeron al
surgimiento de la web o, que fue esta armonía entre sencillez y funcionalidad la que
hizo que XML se impusiera entre los desarrolladores, algo que en su día no consiguió
SGML debido a su complejidad conceptual. En la figura 12, puede apreciarse esta web
inteligente, obtenido de en.red.ando. Barcelona 26/10/2001.
Figura 12 – La Web inteligente.
.
Capítulo 2
34
2.4.2. Poca popularidad
La Web Semántica no goza de excesiva popularidad entre los creadores de sedes
web debido a que no está pensada para seres humanos, sino para agentes o programas
que recorran la World Wide Web e infieran nuevos datos. En los aspectos técnicos ha
habido grandes logros ya que existen librerías para lenguajes como Java,
PHP, Perl, Python, etc.; y también existen distintos instrumentos para inferir
información como Jena, CWM, EARL, etc. pero la realidad es que existen muy pocos
agentes que humanicen la información de la Web Semántica.
Los avances en el campo semántico han sido notables, pero no tan
espectaculares como se auguraba en los primeros tiempos del desarrollo de la
inteligencia artificial y los sistemas expertos y como algunos autores predicen que
ocurrirá en un futuro. Llevando hasta el extremo la idea de la Web Semántica como una
base global de conocimientos, han surgido nuevas iniciativas que van más allá de este
concepto y que equiparan el funcionamiento de la Web al funcionamiento de un cerebro
global, de la misma forma que Peter Russell en 1983 propuso la idea de un cerebro
global que pudiera emerger de una red mundial de seres humanos conectados por las
telecomunicaciones. (Ver vídeo http://www.peterussell.com/GB/GBVideo.html)
2.4.3. Críticos
También existen numerosos críticos que aducen que este tipo de planteamientos
son no sólo descabellados sino, incluso, temibles. La realidad es que todavía estamos
muy lejos de conseguir, incluso, algunos de los planteamientos menos complejos de la
Web Semántica. En los años 70, el desarrollo de la inteligencia artificial condujo a
cierta euforia que el tiempo transcurrido y los escasos avances alcanzados se han
encargado de desmentir. Lo que sí es cierto, es que hay muchas líneas de trabajo
abiertas en relación con la Web Semántica, líneas que tienen que ver con los lenguajes
semánticos y lenguajes de definición de ontologías, metodologías de desarrollo e
integración de ontologías y otros vocabularios de dominios concretos del
conocimiento, agentes, tecnologías y servicios web, etc. y que muchas empresas y
grupos de investigación trabajan en este sentido.
Pero la realidad es que, actualmente, la construcción y recuperación de
estructuras semánticas no se puede llevar a cabo de forma automática. En los albores de
la Web nadie pensó en etiquetar categorías y añadir metadatos, pues la mayor parte del
contenido de la Web estaba diseñado para leer, no para que fuera manipulado
por ordenadores, robots y agentes. Pronto se vio que, ante las colosales dimensiones de
la Web y la heterogénea información que contenía era necesario no sólo organizar la
información, sino también clasificarla y categorizarla con el fin de poder
realizar búsquedas y recuperar la información de forma automática. Y esto sólo es
posible mediante una indización y clasificación previas, esto es, con la generación de
documentos previamente estructurados formal y semánticamente, y utilizando un
lenguaje que sea independiente de la plataforma o aplicación empleadas. En el mundo
analógico e impreso la descripción, indización y clasificación de documentos ha sido un
coto vedado para bibliotecarios y profesionales de la documentación, una de cuyas
tareas habituales era la elaboración de tesauros y ontologías para describir, categorizar y
clasificar la información. Esta labor se vio pronto invadida, en el mundo digital, por
informáticos, matemáticos, ingenieros del conocimiento, lingüistas, expertos en
inteligencia artificial, arquitectos de la información, etc. que son los que han tomado la
La Web Semántica
35
delantera en las técnicas de descripción, búsqueda, recuperación y acceso a la World
Wide Web.
Los "documentalistas robotizados" no tiene por qué comprender la información,
sólo precisan de metadatos y ontologías para indizar y clasificar los documentos o
recursos de la Web. Los lenguajes de marcado actuales han añadido capacidades
semánticas a las capacidades de estructuración formal de los datos. Los documentos
web se codifican mediante lenguajes de metadatos y ontologías, lenguajes
semánticos que aportan representaciones compartidas de conocimiento en forma de
conceptos relacionados y reglas de inferencia lógicas, estos documentalistas inteligentes
podrán asistir a los usuarios tanto en la recuperación de información como en otro tipo
de servicios. De esta forma, los agentes "no humanos" cobran una especial relevancia
como actores principales en la futura World Wide Web, esto es, la Web Semántica, y se
convierten, al igual que los usuarios humanos, en un nuevo tipo de usuario capaz de
extraer información y de interactuar con el entorno. Otro aspecto a desarrollar es la
nueva interacción que se estable entre estos usuarios computerizados y los usuarios
humanos.
2.4.4. Futuro
La Web Semántica cuenta ya con una nutrida infraestructura de lenguajes y
tecnologías para hacerla posible. La sintaxis se basa en el lenguaje XML y derivados, y
la semántica en los lenguajes RDF (S) y OWL, y también están presentes otras muchas
aplicaciones y tecnologías ya desarrolladas como URIs, Topic Maps, XFML, firmas
digitales, etc. y numerosas empresas y centros de investigación están trabajando en ella.
Sin embargo, para que la antigua tarea humana e intelectual de la identificación,
indización y clasificación de documentos pueda hacerse mediante ordenadores sólo
podrá llevarse a la práctica si colaboran de forma interdisciplinar documentalistas,
lingüistas, informáticos, arquitectos de la información, ingenieros y expertos en
inteligencia artificial, etc.
A pesar de los problemas a los que se enfrenta la web semántica, no dudamos de
la viabilidad del proyecto, avalada por la utilidad real que están demostrando a día de
hoy el conjunto de lenguajes, tecnologías y herramientas afines sobre la actual web y
por el extenso y creciente número de investigadores, grupos de trabajo y grandes
empresas que se encuentran implicados en este proyecto.
36
Capítulo 3 Sistemas de recomendación
La gran cantidad de sitios especializados en Internet, ofertando millones de
productos y/o servicios para su consumo, se convierte en un caos de información sin
solución cuando se necesita realizar una adquisición eligiendo entre todas las opciones
existentes. Los sistemas de recomendación [HERR09] surgen como solución a este
problema. Un sistema de recomendación recibe información del usuario acerca de
productos y/o servicios en los que el usuario se encuentra interesado y le recomienda
aquéllos cercanos a sus necesidades
Sistemas de Recomendación
37
3.1. INTRODUCCIÓN
Uno de los principales retos que hoy día tienen que afrontar los sistemas de
información es la gestión eficaz del gran volumen de documentos que almacenan para
poder facilitar a los consumidores de información el acceso a recursos que satisfagan
sus necesidades de una manera sencilla y ágil. Esta necesidad se vuelve más acuciante
en una sociedad como la actual donde el nivel de exigencia de los usuarios es cada vez
mayor.
Tradicionalmente, en el ámbito de las bibliotecas el problema de la sobrecarga
de información se ha abordado adoptando diferentes medidas, como por ejemplo la
creación de servicios de difusión selectiva de información (DSI), en los que, de acuerdo
al perfil de los usuarios suscritos al servicio, se generan periódicamente (o a petición del
propio usuario) una serie de alertas en las que se les notifica de la existencia de recursos
que se adecuan a sus intereses (Aksoy et al., 1998), (Foltz; Dumais, 1992).
La Web, aunque presenta características propias que la diferencian claramente
de las bibliotecas, padece, en esencia, el mismo problema y los esfuerzos para atenuarlo
se centran en la aplicación de soluciones similares, como es el caso de los sistemas de
filtrado de información (también conocidos como sistemas de recomendación). De
hecho, los sistemas de recomendación podrían considerarse sistemas de DSI aplicados a
la Web pero, lógicamente, con unas capacidades de filtrado infinitamente más potentes
y sofisticadas. Estos sistemas aplican técnicas de filtrado de información que facilitan el
acceso de los usuarios a la información que necesitan. En dominios textuales, los
sistemas de filtrado evalúan y criban los recursos disponibles en la Web (normalmente
en formato HTML o XML) básicamente para asistir a los usuarios en tareas de
recuperación de información (Resnick; Varian, 1997) (principalmente mediante el uso
de agentes de filtrado), aunque también se utilizan para predecir la valoración de los
usuarios sobre ítems que aún no han evaluado (Szomszor, 2007).
El origen de este tipo de sistemas se remonta a principios de la década de los 90
del pasado siglo, cuando comienzan a surgir dentro de los servicios de newsgroups
(grupos de noticias) servicios de filtrado de noticias que permitían a su comunidad de
usuarios acceder exclusivamente a aquellas que potencialmente podían ser de su interés
(Foltz; Dumais, 1992) (Resnick et al., 1994) (Stodolsky, 1990).
En la actualidad los sistemas de recomendación han evolucionado y es posible
encontrarlos en diversos ámbitos de aplicación como en el comercio electrónico, donde
se han convertido en una herramienta fundamental para los proveedores en línea
(Schafer; Konstan; Riedl, 2001) o en los servicios de información científica.
No obstante, en cada dominio se presentan diferentes problemas a los que hay
que dar diferentes soluciones. La necesaria capacidad de evolución ha implicado que los
sistemas de recomendación se hayan diversificado.
De entre las múltiples posibles categorías de sistemas de recomendación que
existen en este trabajo nos vamos a centrar en hacer una revisión de los denominados
sistemas de recomendación semánticos, que en el último lustro están siendo objeto de
un amplio tratamiento en la literatura especializada y que se caracterizan por basar su
funcionamiento en diferentes tecnologías y vocabularios de la Web Semántica.
Capítulo 3
38
3.2. CLASIFICACIÓN DE LOS SISTEMAS DE
RECOMENDACIÓN
3.2.1. Criterios de clasificación
Tradicionalmente, los sistemas de filtrado y recomendación se han clasificado en
tres categorías principales de acuerdo a la técnica que utilizan para realizar el filtrado
(Popescul et al., 2001): sistemas de recomendación sociales, sistemas de recomendación
basados en contenido y sistemas de recomendación basados en factores económicos.
Los sistemas de filtrado social, también denominados de filtrado en colaboración
o colaborativos (anglicismo con el que más comúnmente son conocidos), utilizan la
información proporcionada por usuarios de características similares al activo para
generar recomendaciones, obviando el contenido de los recursos (se basa
exclusivamente en las valoraciones que éstos reciben por parte de los usuarios). En este
tipo de sistemas es habitual agrupar a los usuarios en categorías específicas o
estereotipos que los caracterizan a través de una serie de valores de preferencia
definidos por defecto y que representan las necesidades de información y hábitos de
búsqueda más comunes del grupo. Este tipo de sistemas tiende a ofrecer resultados
pobres cuando se dispone de poca información sobre los usuarios o estos tienen gustos
muy heterogéneos (Popescul et al., 2001).
Los sistemas de filtrado basados en contenido generan recomendaciones
equiparando las preferencias del usuario (expresadas por éste de forma implícita o
explícita) con los metadatos o características utilizados en la representación de los
recursos o productos, ignorando de esta forma la información relativa a otros usuarios.
Estos sistemas, al igual que los sociales, son poco fiables cuando se dispone de poca
información sobre el usuario.
Los sistemas de recomendación basados en factores económicos son aquellos
que generan recomendaciones basándose en elementos de coste (Resnick et al., 1994),
como, por ejemplo, la relación entre el coste de un servicio y el beneficio que reporta al
cliente o la relación entre el ancho de banda y el tamaño de un objeto a descargar. No
obstante, el uso de este tipo de sistemas a día de hoy es muy marginal.
La tendencia actual se inclina por el desarrollo de sistemas de filtrado híbridos
que combinan características de los sistemas basados en contenido y de los
colaborativos, para atenuar las desventajas de cada una de ellos y mejorar de esta
manera la eficiencia global del funcionamiento del sistema en términos de precisión y
exhaustividad (Basu; Hirsh, Cohen, 1998) (Balabanovic; Shoham, 1997).
No obstante, existen otros criterios que podrían ser utilizados para su
clasificación. Así, por ejemplo, atendiendo a la forma en que se capturan las
preferencias del usuario, se puede distinguir entre sistemas donde la recogida de datos
es explícita (cuando se pide al usuario que aporte de forma voluntaria sus valoraciones)
y sistemas donde está recogida se realiza de manera implícita (monitorizando la
actividad del usuario en el sistema).
Según la metodología de filtrado de información es posible distinguir entre
sistemas que realizan un filtrado pasivo (Rafter; Bradley; Smyth, 1999) (cuando se
genera una única recomendación que es válida para todos los usuarios del sistema), y
sistemas de filtrado activo (Boutilier; Zemer; Marlin, 2003) (Maltz; Ehrlich, 1995), en
Sistemas de Recomendación
39
el que la recomendación se genera a partir del historial de recomendaciones de los
usuarios para generar nuevas recomendaciones personalizadas. Un ejemplo de sistemas
pasivos son aquellos que recomiendan los ítems más valorados por el conjunto de la
comunidad de usuarios (es decir, el usuario no influye de forma directa sobre la
información que recibe). Los sistemas activos son algo más complejos ya que generan
las recomendaciones a partir de las opiniones de usuarios de perfil similar. Es más,
dentro de los sistemas activos es posible definir dos modelos diferentes de recuperación
de información (Gnasa et al, 2005): el modelo de pull de información (cuando el usuario
debe lanzar una consulta al sistema para recibir la recomendación) y el modelo de push
de información (cuando esa consulta se hace de forma implícita a través de las
preferencias definidas en su perfil de usuario).
También se suele distinguir entre sistemas de filtrado centrados en el usuario
(Xin et al., 2005), cuando las recomendaciones se obtienen equiparando la similitud
entre usuarios de acuerdo a las preferencias almacenadas en su perfil y sistemas de
filtrado centrados en ítems o productos (Resnick et al., 2004), en los que primero se
buscan las relaciones que existen entre los diferentes ítems y a continuación se generan
las recomendaciones a partir de las preferencias del usuario activo.
Atendiendo a la manera en que el algoritmo de filtrado procesa la información,
se encuentran sistemas que cargan todos los datos de forma residente en memoria para
generar las recomendaciones y otros que utilizan una cantidad de datos menor a partir
de la cual se generan modelos predictivos, que permiten procesar las recomendaciones
de una manera más rápida.
Otro criterio consiste en diferenciar entre sistemas de recomendación
centralizados (cuando las descripciones de productos y perfiles de usuarios [CRUZ03]
se encuentran almacenados en un servidor centralizado) y sistemas de recomendación
no centralizados (generalmente desarrollados sobre redes P2P).
Los criterios de clasificación son muchos y variados y no se limitan a los
relacionados. No obstante, se realizará un análisis del estado de la cuestión sobre una
categoría específica de sistemas de recomendación que están teniendo una amplia
cobertura en la literatura científica en los últimos años: los sistemas de recomendación
semánticos.
Capítulo 3
40
3.2.2. Sistemas de recomendación semánticos
Independientemente del tipo de sistema, se encuentra que una característica
común a la gran mayoría de ellos es la utilización de perfiles para representar las
necesidades de información e intereses a largo plazo de los usuarios. De esta manera,
los perfiles de usuario [CRUZ03] se convierten en una pieza clave dentro de los
sistemas de recomendación para obtener un filtrado eficiente, ya que un modelado de
perfiles inadecuado puede conducir a unas recomendaciones de baja calidad y poco
relevantes para el usuario.
Los sistemas de recomendación utilizan normalmente agentes software para
desempeñar tareas de filtrado de información en lugar del usuario. No obstante, estos
modelos adolecen de algunas debilidades: i) los procesos de comunicación entre
agentes, y entre agentes y usuarios se ven dificultados por las diversas formas en que la
información está representada; y ii) la heterogeneidad en la representación de la
información provoca a su vez que ésta no pueda ser reutilizada en otros procesos o por
otras aplicaciones.
Para paliar estas deficiencias, es posible mejorar y enriquecer la representación
de la información mediante la aplicación de tecnologías del proyecto Web Semántica
(Berners-Lee; Hendler; Lassila, 2001).
Se pueden considerar sistemas de recomendación semánticos aquellos que basan
su funcionamiento sobre una base de conocimiento, normalmente definida a través de
un esquema de conceptos (como una taxonomía o un tesauro) o una ontología
[SOLE09] , y que utilizan tecnologías de Web Semántica.
El proyecto Web Semántica se presenta como una extensión de la Web actual
que pretende convertirse en una plataforma universal para el intercambio de
información. En el modelo Web Semántica la información está dotada de un significado
bien definido que permite una mejor colaboración entre humanos y máquinas (Berners-
Lee, 2000). El proyecto se apoya básicamente en dos ideas: el marcado semántico de los
recursos (lo que implica una separación formal entre el contenido y la estructura de los
documentos) y el desarrollo de agentes software capaces de procesar y operar con estos
recursos a nivel semántico (Berners-Lee, 2001), (Hendler, 2001) utilizando ontologías
(entendidas como conceptualizaciones formalizadas de una parcela de realidad que dan
sentido pleno a la información situándola en un contexto (Guarino, 1998) (Gruber,
1995).
En los últimos años han aparecido múltiples sistemas de recomendación que
utilizan tecnologías del proyecto Web Semántica y proponen diversas soluciones de
aplicación en diferentes ámbitos. Básicamente, se pueden clasificar en: sistemas basados
en ontologías o esquemas de conceptos pero, además, se encuentran otros sistemas que
añaden filtros de información adicionales como los sistemas adaptables al contexto y los
sistemas basados en redes de confianza.
Sistemas de Recomendación
41
3.2.3. Sistemas basados en ontologías y redes semánticas
El sistema diseñado por Wang y Kong (2007) es un sistema de recomendación
personalizado que intenta paliar los problemas de los sistemas de recomendación
colaborativos usando, en forma de ontología, la información semántica de las
características categóricas de un ítem. La similaridad por pares de usuario se calcula con
el método de la media ponderada de tres medidas de similaridad: la similaridad del
histórico de evaluaciones de dos usuarios (utilizando el coeficiente de correlación de
Pearson sobre información de utilización del sistema en forma de matriz de datos de
evaluación usuario-ítem); la similaridad de datos demográficos de dichos usuarios
(calculada vía media ponderada); y, la similaridad del interés o preferencia de dichos
usuarios basada en las similaridades semánticas de los ítems recuperados y/o evaluados.
Al mismo tiempo, el sistema incorpora un mecanismo de clúster de usuarios offline para
paliar el problema de la escalabilidad.
Khosravi, Farsani y Nematbakhsh (2006) sugieren una metodología para
recomendaciones personalizadas en el contexto del comercio electrónico. Se trata de un
procedimiento para recomendar productos a clientes potenciales. El algoritmo propuesto
se basa en el modelado de información sobre productos y usuarios con OWL (Ontology
Web Language). El proceso se inicia con la clasificación de productos y consumidores
mediante OWL, lo que facilitará el análisis de la similaridad producto-cliente. En una
segunda fase se seleccionan consumidores activos, teniendo en cuenta recomendaciones
anteriores (el sistema no recomienda a un cliente si el número de sus recomendaciones
anteriores no sobrepasa un cierto umbral). La clasificación de productos y clientes es
utilizada para crear una matriz de evaluaciones productos-clientes. El algoritmo
recomienda alguno de los productos de cada clase de entre las clases de productos
basándose en el número de evaluaciones en la matriz.
Otro modelo que se aplica en el ámbito del comercio electrónico es el que
presenta Ziegler, Lausen y Schmidt-Thieme (2004). El sistema se basa en el paradigma
de recomendación colaborativa a través de contenido (Pazzani, 1999) y utiliza una
taxonomía de productos a partir de la cual se definen los perfiles de los usuarios (sin
necesidad de que estos proporcionen sus valoraciones de forma explícita) [CRUZ03]. El
perfil del usuario activo es utilizado para descubrir usuarios con intereses similares,
cuyas valoraciones sirven al sistema para generar las recomendaciones.
Por su parte Jung y colaboradores (2005) proponen un sistema de
recomendación basado en información personal que afirman es adecuado al contexto
Web Semántica. El modelo se fundamenta en la representación de servicios Web y
perfiles de usuario con tripletas RDF (Resource Description Framework). Cada
compañía que quiera proporcionar servicios Web registra los datos en el repositorio de
información, donde el sistema convierte los datos en documentos con formato RDF. El
módulo de búsqueda extrae la información del repositorio y la envía al agente colector
de documentos. El agente accede al espacio de nombre correspondiente y recoge los
documentos RDF relativos a los servicios Web requeridos. Estos documentos son
enviados al agente de integración de información, donde son fusionados en un solo
documento RDF que contiene información relevante. Finalmente, el agente de
recuperación de información extrae las tripletas RDF más relevantes conforme al perfil
de usuario y se ofrecen al usuario los objetos almacenados coincidentes con dichas
tripletas.
Otros sistemas se definen sobre estructuras descentralizadas como las redes P2P.
Ese es el caso del modelo que presenta Díaz-Avilés (2005), donde la información no
está disponible en un repositorio centralizado sino en cada uno de los componentes de la
Capítulo 3
42
red. Los ítems u objetos se modelan mediante una ontología común que utilizan todos
los miembros de la red. La selección de los componentes de la red se realiza de forma
dinámica y la recomendaciones se generan utilizando un algoritmo de recomendación
basado en el método del “vecino más cercano” que se ejecuta de forma local en cada
componente de la red.
Una aproximación original es la propuesta de Cantador y Castells (2006) para
desarrollar un modelo de red social semántica multicapa que permite definir el sistema
desde diferentes perspectivas a partir de los intereses comunes que comparten los
integrantes de la red. A partir de una serie de perfiles de usuario [CRUZ03] generados
utilizando una ontología de conceptos, y teniendo en cuenta sus preferencias comunes,
el sistema es capaz de acotar los diferentes grupos de conceptos del dominio. A partir de
estos grupos es posible identificar conjuntos de usuarios con intereses similares que se
interrelacionan entre sí en diferentes niveles semánticos (de acuerdo a sus preferencias).
Esta metodología permite descubrir redes sociales implícitas que pueden ser
aprovechadas para definir tanto sistemas de recomendación basados en contenido, como
colaborativos.
Frente a estos modelos genéricos, se encuentran muchos otros que se definen
para dominios más específicos como el proyecto "Foafing the Music" (Celma; Ramirez;
Herrera, 2005) que recomienda temas musicales y noticias relacionadas; el sistema que
proponen Middleton y colaboradores (2002), para recomendar artículos científicos, que
se basa en una ontología generada de forma automática a partir de la información
extraída dinámicamente de diversas fuentes (información en línea, monitorización de
usuarios, feedback, etc.); el sistema multi-agente AVATAR (Blanco Fernández et al.,
2004) especializado en programas de televisión; o SemMF (Oldakowsky; Byzer, 2005)
que genera recomendaciones de ofertas de trabajo calculando la similaridad semántica
de dos conceptos de acuerdo a su situación dentro de una jerarquía de conceptos.
Figura 13 – Ontología basada en ítems y perfiles de usuario
Sistemas de Recomendación
43
3.2.4. Sistemas basados en redes de confianza
Una de las principales preocupaciones de los investigadores en el campo de los
sistemas de recomendación semánticos es garantizar la fiabilidad y precisión de las
recomendaciones que se generan. Para ello, muchos de ellos ofrecen un nivel de filtrado
adicional fundamentado sobre de una red de confianza (Ziegler, 2004).
Adrian, Sauermann y Roth-Berghofer (2007) proponen ConTag, un sistema que
asesora a los usuarios sobre las etiquetas más propicias para describir el contenido de
diferentes recursos que se utilizan en una plataforma Web 2.0. Los documentos son
transformados a formato RDF para posteriormente generar un mapa de materias (topic
map) definido en SKOS Core, a partir del cual es posible calcular la similaridad de estas
materias con los conceptos definidos en la ontología del sistema. Las etiquetas
recomendadas por el sistema pueden ayudar al usuario a describir mejor el contenido
del recurso, minimizando así problemas de sinonimia, homonimia, acrónimos y
variantes ortográficas que pueden presentar las etiquetas definidas por los usuarios.
Jäschke y colaboradores (2007) proponen un mecanismo de recomendación de etiquetas
similar.
Szomszor y colaboradores (2007) proponen el uso de algoritmos de predicción
para la integración de una folksonomía de películas con una base de conocimiento
semántico sobre alquileres de películas por parte de los usuarios. La folksonomía es
usada para enriquecer la base de conocimiento con descripciones y categorizaciones de
títulos de películas, además de con representaciones de opiniones e intereses de los
usuarios. La “nube” de etiquetas generada por la folksonomía es usada para construir
perfiles de usuario mejorados [CRUZ03], que reflejan el nivel de interés del usuario
sobre diferentes tipos de películas y, por lo tanto, proporcionan una base para la
predicción de calificaciones de películas no vistas. Para la construcción de la base de
conocimiento sobre películas y sobre cómo las alquilan los usuarios emplean fuentes de
la Web 2.0 (Internet Movie Database y Netflix Prize, respectivamente). Para
proporcionar una representación homogénea de ambos conjuntos de datos se construye
una ontología con OWL, en conjunción con la tecnología para mapping D2RQ, que
permite tratar los datos de una base de datos relacional como grafos virtuales RDF.
En esta línea, Massa y Avessani (2004) presentan un modelo basado en la
denominada “Web de Confianza”. El sistema toma como inputs una “matriz de
confianza” (que representa el conjunto de declaraciones de confianza de la comunidad -
los usuarios explicitan a aquellos otros en cuyas evaluaciones confían-) y una matriz de
evaluaciones (que representa todas las evaluaciones dadas por los usuarios a los ítems) y
produce, como output, una matriz de evaluaciones predecibles que los usuarios podrían
asignar a los ítems. Esta matriz es usada por el sistema para recomendar los ítems
preferidos por los usuarios. Es decir, el sistema selecciona de la columna de
evaluaciones predecibles relativa a los usuarios, los ítems con más altos valores. De esta
forma, se incrementa la cobertura de los sistemas de recomendación colaborativos y, al
mismo tiempo, se mantiene la calidad de los ítems recomendados, paliando así, los
problemas de arranque en frío (para nuevos usuarios) y la nula fiabilidad de los datos de
usuarios maliciosos.
Una aproximación diferente es la que ofrece el sistema FOAFRealm (Kruk;
Decker, 2005). Se construye sobre redes P2P y que dispone de una librería que permite
a los usuarios gestionar sus propios perfiles definidos en FOAF (Friend of a Friend
vocabulary). A su vez, las descripciones y categorías definidas por los usuarios están
enriquecidas con términos extraídos de esquemas taxonómicos u ontologías. Para
gestionar los problemas de seguridad que suelen presentarse en los sistemas de
Capítulo 3
44
recomendación basados en arquitecturas distribuidas se define el concepto de “perfil
extrapolado”, en el que los nuevos usuarios adquieren un perfil que se construye a partir
del perfil de los usuarios que lo agregan como “amigo”, y que depende directamente del
nivel de confianza que estos le otorgan (facilitándose de esta manera la localización de
usuarios maliciosos).
De manera similar funciona Filmtrust (Golbek, 2005), un sitio web que integra
un sistema de recomendación semántico colaborativo de películas que utiliza el
vocabulario FOAF como base para la creación de una red social de confianza. En esta
red cada individuo debe valorar la confianza que les merecen aquellos usuarios a los que
añaden a su red de amigos (a partir de los cuales se generan las recomendaciones de
películas). El sistema adicionalmente dispone de un mecanismo que permite determinar
la precisión de las recomendaciones generadas.
Bedi y colaboradores (2007) definen un modelo novedoso que se basa en el uso
de una serie de ontologías y del establecimiento de redes de confianza entre agentes.
Cada agente tiene asociada una ontología personal temporal (de esta manera se
amortiguan las posibles modificaciones que estas pueden sufrir en el tiempo) a partir de
las cuales pueden generar recomendaciones independientes de dominio. Para calcular
estos valores de recomendación la similaridad entre agentes se presupone
implícitamente en el valor de confianza que los propios agentes se asignan entre sí al
interactuar. También es novedosa la utilización en este tipo de sistemas de conjuntos
difusos intuitivos (Atanassov, 1999) para gestionar la incertidumbre inherente al
proceso de recomendación.
En la literatura también se encuentran otros modelos de sistemas de
recomendación que utilizan tecnologías propias de la Web 2.0, como los canales RSS.
Así, el modelo presentado por Kobayashi y Saito (2006) propone un sistema para
recomendar artículos periodísticos y noticias extraídos de canales RSS, utilizando como
apoyo un tesauro cuyos términos se usan para representar tanto las materias de las
noticias como las necesidades de información de los usuarios.
Otro ejemplo del uso de este vocabulario se encuentra en el modelo presentado
por Peis, Herrera-Viedma y Morales-del-Castillo (2008), en el que una serie de canales
RSS cumplen el papel de "boletines de novedades", dentro de un servicio de DSI para
bibliotecas digitales especializadas. El sistema se construye sobre una plataforma multi-
agente y es capaz de generar alertas y recomendaciones de acuerdo a las preferencias
definidas en los perfiles de usuario [CRUZ03]. Estos perfiles se construyen a partir de
un tesauro especializado y se actualizan de forma dinámica a través de un mecanismo de
descubrimiento de preferencias tácitas de usuarios, que utiliza técnicas de modelado
lingüístico difuso.
Sistemas de Recomendación
45
3.2.5. Sistemas adaptables al contexto
Otra posibilidad son los sistemas de recomendación adaptables (o sensibles) al
contexto. En este tipo de sistemas se analizan y toman en consideración diferentes
factores (temporales, de lugar, nivel de experiencia del usuario, dispositivo que se está
utilizando en el momento de recibir la recomendación, etc.) para inferir el contexto en
que se encuentra el usuario y adaptar las recomendación a esas circunstancias.
Dentro de este grupo se encuentra, por ejemplo, el modelo basado en contenido
que proponen Kim y Kwon (2007). El funcionamiento del sistema se basa en la
definición de “contextos de uso” que se corresponden con los diferentes niveles de
especificidad de una ontología de conceptos. El sistema genera una recomendación a
partir del conjunto de ítems más valorados por un usuario y a continuación es capaz de
adaptar el nivel de especificidad de la información que es mostrada al individuo
dependiendo del contexto de uso en que se encuentran los conceptos por los que
muestra interés. Para determinar estos contextos el sistema utiliza cuatro ontologías: una
ontología de productos, otra donde se definen los diferentes contextos de uso, una
tercera sobre el registro histórico de actividades de los usuarios en el sistema, y una
última ontología sobre los usuarios.
Loizou y Dasmahapatra (2006) proponen por su parte un sistema fundamentado
sobre una ontología que incorpora información contextual tanto del proceso de
recomendación como de los ítems a recomendar. Esta información contextual (por
ejemplo, el tiempo de recomendación o la utilidad del ítem recomendado para el
usuario) tratada con un aparato matemático basado en reglas heurísticas aplicadas sobre
espacios vectoriales permite al sistema evaluar, de forma dinámica, la adecuación de
una recomendación concreta.
También es interesante la propuesta de Yu y colaboradores (2007) que aplican
este tipo de sistemas al ámbito del e-learning. El modelo pretende facilitar a los
estudiantes los recursos que necesitan para llevar a cabo las tareas planteadas en los
cursos. Se apoya en el uso de ontologías para representar de manera eficiente el
conocimiento del sistema sobre los usuarios, sobre el contenido de los recursos y sobre
el dominio específico de especialización del sistema para generar recomendaciones
basadas en el contexto de uso (es decir, la recomendación es diferente dependiendo de
diferentes factores como el nivel de experiencia, o de lo avanzado que esté el curso en el
momento en que el usuario requiere la recomendación). El sistema no se limita a
recomendar recursos adecuados al contexto, sino que sugiere al alumno otros recursos
relacionados que le permiten ahondar en la materia y definir de esta manera un
programa de estudios completo.
Otros modelos que aplican este tipo de filtrado son el propuesto por Laliwala,
Sorathia y Chaudhary (2006) donde se desarrolla un sistema de recomendaciones
semántico para servicios de información agrícola basado en eventos o el que presentan
Woerndl, Schueller y Wojtech (2007) donde las ontologías son utilizadas para mejorar
la descripción de servicios Web ofrecidos por terceros, y para desarrollar un servicio de
recomendaciones colaborativo especializado en información turística para dispositivos
móviles, capaz de gestionar tanto información estática (definida en los perfiles de los
usuarios) como información dinámica (contextual).
Capítulo 3
46
3.3. PERSONALIZACIÓN DE LOS SISTEMAS DE
RECOMENDACIÓN
3.3.1. Introducción
Dotar a los sistemas de recomendación de técnicas que personalicen las
recomendaciones [GARC02] más allá de la simple petición de productos por parte del
usuario, constituye un importante campo de investigación actualmente en el ámbito de
mercados en red con grandes volúmenes de contenidos, aunando a profesionales de
áreas tan diversas como el marketing, la interacción persona computador, la minería de
datos y la inteligencia artificial.
Los sistemas de recomendación han evolucionado rápidamente dentro del
entorno interactivo de la Web, especialmente en sitios de comercio electrónico, los
cuales albergan inmensas bases de datos con productos y/o servicios para ofrecer
soporte y atención a grandes bolsas de usuarios, cada uno de ellos con un perfil
determinado.
En la figura 14 se muestran las distintas categorías y sus diferentes elementos
Figura 14 – Esquema de los sistemas de recomendación
Ayudar al usuario en su proceso de decisión mediante diferentes mecanismos,
pasa necesariamente por una labor de análisis de las grandes bases de datos que
sustentan los sitios virtuales. En este sentido los sistemas de recomendación son una
aplicación particular de descubrimiento de conocimiento en bases de datos, utilizando
técnicas tales como el filtrado colaborativo [GALA07], redes bayesianas, técnicas de
clustering, filtrado y recuperación de la información, reglas de asociación, agentes,
etc. Estos sistemas modelan el comportamiento del usuario en base al que aplican los
mecanismos para facilitarle la búsqueda de los productos y/o servicios que desea
adquirir a la vez que la posibilidad de evaluación de las diferentes alternativas ofertadas.
Sistemas de Recomendación
47
3.3.2. Agentes adaptativos
La recomendación consiste en una serie de tareas que afectan a sistemas
complejos.
Consideramos que los sistemas multiagentes proporcionan todas las técnicas y
aspectos necesarios para tratar adecuadamente el carácter dinámico de los sistemas de
recomendación. Basamos así nuestro sistema de recomendación en agentes (ver figura
3.2), debido a dos causas principalmente, la primera es que proporcionan la realización
de sistemas distribuidos capaces de realizar tareas complejas a través de cooperación e
interacción y, por otro lado, la segunda es que permiten el análisis teórico y
experimental de mecanismos de autoorganización y adaptación que tienen lugar cuando
las entidades autónomas interaccionan. Los agentes del sistema son además
adaptativos, esta cualidad permite la flexibilidad necesaria para aprender del
comportamiento del usuario incrementando su funcionalidad en el tiempo con la
personalización del sistema a cada usuario.
Figura 15 – Esquema de los sistemas de recomendación
El sistema de recomendación de un sitio en Internet precisa de la personalización
para el desempeño de su tarea. La personalización en el modelo presentado se realiza
mediante la inserción de contexto. Entendiendo por contexto la definición dada por
Lieberman que engloba todo aquello que afecta a la computación excepto las entradas y
salidas explícitas. En el caso del sitio de comercio electrónico el contexto abarca:
estados del usuario, estados de los productos, estados del entorno computacional. Del
mismo modo el histórico de adquisiciones del usuario junto con los datos de
interacción del usuario con los contenidos del sitio captados través de eventos, dotan
de memoria al contexto. Evidentemente, la historia del usuario es una herramienta
fundamental en la creación de contexto. El sistema de recomendación entonces no sólo
se basa en la entrada explícita de datos por parte del usuario, ahora la integración de
contexto confiere y genera personalización. Del mismo modo los resultados o salidas
del sistema afectan no sólo a la recomendación mostrada al usuario, sino que también
revierten en el contexto mismo.
Capítulo 3
48
Figura 16 – Personalización a través del contexto
El sistema integrado de recomendación actúa fundamentalmente entorno a dos
aspectos mediante:
1. Recomendación directa con mecanismo de petición del usuario. En esta capa el
usuario interactúa directamente con el sistema mediante la petición de un
artículo o información, y el sistema le ayuda en la búsqueda del ítem a través de
una lista de los n-top artículos contenidos en las bases de datos de información
que maneja y que más se acercan a su requerimiento.
1. Recomendación influenciada como soporte al sistema de marketing. El sistema
publicitario que acompaña al contenido de la página completa será igualmente
personalizado. Los sistemas de marketing establecen como presentar la
publicidad de cada producto destinada a segmentos de consumidores.
Sistemas de Recomendación
49
3.3.2.1. Conclusiones
Los procesos de decisión de un usuario en la red se complican debido a la
gran cantidad de información que éste ha de manejar antes de la petición de un servicio
y/o producto. La meta actual en las tecnologías de soporte a la decisión en red, es la
introducción de las nuevas tecnologías como un paso natural del negocio tradicional.
Los Sistemas de recomendación aglutinan una gran variedad de necesidades en
el negocio virtual, tales como marketing, acceso a grandes bases de datos y tratamiento
personalizado del cliente, incrementando las relaciones de fidelidad y confianza del
usuario en el negocio virtual. Dotar de contexto a la aplicación de recomendación pasa
por establecer las variables de contexto en cada entorno en el que se desarrolle el
sistema de recomendación, lo que afecta, además de a los protocolos de interacción del
usuario con el sitio virtual, a los modelos del propio usuario en el entorno y a los
modelos de los productos ofertados.
Nuestro grupo está trabajando actualmente en el diseño de sistemas de
recomendación basados en sistemas multiagentes adaptativos para su aplicación al
comercio electrónico, pero su utilidad es fácilmente extensible a otros dominios (o
subdominios según se mire) de aplicación, como pueden ser el e-turismo o las visitas
virtuales guiadas.
Capítulo 3
50
3.3.3. Filtrado colaborativo
3.3.3.1 Visión general
Los sistemas de recomendación basados en algoritmos de filtrado colaborativo
[GALA07] utilizan las valoraciones de los usuarios sobre ciertos elementos del conjunto
total para predecir valoraciones en el resto de los elementos y recomendar los de mayor
valoración predicha. Este punto ofrece una descripción de los sistemas de filtrado
colaborativo, intentado cubrir los múltiples aspectos que comprenden. Hay diversas
aproximaciones estadísticas: Basados en modelo y basados en datos. También algunos
métodos de evaluación, y los problemas relativos a la implementación.
Antes de la llegada de Internet un consumidor de cualquier tipo de producto
tenía un acceso limitado a la información relacionada tanto con el producto en si como
con otras posibles opciones. La publicidad se convertía así en prácticamente la única
forma de dar a conocer un producto, y el problema del usuario era como conseguir una
información veraz. En el caso de productos culturales como la música, la radio o las
revistas especializadas actuaban como únicos difusores de lo nuevo. Ahora la situación
se ha invertido totalmente. De la escasez de información se ha pasado a la saturación.
De disponer de algunas estanterías con cd´s y vídeos en el centro comercial mas cercano
se ha pasado a tener acceso a una cantidad inagotable de creaciones culturales en tiendas
online o en redes P2P. Ahora el problema ha tornado en como separar lo que queremos
de lo que no queremos encontrar.
Una aproximación para intentar ofrecer a cada persona lo que busca es mediante
el análisis del contenido. Para ello se hace una representación del contenido de cada
elemento del conjunto y se compara con una representación del contenido que el usuario
está buscando. Este filtrado basado en contenido es efectivo principalmente para
encontrar documentos textuales en función de unos criterios de búsqueda.
Sin embargo es más difícil parametrizar de forma automática contenidos
multimedia.
Aquí es donde están comenzando a jugar un papel importante los sistemas de
recomendación. La idea que subyace tras ellos es encontrar usuarios con gustos
similares a los de otro determinado y recomendar a éste cosas que desconoce pero que
gustan a aquellos con los que se tiene similitud.
Es decir, un sistema de recomendación es un amigo virtual cuyos gustos son una
mezcla de los gustos de miembros de la comunidad de usuarios con gustos similares a
los de uno mismo. En lugar de intentar aplicar inteligencia artificial para analizar el
contenido y relacionarlo entre sí, deja a la comunidad la tarea de evaluar cada elemento
y se utilizan algoritmos de minería de datos para encontrar utilidad a las relaciones. Se
construye así una inteligencia colectiva que permite al usuario recibir información
adaptada a sus gustos, incluso a veces cosas que no estaba esperando encontrar pero que
le resultan útiles.
En este trabajo se intenta proporcionar una panorámica general acerca de los
sistemas de recomendación así como resultados obtenidos del trabajo con algunos de los
algoritmos estadísticos estudiados.
Sistemas de Recomendación
51
3.3.2.1 Historia y situación actual
En un comienzo los sistemas de recomendación eran conocidos tan solo como
filtros colaborativos y los primeros trabajos datan de principios de los años 90. El
término fue acuñado en 1992 para un sistema de filtrado de correo electrónico no
automatizado. En 1994 se desarrolló el primer “workshop” en Berkeley donde se vio la
utilidad en diversas áreas de los primeros algoritmos simples de este tipo. También se
identificaron algunas cuestiones importantes para el desarrollo de estos algoritmos:
Escalabilidad, Viabilidad económica, puntuaciones implícitas y explicitas, etc. Uno de
los grupos de investigación pioneros en el desarrollo del filtrado colaborativo fue el
proyecto GroupLens de la universidad de Minesota que aún permanece muy activo y
que ha proporcionado una gran parte de la base algorítmica de muchos sistemas de
recomendación. Fueron los primeros en introducir el filtro colaborativo automático
usando un algoritmo de búsqueda de vecinos para proporcionar predicciones en los
grupos de noticias de USENET. De este grupo de investigación partió también la
iniciativa empresarial NetPerceptions, despejando gran parte de las dudas acerca de la
viabilidad económica de estos proyectos. En la actualidad es un campo que se encuentra
muy activo y genera un gran número de publicaciones y congresos todos los años. Y es
que el filtrado colaborativo es un aspecto de gran importancia dentro de las redes
sociales y la pequeña revolución que ha supuesto la llamada “Web 2.0”. Algunos
ejemplos actuales de uso son:
Recomendaciones en tiendas on-line. Partiendo de un producto se recomiendan
otros productos que han interesado a los usuarios que compraron dicho
producto. La web pionera en este tipo de recomendaciones fue Amazon.com
Filtrado de noticias. Se construye un perfil que almacena las noticias que un
usuario consulta.
Recomendaciones musicales, de libros, de películas. En los ´últimos años han
surgido decenas de webs de este tipo entre las que destacan “last.fm” y
“MyStrands”, esta última de origen español. En estos servicios, cada vez que un
usuario escucha una canción se envía su información a la base de datos del
sistema, el cual las utiliza para generar nuestras recomendaciones, pero las
funcionalidades que ofrecen crecen constantemente. Por ejemplo last.fm ofrece
radios personalizadas para cada usuario en función de las recomendaciones que
reciba y MyStrands organiza fiestas en las que la música se elije
automáticamente de forma colaborativa en función de los gustos de los
asistentes. El modelo de negocio de estas empresas, es además de la publicidad,
el de acuerdos con tiendas on-line para enlazar directamente las
recomendaciones con su servicio de venta. También el de proporcionar a las
compañías -discográficas en este caso- análisis de tendencias musicales, de
nuevos artistas, etc.
Búsqueda de personas afines en comunidades. En webs como meneame.net se
tienen en cuenta las noticias que cada usuario ha votado para generar una lista de
vecinos con similares intereses.
Capítulo 3
52
3.3.4. Aproximación teórica al problema de la recomendación
3.3.4.1 Objetivo
El objetivo es sugerir nuevos elementos a un usuario basándose en sus
elecciones anteriores y en elecciones de gente con similar historial de ratings o
valoraciones. Existen dos formas de recoger estas valoraciones. Una es de forma
explícita, es decir el usuario asigna una puntuación a cada elemento que será un valor
numérico discreto entre un máximo y un mínimo. La segunda forma es recoger las
valoraciones implícitamente, extrayendo la información pertinente de las acciones del
usuario. Por ejemplo el tiempo que pasa leyendo una determinada pagina web, los
enlaces que sigue, el número de veces que se escucha una canción, esta sería una
aproximación más clásica de minería de datos. Una vez que se tiene suficiente
información del usuario se pasa a la fase de predicción y recomendación. Predicción
hace referencia a estimar que valoración daría el usuario a cada elemento mientras que
recomendación se refiere a extraer los N elementos más recomendables (Top-N
recommendation).
Algoritmos de filtrado colaborativo basados en memoria, o algoritmos de
vecinos cercanos (Nearest Neighbour).
Utilizan toda la base de datos de elementos y usuarios para generar predicciones.
Primeramente emplean técnicas estadísticas para encontrar a vecinos, es decir usuarios
con un historial de valoraciones sobre los elementos similar al usuario actual. Una vez
que se ha construido una lista de vecinos se combinan sus preferencias para generar una
lista con los N elementos más recomendables para el usuario actual. Entre sus
inconvenientes se encuentra la necesidad de disponer de un número mínimo de usuarios
con un número mínimo de predicciones cada uno, incluido el usuario para el que se
pretende realizar la recomendación.
Algoritmos de filtrado colaborativo basados en Modelo.
Desarrollan primero un modelo de los ratings del usuario. Tratan el problema
como un problema de predicción estadística y calculan el valor esperado para cada ítem
en función de los ratings anteriores. Para ello se utilizan distintos algoritmos de
aprendizaje Clustering o redes neuronales como las Redes de Funciones de Base Radial
(RBFN). Por ejemplo utilizando clustering se trata de clasificar a un usuario en
particular dentro de una clase de usuarios y a partir de ahí se estiman las probabilidades
condicionadas de esa clase hacia los elementos a evaluar. En general, ante las consultas
responden más rápido que los basados en memoria, pero por contra necesitan de un
proceso de aprendizaje intensivo.
Sistemas de Recomendación
53
3.3.4.2 Otros aspectos
El consumo de memoria y de CPU de cualquier sistema de filtrado de
información es muy elevado al tratar con muchos datos. La optimización de los
algoritmos para mejorar su rendimiento es uno de los principales campos de
investigación dentro del filtrado colaborativo. Algunas características deseables en estos
sistemas suponen una modificación constante de los datos, lo que hace necesarios
algoritmos que tengan una coste de actualización bajo. Por ejemplo los nuevos
elementos han de aparecer en el sistema lo antes posible. También se requiere una
mejora continua del perfil del usuario. Es decir que el usuario perciba que el “esfuerzo”
de evaluar nuevos elementos se vea compensado con unas mejoras en las
recomendaciones que se obtienen.
Además de los aspectos técnicos la implantación de sistemas de recomendación
puede plantear problemas sociales como la privacidad de los usuarios. Es un asunto
delicado ya que para tener un buen funcionamiento es necesario conocer la máxima
información posible del usuario. Una primera solución es mantener tan sólo la
información relacionada con las votaciones y conocer del usuario sólo un seudónimo,
pero esto choca con el modelo de negocio basado en publicidad que se utiliza
abundantemente en la actualidad.
Por último mencionar también que existen investigaciones dirigidas a
comprender la relación entre los usuarios y los sistemas de recomendación. También se
estudia como influencian al usuario las recomendaciones a la hora de dar su propia
opinión. Psicológicamente es conocido desde hace tiempo como la opinión de los demás
modifica la opinión propia. Ahora también se percibe como el mostrar predicciones del
voto de un usuario influencia el propio voto futuro.
Figura 17 – Modelo de un sistema de filtrado colaborativo
Capítulo 3
54
3.3.5. Algoritmos
3.3.5.1 Algoritmos basados en vecinos cercanos
Fueron los primeros algoritmos de filtrado colaborativo en implementarse. En
primer lugar es necesario medir los parecidos de todos los usuarios con el usuario
actual. Pueden utilizarse distintas medidas:
Coeficiente de Correlación de Pearson.
Se deriva de las formulas de regresión lineal, y asume que la relación entre
elementos es lineal, los errores independientes y la distribución tiene varianza constante
y media 0. Estas suposiciones normalmente no se producen realmente con lo que hay
que valorar como afectan a la bondad de los resultados, pero en un gran número de
casos el rendimiento utilizando Pearson es apropiado. El peso que se asigna al usuario u
para predecir al usuario activo a viene dado por: (ra,i es la votación del usuario a al
elemento i)
Otras formas son las basadas en vectores (medida del coseno), las medidas de
correlación basadas en entropía, correlación de Ringo o correlación de Spearman.
Una vez se tienen los pesos de correlación de cada algoritmo hay que saber
cómo de confiables son estos pesos. Es posible tener un alto grado de correlación con
vecinos con los que se comparten pocos elementos valorados por el usuario actual, pero
con igual valoración. El uso de estos pesos proporciona unas estimaciones malas, puesto
que para tener una idea real de la correlación son necesarios cuantos más votos
compartidos mejor. En los casos de pocas muestras es recomendable disminuir el factor
de correlación en función del número de votos compartidos.
Para intentar mejorar más los pesos de la correlación entre usuarios se puede
entrar a trabajar con la varianza de los elementos que cada usuario ha votado. Si un
elemento es votado positivamente por un gran porcentaje de la población, el que dos
usuarios compartan esa votación dice poca información acerca de la correlación entre
usuarios. Lo contrario pasa en el caso de elementos que sean votados positiva o
negativamente por pocos usuarios. Para tomar en cuenta este hecho se añade a la
fórmula de la correlación de Pearson un término con la varianza del elemento.
Sistemas de Recomendación
55
Selección de Vecinos.
En sistemas con pocos usuarios podría ser factible trabajar con todos los
usuarios como vecinos tan sólo multiplicando cada uno por el peso de su correlación.
Sin embargo en los sistemas actuales que poseen miles de usuarios esta vía no es
posible, por ello hay que tomar un subconjunto de los usuarios, lo que no sólo mejora la
eficiencia sino también la efectividad. Para elegir el número de vecinos se puede:
Establecer un umbral de correlación y tomar todos los que superen dicho umbral.
El problema es que puede haber usuarios que no tengan muchos vecinos con correlación
alta. Por tanto el número de vecinos sería bajo y esto provocaría que el número de
elementos sobre el que la vecindad de un usuario puede opinar es también bajo.
Tomar “n” vecinos siempre, teniendo en cuenta que un número demasiado alto
puede diluir la influencia de los vecinos con más peso y un número demasiado bajo
provoca los mismos problemas que el método anterior.
Recomendación
La forma básica consiste en tomar las notas dadas por cada vecino y
proporcionarlas a su correlación con el usuario actual:
Una posible mejora es la de introducir una variable que dependa de lo optimista
o pesismista que sea cada usuario. Unos usuarios votan por norma más alto que otros.
Para proporcionarlos basta con normalizar respecto a la media de puntuación de cada
usuario. De esta forma el predictor quedaría como:
Capítulo 3
56
3.3.5.2 Algoritmos basados en elementos
En lugar de buscar similitudes entre usuarios buscan cercanías entre elementos.
El procedimiento consiste en seleccionar los elementos que un usuario determinado ha
votado y después comprobar cómo de similar es cada uno del resto de los elementos del
sistema, para terminar recomendando los más parecidos. Existen distintas formas de
evaluar la similitud entre elementos pero el procedimiento genérico consiste en tomar
dos elementos x1, x2 y después calcular su similitud a partir de todos los usuarios que
han votado ambos elementos. En teoría es la misma aproximación que la que se tenía
con algoritmos basados en vecinos cercanos.
La ventaja es que en el caso de los elementos la similitud entre ellos es menos
variable que la similitud entre usuarios, lo que permite pre-computar estas similitudes y
hace el proceso mucho más rápido.
Similitudes Basadas en Coseno
Se considera cada elemento como un vector dentro de un espacio vectorial de m
dimensiones y se calcula la similitud como el coseno del ángulo que forman. Es decir, si
tenemos dos vectores x1, x2 consistentes en un vector cuyos elementos son las
votaciones recibidas de cada usuario, su similitud sería:
Similitudes Basadas en Correlación
Considerando el conjunto de votaciones de los usuarios con votos sobre el
elemento x1 y x2, se utiliza el coeficiente de correlación de Pearson. Siendo U ese
conjunto, u cada usuario R la valoración sobre un elemento y Ȓx la valoración media de
ese elemento:
Similitudes Basadas en Coseno Ajustado
En las similitudes basadas en coseno no se tienen en cuenta las diferencias entre
las escalas de los usuarios. Para eso se incluye en la fórmula el parámetro Ȓu que indica
la valoración media de ese usuario. También se denomina transformación z:
Cálculo de la predicción
Una vez que se elige un método para computar la relación entre elementos
quedan por calcular los elementos que son más parecidos a los del usuario. De nuevo
existen varias aproximaciones.
Sistemas de Recomendación
57
Suma con pesos (Weighted Sum)
Se toman todos los elementos que el usuario ha votado. Se toma un elemento
“x1” y para ese elemento se suman todos los coeficientes de similitud entre ese
elemento y los elementos votados por el usuario, proporcionados al valor del voto.
Siendo N cada elemento votado por el usuario Si,N la similitud entre los elementos i y N
y Ru,N la valoración del usuario del elemento N:
Regresión
Similar al modelo anterior, pero en lugar de sumar directamente las notas de los
elementos similares se utiliza una aproximación basada en la recta de regresión. Con
este método se intenta compensar un problema que se da al evaluar las similitudes
mediante medidas del coseno o la correlación, y es que vectores con alta similitud
pueden encontrarse distantes en sentido euclídeo. Se utiliza la misma fórmula que en el
caso de la suma proporcionada pero sustituyendo Ru,N por: Ȓ’N = αRi ¯ + β +
Capítulo 3
58
3.3.5.3 Predictores “Slope-one”
A la hora del cálculo de la predicción para un usuario U se tiene en cuenta tanto
la información de usuarios que tienen en común la votación de algún elemento U como
la información del resto de los elementos votados.
Partiendo de dos vectores vi y wi de longitud n se busca obtener la mejor
predicción de w a partir de v. Tendrá la forma f(x) = x + b y deberá minimizar el error
cuadrático medio i (vi + b − wi)2 de donde derivando se obtiene que:
Es decir, la diferencia media entre ambos vectores. Partiendo de esto podemos
diseñar las predicciones. A partir de un conjunto X de datos de entrenamiento se toman
dos elementos cualquiera i,j con votaciones ui uj y se calcula la desviación media entre
ambos (sólo se consideran usuarios que hayan votado tanto i como j):
Con lo que se tiene un vector simétrico precalculado que es posible actualizar
con cada nuevo elemento que se añada al sistema.
La predicción para un usuario uj a partir del resto de usuarios será (con Rj el
conjunto de ítems relevantes):
Predictor “Slope-one” con pesos
El predictor anterior no tiene en cuenta el número de notas que se han tomado.
No es igual predecir la nota de un usuario sobre un ítem L a partir de los ratings de ese
usuario de otros elementos J K si hay muchos mas usuarios que tienen el par de votos J-
L que el par K-L. El elemento J es mucho mejor predictor que el elemento K en este
caso. Analíticamente esta idea se introduce en la ecuación con el factor cj,i que es el
número de evaluaciones de los ítems j,i:
Sistemas de Recomendación
59
Predictor “Slope-one” Bi-Polar
Trabaja dividiendo la predicción en dos partes. Usa el algoritmo anterior una vez
para obtener una predicción de los elementos que han gustado al usuario y de los que no
han gustado.
El primer problema que plantea este sistema es establecer el umbral a partir del
que se considera que un elemento gusta o disgusta. La idea intuitiva es establecer un
umbral que sea la mitad de la escala de evaluación. Si la escala va de 1 a 10 los
elementos por debajo de 5 se considerarían como evaluados negativamente y los otros
son evaluados positivamente.
Esta aproximación sería la adecuada si las evaluaciones de los usuarios fueran
distribuidas uniformemente. Sin embargo el comportamiento real de los usuarios indica
que existe un porcentaje elevado de votaciones superiores a la mitad de la escala. Por
ello el valor del umbral se establece como la media de todas las notas dadas por el
usuario.
En la práctica este procedimiento supone doblar el número de usuarios, pero a la
vez también reduce el número de elementos en el cálculo de las predicciones.
Capítulo 3
60
3.4. MÉTODOS DE EVALUACIÓN DEL RENDIMIENTO
3.4.1. Objetivo
Evaluar el rendimiento de los algoritmos de recomendación no es trivial.
Primero porque diferentes algoritmos pueden ser mejores o peores dependiendo del
dataset elegido.
La mayoría de estos algoritmos están diseñados para el dataset de películas de
GroupLens donde existe un número de elementos mucho menor al número de usuarios y
votos. En una situación inversa el comportamiento puede diferir totalmente.
También los objetivos del sistema de recomendación pueden diversos. Un
sistema puede diseñarse para estimar con exactitud la nota que daría un usuario a un
elemento, mientras otro puede tener como principal objetivo el no proporcionar
recomendaciones erróneas. Es decir puede haber múltiples tipos de medidas. Que las
recomendaciones cubran todo el espectro de elementos del conjunto (cobertura), que no
se repitan, que sean explicables, etc. Sin embargo el principal objetivo de un sistema de
recomendación no es directamente cuantificable: la satisfacción del usuario. En muchos
casos conseguir un error cuadrático menor al elegir un algoritmo u otro no es apreciado
por el usuario. Sin embargo hay muchos otros parámetros que pueden influir en esa
satisfacción. La sensación de credibilidad que ofrezca el sistema, la interfaz de usuario,
la mejora del perfil al incluir nuevos votos, etc. En cualquier caso las medidas de
precisión pueden dar una primera idea de cómo de bueno es el algoritmo nuclear del
sistema de recomendación. Existen dos tipos de métodos de evaluación: métodos
estadísticos y métricas de decisión.
Sistemas de Recomendación
61
3.4.2. Métodos estadísticos
El parámetro de evaluación más utilizado es el error medio absoluto (Mean
Absolute Error, MAE). Mide la desviación de las recomendaciones predichas y los
valores reales. A menor MAE mejor predice el sistema las evaluaciones de los usuarios.
El MAE sin embargo, puede dar una idea distorsionada del algoritmo para el
caso de sistemas que tienen como objetivo encontrar una lista de buenos elementos
recomendables. El usuario tan sólo está interesado en los N primeros elementos de la
lista. El error que se cometa al estimar el resto le es indiferente. Tampoco es
recomendable en sistemas en los que la salida deba de ser una decisión binaria de si/no.
Por ejemplo, con una escala de 1 a 10 si el umbral está situado en 5, utilizando MAE se
obtendría un mayor error al errar de 9 a 5 que al errar de 5 a 4, lo cual no es cierto a la
hora de medir el error de salida.
Sin embargo es un tipo de error estadísticamente muy estudiado y sencillo de
comprender. Posee muchas variaciones, como el error cuadrático medio que persigue
penalizar los mayores errores o el error absoluto normalizado que facilita la tarea de
establecer comparaciones entre pruebas con diferentes datasets.
Capítulo 3
62
3.4.3. Métricas de decisión
Evalúan cómo de efectivo es un sistema de predicción ayudando al usuario a
seleccionar los elementos mayor calidad, es decir con qué frecuencia el sistema de
recomendación efectúa recomendaciones correctas. Para ello asumen que el proceso de
predicción es binario: o el elemento recomendado agrada al usuario o no lo agrada. Sin
embargo en la práctica se plantea el problema de evaluar esto. Una posible solución es
la de dividir el conjunto de datos en dos conjuntos, entrenamiento y test. Se trabaja con
el conjunto de entrenamiento y posteriormente se evalúa el resultado comparando las
recomendaciones proporcionadas con las del conjunto de test. Aun siendo a veces ´útil
esta técnica, hay que tener en cuenta que los resultados dependen fuertemente del
porcentaje de elementos relevantes que el usuario haya votado.
La mas conocida de estas métricas es la de “Precision and Recall” y es utilizada
en muchos tipos de sistemas de recuperación de información. Precision es la
probabilidad de que un elemento seleccionado sea relevante y Recall es la probabilidad
de que sea seleccionado un elemento relevante, aunque en los sistemas de
recomendación la “relevancia” es algo totalmente subjetivo. De cara al usuario esta
métrica es mas intuitiva, puesto que establecer que un sistema tiene una precisión del 90
% significa que de cada 10 elementos recomendados 9 serán buenas recomendaciones,
algo que no queda claro proporcionando valores de error cuadrático medio.
ROC (Reciver operating characteristic) es otra medida muy utilizada.
Proporciona una idea de la potencia de diagnóstico de un sistema de filtrado. Las curvas
ROC dibujan la especifidad (probabilidad de que un elemento malo del conjunto sea
rechazado por el filtro) y la sensitividad (probabilidad de que un elemento bueno al azar
sea aceptado). Si un elemento es bueno o malo viene dado por las valoraciones de los
usuarios. Las curvas se dibujan variando el umbral de predicción a partir del cual se
acepta un elemento. El área bajo la curva se va incrementando si cuando el filtro es
capaz de retener más elementos buenos y menos malos.
Sistemas de Recomendación
63
3.5. CONCLUSIONES
Los sistemas de recomendación son ya ampliamente utilizados en Internet y
debido a la gran cantidad de información de todo tipo que nos rodea, su presencia y
utilidad es de esperar que aumente en el futuro.
Los algoritmos en los que se sustentan están bastante probados y
matemáticamente pueden conseguir buenos resultados. No obstante aún hay que pulir
muchos desperfectos. De cara al usuario no importa conseguir el mínimo error
cuadrático prediciendo la evaluación de una película (por ejemplo), sino que se busca
que los elementos recomendados sean satisfactorios. Por esto el procedimiento de
evaluación del comportamiento de un sistema de filtros colaborativos no es sencillo, no
puede limitarse a datos estadísticos.
Para obtener un mejor nivel de calidad es necesario introducir más elementos
externos además de los cálculos de correlación entre usuarios. Una vez se obtiene una
lista de elementos posibles para su recomendación habría que introducir nuevos
parámetros adaptado al usuario. En el caso de las películas por ejemplo, criterios como
el país de procedencia, la fecha de edición o la temática pueden ser muy útiles de
incorporar a la hora de generar la última lista al usuario.
En cualquier caso aunque hay camino por andar, los filtros colaborativos tienen
actualmente una enorme funcionalidad y el número de usuarios que hacen uso de ellos
no deja de crecer día a día.
PARTE III
Desarrollo de la Investigación
67
Capítulo 4 Ontología en Twitter
Los usuarios de las Web Sociales suministran información que pueden ser
utilizada para su propia taxonomía, todo ello dentro del contexto de los sistemas de
recomendación para la Web Semántica. Mediante el uso de una ontología de tipo RDF,
creada con Protègè, se clasifica el vocabulario genérico en una clasificación de estados
de ánimo. De esta forma, el resultado final es un estado de ánimo para el usuario, en
base al lenguaje utilizado en sus mensajes, por ejemplo en Twitter.
Capítulo 4
68
4.1. INTRODUCCIÓN
Los sistemas de recomendación han evolucionado rápidamente dentro del
entorno interactivo de la Web, tanto en sitios de comercio electrónico, como en las webs
sociales. Es un entorno donde todavía no hay resultados a gran escala y se hace
necesaria la investigación multidisciplinar. Por un lado la situación de la web semántica
y las taxonomías que permitan clasificar y entender mejor la información almacenada.
Por otro lado, los agentes que ayudar al usuario en su proceso de decisión mediante
diferentes mecanismos. Todo ello pasando por el modelado del comportamiento del
usuario, que en una primera aproximación puede ser su clasificación en un determinado
tipo estado de ánimo.
Dentro de la web semántica las tecnologías como URIs son indispensables para
identificar los recursos web. La familia de tecnologías XML (eXtensible Markup
Language) se utiliza para presentar, manipular y transmitir documentos y datos
estructurados. Una de las tecnologías más utilizadas es RDF (Resource Description
Framework) que proporciona un modelo de datos común (basado en XML
NameSpaces), el cual se utiliza para formalizar los meta-datos.
A día de hoy son pocas las iniciativas orientadas al desarrollo de ontologías para
la web semántica tanto en Estados Unidos (DAML DARPA Agent Markup Language y
OIL (Ontology Inference Language)) como en Europa (DAML+OIL), por ese motivo se
ha optado por crear una ontología propia, para la creación de los distintos estados de
ánimo.
Los actuales sistemas de recomendación semánticos basados en algoritmos de
filtrado colaborativo utilizan las valoraciones de los usuarios sobre ciertos elementos del
conjunto total para predecir valoraciones en el resto de los elementos y recomendar los
de mayor valoración predicha. Sin embargo, estos sistemas adolecen del problema de
“cold start”, donde no hay información para clasificar al usuario al comienzo de su
interacción. Este problema puede ser abordado con más éxito utilizando las redes
sociales y la información que ha dado el usuario en dichas redes.
Los responsables de las web sociales están cada vez más concienciados de la
importancia de los contenidos que mantienen y crean estándares para la integración de
sus servicios web en otras aplicaciones. Como resultado de ese esfuerzo, recientemente
se han puesto a disposición de toda la comunidad de desarrolladores, herramientas como
la API de Twitter. Gracias a este Aplication Program Interface, es posible trabajar en
otra aplicación como si lo hiciéramos desde dentro de Twitter. De esta forma, una vez
autenticados y dada la aplicación de alta convenientemente, se pueden recopilar los
mensajes que un usuario ha enviado, para su posterior tratamiento. Esta información es
muy valiosa para hacer una primera aproximación del tipo de perfil que tiene el usuario.
En este escenario, el entorno de desarrollo seleccionado ha sido PHP por su
sencillez y flexibilidad para convertirse en una plataforma compatible con las diferentes
tecnologías desarrolladas.
Ontología en Twitter
69
El esquema general de trabajo es el que representa la siguiente figura:
Figura 18 – Esquema general Ontología Twitter
Como puede apreciarse en la figura 18, lo que se busca es clasificar el estado de
ánimo del usuario en base a los mensajes enviados por Twitter. De esta forma,
analizando el lenguaje utilizado en dichos mensajes y gracias a la utilización de una
ontología, el resultado final es la categorización del estado de ánimo del usuario de una
forma inmediata.
Capítulo 4
70
4.2. MATERIALES Y MÉTODOS
El método utilizado ha sido comenzar por estudiar el estado de la cuestión,
investigando la situación actual del la web semántica y los sistemas de recomendación.
A continuación se ha tratado de resolver un caso real en el que fuéramos capaces de
crear un perfil de usuario sin su interacción directa, utilizando para ello el uso de una
red social. Las posibilidades que se planteaban eran realmente grandes, por lo que se ha
querido ir de lo sencillo hacia lo más complejo; dejando abiertas otras nuevas líneas de
investigación. La red social seleccionada ha sido Twitter, ya que existe una api para
desarrolladores. Hubiera sido posible tratar con otras más complejas en base a los
contenidos que incluyen. Además, no se han tenido en cuenta las redes de usuarios ni
las preferencias de los mismos, sino simplemente los mensajes enviados por un usuario
en concreto.
Ontología en Twitter
71
4.2. ELEMENTOS TECNÓLOGICOS
La plataforma común que se ha utilizado ha sido php, para lo cual se ha utilizado
la distribución de appserv que incluye los componentes principales necesarios: Apache,
PHP y MySQL.
4.2.1 Twitter
Sobre dicha instalación se han incluido las librerías de Twitter para
desarrolladores. Una vez hecho esto, el siguiente paso es dar de alta la aplicación en la
plataforma de desarrollo:
Figura 19 – Twitter developers
Capítulo 4
72
Lo que nos permite obtener unos datos fundamentales para la posterior
autenticación, como son los que aparecen en la siguiente imagen:
Figura 20 - Datos de autenticación de la aplicación en twitter
Esa información, junto con los datos de usuario y contraseña serán necesarios
para poder acceder a la información privada del usuario, desde nuestra aplicación php.
A continuación se muestra el código php necesario para la autenticación del usuario:
<?php
require "twitter.lib.php";
require_once ('twitteroauth.php');
$consumerKey = 'S8Ppt1…';
$consumerSecret = 'svoMji…';
$oAuthToken = '38080…';
$oAuthSecret = 'DFEIZO…';
function getConnectionWithAccessToken($oauth_token, $oauth_token_secret)
{
$connection = new TwitterOAuth($consumerKey, $consumerSecret,
$oauth_token, $oauth_token_secret);
return $connection;
}
$connection = getConnectionWithAccessToken($oAuthToken , $oAuthSecret);
$content = $connection->get("statuses/user_timeline");
Código 1 – PHP: Autenticación de usuarios
Ontología en Twitter
73
Una vez autenticado, ya se puede utilizar la conexión para recuperar los
mensajes del usuario, para lo cual, se utiliza el método get y el parámetro
correspondiente.
4.2.2 Protègè
Por otro lado, es necesario crear la ontología, para lo cual se ha utilizado el
programa Protègè en su versión para generar ontologías OWL.
Figura 21 - Pantalla inicial de Protègè
En la aplicación, tras elegir el nombre de la ontología, se debe indicar en qué
formato se desea grabar la misma. Para nuestro proyecto, se elige RDF/XML, tal y
como muestra la figura 22:
Figura 22 – Formato para la ontología
Capítulo 4
74
Para la realización de la ontología, se ha optado por una pequeña representación
del vocabulario, con el objetivo de probar la funcionalidad y capacidad de clasificación,
de esta forma se puede apreciar el resultado en la figura 23:
Figura 23 - Ontología de los estados de ánimo, realizada con Protègé
4.2.3 MySQL
El siguiente paso es cargar esta ontología en un repositorio que permite las
consultas. Para esta tarea se han utilizado las librerías de RAP para PHP, que permiten
la importación a una base de datos de tipo MySQL.
El primer paso es crear una base de datos en MySQL, utilizando la utilidad
phpMyAdmin suministrada con Appserv, tal y como se muestra la siguiente pantalla:
Figura 24 - Utilidad MySQL para crear una base de datos
Ontología en Twitter
75
Una vez hecho esto, hay que abrir el fichero de configuración “config.inc.php”
para cambiar los siguientes valores:
$_DB[$i]["type"]="mysql";
$_DB[$i]["host"]="localhost";
$_DB[$i]["port"]="";
$_DB[$i]["dbName"]="Animo";
$_DB[$i]["username"]="root";
$_DB[$i]["password"]="root";
Código 2 – Parte del fichero config.inc.php
4.2.4. RAP Tools
El siguiente paso es abrir las utilidades suministradas por RAP para cargar la
base de datos con el fichero owl generado por Protègè.
Figura 25 - Primera pantalla de “rdfdb-utils”
Capítulo 4
76
Y se carga la base de datos desde el menú de “Add”, utilizando la opción de
“Upload RDF” y seleccionando el archivo owl generado con Protégé:
Figura 26 - Cargar ontología rdf en MySQL
Ontología en Twitter
77
4.3. MODELO DE DATOS
Con los pasos antereioes se consiguen añadir las tripletas Sujeto, Predicado y
Objeto en las tablas de MySQL, que tiene la siguiente estructura:
Figura 27 – Estructura de tablas en MySQL
En dicha estructura, la tabla “statements” tiene todas las tripletas de RDF, según
se pueden apreciar en la siguiente figura 28:
Figura 28 – Tripletas sujeto, predicado y objeto en MySQL
Una vez cargado el modelo, ya se puede utilizar desde php para, por un lado
obtener las palabras de los mensajes de Twitter y por otro, obtener la clasificación del
usuario en base a dichas palabras.
Capítulo 4
78
En el siguiente código se muestra un sencillo ejemplo donde se mostrarían todas
las coincidencias y por lo tanto, los distintos estados de ánimo que tiene el usuario.
//Base de datos que tiene almacenado el modelo
$basedatos = "animo";
//conectamos con el servidor
$link = @mysql_connect("localhost", "root", "root");
// comprobamos que hemos estabecido conexión en el servidor
if (!$link){
echo "<h2 align='center'>ERROR: Imposible establecer
conección con el servidor</h2>";
exit;
}
echo "<pre>";
echo "<b> Perfil de usuario: </b>";
$Perfil="No";
foreach ($content as $mensaje){
$palabras=split(" ",$mensaje->text);
foreach ($palabras as $palabra){
//Creamos la parte variable de la query
$sql = 'SELECT SUBSTRING(`object`,LOCATE(
\'#\', `object` )+1) AS resultado'
. ' FROM `statements`'
. ' WHERE `predicate` LIKE \'%#SubClassOf\''
. ' AND `subject` LIKE \'%#'.$palabra.'\'';
$result =
@mysql_db_query($basedatos,$sql,$link);
$row = @mysql_fetch_array($result);
If ($row["resultado"]!= "") {
echo $row["resultado"];
$Perfil="Sí";
exit;
}
}
}
If ($Perfil=="No") {
echo "-- Sin información sobre el perfil --";
}
echo "</pre>";
Código 3 – PHP: Obtención del perfil
Ontología en Twitter
79
4.4 APLICACIONES PRÁCTICAS
Son muchos los modelos propuestos para filtrar la información, dadas las
ventajas que podría ofrecer la aplicación de técnicas de recomendación de contenidos
basadas en la confianza en medios sociales como Twitter, donde los usuarios pueden
acceder no sólo a información de texto, sino también conectar con otros usuarios y los
enlaces a contenidos que envían. Este tipo de recomendaciones se centran en el grafo
social del usuario, y tiene como principal objetivo sugerir contenidos relevantes y de
confianza. Esto generará mayor satisfacción del usuario y un aumento de su actividad en
el sitio y con otros usuarios. Esto a su vez podrá beneficiar al medio social en cuestión
como resultado del aumento del consumo de información y productos derivados. Existe
un gran interés comercial en este tipo de técnicas, ya que un mayor refinamiento en el
filtrado conduce a mejores resultados en las ventas de los productos recomendados.
PARTE IV
Conclusiones
83
Capítulo 5 Conclusiones
En el ejemplo mostrado, se consigue un perfil de usuario a partir de los
mensajes que el usuario ha compartido por Twitter. De esta forma se demuestra que se
puede utilizar una ontología de los estados de ánimo, para obtener un perfil de usuario
y mejorar los resultados de un sistema de recomendación. Es decir, el modelo se podría
enlazar con otros filtros colaborativos y de contenido, para ofrecer al usuario distintas
posibilidades en base a su estado de ánimo.
Capítulo 5
84
5.1. VERIFICACIÓN, CONTRASTE Y EVALUACIÓN
DE LOS OBJETIVOS
Con el prototipo mostrado se demuestra que se han podido conseguir los
objetivos planteados.
La heurística utilizada ha sido de lo más sencilla, ya que la decisión del estado
de ánimo se logra con la primera aparición de una palabra que encaja dentro de la
ontología. Aquí también se abren multitud de posibilidades, que enlazan con los
estudios que existen sobre cómo combinar varios resultados distintos, utilizando
formulación estadística y ponderada. También se podría incluir una variable temporal,
ya que un mensaje enviado hace más tiempo que otro debería pesar menos que el más
reciente de los mismos. Del mismo modo, al estar trabajando con la información que
tiene una red social, la influencia del resto de usuarios también es importante. Son
muchos los avances conseguidos en los sistemas de recomendación, gracias a la
influencia de los contactos del usuario a clasificar. Se abren de esta forma muchas
posibilidades para los sistemas híbridos, donde se combina la información que el propio
usuario declara (preferencias), la que se recopila por su comportamiento implícito o
explícito (rating) y la que se obtiene por sus mensajes, tal y como ha quedado
demostrado en este prototipo.
Conclusiones
85
5.2. SÍNTESIS DEL MODELO PROPUESTO
En la siguiente figura se muestra el modelo conceptual utilizado:
Figura 29 – Ontología de los estados de ánimo
Capítulo 5
86
5.3. APORTACIONES ORIGINALES
La mayoría de las redes sociales tienen sistemas de recomendación para
aumentar la actividad dentro del su propio sitio. Además, existen muchas webs donde se
recomiendan contenidos de tipo multimedia (música o vídeo principalmente). Sin
embargo, no son muchos los que mezclan ambos entornos para generar recomendar
recomendaciones más eficientes. Con este prototipo se demuestra que el estado actual
de la tecnología permite unir ambas islas para crear filtrados más eficientes. A nivel de
ontologías también se están realizando progresos en la fusión de diferentes modelos,
como aquellos que mezclan las clasificaciones musicales con otras geográficas. Todo
ello, lleva a pensar en que el futuro de los sistemas de recomendación permitirán unir
diferentes entornos y obtener lo mejor de cada uno para generar conocimiento
novedoso, que aportará un valor añadido a la malgama de información que inunda al
actual internauta.
En este trabajo se une Twitter con Protègè, para generar perfiles de usuario en
base a los mensajes emitidos por el usuario.
Conclusiones
87
5.4. TRABAJOS DERIVADOS
Con el objetivo de difundir ante la comunidad científica los resultados que se reflejan en este
proyecto fin de master, se está trabajando en la presentación del artículo que se incluye en el
Anexo A, en el The International Journal of Interactive Multimedia and Artificial Intelligence -
IJIMAI (ISSN 1989 - 1660)
Capítulo 5
88
5.5. LÍNEAS DE INVESTIGACIÓN FUTURAS
El horizonte que se vislumbra permite esbozar nuevos objetivos a medio y largo
plazo relacionados con el presente trabajo.
Por un lado, la web semántica necesita de ontologías generales con vocación de
estándares. En este punto, se contemplan entre otras las siguientes líneas de
investigación:
Ontología de usuarios sociales: El trabajo colaborativo necesita de un
lenguaje común, suficientemente flexible, cómodo y sencillo como para
convertirse en un estándar. En el momento actual, cada red social utiliza
sus propios medios particulares para dotar de significado los contenidos
que maneja. El reto consistiría en conseguir relacionar todos los entornos
mediante el uso de un leguaje común o taxonomía social. Como
posibilidad en este punto, se propone la elaboración de encuestas que
sirvan para dotar al lenguaje natural de un significado extra o meta-
información a la hora de crear esa ontología.
Aplicaciones interdisciplinares: El usuario final necesita de herramientas
que se adapten a sus necesidades y que lejos de convertirse en un
esfuerzo adicional, supongan un ahorro de tiempo. Mientras no se
consiga un verdadero beneficio, no existirá interés ni motivación para
dotar a internet de un significado adicional. Las aplicaciones que
consigan unificar los actuales entornos heterogéneos, se convertirán en el
apalancamiento de la revolución hacia la web 3.0
Por otro lado, los sistemas de recomendación deben continuar trabajando hacia
modelos cada vez más naturales al usuario y más susceptibles de ser automatizados. En
esta línea, se proponen puntos de investigación:
Agentes sociales: La convergencia de los agentes automáticos de filtrado
de información y las web sociales, marcarán la diferencia de los sistemas
de recomendación. El salto cualitativo está en la capacidad de relacionar
el conocimiento existente para generar verdadera inteligencia social.
Cuando el fruto generado sea apreciado por el usuario final, existirá una
verdadera motivación para adoptar el nuevo paradigma y alimentar esa
inteligencia social.
Modelos interactivos: El actual prototipo necesita de una serie de pasos
previos que obligan a trabajar sin la necesaria interactividad. La
adaptación del modelo hacia lenguajes de interrogación de modelos vivos
o no cerrados, permitirán el crecimiento autónomo de modelos. Todo ello
por otro lado, evitará retrasos en la adaptación de modelos a una realidad
viva y en continua evolución.
89
BIBLIOGRAFÍA
[BERN01]: T. Berners-Lee, J. Hendler, O. Lassila; "The Semantic Web: a new form of Web
content that is meaningful to computers will unleash a revolution of new posibilities". Scientific
American, May 2001 (se puede consultar a través de la página web de la revista:
http://www.sciam.com)
[BERN99]: Berners-Lee, Tim; Tejiendo la red; Siglo XXI de España editores, Príncipe de
Vergara, 78. 28006, Madrid. Mayo 2000. 84-323-1040-9
[CANT11a]: I. Cantador and P. Castells. Extracting Multilayered Communities of Interest
from Semantic User Profiles: Application to Group Modeling and Hybrid Recommendations.
Computers in Human Behavior 27, special issue on Social and Humanistic Computing for the
Knowledge Society, July 2011, pp. 1321-1336
[CECC03]: L.Ceccaroni, X.Verdaguer; TV finder: Una aproximación semántica a la televisión
interactiva. http://www.xavierverdaguer.com/articuloTVFinder200310.pdf
[CODI03]: L. Codina; “Internet Invisible y web semántica: ¿el futuro de los sistemas de
información en línea?” revista tradumàtica Traducció i Technologies de la Informació i la
Comunicació. Número 2 : La Documentació : Novembre 2003 :
htp://www.fti.uab.es/tradumatica/revista : ISSN 1578-7559
[CRUZ03]: R.A.Cruz; F.J. García; L. Alonso; Perfiles de usuario: En la senda de la
personalización. DPTOIA-IT-2003-001
[GALA07]: S.M. Galán; “Filtrado colaborativo y Sistemas de Recomendación”; IRC’07,
Enero, 2007, Leganés, Madrid, Spain.
http://www.mendeley.com/research/filtrado-colaborativo-y-sistemas-recomendacin/
[GARC02]: F.J. García, A.B. Gil; “Personalización de los sistemas de Recomendación”. Dpto.
Informática y Automática – Universidad de Salamanca. Facultad de Ciencias, Plaza de la
Merced S/N, 37008, Spain. http://lsi.ugr.es/~mgea/workshops/coline02/Articulos/fgarcia.pdf
[GERP02]: V. Geroimenko, C. Chen; Visualizing the semantic web: xml-based Internet and
information visualization. London: Springer, 2002
[HERR04]: E.Herrera-Viedma, C.Porcel, L.Hidalgo; Sistemas de recomendación:
Herramientas para el filtrado de la información en Internet; Web:
http://www.hipertext.net/web/pag227.htm
[LAMA11]: M.J. Lamarca. Tesis Doctoral “Hipertexto: El nuevo concepto de documento en la
cultura de la imagen”. Universidad Complutense de Madrid. http://www.hipertexto.info
[LOZA07]: E. Lozano; Portal de colaboración con capacidades semánticas; Departamento de
Tecnología Electrónica de la Escuela Técnica superior de Ingeniería Informática de Valencia;
http://www.rediris.es/ptyoc/res/dl18.html.es
[MORA09]: J.Morato, S.Sánchez Cuadrado, A.Fraga, y otros; Hacia una web semántica
social; DOI: 10.3145/epi.2008.ene.09
90
[PEIS03]: E. Peis, E.Herrera-Viedma, J.C. Herrera; Análisis de la web semántica: estado
actual y requisitos futuros. El profesional de la información, v. 12, n. 5, septiembre-octubre
2003.
http://digibug.ugr.es/bitstream/10481/1205/1/Analisis%20de%20la%20web.pdf
[RAMO05]: M. Ramos, Y. Blanco, A. Gil; AVATAR: Un sistema de recomendación
personalizada de contenidos televisivos basado en información semántica; Departamento de
Ingeniería Telemática. Universidad de Vigo ETSI de Telecomunicación.
http://idtv.det.uvigo.es/pdfs/jitel05-b.pdf
[SANT04]: L.P. Santacruz-Valencia, I. Aedo, C. Delgado. “Objetivos de aprendizaje:
Tendencias dentro de la web semántica”, Boletín de RedIRIS, nº 66-67, diciembre 2003-enero
2004
[SEGU09]: M.Seguido; Sistemas de recomendación para webs de información sobre la salud.
Universitat Politècnica de Catalunya. Master and PhD in Computing, Tesi de Màster.
http://upcommons.upc.edu/pfc/bitstream/2099.1/7193/1/Master%20Thesis%20Seguido.pdf
[SOLE09]: M.C. Soler; “Evaluación de vocabularios controlados en la indización de
documentos mediante índices de consistencia entre indizadores”. Universidad Politécnica de
Valencia, 2009.
91
REFERENCIAS WEB
[BERN00]: T. Berners-Lee; Semantic Web – XML2000 (W3C);
http://www.w3.org/2000/Talks/1206-xml2k-tbl/Overview.html
[CANT11a]: I. Cantador (Universidad Autónoma de Madrid). Sistemas de recomendación
sobre dominios cruzados:
http://masterinformaticainteractiva.blogspot.com.es/2011/09/sistemas-de-recomendacion-
sobre.html
[RAP12]: Vídeo – Ontología en Protègè y RAP: http://youtu.be/lYaas93Va8g
[TWIT12]: Twitter Developers: https://dev.twitter.com/
PARTE V
Anexos
Clasificación Ontológica en Twitter
i
Anexo A Clasificación Ontológica en Twitter
En este anexo se incluye el artículo “Clasificación Ontológica en Twitter” que actualmente se
encuentra en proceso de publicación en la International Journal of Interactive Multimedia and
Artificial Intelligence (http://www.ijimai.org)
Anexo A
ii
Clasificación ontológica de usuarios de Twitter
Pedro J. Camacho Ortega
Máster en Dirección e Ingeniería de Sitios Web
Universidad Internacional de la Rioja
Resumen: Los usuarios de las Web Sociales suministran información que pueden ser
utilizada para su propia taxonomía, todo ello dentro del contexto de los sistemas de
recomendación para la Web Semántica [1]. Mediante el uso de una ontología de tipo
RDF [2], creada con Protègè, se clasifica el vocabulario genérico en una clasificación de
estados de ánimo. De esta forma, el resultado final es un estado de ánimo para el
usuario, en base al lenguaje utilizado en sus mensajes, por ejemplo en Twitter.
Abstract. Social Web Users provide information which can be used for its own
taxonomy, all within the context of recommender systems about Semantic Web [1].
Through using RDF ontology type [2], created by Protègè, generic vocabulary is sorted
on a classification of moods. Thus, the final result is an user moodstate, based on
language used in their messages, such as Twitter.
Palabras clave: Web social, ontología, sistemas de recomendación, php, API
Keywords: Social web, ontology, recommender system, php, API
Introducción: Los sistemas de
recomendación han evolucionado
rápidamente dentro del entorno interactivo
de la Web, tanto en sitios de comercio
electrónico, como en las webs sociales. Es
un entorno donde todavía no hay resultados
a gran escala y se hace necesaria la
investigación multidisciplinar. Por un lado
la situación de la web semántica y las
taxonomías que permitan clasificar y
entender mejor la información almacenada.
Por otro lado, los agentes que ayudar al
usuario en su proceso de decisión mediante
diferentes mecanismos. Todo ello pasando
por el modelado del comportamiento del
usuario, que en una primera aproximación
puede ser su clasificación en un
determinado tipo estado de ánimo.
Dentro de la web semántica las
tecnologías como URIs [3] son
indispensables para identificar los recursos
web. La familia de tecnologías XML
(eXtensible Markup Language) [4] se
utiliza para presentar, manipular y
transmitir documentos y datos
estructurados. Una de las tecnologías más
utilizadas es RDF (Resource Description
Framework) [2] que proporciona un modelo
de datos común (basado en XML
NameSpaces [4]), el cual se utiliza para
formalizar los meta-datos.
A día de hoy son pocas las
iniciativas orientadas al desarrollo de
ontologías para la web semántica tanto en
Estados Unidos (DAML DARPA Agent
Markup Language [5] y OIL (Ontology
Inference Language) [6]) como en Europa
(DAML+OIL) [7], por ese motivo se ha
optado por crear una ontología propia, para
la creación de los distintos estados de
ánimo.
Los actuales sistemas de
recomendación semánticos [8] basados en
algoritmos de filtrado colaborativo utilizan
las valoraciones de los usuarios sobre
ciertos elementos del conjunto total para
predecir valoraciones en el resto de los
elementos y recomendar los de mayor
valoración predicha. Sin embargo, estos
sistemas adolecen del problema de “cold
start”, donde no hay información para
clasificar al usuario al comienzo de su
Clasificación Ontológica en Twitter
iii
interacción. Este problema puede ser
abordado con más éxito utilizando las redes
sociales y la información que ha dado el
usuario en dichas redes.
Los responsables de las web
sociales están cada vez más concienciados
de la importancia de los contenidos que
mantienen y crean estándares para la
integración de sus servicios web [9] en
otras aplicaciones. Como resultado de ese
esfuerzo, recientemente se han puesto a
disposición de toda la comunidad de
desarrolladores, herramientas como la API
de Twitter [10]. Gracias a este Aplication
Program Interface, es posible trabajar en
otra aplicación como si lo hiciéramos desde
dentro de Twitter. De esta forma, una vez
autenticados y dada la aplicación de alta
convenientemente, se pueden recopilar los
mensajes que un usuario ha enviado, para
su posterior tratamiento. Esta información
es muy valiosa para hacer una primera
aproximación del tipo de perfil que tiene el
usuario.
En este escenario, el entorno de
desarrollo seleccionado ha sido PHP por su
sencillez y flexibilidad para convertirse en
una plataforma compatible con las
diferentes tecnologías desarrolladas.
El esquema general de trabajo es el
que representa la siguiente figura:
Figura 1: Clasificación de los
usuarios en base a su estado de ánimo
Como puede apreciarse en la figura
1, lo que se busca es clasificar el estado de
ánimo del usuario en base a los mensajes
enviados por Twitter. De esta forma,
analizando el lenguaje utilizado en dichos
mensajes y gracias a la utilización de una
ontología, el resultado final es la
categorización del estado de ánimo del
usuario de una forma inmediata.
Materiales y Métodos: El método
utilizado ha sido comenzar por estudiar el
estado de la cuestión, investigando la
situación actual del la web semántica y los
sistemas de recomendación. A continuación
se ha tratado de resolver un caso real en el
que fuéramos capaces de crear un perfil de
usuario sin su interacción directa, utilizando
para ello el uso de una red social. Las
posibilidades que se planteaban eran
realmente grandes, por lo que se ha querido
ir de lo sencillo hacia lo más complejo;
dejando abiertas otras nuevas líneas de
investigación. La red social seleccionada
ha sido Twitter, ya que existe una api para
desarrolladores. Hubiera sido posible tratar
con otras más complejas en base a los
contenidos que incluyen. Además, no se
han tenido en cuenta las redes de usuarios
ni las preferencias de los mismos, sino
simplemente los mensajes enviados por un
usuario en concreto.
La plataforma común que se ha
utilizado ha sido php, para lo cual se ha
utilizado la distribución de appserv [12] que
incluye los componentes principales
necesarios: Apache, PHP y MySQL. Sobre
dicha instalación se han incluido las
librerías de Twitter para desarrolladores
[10]. Una vez hecho esto, el siguiente paso
es dar de alta la aplicación en la plataforma
de desarrollo:
Figura 2: Aplicación en Twitter
Lo que nos permite obtener unos
datos fundamentales para la posterior
autenticación, como son los que aparecen
en la siguiente imagen:
Anexo A
iv
Figura 3: Datos de autenticación de
la aplicación en twitter
Esa información, junto con los
datos de usuario y contraseña serán
necesarios para poder acceder a la
información privada del usuario, desde
nuestra aplicación php. A continuación se
muestra el código php necesario para la
autenticación del usuario:
<?php
require
"twitter.lib.php";
require_once
('twitteroauth.php');
$consumerKey =
'S8Ppt1…';
$consumerSecret =
'svoMji…';
$oAuthToken =
'38080…';
$oAuthSecret =
'DFEIZO…';
function
getConnectionWithAccessToken(
$oauth_token,
$oauth_token_secret)
{
$connection = new
TwitterOAuth($consumerKey,
$consumerSecret,
$oauth_token,
$oauth_token_secret);
return
$connection;
}
$connection =
getConnectionWithAccessToken(
$oAuthToken , $oAuthSecret);
$content = $connection-
>get("statuses/user_timeline"
);
Una vez autenticado, ya se puede
utilizar la conexión para recuperar los
mensajes del usuario, para lo cual, se utiliza
el método get y el parámetro
correspondiente.
Por otro lado, es necesario crear la
ontología, para lo cual se ha utilizado el
programa Protègè en su versión para
generar ontologías OWL [13].
Figura 4: Pantalla inicial de
Protègè
En la aplicación, tras elegir el
nombre de la ontología, se debe indicar en
qué formato se desea grabar la misma. Para
nuestro proyecto, se elige RDF/XML, tal y
como muestra la figura 5:
Figura 5: Formato para la
ontología
Para la realización de la ontología,
se ha optado por una pequeña
representación del vocabulario, con el
objetivo de probar la funcionalidad y
capacidad de clasificación, de esta forma se
puede apreciar el resultado en la figura 6:
Clasificación Ontológica en Twitter
v
Figura 6: Ontología de los estados
de ánimo, realizada con Protègé
El siguiente paso es cargar esta
ontología en un repositorio que permite las
consultas. Para esta tarea se han utilizado
las librerías de RAP para PHP [14], que
permiten la importación a una base de datos
de tipo MySQL.
El primer paso es crear una base de
datos en MySQL, utilizando la utilidad
phpMyAdmin suministrada con Appserv
[12], tal y como se muestra la siguiente
pantalla:
Figura 7: Utilidad MySQL para
crear una base de datos
Una vez hecho esto, hay que abrir
el fichero de configuración
“config.inc.php” para cambiar los
siguientes valores:
$_DB[$i]["type"]="mysql"
;
$_DB[$i]["host"]="localh
ost";
$_DB[$i]["port"]="";
$_DB[$i]["dbName"]="Anim
o";
$_DB[$i]["username"]="ro
ot";
$_DB[$i]["password"]="ro
ot";
El siguiente paso es abrir las
utilidades suministradas por RAP para
cargar la base de datos con el fichero owl
generado por Protègè.
Figura 8: Primera pantalla de
“rdfdb-utils”
Y se carga la base de datos desde el
menú de “Add”, utilizando la opción de
“Upload RDF” y seleccionando el archivo
owl generado con Protégé:
Figura 9: Cargar de ontología rdf
en MySQL
De esta forma, se consiguen añadir
las tripletas Sujeto, Predicado y Objeto en
las tablas de MySQL, que tiene la siguiente
estructura:
Figura 10: Estructura de tablas en
MySQL tras cargar el modelo RDF
En dicha estructura, la tabla
“statements” tiene todas las tripletas de
RDF, según se pueden apreciar en la
siguiente figura 11:
Anexo A
vi
Figura 11: Tripletas sujeto,
predicado y objeto en MySQL
Una vez cargado el modelo, ya se puede
utilizar desde php para, por un lado obtener
las palabras de los mensajes de Twitter y
por otro, obtener la clasificación del usuario
en base a dichas palabras. En el siguiente
código se muestra un sencillo ejemplo
donde se mostrarían todas las coincidencias
y por lo tanto, los distintos estados de
ánimo que tiene el usuario.
//Base de datos que
tiene almacenado el modelo
$basedatos = "animo";
//conectamos con el
servidor
$link =
@mysql_connect("localhost",
"root", "root");
// comprobamos que hemos
estabecido conexión en el
servidor
if (!$link){
echo "<h2
align='center'>ERROR:
Imposible establecer
conección con el
servidor</h2>";
exit;
}
echo "<pre>";
echo "<b> Perfil de
usuario: </b>";
$Perfil="No";
foreach ($content as
$mensaje){
$palabras=split("
",$mensaje->text);
foreach
($palabras as $palabra){
//Creamos la parte
variable de la query
$sql =
'SELECT
SUBSTRING(`object`,LOCATE(
\'#\', `object` )+1) AS
resultado'
. '
FROM `statements`'
. '
WHERE `predicate` LIKE
\'%#SubClassOf\''
. ' AND
`subject` LIKE
\'%#'.$palabra.'\'';
$result
=
@mysql_db_query($basedatos,$s
ql,$link);
$row =
@mysql_fetch_array($result);
If
($row["resultado"]!= "") {
echo $row["resultado"];
$Perfil="Sí";
exit;
}
}
}
If ($Perfil=="No") {
echo "-- Sin
información sobre el perfil -
-";
}
echo "</pre>";
Clasificación Ontológica en Twitter
vii
Resultados: En el ejemplo
mostrado, se consigue un perfil de usuario a
partir de los mensajes que el usuario ha
compartido por Twitter. De esta forma se
demuestra que se puede utilizar una
ontología de los estados de ánimo, para
obtener un perfil de usuario y mejorar los
resultados de un sistema de recomendación.
Es decir, el modelo se podría enlazar con
otros filtros colaborativos y de contenido,
para ofrecer al usuario distintas
posibilidades en base a su estado de ánimo.
La heurística utilizada ha sido de lo más
sencilla, ya que la decisión del estado de
ánimo se logra con la primera aparición de
una palabra que encaja dentro de la
ontología. Aquí también se abren multitud
de posibilidades, que enlazan con los
estudios que existen sobre cómo combinar
varios resultados distintos, utilizando
formulación estadística y ponderada.
También se podría incluir una variable
temporal, ya que un mensaje enviado hace
más tiempo que otro debería pesar menos
que el más reciente de los mismos. Del
mismo modo, al estar trabajando con la
información que tiene una red social, la
influencia del resto de usuarios también es
importante. Son muchos los avances
conseguidos en los sistemas de
recomendación, gracias a la influencia de
los contactos del usuario a clasificar. Se
abren de esta forma muchas posibilidades
para los sistemas híbridos, donde se
combina la información que el propio
usuario declara (preferencias), la que se
recopila por su comportamiento implícito o
explícito (rating) y la que se obtiene por sus
mensajes, tal y como ha quedado
demostrado en este prototipo.
Discusión y Comparación: La
mayoría de las redes sociales tienen
sistemas de recomendación para aumentar
la actividad dentro del su propio sitio.
Además, existen muchas webs donde se
recomiendan contenidos de tipo multimedia
(música o vídeo principalmente). Sin
embargo, no son muchos los que mezclan
ambos entornos para generar recomendar
recomendaciones más eficientes. Con este
prototipo se demuestra que el estado actual
de la tecnología permite unir ambas islas
para crear filtrados más eficientes. A nivel
de ontologías también se están realizando
progresos en la fusión de diferentes
modelos, como aquellos que mezclan las
clasificaciones musicales con otras
geográficas. Todo ello, lleva a pensar en
que el futuro de los sistemas de
recomendación permitirán unir diferentes
entornos y obtener lo mejor de cada uno
para generar conocimiento novedoso, que
aportará un valor añadido a la malgama de
información que inunda al actual internauta.
Conclusiones: Son muchos los
modelos propuestos para filtrar la
información, dadas las ventajas que podría
ofrecer la aplicación de técnicas de
recomendación de contenidos basadas en la
confianza en medios sociales como Twitter,
donde los usuarios pueden acceder no sólo
a información de texto, sino también
conectar con otros usuarios y los enlaces a
contenidos que envían. Este tipo de
recomendaciones se centran en el grafo
social del usuario, y tiene como principal
objetivo sugerir contenidos relevantes y de
confianza. Esto generará mayor satisfacción
del usuario y un aumento de su actividad en
el sitio y con otros usuarios. Esto a su vez
podrá beneficiar al medio social en cuestión
como resultado del aumento del consumo
de información y productos derivados.
Existe un gran interés comercial en este tipo
de técnicas, ya que un mayor refinamiento
en el filtrado conduce a mejores resultados
en las ventas de los productos
recomendados.
Agradecimientos: Gracias a Óscar
San Juan por su apoyo y estímulo, y
también mi familia por su paciencia y
comprensión.
Referencias:
[1] Berners-Lee T., Miller E., The Semantic
Web lifts off, ERCIM News No. 51.
Consultado en:
(http://www.ercim.org/publication/Ercim_
News/enw51/berners-lee.html) marzo-2012.
[2] Resource Description Framework
(RDF). Consultado en:
(http://www.w3.org/RDF/) marzo-2012.
[3] Naming and Addressing URIs, URLS.
Consultado en:
(http://www.w3.org/Addressing) marzo-
2012.
Anexo A
viii
[4] eXtensible Markup Language (XML).
Consultado en: (http://www.w3.org/XML/)
marzo-2012.
[5] DARP Agent Markup Language
(DAML). Consultado en:
(http://www.daml.org) marzo-2012.
[6] Ontology Inference Language (OIL).
Consultado en:
(http://www.ontoknowledge.org/oil/)
marzo-2012.
[7] DAML+OIL. Consultado en:
(http://www.w3.org/TR/daml+oil-
reference) marzo-2012.
[8] Sistemas de recomendación semánticos.
Un análisis del estado de la cuestión.
Consultado en:
(http://www.hipertext.net/web/pag286.htm)
marzo-2012
[9] Servicios Web. Consultado en:
(http://w3c.es/Divulgacion/GuiasBreves/Ser
viciosWeb) marzo-2012.
[10] Documentación para los
desarrolladores de Twitter. Consultado en:
(https://dev.twitter.com/docs) marzo-2012.
[11] PHP – Hypertext Preprocessor.
Consultado en: (http://www.php.net)
marzo-2012
[12] Appserv Open Project. Consultado en:
(http://www.appservnetwork.com/) marzo-
2012.
[13] Protègè-OWL. Consultado en:
(http://protege.stanford.edu/overview/prote
ge-owl.html) marzo-2012
[14] RAP – PHP API for PHP V0.9.6.
Consultado en: (http://www4.wiwiss.fu-
berlin.de/bizer/rdfapi/) marzo-2012