AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

38
Proyecto Fin de Carrera | Ingeniería Informática | Universidad de Granada AndalucíaPeople Un sistema de recomendación para sitios de ocio de Andalucía Autor: Manuel Martín Salvador Tutor: Juan Huete Guadix Curso 2008/2009 1

description

Documentación de mi proyecto fin de carrera

Transcript of AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Page 1: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Proyecto Fin de Carrera | Ingeniería Informática | Universidad de Granada

AndalucíaPeopleUn sistema de recomendación para sitios de ocio de Andalucía

Autor: Manuel Martín Salvador

Tutor: Juan Huete Guadix

Curso 2008/2009

1

Page 2: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

2

Page 3: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Índice

1. Introducción 51.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2. Situación inicial . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3. Mejoras planteadas . . . . . . . . . . . . . . . . . . . . . . . . 61.4. El modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2. Introducción a los sistemas de recomendación 8

3. Sistema de recomendación basado en contenido 93.1. Elementos del sistema de recomendación . . . . . . . . . . . . 103.2. Esquema de pesos . . . . . . . . . . . . . . . . . . . . . . . . . 113.3. Red Bayesiana . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.4. Estimación de probabilidades . . . . . . . . . . . . . . . . . . 143.5. Mecanismo de inferencia . . . . . . . . . . . . . . . . . . . . . 153.6. Predicción vs Recomendación . . . . . . . . . . . . . . . . . . 203.7. Problema del cold-starting . . . . . . . . . . . . . . . . . . . . 203.8. Un poco más rápido . . . . . . . . . . . . . . . . . . . . . . . 203.9. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4. Sistema de filtrado colaborativo 214.1. Elementos del sistema de recomendación . . . . . . . . . . . . 214.2. Medidas de similaridad . . . . . . . . . . . . . . . . . . . . . . 224.3. Predicción del voto . . . . . . . . . . . . . . . . . . . . . . . . 224.4. Problema del cold-starting . . . . . . . . . . . . . . . . . . . . 23

5. Evaluación 235.1. Colección de datos . . . . . . . . . . . . . . . . . . . . . . . . 235.2. Métricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245.3. Metodología . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255.4. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

3

Page 4: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

6. Soluciones desarrolladas 28

7. Aspectos adicionales del desarrollo 29

7.1. Entorno de desarrollo . . . . . . . . . . . . . . . . . . . . . . . 29

7.2. Entorno de producción . . . . . . . . . . . . . . . . . . . . . . 29

7.3. Control de versiones . . . . . . . . . . . . . . . . . . . . . . . 30

7.4. Sistema de tickets . . . . . . . . . . . . . . . . . . . . . . . . . 30

7.5. Licencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

8. Manual de usuario 30

9. Conclusión 36

Referencias 37

4

Page 5: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

1. Introducción

1.1. Motivación

El germen de este proyecto surgió en 2006 cuando comenzó a implantarseen Internet la tecnología para usar mapas en cualquier web de la mano deempresas como Google o Yahoo! que ofrecían herramientas para facilitar lacreación de mashups. Partiendo de este contexto, comencé junto con un com-pañero a idear una web donde posicionar sobre un mapa los bares y pubs deGranada. Con este propósito comenzó GranadaPeople, y con el paso del tiem-po fue creciendo gracias al apoyo de muchas personas, incorporando nuevasfuncionalidades y ampliándose con nuevos locales.Una de las personas que se interesaron por la web fue mi tutor de proyecto,que nos animó a hacer un sistema de recomendación, y viendo las posibilida-des que esto tenía, decidí hacerlo como proyecto de fin de carrera.

1.2. Situación inicial

Partimos de la web GranadaPeople que fue desarrollada desde cero en PHPy contiene las siguientes características:

Una colección de sitios con la siguiente información: nombre, dirección,zona, coordenadas y usuario que lo ha enviado.

Un sistema de votación entre 1 y 5 estrellas para que los usuarios pue-dan valorar los sitios.

Cada sitio contiene una serie de etiquetas que ayudan a perfilar mejorel tipo de sitio del que se trata. En base a estas etiquetas se puedenestablecer unos sitios por similaridad (un sitio se parece tanto más aotro cuantas más etiquetas tengan en común).

Uun sistema de comentarios y de subida de fotografías relacionadas conlos sitios.

Buscador de sitios por etiquetas y por zonas.

Geolocalización sobre un mapa, para colocar con la mayor exactitud laposición de un sitio.

Listado de eventos y hoteles en la ciudad, proporcionados por agentesexternos.

5

Page 6: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Sistema de amigos y de mensajería privada.

1.3. Mejoras planteadas

El proyecto se basa en mejorar este sistema y ampliarlo a todas las provin-cias andaluzas, para conformar la web andaluciapeople.com. Detallamos unlistado de las mejoras que se pretenden realizar:

Incluir las 8 provincias andaluzas de forma que puedan ser indepen-dientes, pero administradas bajo la misma interfaz.

Incentivar al usuario para que se implique más en la plataforma, ya seaenviando nuevos sitios, corrigiendo errores, valorando sitios, haciendocomentarios y subiendo fotografías.

Un sistema de recomendación de sitios que proporcione una buena ex-periencia al usuario.

Una versión especial para dispositivos móviles que sea ligera y fácil deusar.

Posibilidad de cambiar el idioma.

Para alcanzar estos objetivos se la sección 2 estudiaremos los distintos tiposde sistemas de recomendación, para de forma más detallada en la sección 3comentar los sistemas de recomendación basados en contenido y en la sección4 los sistemas de filtrado colaborativo. Se presentan los resultados experimen-tales en la sección 5 y para finalizar se enumeran las soluciones desarrolladasjunto otros aspectos del desarrollo y un manual de usuario en las secciones6, 7 y 8.

1.4. El modelo

Con el fin de desarrollar una aplicación web como esta, se han definido una se-rie de clases que especifican un modelo de red social orientada principalmentea la interacción de los usuarios con el sistema. De esta manera, un usuarioserá capaz de añadir nuevos sitios de un determinado tipo, descritos por eti-quetas categorizadas en una jerarquía, escribir comentarios, subir fotografíasy votar cualquier sitio. También podrá establecer lazos de amistad con otrosusuarios y decir explícitamente cuáles son aquellas características que más legustan con vistas a que el sistema pueda hacer mejores recomendaciones denuevos sitios que aún no conoce.

6

Page 7: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

User (Usuario): es el elemento más importante de la aplicación, yaque en torno a él van a girar el resto de clases.

Sitio: es el segundo elemento más importante. Contiene la informaciónesencial de un sitio: nombre, dirección, coordenadas, teléfono, etc.

Tipo: engloba los distintos tipos que pueden definir a un sitio.

