El documento describe un sistema de recomendación de recursos semánticamente anotados. Propone representar las preferencias del usuario y los recursos como fórmulas lógicas y utilizar técnicas como razonamiento basado en ontologías y consultas SPARQL para emparejar recursos con preferencias y calcular su utilidad para el usuario.
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
TeRRAS
1. Técnicas de Recomendación de
Recursos Anotados Semánticamente
24 Junio 2009
Director: José Emilio Labra Gayo
Autor: Iván Mínguez Pérez Codirector: Diego Berrueta Muñoz
2. Tabla de contenidos
Objetivos del proyecto
Estado del arte
Definiciones y características
Aproximaciones realizadas
Estudio del rendimiento
Resultados: Caso de uso y publicaciones
Conclusiones y trabajo futuro
3. Motivación
Ofrecer a las aplicaciones un sistema de
recomendación de recursos que permita la
personalización de los servicios ofrecidos en función de
las preferencias del usuario
4. ¿Qué es un sistema de
recomendación?
Definición:
Un sistema de recomendación busca encontrar los
mejores recursos para el usuario.
Para ello, puede utilizar diferentes aspectos, como, por
ejemplo, las preferencias del usuario
Puede ser utilizado en diferentes dominios: alquiler de
coches y alojamientos, sugerencia de recursos
turísticos, búsqueda de artículos de compra, etc.
5. Objetivos del proyecto
Estudio de diferentes técnicas de recomendación de
recursos
Definición de una propuesta de función de
recomendación
Independiente del dominio, es decir, puede ser
utilizado para realizar recomendaciones sobre
cualquier tema
Basada en tecnologías semánticas, como RDF,
OWL o SPARQL
6. Tecnologías semánticas
Resumen
RDF: Lenguaje para la representación de grafos
OWL: Lenguaje para la representación de ontologías
basado en lógica descriptiva
SPARQL: Lenguaje de consulta sobre grafos en RDF
7. Estado del arte
Podemos dividir el estado del arte en dos partes:
Métricas de similitud
Técnicas de toma de decisiones
8. Estado del arte
Métricas de similitud
Basadas en:
la información contenida
la estructura
en sistemas colaborativos
en lógica descriptiva
en lenguajes de consulta
9. Estado del arte
Métricas de similitud
Basadas en:
la información contenida
la estructura
en sistemas colaborativos
en lógica descriptiva
en lenguajes de consulta
10. Estado del arte
Métricas de similitud
Basadas en lógica descriptiva
Utilizan lenguajes de lógica descriptiva
Representación de los recursos y demandas como
conceptos lógicos
Uso de los razonadores para comprobar la inclusión de
los conceptos en las demandas
[Borg 05], [Paol 02], [Colu 03], [Rago 07]
11. Estado del arte
Métricas de similitud
Basadas en lenguajes de consulta
Uso de lenguajes de consulta como SQL o SPARQL
para la comprobación de las preferencias
Enriquecer las consultas según el contexto
Por ejemplo, en función de los gustos del usuario
[Chu 96], [Pahl 07], [Kief 07], [Seab 08]
12. Estado del arte
Técnicas de toma de decisiones
Técnica de toma de decisiones multicriterio
Comparación de aspectos representados en diferentes
escalas
Ayuda para la valoración de las preferencias por parte
del usuario
Uso de la técnica de AHP (Analytic Hierarchy Process)
para ayudar al usuario a valorar las preferencias
13. Nuestra propuesta
Sistema de recomendación de recursos en función
de las preferencias del usuario
Independiente del dominio
Basada en tecnologías semánticas
Requisitos:
Disponer de descripciones semánticas de los
recursos a recomendar
Resultados:
Conjunto de recursos más útiles para el
usuario en función de sus preferencias
15. Preferencias
Definición:
Cada una de las características que los usuarios
desean que tengan los recursos
Representación como fórmulas lógicas utilizando
operadores lógicos disponibles en lógica descriptiva
16. Preferencias
Tipos de preferencias
Preferencias obligatorias:
Nos sirven para filtrar los resultados de la
consulta
Preferencias opcionales:
Nos sirven para puntuar la utilidad del recurso
17. Demanda del usuario
Definición:
Petición por parte del usuario para que se le
recomienden recursos. Formada por preferencias
obligatorias y opcionales
18. Ejemplo de demanda
Quiero películas interpretadas por un actor con algún
premio. Además...
Prefiero las películas de Tim Roth
Me gustan mucho las películas de crimen
También me gustan las comedias
Mejor si tiene una puntuación > 8 sobre 10
Prefiero que sea corta, no más de 120 minutos
19. Ejemplo de demanda
Preferencias Obligatorias
Quiero películas interpretadas por un actor con algún
premio. Además...
Prefiero las películas de Tim Roth
Me gustan mucho las películas de crimen
También me gustan las comedias
Mejor si tiene una puntuación > 8 sobre 10
Prefiero que sea corta, no más de 120 minutos
Preferencias Opcionales
21. Demanda expresada como
fórmulas lógicas
Preferencias Obligatorias
Preferencias Opcionales
22. Lenguaje QIL
Lenguaje definido en este proyecto para facilitar la
escritura de las demandas del usuario
Elimina la necesidad de agregar símbolos lógicos,
sustituyéndolos por palabras clave que ayudan a su
lectura
Uso de este lenguaje como lenguaje intermedio entre
posibles representaciones de las preferencias y
nuestros métodos
25. Función de Matchmaking
Definición:
Calcular la utilidad de los recursos para el usuario
Está dividida en 2 partes:
Función match: Comprobación de las
preferencias del usuario que cumple un recurso
Función utility: Utilidad del recurso en función
de las preferencias que cumple
26. Aproximaciones realizadas
Función match:
Método basado en lógica descriptiva
Método basado en lenguaje de consulta
Función utility:
Utilización de la técnica de toma de decisiones
AHP
46. Función match
(basado en Instance Checking)
Utilización de preferencias representadas por fórmulas
lógicas para construir conceptos en lógica descriptiva
Utilización de la equivalencia lógica
No es necesaria ninguna transformación
47. Función match
(basado en Instance Checking)
Utilización de un razonador para comprobar qué
preferencias cumplen los recursos
Operación Instance Checking
48. Función match
(basado en SPARQL)
Transformación de las preferencias en patrones de
grafo
Utilización de motor de SPARQL para ejecutarlas
52. Interpretación de los
resultados de la consulta
Una variable para los recursos (?result)
Y una variable extra (?pi) por cada preferencia opcional
representando el cumplimiento o no de la preferencia
asociada
53. Función utility
Utilización de la puntuación base del recurso y de las
preferencias que cumple (función match) para calcular
la utilidad del recurso para el usuario
54. Función utility
Utilización de la puntuación base del recurso y de las
preferencias que cumple (función match) para calcular
la utilidad del recurso para el usuario
Puntuación base Puntuación de
del recurso cada preferencia
55. Función utility
Puntuación de los recursos y preferencias
Puntuación base para los recursos
Puntuación de la importancia de cada preferencia. Uso
de los métodos de toma de decisiones:
Método AHP
57. Tabla de contenidos
Objetivos del proyecto
Estado del arte
Definiciones y características
Aproximaciones realizadas
Estudio del rendimiento
Resultados: Caso de uso y publicaciones
Conclusiones y trabajo futuro
58. Recordemos
Transformación
en conceptos
DL Concepts
R = Film ! "subject.{Gangster_films}
P1 = "starring.{Tim_Roth}
Instance
P2 = "directed.{Tarantino}
Checking Vector de pesos
µ(Pi)
Demand (QIL)
Razonador Lista de sugerencias
Matriz de instancias y
PREFIX Condiciones que cumple
(...)
score(!1) 1
OBLIGATORY
dbowl:Film. score(!2) 0.7
skos:subject some {dbpedia:Gangter_films} . score(!3) 0.5
OPTIONAL
...
Calcular
dbowl:starring some {dbpedia:Tim_Roth}, 8.
dbowl:directed some {dbpedia:Tarantino}, 4.
utilidad
SPARQL Query Ejecutar
SELECT ?x ?x1 ?x2
WHERE{
consulta
?x rdf:type Film .
?x subject Gadget_films .
OPTIONAL{
?x1 starring Tim_Roth . FILTER (?x=?x1)
}.
Transformación OPTIONAL{
?x2 directed Tarantino . FILTER (?x=?x2)
en SPARQL }
Base de
conocimiento
61. Rendimiento
El tiempo de respuesta se comporta bien en función
del número de preferencias
Pero, el comportamiento del algoritmo en función del
número de instancias no es satisfactorio
Existen posibles mejoras haciendo uso de repositorios
RDF profesionales, pero esto queda fuera del alcance
del proyecto
62. Ventajas
Independiente del dominio
Nivel de expresividad de las preferencias
Valoración númerica tanto de las preferencias y como
de los recursos
Puntuación numérica para la utilidad final del recurso
Compromiso entre rendimiento y expresividad
(dependiendo de la implementación elegida)
63. Inconvenientes
Comunes a las 2 implementaciones
Rendimiento insatisfactorio
Especificas de la implementación usando DL
No soporta restricciones sobre tipos de datos
Especificas de la implementación usando SPARQL
No todos los operadores lógicos tienen transformación
Pérdida de la inferencia
64. Operadores soportados
Operador DL Sparql
Clase
Enumeraciones
Existencial
Universal
Cardinalidad
Tipo de dato
Intersección
Unión
65. Resultados
Caso de uso: CruZar
Aplicación realizada por la Fundación CTIC para el
Ayuntamiento de Zaragoza para la EXPO2008
Generación de rutas turísticas personalizadas
Uso del modulo TeRRAS para la selección de
recursos turísticos en función de los gustos
del usuario
67. Resultados
Publicaciones
Capítulo del libro “Case on Semantic
Interoperability for information system
integration” editado por Yannis Kalfoglou
en la editorial IGI Global (Publicación
prevista para Octubre)
Enviado el articulo “TeRRAS: SPARQL-
based matchmaking system” a la revista
Journal of Web Semantics
69. Conclusiones
Estudio de técnicas de recomendación de recursos
Estudio de la aplicación de las tecnologías semánticas
Definición de una función de recomendación, utilizando
el concepto de preferencias
Implementación de las aproximaciones definidas en
este proyecto:
Intérprete para el lenguaje QIL
Transformaciones a OWL y a SPARQL
Uso del método AHP para la valoración de las
preferencias
70. Trabajo futuro
Estudio de nuevas técnicas de comprobación de
preferencias utilizando otro tipo de lógicas (ej: lógica
difusa)
Uso de las nuevas características de estándares
todavía en desarrollo como OWL 2 y la nueva versión
de SPARQL
72. Técnicas de Recomendación de
Recursos Anotados Semánticamente
24 Junio 2009
Director: José Emilio Labra Gayo
Autor: Iván Mínguez Pérez Codirector: Diego Berrueta Muñoz
76. Información inferida
Base de conocimiento (KB)
Patrón buscado
Razonador
Coincidencias
77. Información inferida
Base de conocimiento (KB)
Patrón buscado
Razonador
Coincidencias
78. Información inferida
Base de conocimiento (KB)
Patrón buscado
Razonador
Coincidencias Conocimiento inferido
79. Información inferida
Base de conocimiento (KB)
Patrón buscado
Razonador
Coincidencias Conocimiento inferido
80. Lógica descriptiva
Definición:
Las lógicas descriptivas (DL) son una familia de
formalismos lógicos bien conocidos para la
representación e inferencia sobre el
conocimiento de un dominio de aplicación
Esta formada por varios elementos:
El TBox: incluye todos los axiomas de la
base de conocimiento
El ABox: incluye todos los hechos de la
base de conocimiento
81. Método AHP
Se basa en la comparación de las diferentes
alternativas en función de una tabla.
82. Método AHP
Se realizan una serie de de cálculos para obtener un
vector de pesos para las diferentes alternativas
Este vector buscar tener una puntuación normalizada
Se verifica que:
84. ¿Dónde podemos encontrar
información en este formato?
Transformando las bases de datos existente en grafos
RDF
Utilizando por ejemplo software como D2R
Datos compartidos en la iniciativa Linking Open Data
Explicar que vamos a ver en esta presentación y como esta estructurado
Por que este proyecto.
Este proyecto busca un sistema de recomendación genérico en función de las preferencias del usuario
En este proyecto se realizaran:
- Estudio de técnicas disponibles
- Definición de una nueva técnica basada en tecnologías semánticas e independiente del dominio
Dentro de la literatura encontrados aproximaciones:
- basadas en la información contenida (Strings)
- basadas en la estructura que forma el árbol de conceptos
- basadas en sistemas colaborativos en los que se te recomienda por lo que hacen los demás
Basada en lógica y basada en lenguajes de consulta que veremos en más profundidad
Estos trabajos se basan en la utilización de lenguajes de lógica descriptiva. Representan las consultas y los recursos como elementos de estos lenguaje (normalmente conceptos e instancias). Utilizan la inferencias lógica para calcular cuanto bueno es un recurso. Este tipo de trabajos son muy utilizados en el descubrimiento de servicios web semánticos.
Utilizan diferentes aspectos relacionados con el usuario para generar los elementos disponibles dentro de los lenguajes para generar una consulta que incluya todos los aspectos de los que se dispone.
Otro de los aspectos estudiados en este proyecto es el uso de las técnicas de toma de decisiones para la valoración de la preferencias del usuario. Como método destacado tenemos el AHP (Analitic Hierarchy Process) este método se basa en la organización de las diferentes alternativas en un árbol de decisiones que posteriormente nos servirá para poder elegir la mejor alternativa.
En nuestro proyecto vamos a proponer una nueva técnica de recomendación se tiene las siguientes características:
Hemos comentado que necesitamos una descripción semántica de los recursos. ¿Pero que es? Es una representación en forma de grafo de las relaciones entre todos los elementos que describen un recurso. De este modo tenemos el siguiente grafo que nos definiría parte de la película “Reservoir Dogs”
Como hemos comentado hemos descrito un método basado en las preferencias del usuario.
¿Pero que es una preferencias?
- Cada una de las características buscadas.
Representaremos las preferencias del usuario como formulas lógicas que representan las características buscadas de los recursos.
Utilizaremos los operadores disponibles en la lógica descriptiva SHOIN.
Tenemos dos tipos de preferencias:
- Obligatorias: que filtran
- Opcionales: que puntúan
Cada una de las consultas que hace el usuario al sistema de recomendación la llamaremos demanda. Incluirá un conjunto de preferencias obligatorias y otro de opcionales
Un ejemplo de demanda seria las siguiente.
Podemos ver las dos partes de las demanda (Obligatorias y opcionales)
La misma demanda expresada como formulas lógicas sería la siguiente
Para la representación de estas formulas, en este proyecto se ha creado un lenguaje de demandas basado en la sintaxis de Manchester de OWL. Este lenguaje nos permite escribir mas fácilmente las formulas lógicas sin tener la necesidad de usar símbolos lógicos. Este lenguaje se llama QIL
En nuestro proyecto definimos la función de matchmaking o de recomendación como la función que nos permite calcular la utilidad de un recurso en base a las preferencias del usuario.
Vamos a dividir el calculo de esta función en dos partes:
- función match: nos permite saber las preferencias que cumple un recurso
- función utility: que nos permite obtener una puntuación numérica en basa a las preferencias
La función matchmaking seria la composición de estas funciones.
Veamos un resumen que que va a hacer nuestro algoritmo
Veamos un resumen que que va a hacer nuestro algoritmo
Veamos un resumen que que va a hacer nuestro algoritmo
Veamos un resumen que que va a hacer nuestro algoritmo
Veamos un resumen que que va a hacer nuestro algoritmo
Veamos un resumen que que va a hacer nuestro algoritmo
Veamos un resumen que que va a hacer nuestro algoritmo
Veamos un resumen que que va a hacer nuestro algoritmo
Veamos un resumen que que va a hacer nuestro algoritmo
Veamos un resumen que que va a hacer nuestro algoritmo
Veamos un resumen que que va a hacer nuestro algoritmo
Veamos un resumen que que va a hacer nuestro algoritmo
Veamos un resumen que que va a hacer nuestro algoritmo
Veamos un resumen que que va a hacer nuestro algoritmo
Más gráficamente tememos un marketplace (lugar donde se encuentra toda las información disponible)
Más gráficamente tememos un marketplace (lugar donde se encuentra toda las información disponible)
Más gráficamente tememos un marketplace (lugar donde se encuentra toda las información disponible)
Como hemos visto tenemos dos implementaciones de la función match. La basada en lógica descriptiva utiliza las preferencias representadas como formulas lógicas para definir nuevos conceptos utilizando la operación de equivalencia lógica definida en estos lenguajes.
Para comprobar el cumplimiento o no de una preferencias se utilizará un razonador de lógica descriptiva que por medio de la operación Instance Checking nos diga si cada recurso pertenece al concepto creada a partir de la preferencia.
El otro de los métodos esta basado en el lenguaje de consulta para grafos RDF SPARQL. Este método transformará cada una de las preferencias en un patrón de grafo que se incluirá en la consuta SPARQL.
Estas son algunas de las reglas de transformación de los operadores lógicos a patrones de grafo.
Misma demanda transformada en consulta SPARQL
Con esta consulta conseguimos una matriz que nos indicará para cada recurso el cumplimiento o no de cada preferencia.
Por otro lado, una vez que sabemos las preferencias que cumple cada recurso podemos calcular su utilidad. Para ello utilizaremos 2 aspectos: la puntuación base del recurso, la puntuación de cada preferencia.
La puntuación base de cada recurso nos permite asignar una valor preliminar a cada recurso.
La puntuación de cada preferencia utilizara el método AHP para conseguir un puntuación objetiva da las preferencias del usuario.
Explicar que vamos a ver en esta presentación y como esta estructurado
A modo de recordatorio
Se ha realizado diferentes pruebas de rendimiento de nuestro algoritmo.
En estas gráficas se puede ver como se comportan las dos implementaciones en función del numero de preferencias.
En estas se puede ver el comportamiento del rendimiento en función del número de recursos disponibles.
Que ventajas tienen nuestro método
Que inconvenientes
Los resultados de este proyecto se han utilizado en el aplicacion CruZar desplegada en el portal web del ayuntamiento de Zaragoza. Esta aplicación realiza rutas personalizadas para los turista en función de sus preferencias.
Se publicado un capitulo de libro con el caso de uso de Cruzar
Se ha enviado un articulo con el nucleo de este proyecto a Journal of Web Semantics
Esto proyecto ha sido implementado como librería Java y publicado con licencia GPL.
Para terminar podemos ver un resumen de lo que hemos obtenido con este proyecto.
Que queda para el futuro...
¿Dónde encontramos estas descripciones?
- Transformando los datos desde base de datos, por ejemplo con D2R
- Dentro de las iniciativas del W3C encontramos la de Linking Open Data, esta iniciativa busca el poner a disposición del publico descripciones semánticas de distintos dominios.
Evolución del grafo del Linking Open Data