SlideShare una empresa de Scribd logo
1 de 27
Un sistema de recomendación para sitios de ocio de Andalucía Autor:  Manuel Martín Salvador Tutor:  Juan Huete Guadix Proyecto Fin de Carrera | Ingeniería Informática | Universidad de Granada
Manuel Martín Salvador Introducción: motivación 2006 2007 2009
Manuel Martín Salvador Introducción: situación inicial - Base de datos con información de sitios - Sistema de votación - Sistema de comentarios y fotografías de los sitios - Usuarios registrados - Buscador - Mapa - Eventos y hoteles - Amigos - Mensajería privada
Manuel Martín Salvador Introducción: mejoras planteadas - Incluir las 8 provincias andaluzas -  Sistema de recomendación - Incentivar al usuario - Versión  mobile - Multi-idioma
Manuel Martín Salvador Los sistemas de recomendación
Manuel Martín Salvador Los sistemas de recomendación Factores importantes - Facilidad de uso - Calidad de las recomendaciones - Transparencia del sistema Casos de uso - Predicción - Recomendación
Manuel Martín Salvador Los sistemas de recomendación Clasificación - Sistemas de filtrado colaborativo - Sistemas de recomendación basados en contenido - Sistemas de recomendación híbridos Técnicas de recomendación -  Modelos probabilísticos - Clustering - Árboles de decisión - Redes neuronales -  Vecinos
Manuel Martín Salvador Sistema de recomendación basado en contenido Elementos involucrados - Sitios (ítems)  I j Ej. Restaurante Wok - Etiquetas (descriptores)  F k Ej. Buffet, Japonés, Terraza... - Jerarquías de etiquetas  C u Música, Estilo, Instalaciones, Otros - Votos del usuario - Conjunto de valoraciones  R={0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5} - Perfil de usuario Ej. Pop, Vegetariano, Wifi... -  Sitio a predecir para el usuario activo
Manuel Martín Salvador Sistema de recomendación basado en contenido Modelo probabilístico: red Bayesiana - Grafo dirigido acíclico: nodos (variables) + arcos (relaciones) - En cada nodo  X i  -> distrib. de probabilidad condicional
Manuel Martín Salvador Sistema de recomendación basado en contenido Modelo probabilístico: red Bayesiana - Grafo dirigido acíclico: nodos (variables) + arcos (relaciones) - En cada nodo  X i  -> distrib. de probabilidad condicional
Manuel Martín Salvador Sistema de recomendación basado en contenido Modelo probabilístico: red Bayesiana - Grafo dirigido acíclico: nodos (variables) + arcos (relaciones) - En cada nodo  X i  -> distrib. de probabilidad condicional Problema Ya que un nodo puede ser o no relevante, se necesitarían calcular 2 n  distribuciones de probabilidad.  ( n  = número de padres) Solución Usar un modelo canónico de suma de pesos
Manuel Martín Salvador Sistema de recomendación basado en contenido
Manuel Martín Salvador Sistema de recomendación basado en contenido Predicción del voto - Problema: dado un sitio nuevo calcular su estimación del voto Procedimiento 1º Se incluye el sitio en el modelo 2º Se propagan las probabilidades del sitio a sus etiquetas 3º Se hace una propagación top-down Se puede ver con más detalle en la memoria
Manuel Martín Salvador Sistema de recomendación basado en contenido
Manuel Martín Salvador Sistema de recomendación basado en contenido
Manuel Martín Salvador Sistema de recomendación basado en contenido
Manuel Martín Salvador Sistema de recomendación basado en contenido Predicción del voto Valoración NR 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Probabilidad 0.784 0 0 0 0 0 0 0 0.043 0 0.173 Normalizada 21.6% 0 0 0 0 0 0 0 0.199 0 0.801 - Voto promedio Ej: 4.8 - Voto mediano Ej: 5 - Voto máximo Ej: 5
Manuel Martín Salvador Sistema de recomendación basado en contenido Limitaciones - Problema del  cold-starting Estrategias de resolución: 1. Ignorar al usuario 2. Tratarlo como el usuario medio 3. Sitios populares - Recomendación de sitios mal valorados Solución adoptada:  umbral
Manuel Martín Salvador Sistema de filtrado colaborativo Vecinos más cercanos : aquellos usuarios más similares
Manuel Martín Salvador Sistema de filtrado colaborativo Procedimiento Dado un sitio a predecir: 1º Calcular la similaridad del usuario activo con todos los usuarios que han votado el sitio 2º Seleccionar los  k  mejores 3º Predecir el voto, utilizando las valoraciones de los usuarios
Manuel Martín Salvador Sistema de filtrado colaborativo Medidas de similaridad - Coseno COS - Correlación de Pearson COR - Correlación de Pearson limitada CPC
Manuel Martín Salvador Sistema de filtrado colaborativo Limitaciones - Problema del  cold-starting : 1. Usuario nuevo 2. Sitio nuevo 3. Comunidad nueva - Recomendaciones en otras ciudades
Manuel Martín Salvador Evaluación: colección de datos -  Usuarios registrados:  330 -  Usuarios que han rellenado su perfil:  27 -  Usuarios con más de 1 voto:  54 -  Usuarios con más de 5 votos:  27 -  Usuarios con más de 10 votos:  15 -  Sitios:  331 -  Votos:  536 Votos Votos medios
Manuel Martín Salvador Evaluación: métricas y metodología Métricas - Error medio absoluto (MAE) - Error cuadrático medio (MSE) - Porcentaje de predicción Metodología - Entrenamiento 80% + Test 20% -  Leave one out
Manuel Martín Salvador Evaluación: resultados Metodología leave one out
Manuel Martín Salvador Soluciones desarrolladas 1. Cambio de plataforma:  django 2. Incentivos para el usuario 3. Sistema de recomendación 4. Jerarquización de etiquetas 5. Versión  mobile 6. Soporte multi-idioma 7. Blog y  feeds
Manuel Martín Salvador Demo! http://andaluciapeople.com