Etiqueta: cualquier tag que sirva para describir mejor a un sitio.

Jerarquía: sirven para definir conjuntos de etiquetas relacionadas.

ObjetoEtiquetado: relación entre un sitio y una etiqueta.

DatosUsuario: algunos datos personales del usuario, así como su lis-tado de sitios favoritos y las etiquetas que más le gustan.

Foto: fotos de un determinado sitio subidas por un usuario.

Comentario: comentarios sobre un sitio hechos por un usuario.

Voto: valoración de un sitio de un usuario.

Amigo: usuarios que establecen una relación de amistad.

PesosTipoJerarquía: peso asignado por un usuario a una jerarquíade etiquetas a un determinado tipo de sitio.

En la siguiente figura se puede observar el grafo de dependencias entre lasclases previamente enumeradas.

Figura 1: Grafo del modelo simplificado

Además de las clases aquí descritas, se han utilizado algunas más de desarrolloexterno como pueden ser las necesarias para el sistema de mensajería privadao el blog.

7

Page 8: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

2. Introducción a los sistemas de recomenda-ción

En la vida diaria, la publicidad masiva nos invade en televisión, prensa, radioo carteles en la calle. Si bien esto sirve a las marcas para afianzar su imagen ycaptar clientes, su coste puede llegar a ser muy alto respecto a la efectividadque tienen. En cambio, los productos como libros, películas, discos, etc. loscompramos bien porque nos gusta el autor o el género, o bien porque nos lorecomienda algún amigo.

El término “sistema de recomendación” surge en los años 90 ligado a proyectosde Inteligencia Artificial en Internet y hoy en día tinen un gran auge con lallamada “Web 2.0”. Algunos ejemplos de uso son [22]:

Recomendaciones en tiendas online: partiendo de un producto se re-comiendan otros que han interesado a los usuarios que lo compraron.(Amazon)

Filtrado de noticias: se le da más prioridad al tipo de noticias que elusuario consulta frecuentemente. (Google)

Recomendaciones musicales, de libros y de películas: generan recomen-daciones en base a los gustos del usuario (MyStrands, filma!nity)

Búsqueda de personas afines en comunidades: se puede generar unalista de vecinos con intereses similares en base a las acciones de unusuario (meneame, last.fm).

Los sistemas de recomendación se clasifican normalmente en tres categorías[11]:

Sistemas de recomendación basados en contenido: almacenaninformación sobre cada ítem que va a ser recomendado. Esta informa-ción se usa para recomendar ítem similares a los que previamente havalorado el usuario. Los principales problemas que acarrea este tipo desistema son:

• Los descriptores que se usan para representar los ítems pueden noresultar muy adecuados.

• Es difícil hacer recomendaciones precisas a usuarios con pocosvotos.

8

Page 9: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

• Poca diversidad, ya que sólo se recomendarán ítems similares a losya votados.

Sistemas de filtrado colaborativo: tratan de identificar grupos depersonas con intereses comunes al usuario y recomendar ítems que lesgustaron. Los sistemas colaborativos se pueden clasificar en dos grupos[19]:

• Basados en memoria: utilizan toda la base de datos de elementosy usuarios para generar predicciones. Se emplean técnicas estadís-ticas para encontrar a los vecinos y se combinan sus preferenciaspar agenerar una lista con los elementos más recomendables parael usuario actual. Es necesario disponer de un número mínimo deusuarios con suficientes votos, incluído el usuario al que se preten-de recomendar.

• Basados en modelo: desarrollan primero un modelo de los votosdel usuario y luego calculan para cada ítem el valor esperado enfunción de los anteriores. Se utilizan distintos algoritmos de apren-dizaje clustering o redes neuronales.

Sistemas de recomendación híbridos: intentan combinar los dosenfoques anteriores. Se pueden encontrar diferentes métodos de hibri-dación: [15, 24, 13, 11]

• Implementando colaborativo y basado en contenido por separadoy combinando sus predicciones.

• Incorporando algunas características del basado en contenido enel enfoque colaborativo, y viceversa.

• Construyendo un modelo unificado que incorpore las característi-cas de ambos métodos.

3. Sistema de recomendación basado en conte-nido

Cuando se decidió desarrollar el sistema de recomendación, se considereraronuna serie de factores que hacen que éste sea considerado adecuado por losusuarios [16]:

9

Page 10: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Facilidad de uso: un sistema difícil haría que fuese usado por muchasmenos personas.

Calidad de las recomendaciones: cuanto mejor sean las recomen-daciones, los usuarios sentirán más afinidad por el sistema.

Familiaridad de los ítems recomendados: si el usuario obtienerecomendaciones de sitios que conoce (pero que aún no ha votado)sentirá que el sistema funciona correctamente.

Transparencia del sistema: se le puede decir al usuario porqué lerecomendamos esos sitios, ya que se han obtenido siguiendo una seriede pasos lógicos.

Tras leer diversos artículos, se partió del esquema de recomendación basadoen redes bayesianas que se explica en el artículo escrito por varios investiga-dores del departamento CCIA de la Universidad de Granada [15].

3.1. Elementos del sistema de recomendación

Los principales elementos que conforman el sistema recomendación son losítems (sitios), los descriptores (etiquetas o tags) y los usuarios, que junto consus votos hacen posible calcular una predicción de voto para un sitio que elusuario a priori no conoce.

Estos elementos se pueden representar por las siguientes variables:

Fk será un nodo que identifica una etiqueta que describe un sitio. Tomaun valor binario, 0 si no es relevante, 1 si es relevante.

Igualmente, habrá un nodo Ij para cada ítem. También toma valoresbinarios, 0 si no relevante o 1 si es relevante para la predicción que seestá haciendo. El conjunto de gustos del perfil del usuario se tratarácomo un ítem más, cuya valoración será la máxima, ya que el usuariolos ha seleccionado explícitamente.

Por último se usará un nodo para representar la valoración predichapara el usuario activo y se denota con ACB, donde el subíndice indicaque estamos usando el enfoque basado en contenido (content-based).Los posibles valores que puede tomar esta variable son los del conjunto{0, 0.5, 1, 1.5, 2, 2.5, 3, 3.5 4, 4.5, 5}. El valor 0 se incluye para estimarcómo de fiable es el resultado predicho.

10

Page 11: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Para conectar estos nodos, consideraremos que la relevancia de un ítem de-penderá de la relevancia de los descriptores que lo definen. Luego habrá enla-ces entre los nodos descriptores y los nodos ítems. En cambio, no hay enlacesdirectos entre los nodos descriptores, esto es, las etiquetas son marginalmenteindependientes entre ellas.

