Universidad Nacional del Centro de la Provincia de Buenos Aires Facultad de Ciencias Exactas Recomendación de lugares para redes sociales basadas en ubicación Trabajo final de la carrera Ingeniería en Sistemas Pablo Barrenechea Sebastián Claudio Troccoli Director de Tesis Daniela Godoy Tandil 2017
97
Embed
Recomenda ci ó n d e l u g ares p ara red es so ci al es b ...
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Universidad Nacional del Centro de la Provincia de Buenos Aires Facultad de Ciencias Exactas
Recomendación de lugares para redes sociales basadas en ubicación
Trabajo final de la carrera Ingeniería en Sistemas
Pablo Barrenechea Sebastián Claudio Troccoli
Director de Tesis
Daniela Godoy
Tandil 2017
Índice de Contenido
Capítulo 1: Introducción 9
1.1. Motivación 9
1.2. Problema a resolver 11
1.3. Trabajo Propuesto 12
1.4. Organización del Trabajo 13
Capítulo 2: Marco Teórico 14
2.1. Redes sociales basadas en ubicación 14
2.2. Sistemas de recomendación 15
2.2.1. Sistemas de recomendación en RSBU 16
2.3. Filtrado Colaborativo 17
2.3.1. Filtrado Colaborativo basado en memoria 18
2.3.1.1. Algoritmos de Similitud 21
2.3.1.1.1. Correlación de Pearson 21
2.3.1.1.2. Similitud del coseno 22
2.3.2. Filtrado Colaborativo basado en modelos 23
2.3.2.1. Factorización de Matrices 23
2.3.2.2. Modelos de Factorización de matrices 26
2.3.2.2.1. Descomposición de valores singulares 26
2.3.2.2.2. Descomposición de valores singulares con feedback implícito 27
2.5. Evaluación de Sistemas de Recomendación 28
2.5.1. Métodos de decisión 28
2.5.1.1. Precision 29
2.5.1.2. Recall / Exhaustividad 29
2.5.1.3. Valor-F (F1 Score o F-Measure en inglés) 30
2.5.2. Métodos estadísticos 30
1
2.5.2.1. Root Mean Square Error (RMSE) 30
2.5.2.2. Mean Absolute Error(MAE) 31
2.6. Análisis de Sentimiento 31
2.7. TF IDF 32
2.8. Antecedentes 33
2.8.1. Síntesis de trabajos realizados anteriormente 33
2.8.2. Ventajas y desventajas de los trabajos estudiados 34
Capítulo 3: Enfoque propuesto 36
3.1. Visión preliminar 36
3.2. Representación inicial de la información 37
3.3. Solución propuesta 39
3.4 Casos de estudio 41
3.4.1. Variables a analizar 42
Capítulo 4: Diseño e implementación 43
4.1. Investigación de Frameworks para filtrado colaborativo 43
4.1.1. Crab 43
4.1.2. Racoon 44
4.1.3. Django-Recommends 44
4.1.4. Apache Mahout 45
4.1.4.1. Características de Mahout 45
4.1.4.2. Arquitectura de Mahout 46
4.1.5. Criterio de selección del framework 47
4.1.5.1. Comparativa basada en atributos de calidad 48
4.1.5.2. Comparativa basada en características 48
4.1.5.3. Comparativa basada en factores externos 48
4.2. Arquitectura del sistema 49
4.2.1. Modelo de datos 51
4.2.2. Refinador de información 53
2
4.2.3. Constructor de Preferencias 55
4.2.3.1. Detección de preferencias personales 57
4.2.3.2. Uso del Sentimiento como preferencia 59
4.2.3.3. Detección de expertos locales 61
4.2.4. Evaluador de Recomendaciones 64
4.2.4.1. Recomendador Base 66
4.2.4.2. Comparación de árboles de usuarios 66
4.2.4.3. Ratings Inferidos 68
4.2.4.4. Factorización de Matrices 71
4.2.4.5. Evaluación de resultados 73
4.2.5. Servicio de Recomendación 73
Capítulo 5: Pruebas y resultados 76
5.1. Conjunto de datos 76
5.2. Configuración del conjunto de datos 78
5.3. Experimentos realizados 79
5.3.1. Experimentos realizados utilizando número de checkins 81
5.3.1.1 Resultados 81
5.3.1.2 Análisis de los Resultados Obtenidos 81
5.3.2 Experimentos realizados utilizando análisis de sentimiento 83
5.3.2.1 Resultados 83
5.3.2.2 Análisis de los Resultados Obtenidos 84
5.4. Comparación de ambas series de experimentos 85
Capítulo 6: Conclusiones 89
6.1. Conclusiones 89
6.2. Trabajos Futuros 89
Bibliografía 91
3
Índice de Figuras Capítulo 1: Introducción
1.1 Checkins Foursquare entre Agosto 2011 y Marzo 2015 10
Capítulo 2: Marco Teórico
2.1 Diferentes capas de una RSBU 14
2.2 Sistema de recomendación no personalizado 16
2.3 Sistema de recomendacion User-User 19
2.4 Cálculo de preferencia de un ítem i para un usuario u en un sistema User-User 19
2.5 Sistema de recomendación Item-Item 20
2.6 Cálculo de preferencias para un usuario u en un sistema Item-Item 21
2.7 Ejemplo de modelos de factor latente en LBSN 27
Capítulo 3: Enfoque propuesto
3.1 Escenario de uso del sistema de recomendación 37
3.2 Entidades presentes en un sistema de RSBU 38
3.3 Arquitectura general de la solución propuesta 40
Capítulo 4: Diseño e implementación
4.1 Arquitectura general de Apache Mahout 47
4.2 Vista global de la arquitectura del Sistema de Recomendación 50
4.3 Modelo de datos relacional utilizado 52
4.4 Arquitectura del sistema. Componente Refinador de Información 53
4.5 Arquitectura del sistema. Constructor de preferencias 56
4.6 Generación de las preferencias del usuario 57
4.7 Sentimiento de los distintos tips 60
4.8 Identificación de expertos locales 63
4.9 Funcionamiento de Recommender Evaluator 64
4.10 Funcionamiento de Base Recommender 66
4
4.11 Funcionamiento de Inferred Ratings 68
4.12 Algoritmo PACS 69
4.13 Elementos en la factorización de matrices 72
4.14 Servicio de recomendación 74
4.15 Respuesta del servicio de recomendación 75
Capítulo 5: Pruebas y resultados
5.1 Demografía de visitas 77
5.2 Comparación de tips, lugares y usuarios antes y después de optimizarlos 79
5.3 RMSE y MAE para los experimentos en Los Ángeles y Nueva York 82
5.4 F1 - Score para los experimentos en las ciudades de Los Ángeles y Nueva York 82
5.5 RMSE y MAE para los experimentos con sentimiento en Los Ángeles y Nueva York 84
5.6 F1 - Score para los experimentos en las ciudades de Los Ángeles y Nueva York 85
5.7 Mejores recomendadores para RMSE y MAE para cada medida de ranking 86
5.8 Mejores recomendadores para F1 para cada medida de ranking 86
5
Índice de Ecuaciones Capítulo 2: Marco Teórico
2.1 Coeficiente de correlación de Pearson 22
2.2 Similitud del coseno entre x e y 23
2.3 Cálculo de la matriz R 24
2.4 Modelo de Factorización de matrices básico 24
2.5 Minimización del error cuadrado regularizado 25
2.6 Tendencia usuario-ítem 26
2.7 Factorización de Matrices básico con desviaciones 26
2.8 Dimensión de una matriz SVD 26
2.9 Vector de preferencias de un usuario u 27
2.10 Normalización del vector de preferencias 27
2.11 Vector de atributos de un usuario u 27
2.12 Calificación con SVD ++ 28
2.13 Cálculo de la Precisión 29
2.14 Cálculo de la Exhaustividad o Recall 29
2.15 Cálculo del Valor-F o F-Measure 30
2.16 Cálculo de Root Mean Square Error 31
2.17 Cálculo de Mean Absolute Error 31
2.18 Cálculo de Frecuencia de Términos (TF) 32
2.19 Cálculo de Frecuencia Inversa de Términos (IDF) 33
Capítulo 4: Diseño e implementación
4.1 Preferencia de un usuario por una categoría 58
4.2 Preferencia de un usuario por una categoría 61
4.3 Función signo 61
4.4 Función escalón de Heaviside 61
6
4.5 Calidad de los lugares visitados por un usuario (1) y calidad del lugar (2) 63
4.6 Valor mínimo de preferencia para un nivel 67
4.7 Entropía para un nivel L 67
4.8 Similitud entre dos árboles 67
4.9 Calificación inferida de un usuario u a un lugar v 70
7
Índice de Tablas
Capítulo 4: Diseño e implementación
4.1 Comparativa de herramientas soporte realizada por atributos de calidad 48
4.2 Comparativa de herramientas soporte realizada por características de las mismas 48
4.3 Comparativa de herramientas soporte realizada por factores externos 49
Capítulo 5: Pruebas y resultados
5.1 Distribución de los distintos datos en las ciudades de Los Ángeles y Nueva York 77
5.2 Distribución de los distintos datos en las ciudades de Los Ángeles y Nueva York 78
5.3 Resultados obtenidos usando el nro de checkins como medida de ranking 81
5.4 Resultados obtenidos utilizando el sentimiento como medida de ranking
83
8
Capítulo 1: Introducción
“Se definen a las Redes Sociales como un conjunto bien delimitado de actores
-individuos, grupos, organizaciones, comunidades, sociedades globales, etc.- vinculados unos
a otros a través de una relación o un conjunto de relaciones sociales, las cuales pueden ser
diversas, como amistades, relaciones laborales, afectivas, entre otras. [1] “
Los avances tecnológicos recientes relacionados con la determinación de posiciones
de los objetos en el mundo han creado una mejora notable en los servicios ofrecidos por las
redes sociales, permitiendo a los usuarios compartir su ubicación y relacionarla con el
contenido que desean publicar. Llamamos a estas redes sociales: Redes sociales basadas en
ubicación (En inglés Locations Based Social Networks).
1.1. Motivación
En los últimos años, las redes sociales han experimentado un gran incremento tanto
en cantidad de usuarios que hacen uso de ellas, como en cantidad de información que
comparten.
Hoy en día no solo ayudan a conectar a distintas personas a mantener contacto con
familiares a través del mundo como actualmente hace Facebook, sino que además han
surgido redes sociales con propósitos especializados como es el caso de Foursquare, donde
los usuarios registran visitas a lugares alrededor del mundo y a su vez recomiendan los
mismos a otros miembros de la misma red.
Todo esto sucede en tiempo real y es así como mediante diferentes portales que
ofertan las distintas redes sociales, en donde expresar un ideal, un sentimiento o
sencillamente el estado de ánimo, se convierte una acción virtual en algo que permite la
relación real con el mundo [31].
Probablemente uno de los factores más importantes en el aumento de usuarios de
estas redes sea el incremento exponencial de personas que disponen de dispositivos móviles.
Este fenómeno les permite a los usuarios una mayor facilidad para compartir su ubicación
geográfica instantáneamente. Además, toda esta información nueva disponible supone un
aumento potencial de las posibilidades de publicidad y consumo. Estas facilidades son
9
utilizadas por Foursquare, por ejemplo, en el que un usuario puede opinar sobre la visita a un
lugar visitado (o checkin ) con solo un click.
Como se observa en la Figura 1.1, la cantidad de visitas registradas en Foursquare
entre Agosto del 2011 y Marzo del 2015 demuestra un importante crecimiento, llegando a
alcanzar la suma de 7 mil millones de checkins en un mes.
Figura 1.1 - Checkins Foursquare entre Agosto 2011 y Marzo 2015 [2].
Debido a este incremento de información que comparten los usuarios, cada vez se
hace más difícil gestionar la excesiva cantidad de información. Este supone un nuevo
problema cuando nos disponemos a realizar una búsqueda sobre esa gran cantidad de
información.
Los sistemas de recomendación se han ido consolidando como potentes herramientas
para ayudar a reducir la sobrecarga de información a la que nos enfrentamos en los procesos
de búsqueda de información. Ayudan a filtrar los ítems de información recuperados, usando
distintas técnicas para identificar aquellos ítems que mejor satisfacen las preferencias o
necesidades de los usuarios [3].
En las redes sociales basadas en ubicación, añadir la información acerca de la
ubicación, consigue enlazar la brecha que existe actualmente entre el mundo físico y el mundo
digital, permitiendo un mayor entendimiento acerca de las preferencias de los usuarios y su
comportamiento [4].
10
Dentro de los servicios que puede ofrecer una red social basada en ubicación, el
servicio de recomendación de puntos de interés es una de las características más
importantes. Este servicio es muy utilizado por los usuarios para encontrar lugares de interés
cercanos, así como para ser asistido en sitios desconocidos. Además, le permite a las
compañías publicitar anuncios en base a la presencia física de los usuarios y generar ingresos
para la red social en cuestión [5].
1.2. Problema a resolver
Como se mencionó en el apartado anterior, las redes sociales son una fuente de
información muy poderosa. En el caso particular de las redes sociales basadas en ubicación o
RSBU, cada vez son más los lugares registrados en las mismas y por consiguiente,
potenciales recomendaciones a los distintos usuarios. No obstante, el crecimiento exponencial
de la información generada por las interacciones de los usuarios hace que sea necesario la
clasificación.
La finalidad de este trabajo es la implementación de un sistema de recomendación
híbrido que haciendo uso de la información extra que nos proveen las redes sociales basadas
en ubicación, sea capaz de recomendar puntos de interés a los usuarios de una forma
efectiva. Para ello utilizaremos un conjunto de datos de la Red Social Foursquare que posee
información de la actividad de los usuarios en las ciudades de Los Ángeles y Nueva York.
Para lograr esto, el problema puede ser descompuesto en dos partes:
1. Modelar las preferencias del usuario usando el conjunto de datos escogido.
2. Proveer a cada usuario una lista de lugares que se adapten a sus preferencias
personales.
1) Modelar las preferencias del usuario :
Esta tarea consiste en lograr asignarle a los usuarios un valor de preferencia asociado
a los distintos lugares. Se pueden inferir preferencias de distintas maneras. Por ejemplo, si un
usuario registra un considerable número de visitas a un lugar determinado, el sistema podría
inferir que es de su agrado. Otro caso, podría no tener en cuenta el lugar en sí, pero si la
11
categoría del mismo como por ejemplo, un usuario que registre varias visitas restaurantes de
comida china seguramente tenga una preferencia por ese tipo de lugares.
Haciendo uso de su historial de visitas y revisiones u opiniones otorgadas a cada lugar,
analizaremos el contexto del comportamiento de los usuarios en el conjunto de datos y se
modelarán sus preferencias.
2) Proveer una lista de lugares útiles :
El objetivo de esta tarea es el de recomendar a los usuarios una lista de lugares
basándose en las preferencias personales obtenidas anteriormente.
Para esto se analizarán, compararán y evaluarán diferentes técnicas utilizadas en los
sistemas de recomendación, como lo son la factorización de matrices y el filtrado colaborativo.
1.3. Trabajo Propuesto
La propuesta que realizamos, está basada en el estudio de Sistemas de
Recomendación existentes y estudios realizados acerca de Redes Sociales Basadas en
Ubicación y cómo explotar sus características.
De las ventajas y desventajas de cada Sistema de Recomendación estudiado, surge la
iniciativa de crear un Sistema de Recomendación que sea capaz de:
● Explotar la información extraída de los tips de los usuarios haciendo uso de análisis de
sentimiento.
● Recomendar lugares basándose en la ubicación de un usuario, haciendo uso de la
recomendación asociada a expertos locales.
● Encontrar estrategias de recomendación relacionadas con el arranque en frío.
● Utilizar la información de las categorías de los lugares para modelar las preferencias
de los usuarios y encontrar usuarios con gustos similares.
● Realizar recomendaciones mediante distintas técnicas existentes: Filtrado colaborativo
basado en usuarios y Factorización de Matrices.
Una vez implementadas dichas características, el sistema será capaz de extraer
métricas que muestren el rendimiento de las distintas soluciones.
12
Ninguno de los trabajos anteriormente estudiados, posee todas estas características
juntas. Es por eso que añadiendo estas características incrementalmente se podrá crear un
Sistema de Recomendación que resuelva el problema contemplando una porción mayor del
contexto.
1.4. Organización del Trabajo
En esta sección se detalla la estructura general del presente trabajo, brindando una
breve descripción de los temas que se abordan en cada capítulo.
En el Capítulo 2, denominado Marco Teórico, se presentan los fundamentos teóricos
utilizados en esta investigación así como también trabajos existentes utilizados como punto de
referencia. Dentro de los fundamentos teóricos, se describen y explican las principales
definiciones y conceptos relacionados a las Redes sociales basadas en ubicación y los
Sistemas de Recomendación.
Una vez presentados dichos conceptos teóricos, abordaremos a lo largo del Capítulo 3
detalles respecto de las investigaciones realizadas, el diseño propuesto y los componentes
que conforman la implementación del Sistema de Recomendación.
El capítulo 4 presenta el diseño e implementación elegido para llevar a cabo la
solución final al problema. El mismo presenta un detalle de herramientas analizadas para
llevar a cabo la implementación junto con la presentación de los distintos componentes de
arquitectura y sus responsabilidades.
El Capítulo 5 estará dedicado al desarrollo de los distintos experimentos utilizados para
la evaluación del Sistema de Recomendación. Tomando como entrada un conjunto de datos
obtenido de la red social Foursquare y distintas configuraciones del Sistema de
Recomendación, se evaluarán las salidas con distintas métricas que serán de utilidad para
medir la calidad de los resultados obtenidos.
El capítulo 6 contiene el análisis y la interpretación de los resultados provistos por el
capítulo 5 así como también conclusiones del trabajo y tareas futuras que enriquecerán el
trabajo realizado.
13
Capítulo 2: Marco Teórico
El presente capítulo tiene como objetivo describir los principales conceptos y
definiciones que le darán contexto al trabajo.
2.1. Redes sociales basadas en ubicación
Cuando hablamos de redes sociales basadas en ubicación, de aquí en adelante
RSBU, no solo estamos hablando de añadir la ubicación a una red social existente para que
los usuarios de la misma puedan compartir información acerca de su ubicación, sino también
de una nueva estructura social compuesta por personas unidas por la interdependencia
derivada de su ubicación en el mundo físico, y los contenidos que comparten, tales como
fotos, videos y textos.
En estas redes, la ubicación física consiste en el instante de ubicación de un individuo
en un momento dado y el historial de ubicaciones que un individuo ha acumulado en un cierto
período. Además, la interdependencia incluye no sólo que dos personas co-ocurren en la
misma ubicación física o comparten historias similares de localización, sino también el
conocimiento adquirido, por ejemplo, los intereses comunes, el comportamiento y actividades,
inferidas a partir de la ubicación de un individuo (historial) y los datos clasificados por las
distintas ubicaciones [6].
14
Figura 2.1: Diferentes capas de una RSBU [8] .
La figura 2.1 nos da una vista global de las diferentes redes contenidas en una típica
RSBU, en la que el agregado de las ubicaciones crea nuevas relaciones y correlaciones.
La capa geográfica contiene información acerca del historial de checkins de los
usuarios que ocurren dentro de una línea de tiempo, mientras que la capa social contiene
información de relación entre los usuarios, y por último, la capa de contenido consiste en los
tips de los usuarios publicados en cada lugar [7].
2.2. Sistemas de recomendación
Los sistemas de recomendación (SR), son diseñados para recomendar ítems a
usuarios en varias situaciones como los sitios de compra online, citas o redes sociales. Dado
que la cantidad de opciones es muy amplia, los SR han sido indispensables para ayudar a los
usuarios a filtrar items que no les resultan de interés, y reducir el tiempo en la toma de
decisiones [9].
Cada SR intenta predecir los ítems que un usuario considerará más relevantes y útiles.
Si bien este concepto es común en todos los tipos de SR, la manera en que un SR calcula
relevancia y utilidad varía.
15
La cantidad y el tipo de datos disponibles sobre los distintos componentes del SR,
como usuarios, objetos y preferencias a menudo dictan cómo se calcula la relevancia y la
utilidad y el impacto en última instancia en la selección del algoritmo de recomendación.
Por ejemplo, cuando se escasea de datos sobre un usuario, un sistema de
recomendación no personalizado puede ser el algoritmo indicado. Un sistema de
recomendación no personalizado se basará en los datos de un total de ítems populares entre
todos los usuarios y generará una lista con los N ítems más populares dentro de SR (Figura
2.2).
Figura 2.2: Sistema de recomendación no personalizado [24].
Como es de apreciarse, estos algoritmos no proveen recomendaciones personalizadas
o diferentes a los distintos usuarios. Tampoco están basadas en el pasado o las preferencias
de los mismos. En cambio, el SR asume que un ítem que es del agrado de la mayoría de
usuarios será del agrado para un usuario genérico.
En resumen, un SR no personalizado proporciona una interfaz simple y eficaz para
proporcionar recomendaciones a los usuarios cuando se carecen de las preferencias
anteriores o los datos que tenemos son insuficientes. Este problema es conocido como cold
start o arranque en frío.
2.2.1. Sistemas de recomendación en RSBU
16
Los sistemas de recomendación en RSBU han comenzado hace unos pocos años, y
los ítems principalmente recomendados son lugares, etiquetas y amigos:
● La recomendación de lugares apunta a recomendar un conjunto de lugares a los
usuarios, basandose los intereses del mismo.
Este tipo de recomendación, ha tenido un rol muy importante en las RSBU ya que no
solo asiste a los usuarios para visitar nuevos lugares, sino que también ayuda a las
RSBU a generar ingresos ofreciendo servicios inteligentes de publicidades basadas en
la ubicación.
● La recomendación de etiquetas tiene como fin, enriquecer el significado semántico de
los lugares para facilitar el desarrollo de sistemas de recomendación utilizando esas
etiquetas. Por lo general, se utilizan los patrones temporales para recomendar
etiquetas. Por ejemplo, un bar puede ser visitado frecuentemente entre las 11:00 pm y
la 1:00 am, mientras que un restaurante puede tener más visitas entre las 12:00 pm y
las 6:00pm. Por lo tanto, podrían asignarles etiquetas diferentes acorde a la franja
horaria en la que son mayormente visitados.
● La recomendación de amigos analiza los patrones similares (Por ejemplo: hábitos de
compra, intereses comunes, trayectorias de viaje, etc.) entre un usuario objetivo y otros
usuarios, y luego recomienda usuarios con mayor cantidad de patrones similares.
En el presente trabajo, nos dedicaremos a plantear soluciones relacionadas solamente
con la recomendación de lugares.
2.3. Filtrado Colaborativo
En los últimos años, un algoritmo conocido como Filtrado Colaborativo se ha vuelto
una constante dentro de las implementaciones de los SR.
Esta técnica analiza las relaciones entre los usuarios y las interdependencias entre los
productos para identificar nuevas asociaciones entre usuarios e ítems.
Los sistemas de recomendación basados en filtrado colaborativo, a menudo están
compuestos de varios componentes conocidos como usuarios, artículos, preferencias /
calificaciones.
17
● Ítems: objetos que son recomendados al usuario, tales como productos, noticias, etc..
Estos pueden ser caracterizados por su respectiva metadata que incluye títulos, tags, o
keywords. Por ejemplo, las noticias pueden ser clasificadas por categoría, las
canciones por artistas y género musical y las peliculas por genero y director. En
nuestro caso, aplicaría a los lugares y la metadata estaría relacionada con la categoría
del lugar, la ubicación, etc.
● Usuarios: Son las personas a las cuales van dirigidas las recomendaciones.
Generalmente necesitan de asistencia para elegir un ítem dentro del contexto de una
aplicación (como lo pueden ser Netflix o Foursquare) y utilizan este tipo de sistemas
para estar mejor informados y así, hipotéticamente, tomar la decisión más acertada.
Un modelo de usuario puede construirse incrementalmente con el tiempo, con el fin de
mejorar las recomendaciones para un usuario en particular. Para esto sus acciones e
interacciones son almacenadas dentro del SR, generando como resultado un perfil del
mismo.
● Preferencias/Calificaciones: Las preferencias se pueden interpretar como la opinión
de un usuario con respecto a un ítem. Generalmente se representan mediante ratings,
es decir, el usuario puntúa el ítem en cuestión. Se podría decir entonces que el rating
es un tipo de preferencia explícita que representa la relación entre un usuario y un ítem
perteneciente al SR.
Los sistemas de filtrado colaborativo pueden ser divididos en dos, los basados en
memoria y los basados en modelo.
2.3.1. Filtrado Colaborativo basado en memoria
Este método utiliza las evaluaciones explícitas de los usuarios respecto a los ítems
para generar recomendaciones. El objetivo es relacionar a un usuario y sus preferencias,
comparándolo con otros usuarios del sistema y para construir grupos de usuarios similares.
Este grupo es llamado vecindario y es utilizado para generar recomendaciones basadas en
gustos de usuarios parecidos.
Si existen datos acerca de las preferencias de un usuario en un modelo de sistemas
de recomendación, es posible hacer recomendaciones personalizadas basadas en similitudes
de los gustos o preferencias de usuario. En este caso, estaríamos bajo la presencia de un SR
de filtrado colaborativo User-User donde las correlaciones se pueden identificar entre los
18
diferentes usuarios en función de las preferencias del pasado que son similares con el fin de
hacer predicciones sobre lo que a cada usuario le va a gustar en el futuro.
Si dos personas han evaluado muchos items de manera similar en el pasado, pueden
ser considerados en el mismo vecindario.
Generalmente, un vecindario de usuarios similares es construido por un SR y se utiliza
para ayudar a recomendar artículos.
A diferencia de los SR no personalizados, los SR de filtrado colaborativo User-User
son específicos para cada usuario y se adaptarán a medida que los mismos ingresen nuevos
ratings/preferencias [9] .
Figura 2.3: Sistema de recomendacion User-User [24].
Pseudocódigo para estimar preferencias de usuario en sistemas User-User
19
Figura 2.4: Cálculo de preferencia de un ítem i para un usuario u en un sistema User-User [24]
Dentro de la categoría de los SR de filtrado colaborativo también existen los
denominados SR Item-Item. En estos sistemas, las similitudes entre los distintos ítems
evaluados por el usuario son utilizadas para realizar las recomendaciones. En lugar de
construir un vecindario y recomendar basándose en usuarios similares, las correlaciones se
realizan entre las preferencias de los ítems que ha calificado el usuario.
Por ejemplo, si quisiéramos recomendar un nuevo items al usuario u , se recolectan
todos los ítems por los que u tiene preferencia y son comparados con todos los ítems i usando
un algoritmo de similitud. La premisa es que a u se le recomendarán ítems que son similares a
los que u ya había calificado positivamente en el pasado.
Los sistemas de recomendación Item-Item pueden ser ventajosos ya que la escala de
los ítems es menor. Por ejemplo, los ítems tienden a crecer a un ritmo más lento que los
usuarios y adicionalmente son menos propensos a cambios (a comparación de los usuarios
que son muy cambiantes)[24].
20
Figura 2.5: Sistema de recomendación Item-Item [24]
Pseudocódigo para estimar preferencias de usuario en sistemas Item-Item
Figura 2.6: Cálculo de preferencias para un usuario u en un sistema Item-Item [24]
2.3.1.1. Algoritmos de Similitud
21
En los algoritmos de clasificación previamente mencionados existe un patrón en
común: el cálculo de la similitud entre los diferentes ítems o usuarios. Para esto existen
diferentes algoritmos, de los cuales se pueden mencionar los siguientes: Correlación de
Pearson, Coeficiente de Tanimoto y Similitud del Coseno, entre otros.
2.3.1.1.1. Correlación de Pearson
El coeficiente de correlación de Pearson determina la similitud entre dos usuarios o
ítems midiendo la tendencia de las dos series de preferencias que se mueven juntas de una
manera proporcional y lineal. Se trata de encontrar la desviación para cada uno de los
usuarios o ítems respecto a su calificación promedio al tiempo que también se identifican
dependencias lineales entre dos usuarios o ítems.
Se calcula de la siguiente manera:
Ecuación 2.1: Coeficiente de correlación de Pearson
donde w y u son los usuarios o ítems de los cuales se quiere saber la relación.
Interpretación
El valor del índice de correlación varía en el intervalo [-1,1]:
● Si r = 1, existe una correlación positiva perfecta. El índice indica una dependencia total
entre las dos variables denominada relación directa: cuando una de ellas aumenta, la
otra también lo hace en proporción constante.
● Si 0 < r < 1, existe una correlación positiva.
● Si r = 0, no existe relación lineal. Pero esto no necesariamente implica que las
variables son independientes: pueden existir todavía relaciones no lineales entre las
dos variables.
● Si -1 < r < 0, existe una correlación negativa.
22
● Si r = -1, existe una correlación negativa perfecta. El índice indica una dependencia
total entre las dos variables llamada relación inversa: cuando una de ellas aumenta, la
otra disminuye en proporción constante.
Si bien la correlación de Pearson es una buena medida para relacionar distintos
elementos también existen casos en los que no es tan efectiva. Por ejemplo, no tiene en
cuenta el número de preferencias que se solapan. Supongamos dos usuarios que evaluaron
10 ítems de manera similar (suponiendo la evaluación en valores numéricos pero no
idénticos), estos usuarios tendrán menos similitud que dos usuarios que solo evaluaron dos
ítems pero de manera casi idéntica [26].
2.3.1.1.2. Similitud del coseno
Otro de los métodos más populares para encontrar similitudes dentro del marco del
filtrado colaborativo es la función de similitud del coseno. La misma consiste en la medida
de similitud entre dos vectores derivados del coseno del ángulo formado entre ellos [36].
Dentro del plano del trabajo actual, cada vector representará a un usuario del
sistema y sus coordenadas, las preferencias por los distintos ítems. De este modo, cuando
se quiera calcular la similitud entre dos usuarios, se calculará el coseno entre los mismos.
Por consiguiente, el enfoque que define la similitud del coseno entre dos usuarios x e
y queda conformado de la siguiente manera:
Ecuación 2.2: Similitud del coseno entre x e y [37].
2.3.2. Filtrado Colaborativo basado en modelos
El filtrado colaborativo basado en modelos construye un modelo basado en las
evaluaciones de los usuarios que se utilizará para realizar las nuevas recomendaciones.
23
Entre los algoritmos de FC basados en modelos más conocidos se encuentran las
Redes Bayesianas, los modelos de clustering y modelos semánticos latentes como
descomposición de valores singulares, análisis de componente principal y factorización de
matrices [13].
2.3.2.1. Factorización de Matrices
La mayoría de los modelos de factorización de matrices, son basados en el modelo del
factor latente. La factorización de Matrices se la conoce como la aproximación más precisa
para reducir el problema de la escasez de información en los conjuntos de datos.
Las técnicas basadas en el modelo de Índice Semántico Latente y Valor Singular de
descomposición usualmente son combinadas.
Valor Singular de descomposición y análisis de componente principal son técnicas bien
establecidas para identificar factores latentes en el campo de recuperación de información con
filtrado colaborativo. Estos métodos se han vuelto populares recientemente por combinar una
buena escalabilidad con una precisión predecible. También ofrecen mucha flexibilidad
modelando varias aplicaciones de la vida real.
En primer lugar, tenemos un conjunto de usuarios U, un conjunto de ítems I y R será la
matriz de tamaño U x I que contiene todos los ratings que el usuario ha asignado a los ítems.
En este caso, las características latentes serían descubiertas. El objetivo es encontrar 2
matrices P ( de tamaño U x К ) y Q ( de tamaño I x К) tales que su producto se aproxime a R:
Ecuación 2.3: Cálculo de la matriz R
De esta forma, la Factorización de Matrices modela uniendo usuarios e ítems a un espacio de
factor latente conjunto de dimensionalidad f, de tal forma que las interacciones entre usuarios
e ítems son modeladas como productos internos en dicho espacio.
Cada ítem I es asociado a un vector y cada usuario u es asociado con un vector
.
Dado un item i, los elementos de miden el grado en el que el ítem posee esos factores.
24
Dado un usuario u, los elementos de miden el factor de interés que el usuario tiene en
ítems que se corresponden con esos factores, otra vez, positivo o negativo.
El resultado del producto entre captura la interacción entre un usuario u y un ítem i,
dicho de otra forma sería el interés general del usuario u en las características del ítem.
Esta aproximación es definida como:
Ecuación 2.4: Modelo de Factorización de matrices básico
Para aprender los vectores y , el sistema minimiza el error cuadrado
regularizado en el conjunto de ratings con:
Ecuación 2.5: Minimización del error cuadrado regularizado
Aquí, K es un conjunto de pares (u,i) para el que es conocido en el conjunto de
entrenamiento. La constante λ controla el factor de regularización y es usualmente
determinado por validación cruzada.
25
Figura 2.7: Ejemplo de modelos de factor latente en LBSN [30].
La figura 2.7 muestra un ejemplo simplificado bidimensional (f=2) de un modelo de
factor latente dentro de una LBSN. Las dimensiones plasmadas en la gráfica son hipotéticas y
nos muestran el espacio donde los diferentes ítems pueden ser ubicados en función de las
características atracción turística o no turística y horario diurno o nocturno.
La Ecuación 2.6 intenta capturar la interacción entre usuarios e ítems que producen
diferentes calificaciones. Sin embargo, la variación de las calificaciones observadas está
ligada a los efectos de los usuarios y los ítems. Por ejemplo, el filtrado colaborativo exhibe
tendencias sistemáticas de usuarios que otorgan calificaciones más altas que otros.
Por lo tanto, sería imprudente explicar el total de las calificaciones como la interacción
entre los vectores y . El sistema intentará identificar la porción de estas tendencias con
la información verdadera del conjunto de datos.
Esta tendencia para cada para usuario-item será calculada como:
Ecuación 2.6: Tendencia usuario-ítem
Donde μ será el rating promedio general, los parámetros bu y bi indicarán las
desviaciones promedio observadas para el usuario u e item i, respectivamente.[12]
26
Añadiendo esta información a la ecuación 2.4, obtenemos:
Ecuación 2.7: Factorización de Matrices básico con desviaciones
2.3.2.2. Modelos de Factorización de matrices
A continuación se describirán algunos de los modelos de factorización de matrices más
utilizados.
2.3.2.2.1. Descomposición de valores singulares (SVD)
La DVS es una técnica para la reducción de dimensionalidad de un conjunto de datos.
La clave en una DVS es encontrar un espacio de característica dimensional baja.
DVS de una matriz A (tamaño m x n) tiene la forma:
V D(A) ΣVS = T
Ecuación 2.8: Dimensión de una matriz SVD
Donde, U y V son matrices ortogonales respectivamente de tamaño m x m y n x n.
Σ es una matriz ortogonal singular con elementos no negativos de tamaño m x n.
Una matriz U de tamaño m x m es llamada ortogonal si es igual a una matriz
identidad de m x m. Los elementos de la diagonal en Σ (σ1, σ2, σ3, …… σn), son llamados
valores singulares de la matriz A. Usualmente, los valores singulares son ubicados en orden
descendente dentro de Σ. Los vectores columna de U y V son llamados los vectores
singulares a izquierda y derecha respectivamente [14].
2.3.2.2.2. Descomposición de valores singulares con feedback implícito (SVD ++ )
A menudo, un sistema debe tratar con el problema de arranque en frío, donde muchos
de los usuarios poseen solo unas pocas calificaciones, creando una gran dificultad para
identificar sus preferencias. Una manera de tratar este problema es incorporando información
de una fuente de datos adicional acerca de los usuarios. Los sistemas de recomendación
pueden usar el feedback implícito para obtener calificaciones extras acerca de los usuarios.
27
Por simplicidad, consideraremos una caso de feedback implícito booleano. N(u)
denotará un conjunto de elementos para cada usuario u expresado como una preferencia
implícita.
Aquí, un nuevo conjunto de factores de elementos son necesarios, donde se tiene el
ítem i asociado con xi ∈ f. En consecuencia, el conjunto de preferencias que un usuario
mostró por ítems en N(u) es representada por el vector:
Ecuación 2.9: Vector de preferencias de un usuario u
Normalizar la suma es a menudo un beneficio:
Ecuación 2.10: Normalización del vector de preferencias
Otra fuente de información es conocer atributos de los usuarios, por ejemplo, por ubicación
geográfica. Otra vez, por simplicidad consideraremos atributos booleanos donde al usuario u
le corresponde un conjunto de atributos A(u), que describen datos personales del mismo tales
como localidad, edad, género, etc. El vector de factores A Ya ∈ f corresponde a cada atributo
que describe al usuario:
Ecuación 2.11: Vector de atributos de un usuario u
El modelo de factorización de matrices deberá integrar todas las fuentes descritas como una
mejora de la representación de los intereses del usuario en la ecuación x.h, dando como
resultado:
Ecuación 2.12: Calificación con SVD ++ [12]
28
2.5. Evaluación de Sistemas de Recomendación
Evaluar el rendimiento de los algoritmos de recomendación no es trivial. Primero
porque diferentes algoritmos pueden ser mejores o peores dependiendo del conjunto de datos
elegido. También los objetivos del sistema de recomendación pueden ser diversos. Un
sistema puede diseñarse para estimar con exactitud el puntaje que daría un usuario a un
elemento, mientras otro puede tener como principal objetivo el no proporcionar
recomendaciones erróneas. Es decir, puede haber múltiples tipos de medidas: que las
recomendaciones cubran todo el espectro de elementos del conjunto (cobertura), que no se
repitan, que sean explicables, etc.. Sin embargo, el principal objetivo de un sistema de
recomendación, que es la satisfacción del usuario, no es directamente cuantificable.
En cualquier caso las medidas de precisión pueden dar una primera idea de cuan
bueno es el algoritmo del sistema de recomendación.
Existen dos tipos de métodos de evaluación: de decisión y estadísticos.
2.5.1. Métodos de decisión
Evalúan cómo de efectivo es un sistema de predicción ayudando al usuario a
seleccionar los elementos mayor calidad, es decir con qué frecuencia el sistema de
recomendación efectúa recomendaciones correctas. Para ello asumen que el proceso de
predicción es binario: o el elemento recomendado agrada al usuario o no lo agrada. Sin
embargo en la práctica se plantea el problema de evaluar esto. Una posible solución es la de
dividir el conjunto de datos en dos conjuntos, entrenamiento y test. Se trabaja con con el
conjunto de entrenamiento y posteriormente se evalúa el resultado comparando las
recomendaciones proporcionadas con las del conjunto de test. Aun siendo a veces útil esta
técnica, hay que tener en cuenta que los resultados dependen fuertemente del porcentaje de
elementos relevantes que el usuario haya votado. La más conocida de estas métricas es la de
“Precision and Recall”.
2.5.1.1. Precision
29
La precisión es calculada entre el número de documentos relevantes recuperados y el
número de documentos recuperados. Acorde con la definición se tiene la siguiente expresión:
Ecuación 2.13: Cálculo de la Precisión
De esta forma, cuanto más se acerque el valor de la precisión al valor nulo, mayor será
el número de documentos recuperados que no se consideren relevantes. Si por el contrario, el
valor de la precisión es igual a uno, se entenderá que todos los documentos recuperados son
relevantes. Esta forma de entender la precisión introduce el concepto de ruido informativo y de
silencio informativo [10].
2.5.1.2. Recall / Exhaustividad
Esta métrica viene a expresar la proporción de documentos relevantes recuperados,
comparado con el total de los documentos que son relevantes existentes en la base de datos,
con total independencia de que éstos, se recuperen o no. La ecuación en este caso se
expresa como:
Ecuación 2.14: Cálculo de la Exhaustividad o Recall
Si el resultado de esta fórmula arroja como valor 1, se tendrá la exhaustividad máxima
posible, y esto viene a indicar que se ha encontrado todo documento relevante que residía en
la base de datos, por lo tanto no se tendrá ni ruido, ni silencio informativo: siendo la
recuperación de documentos entendida como perfecta. Por el contrario en el caso que el valor
de la exhaustividad sea igual a cero, se tiene que los documentos obtenidos no poseen
relevancia alguna [10].
30
2.5.1.3. Valor-F (F1 Score o F-Measure en inglés)
Al aumentar el Recall (la proporción de elementos relevantes) disminuimos la
precisión, por lo cual hay un compromiso entre ambas métricas [32]. Valor-F intenta hacer un
balance entre ambas métricas y se la define como:
Ecuación 2.15: Cálculo del Valor-F o F-Measure
Si β es igual a uno, se le está dando la misma ponderación (o importancia) a la
Precisión que a la Exhaustividad, si β es mayor que uno la Exhaustividad será más
importante, mientras que si es menor que uno, la Precisión será más relevante [33].
2.5.2. Métodos estadísticos
Los métodos estadísticos intentan medir la desviación que existe entre los valores
reales del conjunto de datos y los valores predichos por el algoritmo. Estos algoritmos son
utilizados cuando lo que deseamos medir es la calidad del valor asignado en la
recomendación.
Los algoritmos más utilizados son Root Mean Square Error y Mean Absolute Error.
2.5.2.1. Root Mean Square Error (RMSE)
El RMSE es frecuentemente utilizado para medir la diferencia entre los valores
predichos por un modelo y los valores reales observados.
RMSE se calcula hallando la raíz cuadrada de las desviaciones cuadráticas medias
entre el rating estimado para un usuario y el rating real [11].
Ecuación 2.16: Cálculo de Root Mean Square Error
31
2.5.2.2. Mean Absolute Error(MAE)
MAE se obtiene calculando el promedio de la desviación absoluta entre el rating
estimado para un usuario y el rating real. Expresado matemáticamente, se define como:
Ecuación 2.17: Cálculo de Mean Absolute Error
2.6. Análisis de Sentimiento
El análisis de sentimiento es un campo de investigación en el área de minería de textos
y está relacionado con el tratamiento computacional de las opiniones, sentimiento y
subjetividad de los textos [17].
El análisis de sentimientos utiliza las técnicas de procesamiento de texto en lenguaje
natural, análisis de texto y lingüística computacional para clasificar documentos en función de
la polaridad de la opinión que expresa su autor [16].
Esta información de alto nivel puede ser utilizada en muchas aplicaciones como el
análisis de comentarios de los clientes, negocios, recomendaciones personalizadas, etc.
Con la moda de las redes sociales, el análisis de sentimiento, nos trae un
entendimiento más profundo acerca de las redes sociales disponibles. Micro-blogs como
Twitter proveen una gran cantidad de datos, que pueden ser usados para descubrir el
sentimiento colectivo respecto a diversos temas. Muchas aplicaciones pueden ser construidas
para medir la tendencia en elecciones políticas, investigación de opiniones de consumo de
ciertas marcas, detección de contenidos virales, etc.
En las redes sociales basadas en ubicación este tipo de análisis aplicado a los tips de
los usuarios, puede ser utilizado para investigar el impacto que posee en la movilidad de los
usuarios [18].
32
2.7. TF IDF Tf-idf, del inglés term frequency - inverse document frequency es una medida de
pesaje comúnmente utilizada en recuperación de información y minería de texto.
Este peso es una medida estadística utilizada para evaluar la relevancia de una
palabra para un documento en una colección. La importancia aumenta proporcionalmente al
número de veces que una palabra aparece en el documento, pero es compensada por la
frecuencia de la palabra a través de toda la colección de documentos. Las variaciones del
esquema de ponderación tf-idf suelen ser utilizadas por los motores de búsqueda como una
herramienta central para anotar y clasificar la relevancia de un documento dada una consulta
del usuario [27].
Normalmente, el tf-idf está compuesto por dos términos donde el primero (TF) calcula
la Frecuencia de Término normalizada. Esto es el número de veces que una palabra aparece
en un documento, dividida por el número total de palabras en ese documento. El segundo
término es la Frecuencia Inversa de Documento (IDF), computada como el logaritmo del
número de documentos que se tienen en la colección dividido por el número de documentos
donde aparece el término específico [27].
En resumen, tenemos que TF mide la frecuencia con que un término aparece en un
documento. Como cada documento tiene una longitud diferente, es posible que un término
aparezca mucho más veces en documentos largos que en documentos más cortos. Por lo
tanto, el término frecuencia es a menudo dividido por la longitud del documento (es decir, el
número total de términos en el documento) como una forma de normalización:
TF(t) = f(t,d) / T(d)
Ecuación 2.18: Cálculo de Frecuencia de Términos (TF)
Donde la función f(t) cuenta la cantidad de veces que el término t aparece en un
documento d y T(d) cuenta la cantidad de términos que tiene el documento d.
Asimismo, IDF mide la importancia de un término. Mientras se calcula TF, todos los
términos se consideran igualmente importantes. Sin embargo, se sabe que ciertos términos,
como "es", "de" y "eso" (también denominados stop words), pueden aparecer muchas veces
33
pero tienen poca importancia. Por lo tanto, se tiene que bajar la relevancia de términos
frecuentes, mientras que se tienen que escalar los menos frecuentes. Esto se realiza
mediante el siguiente cálculo:
IDF (t) = log (D / f(t) )
Ecuación 2.19: Cálculo de Frecuencia Inversa de Terminos (IDF)
Donde D es el número total de documentos y f(t) es una función que cuenta cuantos
documentos tienen el término t consigo.
2.8. Antecedentes
En esta sección, se expondrán distintos trabajos relacionados con Sistemas de
Recomendación a los que se le ha dado mayor relevancia para desarrollar las soluciones
propuestas en el presente trabajo. Además se realizó una síntesis de dichos trabajos, donde
se expusieron sus ventajas y desventajas. Por último, se presentará una comparación entre
los mismos.
2.8.1. Síntesis de trabajos realizados anteriormente
● A Sentiment-Enhanced Personalized Location Recommendation System: En este
trabajo se presenta un sistema de recomendación híbrido que modela las preferencias
de los usuarios combinando información extraída del historial de check-ins, los tips,
que son procesados haciendo uso de técnicas de análisis de sentimiento, y las
relaciones de los usuarios dentro de la red social. Para la recomendaciones de lugares
se utiliza un algoritmo de Factorización de Matrices con distintas configuraciones. Por
ejemplo, dentro de las distintas configuraciones, en principio se utiliza únicamente
información del historial de check-ins, luego se añade análisis de sentimiento e
información de los tips y por último, se hace uso de las relaciones entre los usuarios.
● Location-based and Preference-Aware Recommendation Using Sparse Geo-Social Networking Data: En este trabajo, se presenta un sistema de
recomendación que sugiere lugares considerando la ubicación y preferencias del
34
usuario. Para generar recomendaciones, este sistema tiene en cuenta las preferencias
personales del usuario (que son obtenidas del historial de check-ins) y las opiniones
sociales, que son obtenidas de los expertos locales. Es por esto que el recomendador
es capaz de recomendar lugares a los usuarios que visitan una ciudad en la que jamás
han estado anteriormente. El sistema precomputa y extrae información de los expertos
locales de cada área para cada categoría en una ciudad utilizando el historial de todos
los usuarios en dicha región y la información asociada a las categorías de los lugares.
El recomendador infiere las calificaciones haciendo uso de un algoritmo de filtrado
colaborativo con algoritmos de similitud propios (que comparan las categorías favoritas
de los usuarios) y utilizando la información de los expertos locales en la región que se
desea recomendar.
● Matrix Factorization Techniques for Recommender Systems: Dentro de los
trabajos estudiados, se desea resaltar también el estudio realizado acerca de los
sistemas de recomendación realizado por una de las empresas más exitosas en la
actualidad, Netflix. En este trabajo se explican los conceptos teóricos de la técnica de
factorización de matrices así como también los beneficios que esta posee sobre las
tácticas más comunes de filtrado colaborativo como la basadas en cercanía de vecinos
(como lo son el Filtrado Colaborativo User-User o Item-User).
2.8.2. Ventajas y desventajas de los trabajos estudiados
A Sentiment-Enhanced Personalized Location Recommendation System
Ventajas: En este trabajo se quiere destacar la importancia de la información de contexto
añadida a la hora de realizar recomendaciones. Utilizando análisis de sentimiento, se
consigue modelar información muy importante acerca de la preferencia del usuario hacia un
lugar.
Desventajas : El algoritmo de recomendación no tiene en cuenta la posición en la que se encuentra
un usuario. Esta información suele ser muy útil, ya que los usuarios tienden a ir a lugares
próximos frecuentemente, y rara vez se dirigen a lugares alejados.
35
Dentro de los experimentos efectuados, aparece como línea base un filtrado
colaborativo que no tiene información acerca de su configuración (algoritmo de similitud
utilizado, basado en usuarios o items,etc.).
Location-based and Preference-Aware Recommendation Using Sparse Geo-Social Networking Data
Ventajas :
Este sistema de recomendación contempla el lugar en el que el usuario se encuentra
para recomendar lugares. El sistema de recomendación, realiza cálculo de preferencias
implícitas, lo cual facilita las recomendaciones en conjuntos de datos con alto grado de
esparcimiento. El algoritmo contempla una estrategia de recomendación para lugares en los
cuales no se posee información del usuario gracias a una técnica que logra combinar las
preferencias del usuario con la popularidad de los lugares disponibles para visitar.
Desventajas :
No utiliza el contenido de los tips como información adicional para generar las
recomendaciones.
El trabajo no contempla utilizar información de las relaciones entre los usuarios.
Matrix Factorization Techniques for Recommender Systems:
Ventajas :
Los sistemas de recomendación basados en factorización de matrices resuelven mejor
el problema de la escasez de datos. Actualmente Netflix usa esta técnica para recomendar
películas a usuarios.
Desventajas :
La técnica de matrix factorization es difícil de comprender e implementar que las
técnicas de filtrado colaborativo más comunes .
36
Capítulo 3: Enfoque propuesto
En esta sección se describe una visión preliminar del escenario de aplicación real del
recomendador. Consecuentemente a eso, se va a dar una vista general a la solución
propuesta, sobre los trabajos pasados que se han utilizado como referencia y cuál fue la
arquitectura resultante. También, se describirán brevemente cuáles fueron los experimentos
realizados para luego explicarlos en detalle en capítulos posteriores.
3.1. Visión preliminar
La figura 3.1 describe un escenario de aplicación del recomendador en donde existe
una aplicación móvil distribuida entre los distintos usuarios que interactúan en el marco de la
red social en cuestión, y otra aplicación que almacena toda la información generada por los
mismos integrantes de la red social que se utiliza luego para cálculo y la generación de
sugerencias. El hecho de que la aplicación utilizada por los miembros de la red social sea
móvil no es aleatorio, de hecho, uno de los principios de una red LBSN es que la misma
movilidad de los usuarios afecta directamente a las recomendaciones que el sistema debe
brindar. En otras palabras, es una de las claves para el funcionamiento más eficiente del
sistema de recomendación debido a la facilidad de acceso a las coordenadas geográficas de
un determinado usuario.
El uso de la aplicación es simple, el usuario posicionado en una determinada
coordenada geográfica consulta al sistema por lugares que podrían ser de su agrado.
Consecuentemente, se envian sus coordenadas a la aplicación centralizada y haciendo uso
de su ubicación sumado a la información histórica de sus visitas almacenada previamente, se
le recomienda sitios de interés en base a sus preferencias. Nótese que el sistema cuenta con
información previamente cargada de las características, como pueden ser la ubicación
geográfica o bien la categoría, de los lugares a los que concurren los distintos usuarios.
Posteriormente a esto, existe una capa de presentación, representada con un mapa,
en donde el usuario puede observar las recomendaciones brindadas por el sistema. Desde la
interfaz de la aplicación el usuario puede ver, entre otras cosas, dónde se encuentran
ubicados geoespacialmente para identificar la distancia y la categoría de dicho lugar.
37
Al seleccionar una de las visitas recomendadas, puede observarse información
relacionada con las críticas que han dejado otros usuarios de la red social, cantidad de visitas
realizadas, información general acerca del lugar en cuestión así como también un puntaje
asignado basado en estos últimos puntos para que el usuario pueda evaluar una potencial
visita al mismo. En caso de que el usuario visite uno de los puntos geográficos
recomendados, el mismo tendrá la posibilidad de evaluar el lugar visitado enviando una
revisión del mismo e incrementar la información de dicho sitio dando lugar de esta manera a
mejorar la precisión de las recomendaciones por medio de retroalimentación.
Figura 3.1: Escenario de uso del sistema de recomendación
3.2. Representación inicial de la información
Como datos de entrada para la investigación se utilizó un conjunto de datos existente,
con datos reales de la red social Foursquare. El mismo está compuesto de varios archivos en
formato csv y se compone de un listado de varios usuarios, lugares y puntos de interés como
también categorías y revisiones sobre estos lugares realizadas por los mismos usuarios.
La figura 3.2 muestra cómo es la interacción entre las las entidades de datos más
importantes mencionadas anteriormente.
38
Figura 3.2: Entidades presentes en un sistema de RSBU
Como se puede observar, los usuarios se relacionan con los lugares compartiendo su
ubicación geográfica registrando su visita a cualquier lugar perteneciente a la red social. Para
su facilidad de uso, cada lugar cuenta consigo información acerca de las coordenadas
geográficas en las que está ubicado, ciudad a la que pertenece, entre otras características.
También es necesario destacar que cada vez que un usuario realiza una visita a algún sitio
tiene la opción de dejar una reseña del mismo, a fin de brindar más información a otros
potenciales visitantes.
Los sitios de interés, también poseen categorías que describen el tipo de lugar al que
se hace referencia. Este es un atributo de mucho valor para el propósito de la recomendación,
ya que refleja información directa acerca de los gustos del usuario. Resulta difícil encontrar
usuarios que concurran al mismo lugar, debido a la cantidad de lugares registrados y además
a la variedad de ubicaciones de los usuarios dentro de la red. Utilizando la información de las
categorías se puede modelar la similitud entre los usuarios en una mayor cantidad de casos.
Con respecto a las categorías, las mismas están representadas mediante un árbol de
jerarquía en donde los nodos más cercanos a la raíz representan una descripción más
genérica del lugar. Por consiguiente, los nodos más cercanos a las hojas, son una
especialización de las mismas. En resumen, las categorías que serán hojas dentro del árbol
de la jerarquía serán las que contienen la granularidad más fina. Por ejemplo, la categoría
“Comida” incluye a las categorías “Comida China” o “Comida Italiana”.
39
3.3. Solución propuesta
A continuación se mostrará a grandes rasgos cuál fue la solución propuesta para la
problemática en cuestión. En principio, se tienen que satisfacer dos necesidades muy
marcadas como son la recomendación de sitios de interés a usuarios finales y la efectividad
de las recomendaciones de los mismos. Para el primer punto, esto significa un servicio que
pueda responder a la solicitud de usuarios finales. Respecto al segundo punto, la calidad de
las recomendaciones es de vital importancia, con lo cual también se tiene la necesidad de
evaluar la precisión y eficacia de distintas implementaciones.
La figura 3.3 nos da una visión general que explica el funcionamiento del sistema. La
entrada del sistema es la información presentada en el apartado anterior, no obstante, para
que ese conjunto de datos sea funcional al propósito de la investigación, debe ser pre
procesado y optimizado. Esto significa, eliminar datos que no aportan información alguna o
generan ruido, como pueden ser usuarios que no registran ninguna visita, lugares que no
fueron visitados, ciudades que tienen muy poca actividad (es decir, visitas de usuarios), etc.,
para reducir el nivel de ruido de la información. Consecuentemente, también tiene un efecto
positivo en la performance del sistema, ya que al reducir el volumen de datos, menor será la
cantidad de procesamiento.
El siguiente paso, es la migración del conjunto de datos de entrada a una base de
datos relacional, haciendo uso de una serie de transformaciones que serán explicadas con
mayor nivel de detalle en el siguiente capítulo. De momento, lo que se tiene que comprender
es que partiendo de un conjunto de datos con información sin proceso alguno, existe un
componente dentro de la arquitectura del sistema que aplica sucesivos procesos sobre la
misma con el fin de facilitar su uso para los algoritmos de recomendación.
Todo ese proceso es realizado por un componente del sistema que se puede observar
en la figura 3.3 bajo el nombre de Sistema de Recomendación . Como se ve en dicha figura, el
mismo es un sistema que puede ser replicado en distintas máquinas y de esta manera escalar
horizontalmente con el fin de permitir procesamiento en paralelo en caso de ser necesario. Si
bien para el marco de esta investigación no es algo necesario, el sistema está preparado para
una mayor demanda de proceso.
40
Como se mencionó anteriormente, las modificaciones aplicadas a la información dada
serán almacenadas en una base de datos. La misma será compartida a través de todas las
réplicas del Sistema de Recomendación y también por todos los demás módulos
pertenecientes al sistema.
El paso siguiente a la transformación y almacenamiento de la información es la
implementación de distintos algoritmos y técnicas de recomendación que serán evaluadas
posteriormente, con el fin de determinar la eficacia de sus resultados.
Dentro de las técnicas implementadas, se utilizaron algoritmos como filtrado
colaborativo basado en usuarios y factorización de matrices, aplicando en algunos casos
mejoras o personalizaciones que se ajustaban mejor a la problemática en concreto.
En resumen, la arquitectura dispone de un componente llamado Sistema de
Recomendación , el cual tiene distintas responsabilidades:
● Pre procesar la información existente.
● Recomendar de sitios de interés para los distintos usuarios.
● Evaluar la calidad de las recomendaciones provistas.
Figura 3.3: Arquitectura general de la solución propuesta
41
Adicionalmente, la figura 3.3 contiene otro componente llamado API de
recomendación . Este componente funciona como comunicación entre los usuarios finales de
la aplicación y el sistema de recomendación implementado. En otras palabras, es la manera
que tienen los usuarios finales de la aplicación para pedir o acceder a las recomendaciones
que el sistema puede brindar. En este caso se implementó una capa sobre los sistemas de
recomendación implementados y una API REST para poder enviar las recomendaciones en
un formato apto para el procesamiento desde una aplicación móvil. En este caso, la
información se devuelve en formato de XML. En el capítulo 4 se hablará más en detalle acerca
de este módulo, pero de manera resumida, el propósito de este módulo es el de proveer un
medio de acceso a la información generada por el módulo Sistema de Recomendación para
los usuarios finales.
3.4 Casos de estudio
Por último, los restantes capítulos del documento hacen referencia a los experimentos
realizados utilizando la implementación provista en el capítulo 4, el análisis de los resultados
obtenidos así como también la presentación de posibles trabajos a realizar en un futuro.
Para la materialización de los distintos experimentos se utilizó un set de datos
perteneciente a la red social Foursquare, dentro de los cuales se pueden encontrar un listado
completo de lugares con su ubicación geográfica y su categoría, un listado de revisiones de
los lugares realizada por los mismos usuarios de la red social y un conjunto de usuarios. Del
mismo se utilizaron los datos de dos ciudades, Nueva York y Los Ángeles.
Una vez elegido el conjunto de datos a utilizar se va a proceder con distintas pruebas,
a fin de evaluar cuál es la más conveniente dependiendo de distintas variables de entrada:
rankeo de lugares, algoritmos de recomendación y el cálculo de similitud.
Cada una de las pruebas será evaluada utilizando las métricas mencionadas en el
capítulo 2 que son MAE, RMSE, precisión, recall y f-score.
Posteriormente a esto se va a realizar un análisis de los resultados obtenidos, con el
fin de identificar los distintos comportamientos de la aplicación desarrollada.
Finalmente, se van a mencionar potenciales mejoras a realizar, teniendo como objetivo
la continuidad del presente trabajo.
42
3.4.1. Variables a analizar
Como se mencionó en la sección anterior, los experimentos a realizar se basan en la
combinación de distintas variables y cómo reaccionará el sistema ante los cambios de las
mismas.
En principio, lo primero que se intentó conseguir fue medir la preferencia de un
usuario por un lugar determinado y la discretización de la misma. Para cumplir con este
objetivo se analizaron dos alternativas. La primera consiste en contar la cantidad de veces
que un usuario visitó un lugar dado. La segunda no solo tiene en cuenta la cantidad de
veces que un miembro de la red social visitó un sitio sino que además se tuvo en cuenta el
análisis de sentimiento de cada visita.
Siguiendo con la mención de las distintas variables de los experimentos, tal vez la
más importante sea la técnica de recomendación utilizada. En este caso se utilizaron dos
técnicas distintas como lo son el filtrado colaborativo basado en usuarios y la factorización
de matrices.
Por último, se sabe que los algoritmos de filtrado colaborativo tienen una fuerte
dependencia de otra función que es la que calcula la similitud entre ítems o usuarios.
Existen maneras muy variadas de calcular la similitud y para los fines de la investigación
se utilizaron el Coeficiente de correlación de Pearson, la similitud del Coseno y la
comparación de árboles de preferencias de los usuarios.
.
43
Capítulo 4: Diseño e implementación
El presente capítulo tiene como objetivo explicar en detalle la solución aplicada a la
problemática presentada, comenzando por nombrar las herramientas que se utilizaron como
ayuda o soporte para lograr el objetivo así como también la descripción de todos los
componentes de arquitectura diseñados.y su relación con otros trabajos realizados
previamente.
4.1. Investigación de Frameworks para filtrado colaborativo Para la realización del Sistema de recomendación se analizaron distintos frameworks y
herramientas que implementan los distintos algoritmos de filtrado colaborativo. Finalmente se
eligió Apache Mahout por ser la alternativa que escalaba mejor para grandes cantidades de
datos y por la variedad de características disponibles como integración con Apache Hadoop,
variedad de algoritmos de recomendación y facilidad de uso, entre otras.
A continuación se listan los componentes evaluados en conjunto con una explicación
de porqué se eligieron o se descartaron.
4.1.1. Crab
Crab es un motor de recomendación flexible y rápido escrito en el lenguaje Python.
Crab nos provee la implementación de una gran cantidad de algoritmos de filtrado
colaborativo integrados también con librerías o paquetes de índole científica utilizados por la
comunidad de desarrolladores Python. El motor tiene como objetivo proporcionar un amplio
conjunto de componentes a partir de los cuales se puede construir un sistema de
recomendación personalizado utilizando la implementación de los distintos algoritmos [20].
Dentro de las características de Crab, se destaca lo siguiente:
● Implementación de algoritmos de filtrado colaborativo basados en ítems y en usuarios.
● Evaluación de recomendadores.
● Soporte para APIs REST
● Implementado en un lenguaje muy descriptivo y fácil de usar como Python.
44
Si bien Crab provee varias cosas útiles, luego de varias pruebas de concepto se
decidió descartarlo por los siguientes motivos:
● Pobre performance. Ante una cantidad de datos superior, el sistema no tiene un tiempo
de respuesta razonable. En algunos casos pasan horas hasta tener una respuesta.
● Proyecto descontinuado. El proyecto no recibe soporte desde hace un par de años.
4.1.2. Racoon
Otra alternativa que se analizó fue Racoon, una herramienta de filtrado colaborativo
escrita con el framework Node.js y que utiliza Redis como mecanismo de caché.
Dentro de las características de Racoon, se puede mencionar que utiliza el algoritmo
de los N vecinos más cercanos para generar las recomendaciones. Este módulo es útil para
cualquier sistema con una base de datos de usuarios, una base de datos de productos /
películas / artículos y el deseo de dar a sus usuarios la capacidad de evaluar ítems y recibir
recomendaciones basadas en usuarios similares. Se puede emparejar con cualquier base de
datos, ya que no realiza un seguimiento de cualquier información de usuario / elemento
además de un ID único [21].
En resumen, las principales ventajas que se observaron fueron las siguientes:
● Independencia de la bases de datos. Se puede usar cualquier motor de base de datos,
inclusive distinto paradigma (relacionales o no relacionales).
● Caché incorporada. La herramienta ya viene integrada con Redis.
No obstante, las desventajas son grandes:
● Proyecto descontinuado.
● Ausencia de un módulo que evalúe los distintos algoritmos de recomendación.
● No funciona para versiones más actuales de Node.js.
4.1.3. Django-Recommends
Continuando con la evaluación de las distintas herramientas, se encontró algo más
completo que los anteriores llamado Django-Recommends, escrito en el lenguaje Python
utilizando el framework Django, como su nombre lo indica.