Más contenido relacionado

Similar a Sistema de recomendación para sitios de ocio en Andalucía

Tópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónTópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónErnesto Mislej
 
Uso de procesos de alcance de consenso para mejorar la recomendación a grupos
Uso de procesos de alcance de consenso para mejorar la recomendación a gruposUso de procesos de alcance de consenso para mejorar la recomendación a grupos
Uso de procesos de alcance de consenso para mejorar la recomendación a gruposJorge Castro Gallardo
 
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...Ernesto Mislej
 
Madurez de la Analítica en el Ecosistema Empresarial Colombiano
Madurez de la Analítica en el Ecosistema Empresarial ColombianoMadurez de la Analítica en el Ecosistema Empresarial Colombiano
Madurez de la Analítica en el Ecosistema Empresarial ColombianoMultiplica
 
Modelo de implementacion indx
Modelo de implementacion indxModelo de implementacion indx
Modelo de implementacion indxLuis Martin
 
Netquest Survey Manager - Software de encuestas online
Netquest Survey Manager - Software de encuestas online Netquest Survey Manager - Software de encuestas online
Netquest Survey Manager - Software de encuestas online Netquest
 
Introduccin_a_la_Minera_de_Datos_M_cc_v2.pptx
Introduccin_a_la_Minera_de_Datos_M_cc_v2.pptxIntroduccin_a_la_Minera_de_Datos_M_cc_v2.pptx
Introduccin_a_la_Minera_de_Datos_M_cc_v2.pptxAnonymousEoGAaTF
 
Obtención de datos de redes sociales
Obtención de datos de redes socialesObtención de datos de redes sociales
Obtención de datos de redes socialesAragón Open Data
 
LA EVALUACION EN LINEA
LA EVALUACION EN LINEALA EVALUACION EN LINEA
LA EVALUACION EN LINEAunid_zac
 
Fuentes de información_y_técnicas_i (1)
Fuentes de información_y_técnicas_i (1)Fuentes de información_y_técnicas_i (1)
Fuentes de información_y_técnicas_i (1)Elvis Chacha
 
AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía
AndalucíaPeople: Un sistema de recomendación para sitios de ocio de AndalucíaAndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía
AndalucíaPeople: Un sistema de recomendación para sitios de ocio de AndalucíaManuel Martín
 
TECNICAS DE RECOLECCIÓN DE INFORMACIÓN (1).pptx
TECNICAS DE RECOLECCIÓN DE INFORMACIÓN (1).pptxTECNICAS DE RECOLECCIÓN DE INFORMACIÓN (1).pptx
TECNICAS DE RECOLECCIÓN DE INFORMACIÓN (1).pptxJuanAlvear20
 
Sistema de apoyo para la toma de decisiones
Sistema de apoyo para la toma de decisionesSistema de apoyo para la toma de decisiones
Sistema de apoyo para la toma de decisionestomywald
 
A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...
A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...
A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...COIICV
 

Similar a Sistema de recomendación para sitios de ocio en Andalucía (20)

Tópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de RecomendaciónTópicos de Big Data - Sistemas de Recomendación
Tópicos de Big Data - Sistemas de Recomendación
 
Uso de procesos de alcance de consenso para mejorar la recomendación a grupos
Uso de procesos de alcance de consenso para mejorar la recomendación a gruposUso de procesos de alcance de consenso para mejorar la recomendación a grupos
Uso de procesos de alcance de consenso para mejorar la recomendación a grupos
 
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
A quienes les gustó esta charla también les gustó... Cómo los Sistemas de Rec...
 
Defensa memoria UAI Sentiment Analysis
Defensa memoria UAI Sentiment AnalysisDefensa memoria UAI Sentiment Analysis
Defensa memoria UAI Sentiment Analysis
 
Actividades de aprendizaje22
Actividades de aprendizaje22Actividades de aprendizaje22
Actividades de aprendizaje22
 
Madurez de la Analítica en el Ecosistema Empresarial Colombiano
Madurez de la Analítica en el Ecosistema Empresarial ColombianoMadurez de la Analítica en el Ecosistema Empresarial Colombiano
Madurez de la Analítica en el Ecosistema Empresarial Colombiano
 
Modelo de implementacion indx
Modelo de implementacion indxModelo de implementacion indx
Modelo de implementacion indx
 