Los enlaces Fk ! Ij indican que el sitio Ij está descrito por la característicaFk y su valor indica la importancia de la misma respecto al resto de etique-tas que lo describen. Los enlaces Ij ! ACB indican que el usuario activo havotado el sitio Ij y el voto que le asignó será el valor de este enlace. Diremosque el usuario activo ha votado el sitio Ij cuando le haya asignado una va-loración del conjunto R={0.5, 1, 1.5, 2, 2.5, 3, 3.5 4, 4.5, 5}. La estimaciónde probabilidades y su propagación a lo largo de la red se detallan en lassecciones 3.4 y 3.5.

3.2. Esquema de pesos

Cada sitio está identificado por una serie de etiquetas que le asignan signi-ficado semántico tales como la música de ambiente o el estilo de comida delrestaurante. De esta manera, podemos categorizar las etiquetas en diferentesgrupos:

1. Tipos: especifica el tipo de sitio. Un sitio puede tener varios tipos.Ejemplos: bar, restaurante, discoteca, pub, pizzería, heladería...

2. Estilo: sirve para especificar un poco mejor las características del sitio.Ejemplos: asador, bu!et, chino, italiano, comida rápida, tapas, vegeta-riano...

3. Música: indica el tipo de música que suelen poner en el sitio. Ejemplos:electrónica, flamenco, jazz, latina, pop, rock, salsa...

4. Instalaciones: permite escoger entre distintas instalaciones de las quepuede disponer el sitio. Ejemplos: billar, dardos, futbolín, karaoke, te-levisión, terraza, wifi...

5. Otros: engloba algunos extras que no pertenece a ninguna de las an-teriores categorías. Ejemplos: entrada pagando, no fumadores, no volu-men alto...

Esta categorización nos va a permitir aumentar o disminuir el peso de losdescriptores según el tipo de ítem. Por ejemplo, en el caso de las etiquetas

11

Page 12: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

pertenecientes a Estilo, tendrán un mayor peso en restaurantes, y en las deMúsica, en pubs, salas o discotecas. Se han definido por defecto unos pesos,pero que pueden ser ajustados por los usuarios siempre que lo deseen.

Usuario Tipo Jerarquía Peso

Manuel

Restaurante

Estilo 0.5Música 0.125Instalaciones 0.25Otros 0.125

Pub

Estilo 0.3Música 0.4Instalaciones 0.2Otros 0.1

Cuadro 1: Ejemplo de matriz de pesos para el usuario Manuel

3.3. Red Bayesiana

Usando redes bayesianas vamos a poder ver las relaciones entre los distintoselementos del sistema de recomendación y apreciar visualmente la propaga-ción de probabilidades.

En la Figura 2 se muestra una primera aproximación de lo que sería la redbayesiana que podemos utilizar para predecir la puntuación de un sitio enbase a aquellos sitios que el usuario ha valorado. El principal inconvenienteque presenta es que trata a todas las etiquetas por igual y además hay queinstanciar todos los ítems que el usuario ha votado junto con sus etiquetas.

Por ejemplo, digamos que el usuario ha votado 50 sitios, de los cuales 30 sonpubs y 20 son restaurantes. Si el usuario sólo quiere saber la predicción paraun determinado restaurante que no conoce, esta primera aproximación lo quehará es instanciar los 50 sitios votados junto con sus etiquetas. Si cada sitiotuviese 3 etiquetas, habría que instanciar 150 etiquetas en total. Es muyposible que muchas de ellas no aporten utilidad para el sitio que estamosprediciendo, ya que como la mayoría de los sitios votados son pubs, estasetiquetas pueden estar relacionadas con el tipo de música de estos sitios,mientras que en un restaurante posiblemente la música no tenga nada derelevancia, al contrario que el estilo de comidas que se sirvan.

12

Page 13: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Figura 2: Primera aproximación

Hemos tratado de resolver los problemas planteados anteriormente siguiendoel esquema de la Figura 3. Sólo se instancian aquellos sitios que son delmismo tipo que el que va a ser predicho. Además, introducimos una nuevacapa para categorizar las etiquetas. Con esta nueva estructura el objetivoque conseguimos es doble: mejorar la calidad de la predicción y hacerlo máseficientemente.

Si aplicamos a este caso el ejemplo comentado anteriormente, de los 50 sitiosvotados por el usuario, sólo instanciamos los 20 que son restaurantes, queserían unas 60 etiquetas, con lo cual nos estamos ahorrando más de la mitad.Ahora, al introducir la nueva capa de jerarquías, se le va a dar un mayor pesoa las etiquetas que describen el estilo del restaurante que al resto a la hora dehacer la predicción. Esto sería el comportamiento predeterminado, pero seráfinalmente el usuario será el que decida qué importancia quiere darle a cadajerarquía para cada tipo de sitio. Se puede ver un ejemplo más detallado enla sección 3.5.

13

Page 14: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Figura 3: Solución adoptada

3.4. Estimación de probabilidades

Comenzando por los nodos descriptores (F ), no tienen padres y sólo esnecesario calcular la distribución de probabilidad a priori de su relevancia.En el proyecto hemos supuesto que todas las etiquetas son equiprobables:

Pr(fk,1) = 1/l Siendo l el tamaño del conjunto F .

Los nodos jerarquías (C) se encargan de dar un peso determinado al valorde la probabilidad de los descriptores, tal como se ha comentado en la sección“Esquema de pesos”. Se tiene que cumplir que la suma de los pesos de lasjerarquías para un ítem sea 1.!

cu!Cw(ij,1, cu) = 1

Con respecto a los nodos ítems (I), los únicos pesos necesarios para calcularla probabilidad Pr(ij,1|pa(Ij)) son:

14

Page 15: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

w(fk,1, ij,1) = log((m/nk)+1)PFk!Pa(Ij)

log((m/nk)+1) Siendo nk el número de veces que la etiqueta

Fk se usa para describir un ítem y m el número de ítems.

w(fk,0, ij,1) = 0

Para los nodos basados en contenido (ACB), hay que considerar la in-fluencia de un ítem en el rango de valoraciones del usuario activo. Cuandoel usuario A vota un elemento Ik con el valor s, la probabilidad de este ítemirá al voto s. Los pesos necesarios son:

w(ik,1, acb,s) = 1/I(A) Siendo I(A) el número de ítems votados por el usuarioA

w(ik,1, acb,t) = 0 para t "= s, 0 # t # #r

w(ik,0, acb,0) = 1/I(A)

w(ik,0, acb,t) = 0 para 1 # t # #r

3.5. Mecanismo de inferencia

