Publicidad y sistemas de recomendación

Page 1

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: Director:

Pedro Camacho Ortega 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


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

V


VI


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

VII


VIII


PARTE I Introducci贸n a la Investigaci贸n



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.

3


Capítulo 1

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.

4


Introducción a la Investigación

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.

5


Capítulo 1

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.

6


Introducción a la Investigación

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. 7


Capítulo 1

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.

8


PARTE II Estado del Arte



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.

11


Capítulo 2

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

12


La Web Semántica

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

13


Capítulo 2

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

14


La Web Semántica

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 15


Capítulo 2

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.

16


La Web Semántica

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.

17


Capítulo 2

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.

18


La Web Semántica

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 BernersLee [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)

19


Capítulo 2

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 20


La Web Semántica

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/)

21


Capítulo 2

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í"

22


La Web Semántica

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.

23


Capítulo 2

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. 24


La Web Semántica

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.

25


Capítulo 2

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

26


La Web Semántica

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://wwwsop.inria.fr/acacia/corese.

Figura 10 – Proyecto CORESE

27


Capítulo 2

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/

28


La Web Semántica

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

29


Capítulo 2

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 30


La Web Semántica

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/

31


Capítulo 2

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

32


La Web Semántica

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.

.

33


Capítulo 2

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

34


La Web Semántica

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.

35


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

36


Sistemas de Recomendación

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.

37


Capítulo 3

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 38


Sistemas de Recomendación

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.

39


Capítulo 3

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 (BernersLee, 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.

40


Sistemas de Recomendación

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 41


Capítulo 3

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

42


Sistemas de Recomendación

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 43


Capítulo 3

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 multiagente 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.

44


Sistemas de Recomendación

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).

45


Capítulo 3

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.

46


Sistemas de Recomendación

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.

47


Capítulo 3

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.

48


Sistemas de Recomendación

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.

49


Capítulo 3

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.

50


Sistemas de Recomendación

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.

51


Capítulo 3

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.

52


Sistemas de Recomendación

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

53


Capítulo 3

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.

54


Sistemas de Recomendación

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:

55


Capítulo 3

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.

56


Sistemas de Recomendación

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 ¯ + β + 

57


Capítulo 3

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 JL 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:

58


Sistemas de Recomendación

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.

59


Capítulo 3

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.

60


Sistemas de Recomendación

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.

61


Capítulo 3

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.

62


Sistemas de Recomendación

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.

63



PARTE III Desarrollo de la Investigaci贸n



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.

67


Capítulo 4

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.

68


Ontología en Twitter

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.

69


Capítulo 4

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.

70


Ontología en Twitter

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

71


Capítulo 4

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 $oauth_token, $oauth_token_secret);

TwitterOAuth($consumerKey,

$consumerSecret,

return $connection; } $connection = getConnectionWithAccessToken($oAuthToken , $oAuthSecret); $content = $connection->get("statuses/user_timeline");

Código 1 – PHP: Autenticación de usuarios

72


Ontología en Twitter

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

73


Capítulo 4

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

74


Ontología en Twitter

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”

75


Capítulo 4

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

76


Ontología en Twitter

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.

77


Capítulo 4

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

78


Ontología en Twitter

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.

79



PARTE IV Conclusiones



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.

83


Capítulo 5

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.

84


Conclusiones

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

85


Capítulo 5

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.

86


Conclusiones

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)

87


Capítulo 5

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 metainformació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: 

88

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.


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

89


[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.

90


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-recomendacionsobre.html [RAP12]: Vídeo – Ontología en Protègè y RAP: http://youtu.be/lYaas93Va8g [TWIT12]: Twitter Developers: https://dev.twitter.com/

91



PARTE V Anexos



Clasificación Ontológica en Twitter

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)

i


Anexo A

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 pedro.camacho@gmail.com

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

ii

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

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:

iii


Anexo A

$content = $connection>get("statuses/user_timeline" );

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:

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].

<?php require "twitter.lib.php";

Figura 4: Pantalla inicial de Protègè

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);

iv

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

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 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 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

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:

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 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:

v


Anexo A

\'#\', `object` resultado'

)+1)

AS

.

'

.

' LIKE

FROM `statements`' Figura 11: Tripletas sujeto, predicado y objeto en MySQL

WHERE `predicate` \'%#SubClassOf\''

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 variable de la query

parte

$sql 'SELECT SUBSTRING(`object`,LOCATE(

vi

=

`subject` \'%#'.$palabra.'\'';

. ' AND LIKE

$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

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.

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.

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

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.

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.

[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) marzo2012.

vii


Anexo A

[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+oilreference) 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/) marzo2012. [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.fuberlin.de/bizer/rdfapi/) marzo-2012

viii


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.