Netquest Survey Manager - Software de encuestas online
Netquest Survey Manager - Software de encuestas online Netquest Survey Manager - Software de encuestas online
Netquest Survey Manager - Software de encuestas online
 
Introduccin_a_la_Minera_de_Datos_M_cc_v2.pptx
Introduccin_a_la_Minera_de_Datos_M_cc_v2.pptxIntroduccin_a_la_Minera_de_Datos_M_cc_v2.pptx
Introduccin_a_la_Minera_de_Datos_M_cc_v2.pptx
 
Data Mining
Data MiningData Mining
Data Mining
 
Obtención de datos de redes sociales
Obtención de datos de redes socialesObtención de datos de redes sociales
Obtención de datos de redes sociales
 
Duoc ai - usabilidad - metodologias
Duoc   ai - usabilidad - metodologiasDuoc   ai - usabilidad - metodologias
Duoc ai - usabilidad - metodologias
 
LA EVALUACION EN LINEA
LA EVALUACION EN LINEALA EVALUACION EN LINEA
LA EVALUACION EN LINEA
 
Fuentes de información_y_técnicas_i (1)
Fuentes de información_y_técnicas_i (1)Fuentes de información_y_técnicas_i (1)
Fuentes de información_y_técnicas_i (1)
 
AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía
AndalucíaPeople: Un sistema de recomendación para sitios de ocio de AndalucíaAndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía
AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía
 
TECNICAS DE RECOLECCIÓN DE INFORMACIÓN (1).pptx
TECNICAS DE RECOLECCIÓN DE INFORMACIÓN (1).pptxTECNICAS DE RECOLECCIÓN DE INFORMACIÓN (1).pptx
TECNICAS DE RECOLECCIÓN DE INFORMACIÓN (1).pptx
 
Sistema de apoyo para la toma de decisiones
Sistema de apoyo para la toma de decisionesSistema de apoyo para la toma de decisiones
Sistema de apoyo para la toma de decisiones
 
A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...
A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...
A. Fuster. La era del Open Data: Caso de éxito y oportunidades. Semanainforma...
 
Opina
OpinaOpina
Opina
 
Alumno valoracion 1.1
Alumno valoracion 1.1Alumno valoracion 1.1
Alumno valoracion 1.1
 

Más de Manuel Martín

Automatizando el aprendizaje basado en datos
Automatizando el aprendizaje basado en datosAutomatizando el aprendizaje basado en datos
Automatizando el aprendizaje basado en datosManuel Martín
 
Modelling Multi-Component Predictive Systems as Petri Nets
Modelling Multi-Component Predictive Systems as Petri NetsModelling Multi-Component Predictive Systems as Petri Nets
Modelling Multi-Component Predictive Systems as Petri NetsManuel Martín
 
Brand engagement with mobile gamification apps from a developer perspective
Brand engagement with mobile gamification apps from a developer perspectiveBrand engagement with mobile gamification apps from a developer perspective
Brand engagement with mobile gamification apps from a developer perspectiveManuel Martín
 
Effects of change propagation resulting from adaptive preprocessing in multic...
Effects of change propagation resulting from adaptive preprocessing in multic...Effects of change propagation resulting from adaptive preprocessing in multic...
Effects of change propagation resulting from adaptive preprocessing in multic...Manuel Martín
 
Improving transport timetables usability for mobile devices
Improving transport timetables usability for mobile devicesImproving transport timetables usability for mobile devices
Improving transport timetables usability for mobile devicesManuel Martín
 
Automating Machine Learning - Is it feasible?
Automating Machine Learning - Is it feasible?Automating Machine Learning - Is it feasible?
Automating Machine Learning - Is it feasible?Manuel Martín
 
Towards Automatic Composition of Multicomponent Predictive Systems
Towards Automatic Composition of Multicomponent Predictive SystemsTowards Automatic Composition of Multicomponent Predictive Systems
Towards Automatic Composition of Multicomponent Predictive SystemsManuel Martín
 
From sensor readings to prediction: on the process of developing practical so...
From sensor readings to prediction: on the process of developing practical so...From sensor readings to prediction: on the process of developing practical so...
From sensor readings to prediction: on the process of developing practical so...Manuel Martín
 
Quick presentation for the OpenML workshop in Eindhoven 2014
Quick presentation for the OpenML workshop in Eindhoven 2014Quick presentation for the OpenML workshop in Eindhoven 2014
Quick presentation for the OpenML workshop in Eindhoven 2014Manuel Martín
 
Online Detection of Shutdown Periods in Chemical Plants: A Case Study
Online Detection of Shutdown Periods in Chemical Plants: A Case StudyOnline Detection of Shutdown Periods in Chemical Plants: A Case Study
Online Detection of Shutdown Periods in Chemical Plants: A Case StudyManuel Martín
 
Artificial Intelligence for Automating Data Analysis
Artificial Intelligence for Automating Data AnalysisArtificial Intelligence for Automating Data Analysis
Artificial Intelligence for Automating Data AnalysisManuel Martín
 
Handling concept drift in data stream mining
Handling concept drift in data stream miningHandling concept drift in data stream mining
Handling concept drift in data stream miningManuel Martín
 