El objetivo del proceso de inferencia es estimar el voto para el usuario ac-tivo A dado un sitio (evidence), es decir, Pr(A = s|ev). Para calcular estaprobabilidad, debemos instanciar el sitio y propagar a través de los distintosnodos. Esta propagación implica un proceso de marginalización que requie-re un tiempo exponencial. Sin embargo, teniendo en cuenta que en una redbayesiana un nodo es independendiente de sus antecesores dado que estosvalores se toman de sus padres, y usando las ventajas que ofrece el modelocanónico usado para expresar las distribuciones de probabilidad condicinoal,la distribución de probabilidad a posteriori se puede calcular eficientementecomo un mecanismo de inferencia de arriba a abajo (top-down). El siguienteteorema explica cómo calcular exactamente esta probabilidad:

Teorema 1 : sea Xa un nodo en una red bayesiana, mXa el número de padresde Xa, Yj un nodo en Pa(Xa) y lYj el número de estados que puede tomar Yj.Se puede calcular la probabilidad a posteriori usando la siguiente fórmula:

Pr(xa,s|ev) =mXa!j=1

lYj!k=1

w(yj,k, xa,s) · Pr(yj,k|ev)

Por medio de este teorema se expresa que el nodo Xa recoge la probabilidadde sus predecesores y no necesita distribuirla de nuevo. Esto es importanteporque implica que se puede realizar la propagación en tiempo lineal respectoal número de padres [14].

15

Page 16: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Centrándonos en la componente basada en contenido, el sitio a predecir estácompuesto de un conjunto de descriptores y por el ítem en sí mismo. En elprimer caso la propagación se realiza como se explica en el teorema anterior.Mientras que en el segundo caso, la probabilidad Pr(Fk|ij,1) se calcula paracada nodo Fk conectado al ítem Ij. Estas probabilidades se pueden calcularpor medio del siguiente teorema.Teorema 2 : sea Fk un nodo descriptor de la jerarquía Cu perteneciente alítem Ij en una red bayesiana. La probabilidad a posteriori de su relevanciase puede calcular como:

Pr(fk,1|ij,1) =

"w(ij,1, cu) · Pr(fk,1) si Fk /$ Pa(Ij)

w(ij,1, cu) ·#Pr(fk,1) + w(fk,1,ij,1)·Pr(fk,1)·(1"Pr(fk,1))

Pr(ij,1)

$si Fk $ Pa(Ij)

siendo Pr(ij,1) =!

Fk!Pa(Ij)

w(fk,1, ij,1) · Pr(fk,1)

Predicción del voto

Una vez que se han calculado las probabilidades a posteriori, hay que elegirel voto que se va a dar como predicción. Antes de obtener la predicción hayque normalizar las probabilidades al dominio de R, para ello hacemos:Pr(A = s|ev) = Pr(A=s|ev)

1"Pr(A=0|ev) %s $ R

Existen tres alternativas de elección:

El voto promedio: prediccion =!#s!R

s · Pr(A = s|evidence)