Minería de secuencias de datos
Minería de secuencias de datosMinería de secuencias de datos
Minería de secuencias de datosManuel Martín
 
Minería de secuencias de datos
Minería de secuencias de datosMinería de secuencias de datos
Minería de secuencias de datosManuel Martín
 
Operaciones Colectivas en MPI
Operaciones Colectivas en MPIOperaciones Colectivas en MPI
Operaciones Colectivas en MPIManuel Martín
 
Introducción a GNU/Linux
Introducción a GNU/LinuxIntroducción a GNU/Linux
Introducción a GNU/LinuxManuel Martín
 
Presentación Día de la Libertad del Software 2011
Presentación Día de la Libertad del Software 2011Presentación Día de la Libertad del Software 2011
Presentación Día de la Libertad del Software 2011Manuel Martín
 
Presentacion Taller de Introducción a Linux SFD2010
Presentacion Taller de Introducción a Linux SFD2010Presentacion Taller de Introducción a Linux SFD2010
Presentacion Taller de Introducción a Linux SFD2010Manuel Martín
 

Más de Manuel Martín (20)

Hogar (Des)Conectado
Hogar (Des)ConectadoHogar (Des)Conectado
Hogar (Des)Conectado
 
Automatizando el aprendizaje basado en datos
Automatizando el aprendizaje basado en datosAutomatizando el aprendizaje basado en datos
Automatizando el aprendizaje basado en datos
 
Modelling Multi-Component Predictive Systems as Petri Nets
Modelling Multi-Component Predictive Systems as Petri NetsModelling Multi-Component Predictive Systems as Petri Nets
Modelling Multi-Component Predictive Systems as Petri Nets
 
Brand engagement with mobile gamification apps from a developer perspective
Brand engagement with mobile gamification apps from a developer perspectiveBrand engagement with mobile gamification apps from a developer perspective
Brand engagement with mobile gamification apps from a developer perspective
 
Effects of change propagation resulting from adaptive preprocessing in multic...
Effects of change propagation resulting from adaptive preprocessing in multic...Effects of change propagation resulting from adaptive preprocessing in multic...
Effects of change propagation resulting from adaptive preprocessing in multic...
 
Improving transport timetables usability for mobile devices
Improving transport timetables usability for mobile devicesImproving transport timetables usability for mobile devices
Improving transport timetables usability for mobile devices
 
Automating Machine Learning - Is it feasible?
Automating Machine Learning - Is it feasible?Automating Machine Learning - Is it feasible?
Automating Machine Learning - Is it feasible?
 
Towards Automatic Composition of Multicomponent Predictive Systems
Towards Automatic Composition of Multicomponent Predictive SystemsTowards Automatic Composition of Multicomponent Predictive Systems
Towards Automatic Composition of Multicomponent Predictive Systems
 
From sensor readings to prediction: on the process of developing practical so...
From sensor readings to prediction: on the process of developing practical so...From sensor readings to prediction: on the process of developing practical so...
From sensor readings to prediction: on the process of developing practical so...
 
Quick presentation for the OpenML workshop in Eindhoven 2014
Quick presentation for the OpenML workshop in Eindhoven 2014Quick presentation for the OpenML workshop in Eindhoven 2014
Quick presentation for the OpenML workshop in Eindhoven 2014
 
Online Detection of Shutdown Periods in Chemical Plants: A Case Study
Online Detection of Shutdown Periods in Chemical Plants: A Case StudyOnline Detection of Shutdown Periods in Chemical Plants: A Case Study
Online Detection of Shutdown Periods in Chemical Plants: A Case Study
 
Artificial Intelligence for Automating Data Analysis
Artificial Intelligence for Automating Data AnalysisArtificial Intelligence for Automating Data Analysis
Artificial Intelligence for Automating Data Analysis
 
Handling concept drift in data stream mining
Handling concept drift in data stream miningHandling concept drift in data stream mining
Handling concept drift in data stream mining
 
Minería de secuencias de datos
Minería de secuencias de datosMinería de secuencias de datos
Minería de secuencias de datos
 
Minería de secuencias de datos
Minería de secuencias de datosMinería de secuencias de datos
Minería de secuencias de datos
 
Decompiladores
DecompiladoresDecompiladores
Decompiladores
 
Operaciones Colectivas en MPI
Operaciones Colectivas en MPIOperaciones Colectivas en MPI
Operaciones Colectivas en MPI
 
Introducción a GNU/Linux
Introducción a GNU/LinuxIntroducción a GNU/Linux
Introducción a GNU/Linux
 
Presentación Día de la Libertad del Software 2011
Presentación Día de la Libertad del Software 2011Presentación Día de la Libertad del Software 2011
Presentación Día de la Libertad del Software 2011
 
Presentacion Taller de Introducción a Linux SFD2010
Presentacion Taller de Introducción a Linux SFD2010Presentacion Taller de Introducción a Linux SFD2010
Presentacion Taller de Introducción a Linux SFD2010
 

Último

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 

Último (10)

EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 

Sistema de recomendación para sitios de ocio en Andalucía

  • 1. Un sistema de recomendación para sitios de ocio de Andalucía Autor: Manuel Martín Salvador Tutor: Juan Huete Guadix Proyecto Fin de Carrera | Ingeniería Informática | Universidad de Granada
  • 2. Manuel Martín Salvador Introducción: motivación 2006 2007 2009
  • 3. Manuel Martín Salvador Introducción: situación inicial - Base de datos con información de sitios - Sistema de votación - Sistema de comentarios y fotografías de los sitios - Usuarios registrados - Buscador - Mapa - Eventos y hoteles - Amigos - Mensajería privada
  • 4. Manuel Martín Salvador Introducción: mejoras planteadas - Incluir las 8 provincias andaluzas - Sistema de recomendación - Incentivar al usuario - Versión mobile - Multi-idioma
  • 5. Manuel Martín Salvador Los sistemas de recomendación
  • 6. Manuel Martín Salvador Los sistemas de recomendación Factores importantes - Facilidad de uso - Calidad de las recomendaciones - Transparencia del sistema Casos de uso - Predicción - Recomendación
  • 7. Manuel Martín Salvador Los sistemas de recomendación Clasificación - Sistemas de filtrado colaborativo - Sistemas de recomendación basados en contenido - Sistemas de recomendación híbridos Técnicas de recomendación - Modelos probabilísticos - Clustering - Árboles de decisión - Redes neuronales - Vecinos
  • 8. Manuel Martín Salvador Sistema de recomendación basado en contenido Elementos involucrados - Sitios (ítems) I j Ej. Restaurante Wok - Etiquetas (descriptores) F k Ej. Buffet, Japonés, Terraza... - Jerarquías de etiquetas C u Música, Estilo, Instalaciones, Otros - Votos del usuario - Conjunto de valoraciones R={0.5, 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5} - Perfil de usuario Ej. Pop, Vegetariano, Wifi... - Sitio a predecir para el usuario activo
  • 9. Manuel Martín Salvador Sistema de recomendación basado en contenido Modelo probabilístico: red Bayesiana - Grafo dirigido acíclico: nodos (variables) + arcos (relaciones) - En cada nodo X i -> distrib. de probabilidad condicional
  • 10. Manuel Martín Salvador Sistema de recomendación basado en contenido Modelo probabilístico: red Bayesiana - Grafo dirigido acíclico: nodos (variables) + arcos (relaciones) - En cada nodo X i -> distrib. de probabilidad condicional
  • 11. Manuel Martín Salvador Sistema de recomendación basado en contenido Modelo probabilístico: red Bayesiana - Grafo dirigido acíclico: nodos (variables) + arcos (relaciones) - En cada nodo X i -> distrib. de probabilidad condicional Problema Ya que un nodo puede ser o no relevante, se necesitarían calcular 2 n distribuciones de probabilidad. ( n = número de padres) Solución Usar un modelo canónico de suma de pesos
  • 12. Manuel Martín Salvador Sistema de recomendación basado en contenido
  • 13. Manuel Martín Salvador Sistema de recomendación basado en contenido Predicción del voto - Problema: dado un sitio nuevo calcular su estimación del voto Procedimiento 1º Se incluye el sitio en el modelo 2º Se propagan las probabilidades del sitio a sus etiquetas 3º Se hace una propagación top-down Se puede ver con más detalle en la memoria
  • 14. Manuel Martín Salvador Sistema de recomendación basado en contenido
  • 15. Manuel Martín Salvador Sistema de recomendación basado en contenido
  • 16. Manuel Martín Salvador Sistema de recomendación basado en contenido
  • 17. Manuel Martín Salvador Sistema de recomendación basado en contenido Predicción del voto Valoración NR 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 Probabilidad 0.784 0 0 0 0 0 0 0 0.043 0 0.173 Normalizada 21.6% 0 0 0 0 0 0 0 0.199 0 0.801 - Voto promedio Ej: 4.8 - Voto mediano Ej: 5 - Voto máximo Ej: 5
  • 18. Manuel Martín Salvador Sistema de recomendación basado en contenido Limitaciones - Problema del cold-starting Estrategias de resolución: 1. Ignorar al usuario 2. Tratarlo como el usuario medio 3. Sitios populares - Recomendación de sitios mal valorados Solución adoptada: umbral
  • 19. Manuel Martín Salvador Sistema de filtrado colaborativo Vecinos más cercanos : aquellos usuarios más similares
  • 20. Manuel Martín Salvador Sistema de filtrado colaborativo Procedimiento Dado un sitio a predecir: 1º Calcular la similaridad del usuario activo con todos los usuarios que han votado el sitio 2º Seleccionar los k mejores 3º Predecir el voto, utilizando las valoraciones de los usuarios
  • 21. Manuel Martín Salvador Sistema de filtrado colaborativo Medidas de similaridad - Coseno COS - Correlación de Pearson COR - Correlación de Pearson limitada CPC
  • 22. Manuel Martín Salvador Sistema de filtrado colaborativo Limitaciones - Problema del cold-starting : 1. Usuario nuevo 2. Sitio nuevo 3. Comunidad nueva - Recomendaciones en otras ciudades
  • 23. Manuel Martín Salvador Evaluación: colección de datos - Usuarios registrados: 330 - Usuarios que han rellenado su perfil: 27 - Usuarios con más de 1 voto: 54 - Usuarios con más de 5 votos: 27 - Usuarios con más de 10 votos: 15 - Sitios: 331 - Votos: 536 Votos Votos medios
  • 24. Manuel Martín Salvador Evaluación: métricas y metodología Métricas - Error medio absoluto (MAE) - Error cuadrático medio (MSE) - Porcentaje de predicción Metodología - Entrenamiento 80% + Test 20% - Leave one out
  • 25. Manuel Martín Salvador Evaluación: resultados Metodología leave one out
  • 26. Manuel Martín Salvador Soluciones desarrolladas 1. Cambio de plataforma: django 2. Incentivos para el usuario 3. Sistema de recomendación 4. Jerarquización de etiquetas 5. Versión mobile 6. Soporte multi-idioma 7. Blog y feeds
  • 27. Manuel Martín Salvador Demo! http://andaluciapeople.com