El voto mediano: prediccion = {s|Pr(A < s|evidence) # 0,5, P r(A >s|evidence) & 0,5}

El voto máximo: prediccion = {s|Pr(A = s|evidence) > Pr(A "=s|evidence)}

Para una mejor comprensión se puede ilustrar con este ejemplo que muestralos valores de la variable ACB:

Valoración 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0Probabilidad 0 0 0 0 0.2 0.15 0.15 0 0 0.5

Voto mediano = 3.5

Voto promedio = 3.975

Voto máximo = 5.0

16

Page 17: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Algoritmo

1. Se instancia el ítem a predecir Pr(ij,1) = 1 y calculan las probabilida-des de sus descriptores. A continuación se propagan las probabilidadesusando el teorema 2 explicado en esta sección.

2. Se instancian sólo aquellos sitios del mismo tipo que el evidence y sepropagan las probabilidades usando el teorema 1 que hemos visto an-teriormente.

3. Se selecciona un voto usando uno de los esquemas de predicción nom-brados anteriormente. En este proyecto se ha escogido el voto promedioporque es el que mejores resultados ha dado (ver sección de Evaluación).

Ejemplo teórico de predicción

Figura 4: Ejemplo ilustrativo

17

Page 18: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

En el ejemplo de la Figura 4 se puede ver resaltado en amarillo las etiquetasdel sitio que va a ser predicho. Vamos a ir por capas obteniendo la probabi-lidad para cada nodo.

Instanciamos el ítem a predecir.

Pr($Kirin$1) = 1

Calculamos las probabilidades de los descriptores del ítem instanciado.

Pr($Japones$1|$Kirin$1) = w($Restaurante$,$ Estilo$)·%

Pr($Japones$1) +w($Japones$1,

$ Kirin$1) · Pr($Japones$1) · (1' Pr($Japones$1))

Pr($Kirin$1)

&=

0,5 · (0,5 + 0,386 · 0,5 · 0,5) = 0,298

Pr(!Servicio a domicilio!1|!Kirin!

1) = w(!Restaurante!,! Otros!)·

Pr(!Servicio a domicilio!1) +

w(!Servicio a domicilio!1,! Kirin!

1) · Pr(!Servicio a domicilio!1) · (1" Pr(!Servicio a domicilio!

1))

Pr(!Kirin!1)

!=

0,125 · (0,5 + 0,614 · 0,5 · 0,5) = 0,327

Instanciamos los descriptores de los ítems relevantes.

Pr(fk,1,$ Y amato$1) = 1

Calculamos la probabilidad de los ítems relevantes para el ítem a predecir.

Pr($Y amato$1|$Kirin$1) =

w($Japones$1,$ Y amato$1) · Pr($Japones$1|$Kirin$1)+

w($Japones$0,$ Y amato$1) · Pr($Japones$0|$Kirin$1)+

w($Servicio a domicilio$1,$ Y amato$1) · Pr($Servicio a domicilio$1|$Kirin$1)+

w($Servicio a domicilio$0,$ Y amato$1) · Pr($Servicio a domicilio$0|$Kirin$1) =

0,386 · 0,298 + 0, 614 · 0,327 = 0,316

18

Page 19: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Pr($Wok buffet libre$1|$Kirin$1) =

w($Japones$1,$ Wok buffet libre$1) · Pr($Japones$1|$Kirin$1)+

w($Japones$0,$ Wok buffet libre$1) · Pr($Japones$0|$Kirin$1) =

0,386 · 0,298 = 0,115

Pr($Perfil usuario$1|$Kirin$1) =

w($Japones$1,$ Perfil usuario$1) · Pr($Japones$1|$Kirin$1)+

w($Japones$0,$ Perfil usuario$1) · Pr($Japones$0|$Kirin$1) =

0,177 · 0,298 = 0,053

Obtenemos la probablidad para cada uno de los votos.

Pr(A = 5|$Kirin$) = Pr($Perfil usuario$1|$Kirin$1)+Pr($Y amato$1|$Kirin$1) =0,053 + 0,316 = 0,369

Pr(A = 4|$Kirin$) = Pr($Wok buffet libre$1|$Kirin$1) = 0,115

Pr(A = 0|$Kirin$) = 1'!#s!R

Pr(A = s|$Kirin$) = 0,516

Ahora normalizamos aquellas posiciones que son relativas a una valoración(es decir, las distintas a 0). [15]

Pr(A = 4|$Kirin$) = Pr(A=4|#Kirin#)1"Pr(A=0|#Kirin#) = 0,2376

Pr(A = 5|$Kirin$) = Pr(A=5|#Kirin#)1"Pr(A=0|#Kirin#) = 0,7624

Finalmente obtenemos como predicción el voto promedio.

prediccion =!#s!R

s · Pr(A = s|$Kirin$) = 4,76

La fiabilidad de esta predicción la podemos calcular como:

fiabilidad = (1' Pr(A = 0|$Kirin$)) · 100 = 48, 4 %

19

Page 20: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

3.6. Predicción vs Recomendación

No es lo mismo recomendar que predecir [18]. Predecir es simplemente esti-mar el valor del voto que un usuario daría a un determinado ítem según elconocimiento que el sistema tenga formado sobre el usuario gracias a votacio-nes previas que haya realizado. Por otra parte, recomendar involucra calcularpredicciones para un conjunto de ítems y mostrar aquellos resultados más afi-nes para el usuario. El usuario no quiere que le recomendemos sitios que nole gusten (predicción baja), sino aquellos que puede que le vayan a gustar(predicción media-alta).

3.7. Problema del cold-starting

Para que el sistema de recomendación funcione correctamente es necesarioque el usuario haya votado varios sitios, así como haber ajustado su perfil degustos. El problema del cold-starting [18, 12](o inicio frío) viene a plantearque esta situación ideal no siempre se da, ya que habrá usuarios nuevosque quieran recomendaciones sin haber valorado suficientes ítems. Se puedenabordar diferentes medios de actuación ante esta situación:

Pasar de él: le decimos que no hay resultados y que es necesario votarmás sitios para obtener recomendaciones.

Tratarlo como el usuario medio: se trazaría un usuario medio conformeal resto de usuarios y se le recomendarían ítems. El problema es que elusuario medio no existe.

Popularidad: mostrar aquellos ítems más populares en la categoría quese esté indicando. Es la solución que hemos adoptado.

3.8. Un poco más rápido

Para mejorar la velocidad del sistema es posible cachear algunos resultadosque son menos proclives a cambiar como pueden ser:

Etiquetas de un sitio: los descriptores con los que se incorpora un nuevositio suelen variar poco o nada.

Probabilidad de un sitio para un usuario: esta probabilidad sólo cam-biará si el usuario vota nuevos sitios con el mismo tipo.

20

Page 21: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Probabilidad de un sitio para el evidence: esta probabilidad sólo variarási se cambian las etiquetas de alguno de los dos sitios.

Por ejemplo, una consulta sobre recomendación de restaurantes en Granadapasa de tardar 4.51 segundos a 2.89 segundos tras habilitar el sistema decaché.

3.9. Limitaciones

En el sistema de recomendación basado en contenido se usa informaciónestructurada, en nuestro caso los tipos y etiquetas. Sin embargo, no se tienenen cuenta las valoraciones de otros usuarios a la hora de recomendar sitios,por lo que se podría dar la situación de que estemos recomendando un sitioque, si bien está acorde con el perfil del usuario, está muy mal valorado porotros usuarios.

Se aconseja pues, usar un método híbrido que tenga en cuenta tanto aspectoscuantitativos como cualitativos [23].

Una preocupación de los usuarios ha sido que el sistema les ha recomendadositios de estilo gay cuando ellos no han votado ninguno de ese estilo, estopuede ocurrir porque estos sitios tengan otras etiquetas en común, comopueden ser la música o las instalaciones. Para tratar esta etiqueta en especial,lo que haremos será evitar estos resultados si el usuario no ha seleccionadoentre sus gustos este determinado estilo.

4. Sistema de filtrado colaborativo

Los sistemas de fitrado colaborativo intentan identificar grupos de personasque tienen gustos similares, de manera que un usuario pertenecerá un ciertogrupo dependiendo de los sitios que haya votado. Así pues, se puede definir elconcepto de vecinos como aquellos usuarios que más gustos en común tienencon el usuario activo. Los ítems a recomendar serán aquellos mejor valoradospor este conjunto de vecinos, o bien aquellos que más se asemejen al conjuntode etiquetas que definan a este grupo de usuarios.

4.1. Elementos del sistema de recomendación

En el caso del filtrado colaborativo se necesitan los siguientes elementos:

21

Page 22: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Ui representa a un usuario.

Ij representa a un ítem.

Diremos que el usuario Ui habrá votado el sitio Ij cuando le haya asignadouna valoración del conjunto R={0.5, 1, 1.5, 2, 2.5, 3, 3.5 4, 4.5, 5}.

4.2. Medidas de similaridad

Para calcular la similaridad entre usuarios se pueden usar distintas métricas[12], entre las cuales hemos escogido las tres siguientes para una posteriorevaluación:

Coseno:

sim(ux, uy) =

m#Ph=1

rux,ih·ruy,ih

sm#P

h=1r2ux,ih

sm#P

h=1r2uy,ih

donde ru,i es la valoración del ítem i por el usuario u y n$ es el númerode ítems en común entre ambos usuarios.

Correlación de Pearson:

sim(ux, uy) =

m#Ph=1

(rux,ih"rux )·(ruy,ih

"ruy )

sm#P

h=1(rux,ih

"rux )2

sm#P

h=1(ruy,ih

"ruy )2

donde ru,i es la valoración del ítem i por el usuario u, ru es la mediade valoraciones del usuario u para todos sus votos en común y n$ es elnúmero de ítems en común entre ambos usuarios.

Correlación de Pearson limitada (Constrained Pearson’s Correla-tion):

sim(ux, uy) =

m#Ph=1

(rux,ih"rmed)·(ruy,ih

"rmed)

sm#P

h=1(rux,ih

"rmed)2

sm#P

h=1(ruy,ih

"rmed)2

donde ru,i es la valoración del ítem i por el usuario u, rmed es el valormedio en la escala de valoraciones R (en nuestro caso 2.5) y n$ es elnúmero de ítems en común entre ambos usuarios.

4.3. Predicción del voto

Una vez escogida una medida de similaridad y teniendo los vecinos del usuarioactivo, pasamos a predecir el voto sobre un determinado ítem [12, 15]:

22

Page 23: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

prediccion = rua +

m#Ph=1

sim(ua,uh)·(ruh,ia"ruh )

m#Ph=1

|sim(ua,uh)|

donde m$ es el número de usuarios que han votado el ítem ia, ua es el usuarioactivo, uh un usuario que ha votado el ítem y r es la media de los votos encomún para un determinado usuario.

4.4. Problema del cold-starting

Este tipo de sistema también presenta el problema del cold-starting comen-tado anteriormente. ¿Qué conjunto de vecinos tendrá un usuario nuevo? Nolo sabremos hasta que empiece a valorar sitios y defina su perfil de usuario.Además presenta un nuevo agravante con ítems nuevos. Si nadie lo ha vota-do, ¿cómo darlo a conocer? En el caso del sistema basado en contenido nohabría problema, ya que lo que prima son los descriptores del ítem. Si éstosson relevantes para el usuario, el sitio le será recomendado. Por lo que seríamás adecuado usar un método híbrido para resolver este problema.[11]El mayor inconveniente de los sistemas colaborativos se da cuando se creauna nueva comunidad [18]. El sistema no funcionará bien debido a los pocosvotos que hay. La solución más habitual es incentivar a un grupo de usuariospara que voten nuevos sitios antes de lanzarlo al público. Otra solución seríadar inicialmente recomendaciones usando un enfoque basado en contenido,que es lo que se está haciendo actualmente en el proyecto.

5. Evaluación

Para intentar evaluar cuantitativamente el sistema de recomendación se hanrealizado una serie de mediciones.

5.1. Colección de datos

Si bien el escenario de las pruebas no es el más favorable, ya que la web estáaún comenzando a funcionar, nos podremos hacer una idea de cómo funcionael sistema.

Estadísticas

Usuarios registrados: 330

23

Page 24: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

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

Distribución de votos

Se puede observar en la gráfica de la izquieda que la mayoría de los sitiosvotados son con la puntuación 4 y 5. La razón de que los valores no ente-ros sean los menos usados es porque esta posibilidad se ha introducido conposterioridad. La gráfica de la derecha nos muestra que la mayoría de losusuarios votan cosas que les gustan (entre 4 y 5).

Figura 5: Distribución de votos (izq.) y de votos medios (dcha.)

5.2. Métricas

Hemos usado diferentes métricas para obtener los resultados:

Error medio absoluto (MAE) que nos indica cómo de ajustado estánlas predicciones del sistema respecto a la valoración real del usuario.

MAE =

NPI=1

|pi"ri|

N siendo N el número de votos del conjunto evaluado,pi el voto predicho para un determinado ítem y ri el voto real.

24

Page 25: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Error cuadrático medio (MSE) es similar al MAE, sólo que pena-liza más el error cometido cuanto más alejada esté la predicción de la

realidad. MSE =

NPI=1

|pi"ri|2

N

Porcentaje de predicción: indica el porcentaje de votos del conjuntode prueba que se han podido predecir.

Porcentaje de aciertos: indica el porcentaje de predicciones que con-cuerdan con el voto real. Se ha supuesto una tolerancia de 0.5 como elgrado de error que admitiría el usuario.

5.3. Metodología

En la tabla 2 y 3 se comparan diferentes esquemas de predicción.

Consideraciones sobre las medidas de la tabla 2:

Para el voto medio sólo se cogen usuarios que hayan votado más de 5veces.

La medida del coseno sólo se realiza con los gustos del perfil de usuario,luego sólo se tienen en cuenta aquellos que hayan rellenado su ficha.

Las diferentes medidas para el sistema basado en contenido se refierena n como el número de votos mínimo necesario para que un usuario seaconsiderado.

Se han realizado mediciones de dos formas distintas. Primeramente,se ha extraído un 20 % del conjunto total de votos como conjunto deprueba y se han realizado 20 ejecuciones por cada método, obteniendoasí la media y la desviación estándar.

En la tabla 3 se ha usado el método leave one out, es decir, sólo se saca cadavez un elemento del conjunto.

En la tabla 4, como se ha comentado en la sección 3.5, se han probadodistintas estrategias para obtención de voto en el sistema de recomendaciónbasado en contenido y se ha comprobado su eficacia con diferentes métricas.Las mediciones, en este caso, se han obtenido extrayendo un sólo voto delconjunto total (leave one out), para cada uno de los votos.

25

Page 26: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

5.4. Resultados

MAE %PredicciónMétodo x ! x !

Voto medio 0.8330 0.0704 100 0Coseno (contenido) 1.4460 0.2114 29.6 5.9Basado en contenido (n>1) 0.9591 0.1760 27.9 3.8Basado en contenido (n>5) 1.0296 0.1371 29.9 4.3Basado en contenido (n>10) 1.0189 0.1896 32.1 6.5Colaborativo COS 0.9700 0.0960 63.4 4.2Colaborativo CPC 0.9278 0.0887 51.7 4.0Colaborativo COR 0.9208 0.0877 29.8 3.0

Cuadro 2: Resultado de los distintos métodos usando un conjunto de entre-namiento (80 %) y otro de test (20 %)MAE = Mean Absolute Error (Error Medio Absoluto)%Predicción = porcentaje de votos del conjunto de prueba que se han podido pre-decirCOS = CosenoCPC = Constrained Pearson’s CorrelationCOR = Pearson’s CorrelationNota: El MAE sólo tiene en cuenta los votos que se han predecido

Método MAE MSE %PredicciónVoto medio 0.87678 1.4085 92Coseno (contenido) 1.49458 3.0523 11Basado en contenido 0.9791 1.8858 27Colaborativo COS 0.9735 1.7680 63Colaborativo CPC 0.8938 1.3616 55Colaborativo COR 0.9917 1.7019 36

Cuadro 3: Resultado de los distintos métodos usando leave one outMAE = Mean Absolute Error (Error Medio Absoluto)MSE = Mean Squared Error (Error Cuadrático Medio)%Predicción = porcentaje de votos que se han podido predecirCOS = CosenoCPC = Constrained Pearson’s CorrelationCOR = Pearson’s CorrelationNota: El MAE sólo tiene en cuenta los votos que se han predecido

26

Page 27: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

El método del voto medio se incluye meramente como elemento comparativode predicciones, ya que no es útil para hacer recomendaciones (a todos lossitios le asignaría el mismo voto). La causa de que se comporte mejor que elresto de métodos es porque como hemos visto en la sección 5.1, la distribuciónde votos medios está muy concentrada entre las puntuaciones 4 y 5, y el errorcometido en la predicción será menor.

De los modelos implementados el que menor error de predicciones presenta esel colaborativo con la medida de similitud Constrained Pearson’s Correlation.También se puede ver que el sistema basado en contenido obtiene un resultadomuy similar al colaborativo con la medida coseno, aunque éste último con unporcentaje de predicción tres veces mayor. Con el error cuadrático medio nospodemos dar cuenta de cómo de grande es el error cometido en la predicción,siendo de nuevo el método colaborativo CPC el que mejor resultados obtiene.

Los porcentajes de predicción son significativamente más bajos en el modelobasado en contenido respecto al colaborativo por varios motivos: primeroporque es más fácil que haya usuarios que al menos hayan votado un sitio encomún a que un usuario haya votado varios sitios del mismo tipo; otra causaes que en la base de datos hay muchos sitios que no están suficientementebien descritos (tienen pocas etiquetas significativas), por lo que a la hora decomparar sitios por contenido el sistema no puede alcanzar todo su potencial.La causa de que el porcentaje de predicción del voto medio no sea del 100 %es porque hay un 8 % de votos únicos, es decir, el usuario sólo ha votado unsitio, y al sacarlo del conjunto de datos, su voto medio va a ser cero. En elcaso de la medida coseno en contenido sólo se ha aplicado a aquellos usuariosque han rellenado su perfil de gustos, y la causa por lo que se obtiene unresultado tan pobre se achaca a que las etiquetas de los sitios que han votadoapenas si coincidirán con los gustos elegidos.

MAE MSE %aciertosVoto mediano 1.0034 2.0627 42 %Voto promedio 0.9790 1.8854 34 %Voto máximo 1.0238 2.0799 40 %

Cuadro 4: Resultados de las distintas estrategias de obtención del voto en elsistema basado en contenidoMAE = Mean Absolute Error (Error Medio Absoluto)MSE = Mean Squared Error (Error Cuadrático Medio)

Los resultados de la tabla 4 nos han llevado a elegir el voto promedio comométodo para la obtención del voto en una predicción (en el sistema basado

27

Page 28: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

en contenido). Si bien el porcentaje de aciertos es menor, el error cometidotambién lo es, por lo que creemos que conforme se incremente el conjunto dedatos del sistema, va a ser el que mejor funcione.

5.5. Conclusiones

A lo largo de las secciones anteriores hemos desarrollado la motivación, expli-cación y funcionamiento de los diferentes tipos sistemas de recomendación,centrándonos en las implementaciones realizadas de los métodos basados encontenido y de filtrado colaborativo. Hemos visto también como, para un pro-yecto en particular, adaptar los sistemas para mejorar la calidad y eficienciade las recomendaciones, añadiendo más contenido semántico y utilizándolointeligentemente. Este tipo de sistemas no está libre de limitaciones y proble-mas, que exigen un estudio detallado para paliarlas usando diferentes estra-tegias y nuevos métodos, como el de hibridación, que podremos desarrollaren un futuro.

6. Soluciones desarrolladas

1. Se ha realizado un cambio completo de plataforma para pasar a usar elframework django [1], que utiliza el lenguaje python [6], con acceso abase de datos mysql [10] y con jquery [3] como framework en javascript.Se ha elegido django por diversos motivos:

Cambiar la estructura completa de la web anterior para adaptar-la a diversas provincias era muy costoso y además sería menospotente.Ayuda a un desarrollo rápido.Bien documentado.Sigue un modelo similar al MVC (Modelo Vista Controlador).Proporciona una API potente para manejar el modelo.Interfaz de administración automática.Diseño canónico de URLs mediante expresiones regulares.Soporte para aplicaciones multi-idioma.

2. Para incentivar a los usuarios a que participen se les dan puntos porcada acción que realicen, de manera que es una forma de fomentar la

28

Page 29: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

competición y también poder premiar con regalos y descuentos en unfuturo. También se proporciona una guía para completar el perfil deusuario y cómo comenzar a integrarse en la web.

3. Se ha implementado un sistema de recomendación basado en contenido.Las recomendaciones que se dan al usuario son en base a los sitios queanteriormente ha votado y a los gustos que ha escogido en su perfil.Por tanto se requiere una colaboración activa del usuario para poderofrecer recomendaciones fiables.

4. Se han jerarquizado las etiquetas en varias categorías con el fin defacilitar las búsquedas de sitios y sobre todo para poder darle a unasmás importancia que a otras a la hora de hacer recomendaciones, segúnsea el tipo de local.

5. La versión móvil está accesible a través de m.andaluciapeople.com ypermite consultar sitios y usuarios, pero en modo sólo lectura. En unfuturo se pretenden ampliar funcionalidades.

6. Se ha incluído soporte para añadir varios idiomas de forma sencilla,aunque actualmente sólo está disponible la traducción a inglés.

7. Se ha añadido un blog para informar sobre novedades en la aplicación.

8. Se proporcionan diferentes feeds para suscripción por RSS de los últi-mos sitios, comentarios y fotos en las distintas provincias.

7. Aspectos adicionales del desarrollo

7.1. Entorno de desarrollo

La aplicación se ha desarrollado usando un editor de textos en un sistema conpython 2.5 y django 1.0. Como servidor web de pruebas he usado el servidorde producción de django, que se reinicia automáticamente cada vez que seedita un fichero y además avisa de posibles errores.

7.2. Entorno de producción

El sistema de cara al público está alojado en un alojamiento compartido con-tratado en Webfaction[7] con una instalación de Apache 2 con mod_python,python 2.5 y django 1.0. Para el sistema de caché se usa memcached [8].

29

Page 30: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

7.3. Control de versiones

Con objeto de mantener coherencia en los archivos del proyecto, así comoservir de backup, se ha hecho uso de un repositorio privado en Github [2]. Seha escogido git por su potencia y facilidad de uso.

7.4. Sistema de tickets

Para tener un mejor control de errores y un listado de nuevas característicasa implementar, se ha utilizado un sistema de tickets en Lighthouse [4].

7.5. Licencia

El código desarrollado en el proyecto se ha licenciado bajo AGPLv3 [9] quegarantiza las principales libertades del software libre.

Libertad 0: la libertad de usar el programa, con cualquier propósito.

Libertad 1: la libertad de estudiar cómo funciona el programa y modi-ficarlo, adaptándolo a tus necesidades.

Libertad 2: la libertad de distribuir copias del programa.

Libertad 3: la libertad de mejorar el programa y hacer públicas esasmejoras a los demás, de modo que toda la comunidad se beneficie.

Así mismo el proyecto está adherido a la lista de proyectos libres apoyados porla Oficina de Software Libre de la Universidad de Granada. La última versiónliberada se puede encontrar en http://andaluciapeople.com/media/releases/

8. Manual de usuario

Lo primero que tiene que hacer una persona para recibir recomendaciones enla web es registrarse, ya que si no, no se podrá formar un perfil de usuario ypor tanto tampoco se tendrían recomendaciones personalizadas. Un visitantenormal sólo podrá consultar los sitios, conocer otros nuevos por similaridade incluso ver los mejores valorados por el resto de usuarios.

Para crear una cuenta basta con entrar en http://andaluciapeople.com yhacer click sobre el enlace “Regístrate”.

30

Page 31: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Figura 6: Detalle de la página principal

En la siguiente página rellenamos el formulario de registro con los datos quese solicitan y pulsamos el botón “Registrar”.

Figura 7: Detalle de la página de registro

Si el registro se ha completado con éxito, nos avisará con un mensaje de queya podemos entrar usando el usuario y contraseña que usamos para crear lacuenta. Igualmente, se enviará un correo electrónico a la dirección indicadacon los datos de acceso a la web. Rellenamos el formulario de entrada ypulsamos el botón “Login”.

31

Page 32: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Figura 8: Detalle de la página de entrada

Una vez identificado, nos encontramos en la ficha de usuario, con un resumende la cuenta personal, y entre otras cosas podemos distinguir un menú denavegación en la parte superior y una serie de indicaciones a la izquierdasobre cómo rellenar el perfil de usuario.

Figura 9: Menú de navegación de usuario

Figura 10: Detalle de las indicaciones para completar el perfil

32

Page 33: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Lo primero que haremos será cambiar la foto de usuario y rellenar los gustos,ya que ambos se encuentran en el mismo formulario de datos personales en lasección de “Ajustes”. Para ello podemos hacer click en “Ajustar preferencias”o bien en cualquiera de los dos primeros enlaces de la lista.

Figura 11: Formulario de datos personales

Una vez completado el formulario pulsamos el botón “Guardar” para salvarlos cambios. Justo debajo de este formulario se encuentra otro que sirve paradefinir la importancia de las etiquetas para los diferentes tipos de sitios.Podemos aprovechar para modificar los pesos que consideremos oportunos y

33

Page 34: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

cuando terminemos pulsamos el botón “Guardar”.

Figura 12: Detalle del formulario de importancia de las etiquetas

Ahora ya podemos proceder al siguiente paso, que es buscar sitios que conoz-camos y puntuarlos. Para ellos seleccionamos primero la provincia en la partesuperior y a continuación usamos el formulario de búsqueda para encontrarsitios. También podemos acceder a la sección de “Sitios” y navegar por laclasificación de tipos.

Figura 13: Menú principal de la web

Si por ejemplo, buscamos “wok” en Granada, obtenemos tres resultados.

34

Page 35: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Figura 14: Resultados a la búsqueda “wok” en Granada

Si consultamos por ejemplo al primero de ellos, entraremos a su ficha y po-demos ver en este caso que la predicción que nos hace para este sitio es“Perfecto” debido a los gustos que escogimos en nuestro perfil. Para votarlonos situamos sobre las estrellas que pasarán a tener un color rojizo y haremosclick en la puntuación que queramos asignarle. En este caso hemos decididodecidido otorgarle 4 estrellas (“Muy Bueno”).

Figura 15: Detalle de la ficha del sitio antes y después de haberlo votado

Repetimos la operación con los sitios que conozcamos. Si por ejemplo nuestraintención es hacer un viaje a Málaga y comer en un restaurante, le pedire-mos al sistema que nos recomiende cuáles nos podrían gustar. Para ello nosdirigimos a la sección “Recomendaciones” en el menú de navegación de “Tucuenta”. Una vez seleccionado que queremos que nos muestre restaurantes deMálaga capital, pulsamos el botón “Buscar” y nos aparecerán los resultadosmás acordes con nuestros gustos.

35

Page 36: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Figura 16: Resultado de la recomendación

9. Conclusión

Con todas las mejoras realizadas tanto de diseño como de nuevas funcionali-dades, hacen de AndalucíaPeople una web mucho más atractiva y útil comoasí han demostrado las buenas críticas recibidas por parte de los usuarios yvisitantes.

De cara al público el sistema de recomendación funciona aceptablementebien, o esa es la sensación que han transmitido las diversas personas que hanestado realizando pruebas. Si bien, tras la evaluación cuantitativa realizadase puede esperar que el sistema sea mejorable utilizando un enfoque híbrido.Cabe esperar también que mejore conforme aumente el número de sitios yde usuarios que añadan más información al conjunto.

Creemos que los sistemas de recomendación van a seguir creciendo ya quecada vez se posee más información de los usuarios y se les va a poder ofrecerresultados de mejor calidad. Igualmente está ocurriendo que en el mercadopublicitario las ofertas publicitarias se están hipersegmentando, de maneraque lleguen a nichos de personas más específicos y llegará un momento quesean totalmente personalizadas gracias a este tipo de sistemas.

36

Page 37: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

Referencias

[1] http://djangoproject.com/.

[2] http://github.com/.

[3] http://jquery.com/.

[4] http://lighthouseapp.com/.

[5] http://microformats.org/.

[6] http://python.org/.

[7] http://webfaction.com/.

[8] http://www.danga.com/memcached/.

[9] http://www.fsf.org/licensing/licenses/agpl-3.0.html.

[10] http://www.mysql.com/.

[11] Gediminas Adomavicius and Alexander Tuzhilin. Toward the next ge-neration of recommender systems - a survey of the state-of-the-art andpossible extensions. 2005.

[12] Hyung Jun Ahn. A new similarity measure for collaborative filtering toalleviate the new user cold-starting problem. 2007.

[13] Robin Burke. Hybrid recommender systems: Survey and experiments.2002.

[14] Luis M. de Campos, Juan M. Fernández-Luna, and Juan F. Huete. Acollaborative recommender system based on probabilistic inference fromfuzzy observations. 2008.

[15] Luis M. de Campos, Juan M. Fernández-Luna, Juan F. Huete, and Mi-guel A. Rueda-Morales. Combining content-based and collaborative re-commendations: a hybrid approach based on bayesian networks. 2008.

[16] Olga Fdez. Deleito. Diseñar sistemas de recomendación: Percepción delos usuarios y tipos resultantes.

[17] A. Holovaty and J. Kaplan-Moss. The Django Book.http://www.djangobook.com/, 2009.

37

Page 38: AndalucíaPeople: Un sistema de recomendación para sitios de ocio de Andalucía

[18] Jon Herlocker J. Ben Schafer, Dan Frankowski and Shilad Sen. Colla-borative filtering recommender systems. 2007.

[19] C. Kadie J. S. Breese, D. Heckerman. Empirical analysis of predictivealgorithms for collaborative filtering. 1998.

[20] Loren G. Terveen Jonathan L. Herlocker, Joseph A. Konstan andJohn T. Riedl. Evaluating collaborative filtering recommender systems.

[21] Benjamin Marlin. Collaborative filtering: A machine learning perspec-tive. 2004.

[22] Sergio Manuel Galán Nieto. Filtrado colaborativo y sistemas de reco-mendación. 2007.

[23] Michael J. Pazzani and Daniel Billsus. Content-based recommendationsystems. 2007.

[24] Janusz Sobecki. Implementations of web-based recommender systemsusing hybrid methods. 2006.

38