Notas del editor

  1. Hola, soy Manuel Martín y os voy a presentar el proyecto AndalucíaPeople.
  2. El origen de este proyecto surge en el año 2006, que es cuando empezaron a popularizarse en Internet las tecnologías que facilitan el geoposicionamiento como Google Maps. A raíz de una conferencia precisamente de Google en esta escuela, comencé junto con mi compañero José Luis Trapero a idear una web donde poder posicionar sobre un mapa los bares y pubs de Granada. Y en mayo de 2007 ya teníamos la primera versión online de GranadaPeople, Con el paso del tiempo fuimos añadiendo funcionalidades como el uso de etiquetas para describir mejor los sitios e incorporando nuevos tipos de sitios como restaurantes, discotecas, cines, etc. No fuimos realmente conscientes de la repercusión del proyecto hasta que empezaron a hacernos entrevistas para la radio y televisión. El tutor de este proyecto, Juan Huete, fue el que nos propuso que podíamos hacer cosas más interesantes como una herramienta para recomendaciones. Personalmente me gustó la idea y decidí hacerlo como Proyecto Fin de Carrera.
  3. La web inicial, GranadaPeople, tenía las siguientes características: - Una base de datos con información de los sitios (nombre, dirección, coordenadas, etiquetas...) - Un sistema de votación entre 1 y 5 estrellas para valorar estos sitios - Un sistema de comentarios y fotografías de los sitios - Un conjunto de usuarios registrados que son los que añaden los sitios, los votan, los comentan, etc. - Un buscador sencillo de sitios - Un mapa con la posición de los sitios - Un listado de eventos y hoteles en la ciudad proporcionado por agentes externos - Se podían establecer relaciones de amistad entre usuarios - Y por último un sistema de mensajería privada
  4. AndalucíaPeople viene a ser pues la extensión natural de GranadaPeople. Al comienzo del proyecto se plantearon una serie de mejoras para el sistema: - Incluir las 8 provincias andaluzas de forma que sean independientes, pero administradas bajo la misma interfaz. - Un sistema de recomendación que proporcione una buena experiencia de usuario, que es la parte central del proyecto. - Incentivar al usuario para que se implique más en la plataforma. - Una versión especial para dispositivos móviles que sea ligera y fácil de usar. - Y la posibilidad de cambiar el idioma de la web.
  5. En la vida diaria estamos acostumbrados a que nuestros amigos nos recomienden películas, series, libros, música e incluso bares o restaurantes. Internet no se ha quedado atrás y webs como last.fm nos recomienda música parecida a la que escuchamos; en Amazon, por ejemplo, cuando estamos visitando un producto nos recomienda comprar otro que nos puede interesar. Todo esto se consigue gracias a los sistemas de recomendación. Lo primero que se hizo fue estudiar qué tipos de sistemas existían, cómo funcionaban y cuál era el que mejor se podía adaptar a la web de AndalucíaPeople, ya que teníamos una serie de restricciones en la estructura de la información y de tiempo real, porque es una web online.
  6. A la hora de diseñar un sistema de recomendación hay que tener en cuenta una serie de factores para que sea adecuado para los usuarios: - Primero, debe ser fácil de usar - Segundo, cuanto mejor sean las recomendaciones, más confianza tendrán los usuarios sobre el sistema - Y por último, se le debe poder decir al usuario porqué se le están recomendando esos sitios El uso que se le pueda dar al sistema de recomendación es doble: - Por una parte, supongamos que te han invitado a una cena en un restaurante y quieres saber si te va a gustar el sitio o no. Para ello el sistema puede darte una predicción de voto sobre ese restaurante. - Otro posible uso es cuando por ejemplo vamos a ir de viaje a Málaga y queremos saber qué restaurantes hay nos puedan gustar.
  7. Los sistemas de recomendación se pueden clasificar en tres grupos: - Primero tenemos los sistemas de filtrado colaborativo que tratan de identificar grupos de personas con intereses comunes al usuario y recomendarle aquellos elementos que les gustaron a los otros. - Por otro lado tenemos los sistemas de recomendación basados en contenido que usan información de los elementos para recomendar aquellos similares a los que el usuario ha valorado o comprado previamente. - Y por último, los sistemas de recomendación híbridos que combinan los dos enfoques anteriores para intentar solventar las limitaciones de ambos. Para mejorar la calidad de las recomendaciones, existen distintas técnicas para cada uno de estos enfoques. Entre las más usadas se encuentras los modelos probabilísticos, métodos de clustering, árboles de decisión o redes neuronales. En este proyecto se ha escogido las redes bayesianas dentro de los modelos probabiilísticos para el enfoque basado en contenido y la técnica de vecinos más cercanos para el filtrado colaborativo.
  8. Ahora pasamos a detallar el sistema de recomendación basado en contenido. Lo primero que hay que conocer son los elementos involucrados: Tenemos una serie de sitios descritos por etiquetas, por ejemplo, el Restaurante Wok que tiene buffet libre, es japonés y tiene terraza. Estas etiquetas las he jerarquizado en cuatro grupos: música, estilo, instalaciones y otros aspectos, a diferencia de otros sistemas que utilizan una descripción plana. Por otra parte tenemos los votos del usuario sobre los sitios valorados entre 0.5 y 5, y el perfil de usuario, que lo conforman un conjunto de etiquetas elegidas explícitamente por el usuario. Y por último tenemos el sitio sobre el que se va a predecir su voto.
  9. Como comenté anteriormente, se ha escogido una red Bayesiana como modelo probabilístico. Una red Bayesiana es un grafo dirigido acíclico compuesto por nodos, que representan las variables, y arcos, que representan las relaciones de dependencia entre las variables. Para cada nodo se tendrá un distribución de probabilidad condicional.
  10. Ahora vamos a situar todos estos elementos en lo que sería la red Bayesiana que describe nuestro modelo. Se han definido 4 capas con diferentes tipos de nodos. Empezando por abajo, la primera capa contendría un único nodo, que representa al usuario activo. La segunda capa contiene aquellos sitios que el usuario ha votado y su perfil de gustos. La siguiente capa serían las jerarquías que clasifican las etiquetas que están en la última capa.
  11. Ya que un nodo puede ser o no relevante, se necesitarían calcular 2 n distribuciones de probabilidad. Siendo n el número de padres de un nodo. Para solventar este problema se usa un modelo canónico de suma de pesos que reduce el coste de cómputo.
  12. Cada enlace de la red va a tener un peso determinado dependiendo de los nodos conectados. El peso de los nodos descriptores sobre las jerarquías va a ser de 1/nº de padres. Los pesos de las jerarquías sobre un sitio va a depender del tipo que sea. Por defecto tienen un valor determinado, pero el usuario los puede modificar según la importancia que le quiera dar a un conjunto de etiquetas sobre un sitio. Como comenté anteriormente, en un pub es más importante la música que, por ejemplo, en un restaurante. Los pesos en el caso de los ítems sobre el nodo del usuario activo también va a ser 1/nº de ítems.
  13. El problema que queremos resolver con este sistema es predecir el voto que le daría el usuario activo a un determinado sitio. Para ello se sigue el siguiente procedimiento: 1º Se incluye el sitio en el modelo 2º Se propagan las probabilidades del sitio a sus etiquetas 3º Se hace una propagación top-down hasta el nodo final Los teoremas utilizados se pueden consultar más detalladamente en la memoria.
  14. Ahora voy a explicar el mecanismo de inferencia mediante un ejemplo de manera que resulte más fácil y rápido entenderlo. Supongamos que un usuario quiere saber la predicción del sistema para un restaurante llamado Kirin. Tenemos esta red bayesiana compuesta por aquellos sitios del mismo tipo que el usuario ha votado previamente y su perfil de gustos, instanciamos este sitio y calculamos la probabilidad de sus etiquetas.
  15. Ahora hay que calcular las probabilidades de cada uno de los nodos de la capa de ítems teniendo en cuenta la relevancia de sus etiquetas y del peso de las jerarquías.
  16. Para obtener la distribución de probabilidades en el nodo del usuario activo, sumamos para cada una de las valoraciones posibles las probabilidades de los sitios votados con dicha valoración. Se incluye además un campo que recoge la masa de probabilidad asociada al estado no relevante de los padres.
  17. Una vez que tenemos estas probabilidades, hay que escoger el voto que se le daría al sitio. Para ello existen tres alternativas: - El voto promedio se obtiene haciendo el promedio de la distribución. - El voto mediano el que se encuentra en la probabilidad 0.5 de la distribución. - El voto máximo el de probabilidad máxima. Tras probar los tres métodos me he quedado con el promedio que es el que ha dado mejores resultados en la evaluación.
  18. Este método tiene algunas limitaciones, como es el problema del cold-starting (inicio frío), ya que para que el sistema funcione correctamente, es necesario que el usuario haya votado sitios suficientes para hacer una recomendación. En el caso de que ocurra esto, podemos abordar la situación de distintas maneras: - Ignorando al usuario: le decimos que no hay resultados y que tiene que votar sitios antes de usarlo. - Tratarlo como el usuario medio, pero el problema es que el usuario medio no existe, y es probable que lo que le recomendemos no le guste. - O bien mostrar aquellos sitios más populares, que es la solución que he adoptado. Otra limitación es que puede ocurrir que el sistema recomiende sitios que estén mal valorados por otros usuarios, ya que sólo se centra en sus etiquetas. La solución que he adoptado es no recomendar aquellos sitios por debajo de un cierto umbral de valoración.
  19. Para intentar salvar estas limitaciones se ha estudiado usar un sistema de filtrado colaborativo con un esquema basado en vecinos. En este tipo de sistemas, los vecinos son aquellos usuarios con más aspectos en común con el usuario activo, en nuestro caso, los sitios votados en común con valoraciones similares.
  20. El procedimiento a seguir en este tipo de sistemas es, para un cierto sitio a predecir: 1º Calcular la similaridad del usuario activo con todos los usuarios que han votado dicho sitio 2º Seleccionar aquellos k mejores 3º Y por último obtener la predicción del voto usando las valoraciones de los usuarios
  21. Para saber cómo de similar es un usuario a otro, existen distintas métricas, entre las cuales se han escogido estas tres clásicas para su evaluación: - La medida coseno - La correlación de Pearson - La correlación de Pearson limitada
  22. Este sistema también presenta algunas limitaciones relacionadas con el problema del cold-starting a tres niveles: 1. Un usuario nuevo no tiene inicialmente vecinos porque no ha votado ningún sitio. 2. Un sitio nuevo, al no tener ningún voto, no puede ser recomendado. 3. Cuando se crea una comunidad nueva, el sistema puede no funcionar bien debido a los pocos votos que hay. Otra limitación que tiene este sistema es que es difícil que sea capaz de recomendar sitios de una ciudad que no es la tuya, ya que es menos probable que tengas vecinos. Es por ello, por lo que actualmente el sistema de cara al público que está funcionando es el basado en contenido.
  23. Vamos a ver ahora algunos resultados experimentales de cómo han funcionado ambos sistemas. Para realizar las pruebas se han usado los datos reales de la web, que si bien son bastante escasos nos sirven para hacernos una idea de cómo funcionan. En las gráficas podemos ver que la distribución de los votos y de los votos medios se acumula en las valoraciones 4 y 5, es decir, la gente vota lo que le gusta.
  24. Se han usado diferentes métricas para comparar los resultados: - El error medio absoluto nos indica cómo de ajustadas están las predicciones del sistema respecto a la valoración real del usuario. - El error cuadrático medio, es similar al anterior, pero penaliza más el error cometido cuanto más alejada esté la predicción de la realidad. - Y el porcentaje de predicción que representa los votos del conjunto de prueba que se han podido predecir. He obtenido resultados con dos metodologías: 1. Primero, extrayendo un 20% del total de los votos, que serán el conjunto de test y el 80% restante será el conjunto de entrenamiento. 2. Y luego hemos usado el método leave-one-out que consiste en sacar sólo un elemento del conjunto total.
  25. Vemos que el método que mejor se comporta es usando simplemente el voto medio como predicción. Esto es debido a que como hemos visto anteriormente, los usuarios suelen puntuar con valoraciones altas y el voto medio está bien perfilado. Pero claro, no es un método “inteligente” y no es capar de hacer recomendaciones. De los sistemas de recomendación implementados, el que da mejores resultados es el filtrado colaborativo usando la correlación de Pearson limitada como medida de similaridad. Vemos también como el basado en contenido implementado es bastante mejor que usando la medida coseno para contenido. Los porcentajes de predicción del sistema basado en contenido son más bajos que el colaborativo porque se necesitan más pre-requisitos para poder realizar una predicción
  26. Hasta aquí hemos visto los diferentes tipos de sistemas de recomendación y cómo han funcionado en el proyecto. Ahora voy a resumir las soluciones que se han desarrollado en el proyecto y luego para finalizar, una demostración de cómo funciona la aplicación. 1. Lo primero que se hizo fue un cambio completo de plataforma, pasando a usar el framework django que funciona en python, porque era menos costoso y a la larga más eficiente de mantener las 8 provincias andaluzas, que lo que hubiese implicado adaptar toda la estructura anterior en php. 2. Otro de los objetivos era incentivar la participación de los usuarios, para ello se ha establecido un sistema de puntuación en el que por cada acción realizada en la web se premia al usuario. También se proporciona una guía para aprender a completar el perfil de usuario y a integrarse en la web. 3. Se han implementado ambos sistemas de recomendación explicados, aunque este último sólo de modo experimental y aún no está disponible al público. 4. Se han jerarquizado las etiquetas con el fin de describir mejor los sitios y para usarlas mejor en el sistema de recomendación. 5. Hay disponible una versión sencilla para móviles, se ha incluído soporte multi-idioma, se ha creado un blog para informar de novedades y se proporcionan feeds para suscripción por RSS para sitios, fotos y comentarios de las distintas provincias.
  27. Por último vamos a ver un ejemplo de funcionamiento de la web. De cara al público el sistema funciona bien, o al menos esa es la impresión que me han hecho llegar llegar las personas con las que he realizado las pruebas. Creemos que los sistemas de recomendación en Internet van a seguir creciendo, ya que cada vez se dispone de más información de los usuarios para poder ofrecerles resultados de mejor calidad. Eso es todo, muchas gracias.