mapas gráficos para la visualización de relaciones en...
TRANSCRIPT
Departamento de Sistemas Informáticos
Escuela Técnica Superior de Ingeniería de Sistemas Informáticos
Mapas gráficos para la visualización de relaciones en
sistemas de recomendación
Ricardo Moya García (Maestro en ciencias y tecnologías de la computación)
Antonio Hernando Esteban (Doctor en Inteligencia Artificial)
2015
III
“Si tienes un sueño y crees en él, corres el riesgo de que se convierta en realidad”
Walt Disney
V
A mis padres Juan Luis y Maite por el apoyo y el esfuerzo que han realizado por mis estudios y formación durante tantos años. Eternamente agradecido por la mejor herencia que se le puede dejar a un hijo; la educación y la formación. A mi hermana Bea que me ha aguantado muchos años y a María por apoyarme enérgicamente para sacar esta tesis adelante. Agradecer a todos mis compañeros y amigos con los que he compartido tantos años de estudio (Ramón, Fernando, Dionisio y otros muchos) y a mis profesores, en especial a aquellos que me han hecho ver lo duro y fascinante que es el mundo de la investigación y de la innovación. Especial agradecimiento a Jesús y Fernando (Bobi y Fer) por haberme abierto las puertas al mundo de la investigación y haber podido aprender muchísimo de ellos y por último y muy especialmente a Antonio, por dirigirme esta tesis doctoral, por haberme dirigido la tesis de master, por todas las magníficas clases impartidas, por todos los conocimientos trasmitidos y sobre todo (y lo más importante) por ser mi guía en el mundo de la investigación.
Resumen
La presente tesis doctoral tiene como objetivo el disenar un modelo de inferencia visual
y sencillo que permita a los usuarios no registrados en un sistema de recomendacion inferir
por ellos mismos las recomendaciones a partir de sus gustos. Este modelo estara basado en
la representacion de las relaciones de similaridad entre los ıtems. Estas representaciones
visuales (que llamaremos mapas graficos), nos muestran en que lugar se encuentran los
ıtems mas representativos y que ıtems son votados de una manera mas parecida en funcion
de los votos emitidos por los usuarios del sistema de recomendacion. Los mapas graficos
obtenidos, toman la forma de los arboles filogeneticos (que son arboles que muestran las
relaciones evolutivas entre varias especies), que muestran la similitud numerica entre cada
par de ıtems que se consideran similares. Como caso de estudio se muestran en este trabajo
los resultados obtenidos utilizando la base de datos de MovieLens 1M, que contiene 3900
pelıculas (ıtems).
vii
Abstract
The present PhD thesis has the objective of designing a visual and simple inference
model that allow users, who are not registered in a recommendation system, to infer
by themselves the recommendations from their tastes. This model will be based on the
representation of relations of similarity between items. These visual representations (called
graphical maps) show us where the most representative items are, and items are voted in a
similar way based on the votes cast by users of the recommendation system. The obtained
graphs maps take form of phylogenetic trees (which are trees that show the evolutionary
relationships among various species), that give you an idea about the numeric similarity
between each pair of items that are considered similar. As a case study we provide the
results obtained using the public database Movielens 1M, which contains 3900 movies.
ix
Indice
1. INTRODUCCION 1
1.1. Motivacion y Objetivos . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1. Modelo basado en reglas . . . . . . . . . . . . . . . . . 3
1.1.2. Modelo basado en grafos . . . . . . . . . . . . . . . . . 7
1.1.3. Modelo definitivo: modelo basado en arboles . . . . . . 8
1.1.4. Metodos alternativos de visualizacion en Machine
Learning . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2. Hipotesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3. Esquema de la tesis . . . . . . . . . . . . . . . . . . . . . . . . 14
2. ESTADO DEL ARTE 17
2.1. Contexto en los Sistemas de Recomendacion . . . . . . . . . . 17
2.2. Sistemas de recomendacion comerciales . . . . . . . . . . . . . 20
2.3. Tendencias en la investigacion de los sistemas de recomendacion 25
2.4. Tendencias futuras . . . . . . . . . . . . . . . . . . . . . . . . 27
3. SISTEMAS DE RECOMENDACION 29
3.1. Sistemas de Recomendacion basados en contenido . . . . . . . 32
xi
3.1.1. Sistemas de Recomendacion basados en vectores de pa-
labras . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.1.2. Sistemas de Recomendacion basados en LSI . . . . . . 40
3.1.3. Sistemas de Recomendacion basado en PLSI . . . . . . 52
3.1.4. Sistemas de Recomendacion basado en LDA . . . . . . 58
3.2. Sistemas de Recomendacion basados en filtrado colaborativo . 64
3.2.1. Sistemas de Recomendacion basados en k-vecinos . . . 68
3.2.2. Sistemas de Recomendacion basado en factorizacion
matricial . . . . . . . . . . . . . . . . . . . . . . . . . . 75
3.2.3. Evaluacion de los sistemas de recomendacion . . . . . . 83
3.3. Otros tipos de sistemas de recomendacion . . . . . . . . . . . 91
3.3.1. Sistemas de Recomendacion basados en Filtrado De-
mografico . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.3.2. Sistemas de Recomendacion Hıbridos . . . . . . . . . . 92
4. MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE
ITEMS 95
4.1. Sistemas de Recomendacion basados en contenido . . . . . . . 96
4.1.1. Sistemas de Recomendacion basados en vector de pa-
labras . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
4.1.2. Sistemas de Recomendacion basados en LSI . . . . . . 101
xii
4.1.3. Sistemas de Recomendacion basado en PLSI . . . . . . 104
4.1.4. Sistemas de Recomendacion basado en LDA . . . . . . 108
4.2. Sistemas de Recomendacion basados en filtrado colaborativo . 113
4.2.1. Sistemas de Recomendacion basados en k-vecinos . . . 113
4.2.2. Sistemas de Recomendacion basado en factorizacion
matricial . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5. ARBOLES EN LOS SISTEMAS DE RECOMENDACION 123
5.1. Justificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
5.2. Elementos graficos . . . . . . . . . . . . . . . . . . . . . . . . 125
5.3. Recomendaciones a usuarios no registrados . . . . . . . . . . . 128
5.4. Explicacion de la recomendaciones . . . . . . . . . . . . . . . . 140
6. CONCLUSIONES 149
7. TRABAJOS FUTUROS 151
A. Anexo: Algoritmos de recubrimiento mınimo 153
xiii
Indice de figuras
1. Ejemplo del sistema de recomendacion propuesto en este trabajo (RS-IST) 14
2. Ejemplo de busqueda en Google, con recomendacion . . . . . . . . . . . . . 21
3. Ejemplo de recomendacion en la web de Amazon . . . . . . . . . . . . . . 22
4. Ejemplo de recomendacion de vıdeos en YouTube . . . . . . . . . . . . . . 22
5. Recomendacion de artıculos de webs y blogs en Docusapiens.com . . . . . . 23
6. Recomendacion de pelıculas en Filmaffinity . . . . . . . . . . . . . . . . . . 24
7. Recomendacion de musica en Lastfm . . . . . . . . . . . . . . . . . . . . . 24
8. Esquema general de un sistema de recomendacion . . . . . . . . . . . . . . 29
9. Clasificacion de los sistemas de recomendacion . . . . . . . . . . . . . . . . 30
10. Factorizacion matricial realizada en el LSI . . . . . . . . . . . . . . . . . . 42
11. Factorizacion matricial realizada en el LSI teniendo en cuenta K − factores 47
12. Representacion “Plate Notation” del modelo PLSI . . . . . . . . . . . . . . 54
13. Representacion grafica del LDA . . . . . . . . . . . . . . . . . . . . . . . . 59
14. Esquema general del filtrado colaborativo basado en memoria (K-Vecinos) 69
15. Filtrado Demografico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
16. Posibles ejemplos de Filtrado Hıbrido . . . . . . . . . . . . . . . . . . . . . 93
xv
17. Explicacion grafica de la utilizacion de la metrica de similaridad del coseno
para el calculo de similaridades entre documentos . . . . . . . . . . . . . . 99
18. Representacion en 2D de los factores latentes de los ıtems. . . . . . . . . . 119
19. Representacion en 2D de los factores latentes de los ıtems aplicando la
metrica del MSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
20. Representacion en 2D de los factores latentes de los ıtems aplicando la
metrica del Coseno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
21. Ejemplo de un RS-IST sobre un SR de pelıculas . . . . . . . . . . . . . . . 128
22. Grafo con las relaciones entre ıtems en el ejemplo de generacion del RS-IST 132
23. Arbol de recubrimiento mınimo en el ejemplo de generacion del RS-IST . . 133
24. Resultado del ejemplo de generacion del RS-IST . . . . . . . . . . . . . . . 135
25. Imagen del RS-IST a partir de la base de datos de MovieLens 1M . . . . . 137
26. Zoom 1 del RS-IST a partir de la base de datos de MovieLens 1M . . . . . 138
27. Zoom 2 del RS-IST a partir de la base de datos de MovieLens 1M . . . . . 139
28. Zoom 3 del RS-IST a partir de la base de datos de MovieLens 1M . . . . . 139
29. Ejemplo 1 de explicaciones de recomendaciones con el RS-IST a partir de
la base de datos de MovieLens 1M . . . . . . . . . . . . . . . . . . . . . . . 142
30. Mapa grafico para el ejemplo de la generacion de mapas graficos persona-
lizados para usuarios registrados . . . . . . . . . . . . . . . . . . . . . . . . 145
31. Arbol de recubrimiento mınimo para el ejemplo de la generacion de mapas
graficos personalizados para usuarios registrados . . . . . . . . . . . . . . . 146
xvi
32. Grafo para mostrar un ejemplo de la obtencion de un arbol de recubrimiento
mınimo con los algoritmos de Prim y Kruskal . . . . . . . . . . . . . . . . 154
33. Ejemplo del algoritmo de Prim 1: Inicializacion de las estructuras de datos. 156
34. Ejemplo del algoritmo de Prim 2: Primera iteracion del algoritmo. . . . . . 157
35. Ejemplo del algoritmo de Prim 3: Segunda y tercera iteracion del algoritmo.157
36. Ejemplo del algoritmo de Prim 4: Cuarta y quinta iteracion del algoritmo. 157
37. Ejemplo del algoritmo de Kruskal 1: Primera y segunda iteracion del algo-
ritmo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
38. Ejemplo del algoritmo de Kruskal 2: Tercera y cuarta iteracion del algoritmo.160
39. Ejemplo del algoritmo de Kruskal 3: Quinta y sexta iteracion del algoritmo. 160
xvii
Indice de tablas
1. Ejemplo de matriz con el numero de apariciones de palabras en ıtems . . . 35
2. Similaridades entre ıtems utilizando la distancia euclidea . . . . . . . . . . 37
3. Numero de apariciones de palabras de los ıtem I1, I3 e I11 . . . . . . . . . 38
4. Similaridades entre ıtems utilizando la metrica del coseno . . . . . . . . . . 39
5. Ejemplo de seleccion del numero de factores latentes en el LSI . . . . . . . 48
6. Factores latentes de los ıtems para el ejemplo del LSI . . . . . . . . . . . . 51
7. Similaridades entre los factores latentes de los ıtems utilizando la metrica
del coseno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8. Distribucion de probabilidad de que un documento pertenezca a un deter-
minado tema con el PLSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
9. Distribucion de probabilidad de que dado un tema salga una palabra con
el PLSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
10. Probabilidad de que una palabra aparezca en un documento en el PLSI . . 57
11. Distribucion de probabilidad de Dirichlet de que un documento pertenezca
a un determinado tema con el LDA . . . . . . . . . . . . . . . . . . . . . . 60
12. Distribucion de probabilidad de Diritchlet de que dado un tema salga una
palabra con el LDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
13. Distribucion de probabilidad de que un documento pertenezca a un deter-
minado tema con el LDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
xix
14. Distribucion de probabilidad de que dado un tema salga una palabra con
el LDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
15. Probabilidad de que una palabra aparezca en un documento en el LDA . . 63
16. Ejemplo de matriz de votos de los usuarios en el ejemplo de filtrado cola-
borativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
17. Parametros utilizados en el ejemplo de filtrado colaborativo. . . . . . . . . 74
18. Similaridad entre cada pareja de usuarios en el ejemplo de filtrado colabo-
rativo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
19. Conjunto de k-vecinos de cada usuario del ejemplo del filtrado colaborativo
para k=2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
20. Predicciones de voto realizadas mediante la votacion de los k-vecinos en un
ejemplo de filtrado colaborativo. Los ıtems de color azul, son los ıtems que
no han sido votados por los usuarios. . . . . . . . . . . . . . . . . . . . . . 75
21. ıtems susceptibles de ser recomendados (Xu) e ıtems recomendados (Zu) a
los usuarios del filtrado colaborativo. . . . . . . . . . . . . . . . . . . . . . 75
22. Ejemplo de seleccion del numero de factores latentes en el SVD . . . . . . 81
23. Factores de los usuarios (Matriz U) y los ıtems (Matriz V) . . . . . . . . . 82
24. Predicciones de voto realizadas con el SVD. Los ıtems de color azul, son
los ıtems que no han sido votados por los usuarios. . . . . . . . . . . . . . 82
25. ıtems susceptibles de ser recomendados (Xu) e ıtems recomendados (Zu) a
los usuarios con el SVD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
26. Error medio absoluto obtenido en el ejemplo de filtrado colaborativo. . . . 86
xx
27. Coverage obtenido en el ejemplo de filtrado colaborativo. . . . . . . . . . . 87
28. Items susceptibles de ser recomendados (X′u) e ıtems recomendados (Z
′u)
entre aquellos valorados por el usuario en el ejemplo de filtrado colaborativo. 89
29. Precision obtenida en el ejemplo de filtrado colaborativo . . . . . . . . . . 90
30. Recall obtenido en el ejemplo de filtrado colaborativo . . . . . . . . . . . . 90
31. Similaridades entre ıtems utilizando el MSD para el FBC . . . . . . . . . . 97
32. Similaridades entre ıtems utilizando la metrica del coseno para el FBC . . 98
33. Matrız del ejemplo de la tabla 1 de apariciones de palabras/documentos
normalizada por ıtems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
34. Similaridades entre ıtems utilizando el MSD con la matriz de palabras/do-
cumentos normalizada para el FBC . . . . . . . . . . . . . . . . . . . . . . 100
35. Similaridades entre ıtems utilizando el MSD con la matriz de factores la-
tentes de los documentos en el LSI . . . . . . . . . . . . . . . . . . . . . . 102
36. Similaridades entre ıtems utilizando la metrica del coseno para el LSI . . . 103
37. Factores latentes de los ıtems normalizados para el ejemplo del LSI . . . . 103
38. Similaridades entre ıtems utilizando el MSD con la matriz de factores la-
tentes de los documentos en el LSI . . . . . . . . . . . . . . . . . . . . . . 104
39. Ejemplo de calculo de distancias con KL, MSD y coseno . . . . . . . . . . 106
40. Similaridades entre ıtems en el ejemplo del PLSI con la divergencia de KL 107
41. Distancias entre ıtems en el ejemplo del PLSI . . . . . . . . . . . . . . . . 108
xxi
42. Ejemplo sobre la divergencia de KL . . . . . . . . . . . . . . . . . . . . . . 110
43. Similaridades entre ıtems en el ejemplo del LDA con la divergencia de KL . 112
44. Distancias entre ıtems en el ejemplo del LDA . . . . . . . . . . . . . . . . . 112
45. Ejemplo 2 de matriz de votos para el FC . . . . . . . . . . . . . . . . . . . 113
46. Similaridades entre ıtems en el ejemplo del FC con la metrica del MSD . . 116
47. Similaridades entre ıtems en el ejemplo del FC con la metrica del Coseno . 116
48. Similaridades entre ıtems en el ejemplo del FC con la metrica del JMSD . . 117
49. Factores latentes de los ıtems para la matriz de votos de la tabla 45 . . . . 119
50. Similaridades entre los factores latentes de los ıtems en el ejemplo del FC
con la metrica del MSD . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
51. Similaridades entre los factores latentes de los ıtems en el ejemplo del FC
con la metrica del Coseno . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
52. Ejemplo de matriz de votos para generar el RS-IST . . . . . . . . . . . . . 131
53. Importancia de los ıtems para el ejemplo de generacion del RS-IST . . . . 131
54. Similaridades entre ıtems para el ejemplo de generacion del RS-IST . . . . 132
55. Fiabilidad en las medidas de similaridad para el ejemplo de generacion del
RS-IST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
56. Tramos de fiabilidad para aplicar los colores a los vertices en el ejemplo de
generacion del RS-IST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
xxii
57. Ejemplo de matriz de votos para la generacion de mapas graficos persona-
lizados para usuarios registrados . . . . . . . . . . . . . . . . . . . . . . . . 144
58. Similaridad entre cada par de ıtems para el ejemplo de la generacion de
mapas graficos personalizados para usuarios registrados . . . . . . . . . . . 144
59. Pesos del grafo para mostrar un ejemplo de la obtencion de un arbol de
recubrimiento mınimo con los algoritmos de Prim y Kruskal . . . . . . . . 155
xxiii
Abreviaturas
CTR Collaborative Topic Regresion
EM Expectation–Maximization
FBC Filtrado Basado en Contenido
FC Filtrado Colaborativo
FD Filtrado Demografico
FH Filtrado Hıbrido
IA Inteligencia Artificial
IoT Internet of things
IR Information retrieval
ISR Information Systems Research
Knn K nearest neighbors (K-vecinos)
KL Kullback-Leibler (divergencia de Kullback-Leibler)
LDA Latent Dirichlet Allocation
LSA Latent Semantic Analysis
LSI Latent Semantic Indexing
MAE Mean Absolute Error (Error Medio Absoluto)
MSD Minimum Square Difference (Diferencia Cuadratica Media)
NLP Natural Language Processing
PLSA Probabilistic Latent Semantic Analysis
PLSI Probabilistic Latent Semantic Indexing
PMF Probabilistic Matrix Factorization
xxv
RS-IST Recommender System Items Similarities Tree
SR Sistemas de Recomendacion
SVD Singular Value Descomposition
Tf-idf Term frequency – Inverse document frequency
xxvi
1 INTRODUCCION
1. INTRODUCCION
A continuacion se expone brevemente el objetivo y la motivacion que ha dado lugar
a la presente tesis. El trabajo de esta tesis ha sido publicado en el siguiente artıculo
indexado en SCI :
Hierarchical graph maps for visualization of collaborative recommender systems
Hernando.A, Moya.R, Ortega.F, and Bobadilla.J
Journal of Information Science, 2013
(JCR Impact factor: 1.087. Q2)
1.1. Motivacion y Objetivos
Los sistemas de recomendacion son sistemas inteligentes capaces de proporcionar
recomendaciones personalizadas a usuarios registrados en el sistema. Estos sistemas tienen
como objetivo encontrar aquellos productos (en adelante llamados ıtems) que mas se
ajustan a los gustos del usuario. Por lo tanto, el sistema de recomendacion necesita conocer
los gustos de este usuario para poder realizar recomendaciones personalizadas: bien a
traves de cuestionarios que el propio sistema de recomendacion pide rellenar al usuario
(propio de sistemas de recomendacion mas sencillos); o bien deduciendo los gustos de los
usuarios a traves de las acciones que este realiza (por ejemplo, a traves de los votos que
hace sobre distintos productos, a traves del numero de veces que un usuario escucha una
cancion, observando el tipo de noticias que lee). La tarea de averiguar los gustos de los
usuarios o el de encontrar los productos que mas se ajustan a los gustos ha requerido el
uso de tecnicas clasicas de Machine Learning (como por ejemplo la intuitiva tecnica de
los k-vecinos o modelos basados en redes neuronales, modelos bayesianos, etc) como la
creacion de nuevas tecnicas (basados en descomposicion matricial, en complejos modelos
probabilısticos) que ha dado lugar a interesantes desarrollos matematicos. Es por ello, que
los sistemas de recomendacion son un subcampo destacado en la investigacion en estos
Autor: Ricardo Moya Garcıa 1
1 INTRODUCCION
ultimos anos dentro del amplio campo de Machine Learning. En todo caso, los sistemas
de recomendacion y la investigacion efectuada en este campo ha partido de la idea de
que los sistemas de recomendacion solo pueden efectuar recomendaciones personalizadas
a usuarios registrados.
Cuando un usuario accede al sistema y no esta registrado, el sistema de recomen-
dacion; ya que no conoce sus gustos, no puede ofrecerle ninguna recomendacion perso-
nalizada. En estos casos, el sistema de recomendacion proporciona a estos usuarios una
simple lista de los ıtems mejor valorados o mas populares (por ejemplo, las canciones mas
escuchadas, las pelıculas mejor valoradas, las noticias mas leıdas, etc). No obstante, el
numero de usuarios no registrados que acceden a un sistema de recomendacion
es muchısimo mayor que el de los usuarios registrados dejando en evidencia que
gran parte del esfuerzo intelectual que se ha hecho en la investigacion ha ido destinado
a una proporcion pequena de usuarios que utilizan el sistema. Esta tesis se centra
fundamentalmente en los usuarios no registrados , los mas numerosos dentro de
un sistema de recomendacion, y tiene como objetivo el proporcionar un mecanismo de
recomendacion mas interesante que la de ofrecer una lista de los ıtems mejor valorados o
mas populares.
En concreto, la tesis presente parte de la siguiente hipotesis: Si bien es cierto
que los sistemas de recomendacion no pueden realizar recomendaciones personalizadas a
usuarios no registrados, sı que es posible que el sistema de recomendacion pueda ofrecer
un modelo de inferencia sencillo de interpretar que permita a un usuario no
registrado inferir por el mismo las propias recomendaciones a partir de sus gustos (que
por supuesto el mismo conoce).
Para encontrar tal modelo y que tenga sentido, vamos a proponer una serie de carac-
terısticas que deben cumplirse:
1. La inferencia en el modelo propuesto no debe estar basada en ecuaciones matemati-
2 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
1 INTRODUCCION
cas: esto es, aunque el sistema de recomendacion trabaje con complicadas ecuaciones
matematicas para ofrecer recomendaciones a los usuarios registrados, parece natural
evitar estos calculos a los usuarios no registrados con el fin de hacer atractivo el
modelo de inferencia a estos usuarios. Ademas, ha de pensarse que los usuarios no
registrados no tienen porque ser matematicos y la inferencia debe efectuarse muy
rapidamente.
2. La inferencia del modelo propuesto debe estar basado en un tipo de razonamiento
muy cercano al que utilizamos los seres humanos cuando razonamos.
3. La inferencia en el modelo propuesto debe proporcionar recomendaciones lo mas
cercanas posibles a algun mecanismo de recomendacion conocido. Esto es, aunque
el modelo propuesto no exige calculos matematicos (como en realidad existe en el
algoritmo del sistema de recomendacion para efectuar recomendaciones a los usuarios
registrados), los resultados que se obtienen tiene que parecerse lo maximo posible a
los que se obtendrıa si el usuario se registrara y hubiera registrado sus gustos.
4. La inferencia debe estar basada en modelos visuales. Consideramos que cualquier
razonamiento que ofrezca el sistema no puede ser descrito textualmente, puesto que
implica la lectura del mecanismo, la comprension del mismo y la aplicacion del mismo,
lo que lleva a un modelo lento y poco atractivo de usar. Por ello, consideramos
preferible la opcion de usar un modelo visual.
1.1.1. Modelo basado en reglas
Ya que exigimos que el modelo debe estar basado en un razonamiento muy humano
(caracterıstica 1) y ademas no debe contemplar ecuaciones matematicas complejas (ca-
racterıstica 2), parece natural partir de un sistema de inferencia basado en reglas, el cual
ha sido ampliamente estudiado en el campo de la Inteligencia Artificial.
En concreto vamos a considerar reglas y hechos de los siguientes tipos:
Autor: Ricardo Moya Garcıa 3
1 INTRODUCCION
Hechos de tipo:
“En general suele gustar el ıtem i”
Estos hechos pueden darse estudiando la popularidad o la valoracion de los ıtems
del sistema de recomendacion. Los sistemas de recomendacion utilizan este tipo de
hechos cuando proporcionan una lista de los ıtems mejor valorados a usuarios no
registrados.
Reglas del tipo:
“Si te gusta el ıtem i, entonces probablemente te gustara el ıtem j”
Los sistemas de recomendacion no proporcionan este tipo de reglas a los usuarios no
registrados. Nuestra propuesta en esta tesis sera la de ofrecer este tipo de reglas a
los usuarios no registrados.
Ademas de estas reglas y estos hechos, el usuario dispone de los siguientes hechos del
tipo:
Hecho de tipo:
“Me gusta bastante el ıtem i”
Al tratarse de un usuario no registrado, el sistema no puede conocer este tipo de
hechos. No obstante, como es natural, el usuario no registrado sı que los conoce, y
por tanto, junto con los hechos y reglas anteriores puede el mismo inferir ıtems que
no conoce.
Con estas reglas y estos hechos (los que proporciona el sistema de recomendacion
junto con los propios del gusto de los usuarios que solo conoce el), el usuario puede inferir
aquellos ıtems que le podran gustar aplicando simplemente un razonamiento tipo Modus
Ponens.
4 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
1 INTRODUCCION
Consideremos el siguiente ejemplo: Imaginemos que el sistema de recomendacion ofre-
ce a los usuarios no registrados los siguientes hechos y reglas:
Hecho 1: En general suele gustar la pelıcula Star Wars
Regla 1: Si te gusta la pelıcula Amadeus, entonces probablemente te gustara la pelıcula
Dangerous Liaisons.
Ahora consideremos un usuario no registrado con el siguiente hecho (relativo a lo que
a el le gusta):
Hecho 2: Me gusta bastante la pelıcula Amadeus
Como es obvio, el usuario podrıa inferir que serıa interesante ver las pelıculas Star
Wars (de acuerdo con el Hecho 1) y la pelıcula Dangerous Liaisons ya que se puede
deducir aplicando la regla “Regla 1” y el hecho “Hecho 2”.
No obstante, ya que tanto en los hechos como en las reglas descritas, contienen termi-
nos subjetivos como “en general”, “probablemente” o “bastante” es conveniente resaltar
que el razonamiento utilizado esta basado en incertidumbre (diferentes modelos, tales co-
mo modelos probabilısticos, se han estudiado en la inteligencia artificial para modelizar
este tipo de razonamiento). Es conveniente por tanto, aportar en cada hecho y cada regla
una medida que indique el grado de confianza con el que se afirman estos hechos y estas
reglas.
En la actualidad, los sistemas de recomendacion de alguna manera ya proporcionan a
los usuarios no registrados esta medida cuando se trata de los hechos del tipo “En general
suele gustar el ıtem i”. Por ejemplo, es frecuente encontrarse sistemas de recomendacion
que ofrece el numero de usuarios que ha votado favorablemente o desfavorablemente un
ıtem, la posicion del ıtem en una lista de ıtems, la cantidad de usuarios que ha consumido
ese ıtem, la media de los votos que han emitido los usuarios sobre ese ıtems, etc. No pasa
Autor: Ricardo Moya Garcıa 5
1 INTRODUCCION
lo mismo con las reglas, ya que ni siquiera los sistemas de recomendacion las ofrecen. El
grado de confianza en la afirmacion de una regla del tipo anterior puede ser estudiada a
traves de grados de similaridad entre ıtems (ver capıtulo 4): por ejemplo estudiando la
correlacion de las votaciones de los usuarios entre los ıtems i y j).
De esta manera, este serıa un primer modelo ofrecido a un usuario no registrado para
que este pueda sacar sus propios conclusiones sobre los ıtems que le pueden gustar. No
obstante, este tipo de modelo sufre de varios inconvenientes graves:
La inferencia puede llegar a ser complicada para un usuario no registrado ya que
hay que tener en cuenta que el sistema de recomendacion tiene que ofrecer una
gran cantidad de reglas y hechos. Ası que, aunque este modelo no esta basado en
ecuaciones matematicas, es tambien muy difıcil de inferir (caracterıstica 1) ya que el
usuario tiene que estar recordando y encadenando hechos y reglas previas.
Esta basado en una representacion textual. Es decir, el usuario tiene que leerse una
gran cantidad de reglas y de hechos para poder sacar sus propias conclusiones (es
decir no se cumple la caracterıstica 4).
Es importante considerar que en general los algoritmos de los sistemas de recomen-
dacion consideran de manera implıcita que la regla:
“Si te gusta el ıtem i, entonces probablemente te gustara el ıtem j”
tambien conlleva la regla:
“Si te gusta el ıtem j, entonces probablemente te gustara el ıtem i”
6 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
1 INTRODUCCION
1.1.2. Modelo basado en grafos
Con el fin de intentar solventar los anteriores inconvenientes vamos a proponer un
modelo visual basado en grafos. Los grafos son un instrumento muy interesante ya que
son un instrumento matematico muy intuitivo que tiene una representacion visual muy
intuitiva y que sera muy adecuada para nuestros objetivos.
En concreto, vamos a considerar un grafo no dirigido con las siguientes caracterısticas:
Vertices: Los vertices del grafo seran los ıtems del sistema de recomendacion.
Ademas cada vertice asociado al ıtem i estara etiquetado por una cantidad que
indicara el grado de confianza en el hecho :
Hecho: “En general suele gustar el ıtem i”
A la hora de representar graficamente el grafo, el tamano de un vertice del grafo
indicara la etiqueta del vertice es decir, el grado de confianza en el hecho anterior.
Aristas: Dado dos ıtems i, j existe un arista entre los vertices asociados a esos dos
ıtems si existen la regla del tipo:
Regla: “Si te gusta el ıtem i, entonces probablemente te gustara el ıtem j”
(e implıcitamente tambien estara, como se ha dicho antes, la regla: “Si te gusta el
ıtem j, entonces te gustara el ıtem i”).
Al igual que los vertices, las aristas estan tambien etiquetadas indicando el grado de
incertidumbre de la anterior regla.
A la hora de representar graficamente el grafo, la longitud de una arista en el grafo
representara el grado de incertidumbre de la regla subyacente en la arista: a mayor
arista, mayor grado de incertidumbre (mas cuesta ir de un vertice a otro).
Con esta representacion, la inferencia que haga el usuario no registrado equivaldra sim-
plemente en encontrar un camino en el grado desde los vertices que representan los ıtems
Autor: Ricardo Moya Garcıa 7
1 INTRODUCCION
que mas gustan al usuario no registrado (ıtems que el unicamente conoce) a ıtems que el
usuario desconoce. Aquellos ıtems que primero encuentra el usuario no registrado, seran
los que con mayor probabilidad le gustara. Ademas, el usuario no registrado puede tambien
encontrar ıtems que probablemente le gusten observando simplemente aquellos vertices
del grafo representados con mayor tamano (con mayor valor de etiqueta), y sus vertices
cercanos en el grafo.
Este modelo ofrece las siguientes ventajas frente al anterior:
Es un metodo visual. A diferencia del metodo anterior, aquı las reglas subyacentes
estan descritas de una manera visual muy facil de interpretar.
La inferencia se realiza de una manera visual y es muy intuitiva. Tal como hemos
senalado anteriormente, encontrar un camino en el grafo equivale a encadenar reglas
de inferencia del tipo modus ponens. Y ademas, cuanto mas se tarde en alcanzar
un ıtem, mayor incertidumbre hay en ese razonamiento.
No obstante este modelo todavıa tiene varios inconvenientes:
El grafo obtenido en general no es plano. Por lo tanto, a la hora de representar nos
vemos en general obligados a que las aristas del grafo se crucen, lo cual dificulta
gravemente su visualizacion.
La idea anterior de imponer que la longitud de la arista se corresponda con la dis-
tancia visual representada en el plano no puede efectuarse en general. Es importante
observar que ni siquiera sabiendo que el grafo va a ser plano puede asegurarse que
va a cumplirse.
1.1.3. Modelo definitivo: modelo basado en arboles
En un intento de resolver los problemas detectados anteriormente, se ha considerado
la idea de representar un subgrafo del anterior grafo en la cual se representa el conjunto de
8 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
1 INTRODUCCION
reglas mas significativos (con mayor grado de confianza) que el sistema de recomendacion
ofrece a los usuarios no registrados.
Dentro de los tipos de subgrafos, hemos considerado los arboles ya que:
Son grafos planos, esto es, pueden representarse en el plano sin que se crucen las
aristas, lo que facilita la visualizacion.
Sus aristas pueden representarse de manera que su longitud represente el grado
de incertidumbre en la regla subyacente a esa arista. Hay que decir que no todos los
grafos planos cumplen esa propiedad.
La cuestion ahora se encuentra en que tipo de arbol de recubrimiento escoger para
representar ese grafo. Parece natural escoger un arbol de recubrimiento mınimo por varias
razones:
1. El arbol de recubrimiento mınimo escogera las aristas que representan las reglas con
menor incertidumbre (las mas importantes).
2. Es un problema bien estudiado y conocido en la algorıtmica y se dispone de distintos
algoritmos eficientes para encontrarlo.
La tecnica que usamos es por lo tanto muy sencilla:
1. Calculo de las medidas de confianza y de incertidumbre asociada a las reglas y hechos
anteriormente descritos. Para su calculo usaremos la informacion que nos proporciona
los usuarios registrados en el sistema.
a) Buscamos una medida de confianza asociada (representado por el tamano de los
vertices de los grafos) de la siguiente frase:
“En general suele gustar el ıtem i”
Autor: Ricardo Moya Garcıa 9
1 INTRODUCCION
Este paso es realmente sencillo, y puede estar descrito por medidas normalizadas
sobre el grado de aceptacion entre los usuarios registrados en el sistema.
b) Buscamos una medida de incertidumbre asociada (representado por el tamano
de los vertices de los grafos) a las reglas:
“Si te gusta el ıtem i, entonces probablemente te gustara el ıtem j”
Este paso consistira fundamentalmente en el calculo de una medida de simila-
ridad entre ıtems. Este calculo dependera fuertemente del tipo de sistema de
recomendacion sobre el que trabajamos. En los capıtulos 3 y 4 estudiaremos res-
pectivamente los tipos de sistemas de recomendacion y la forma como calculamos
esta medida de incertidumbre (medida de similaridad entre ıtems).
2. Calcular el arbol de recubrimiento mınimo asociado al grafo implicito descrito en el
paso 1 (especialmente por paso b).
3. Dibujar el arbol obtenido en el paso 2 y ofrecerselo a cualquier usuario no registrado.
A modo de conclusion, la presente tesis doctoral ofrecemos a los usuarios no registrado
en un sistema de recomendacion en un modelo de inferencia basados en los siguientes
puntos:
Ya que exigimos no utilizar matematicas complejas (caracterıstica 1), parece na-
tural utilizar como base matematicos los grafos ya que estos son una herramienta
matematica realmente intuitivas con una representacion visual (caracterıstica 4).
Ademas como hemos visto anteriormente, la inferencia se realiza de manera muy
intuitiva.
Dentro de los grafos como instrumento para ofrecer nuestro modelo de inferencia,
hemos considerado los arboles, como tipo de grafo, ya que estos cumplen las siguientes
propiedades:
• Son grafos planos que permiten por tanto ser representados en el plano.
10 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
1 INTRODUCCION
• Se pueden representar de manera que la distancia visual entre ıtems se corres-
ponda (en escala) con el peso de la arista. No todos los grafos planos cumplen
esto.
Se parte de un mecanismo basado en reglas, por ser este un mecanismo de razona-
miento muy natural propio de los seres humanos (caracterıstica 2). Este mecanismo
de inferencia es altamente estudiado en inteligencia artificial. Ademas consideramos
el hecho de utilizar mecanismos de inferencia con incertidumbre (no basado en logica
clasica, puesto que unicamente se puede afirmar con un cierto grado las proposicio-
nes del tipo “En general suele gustar el ıtem i” o “si te gusta el ıtem i, entonces
probablemente te gustara el ıtem j ”.
Veamos las distintas alternativas que ofrece el sistema de recomendacion:
• La popularidad de los ıtems. Esto estara representado por el tamano de
representacion de los vertices del grafo. Corresponde a la sentencia:
“En general suele gustar el ıtem i”
El tamano de este vertice indica el grado de confianza con la que se puede realizar
tal afirmacion (esto es el grado del termino “en general suele. . . ” en la anterior
frase).
• Relacion entre ıtems. Esto estara representado por el tamano de representa-
cion de los vertices del grafo. Corresponde a la regla:
“Si te gusta el ıtem i, entonces probablemente te gustara el ıtem j”
El peso de la arista (representado por la distancia entre los ıtems) indica el
grado de confianza con la que se puede realizar esa afirmacion (esto es el grado
del termino “suele” en la regla).
El mecanismo propuesto se basa en el algoritmo de los k-vecinos orientado a ıtems,
ampliamente utilizada en los sistemas de recomendacion (caracterıstica 3) y en la
popularidad de los ıtems. No obstante, en esta tesis veremos como otras tecnicas
de recomendacion (como recomendaciones basado en factorizacion de matrices, o
Autor: Ricardo Moya Garcıa 11
1 INTRODUCCION
modelos probabilısticos) pueden ser utilizadas tambien en el modelo propuesto. Como
veremos en el capıtulo 4, cada una de estas tecnicas puede servirnos para calcular
el peso de la arista del grafo correspondiente al grado de confianza de una regla de
inferencia del tipo “Si te gusta el ıtem i, entonces probablemente te gustara el ıtem
j”.
1.1.4. Metodos alternativos de visualizacion en Machine Learning
La tesis propuesta puede encuadrarse dentro del area de visualizacion en Machine
Learning. La visualizacion de datos ha sido un area de gran interes en Machine Learning.
Existen muchas tecnicas destinadas para visualizar los datos: los basados en analisis de
componentes principales [43] (que realizan representaciones basadas en transformaciones
lineales ortogonales); los basados en Kernel PCA [63] (que conllevan transformaciones no
lineales); los mapas autoorganizados [44] basados en una red neuronal; o por ejemplos
basados en la tecnica de clustering denominada Spectral clustering [67]. En realidad todo
este conjunto de tecnicas pueden agruparse en lo que se denomina Multidensional scaling
[16]. En cualquiera de los casos tratan de representar en el plano los datos (representados
a traves de puntos) de manera que el grado de similaridad de los puntos esten relacionados
con la distancia en el plano por los puntos que representan los ıtems (a mayor similaridad
entre puntos, menor distancia entre los ıtems). Estas tecnicas por tanto no representan
ningun modelo de inferencia, sino que situan puntos en el plano con el fin de visualizar
mejor los posibles clusters que se pueden formar.
Nuestro objetivo no es el de formar clusters, sino el de efectuar un modelo para
realizar recomendaciones a usuarios no registrados, y por ello, estas anteriores tecnicas no
son suficientes para nuestro objetivo.
12 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
1 INTRODUCCION
1.2. Hipotesis
Si bien es cierto que los sistemas de recomendacion no puede realizar recomendaciones
personalizadas a usuarios no registrados, si que es posible que el sistema de recomendacion
pueda ofrecer un modelo de inferencia sencillo de interpretar que permita a un
usuario no registrado inferir por el mismo las propias recomendaciones a partir de sus
gustos (que por supuesto el mismo conoce).
Lo que se proporciona en este trabajo es un metodo que permite la visualizacion de
relaciones de similaridad entre ıtems de un sistema de recomendacion basado en filtrado
colaborativo; es decir, que a traves de las votaciones de los usuarios de un sistema de
recomendacion, vamos a ser capaces de generar un mapa grafico en el que se mostraran
de forma visual las relaciones entre ıtems (en base a la experiencia y votaciones de los
usuarios registrados en el sistema de recomendacion), con la finalidad de que un usuario
no registrado en el sistema de recomendacion pueda posicionarse en un ıtem que conozca
o le haya gustado y ver que ıtems son similares a ese navegando por el mapa. De esa forma
el usuario puede navegar por el mapa viendo la similaridad entre ıtems, sacando como
conclusion que los ıtems similares a un ıtem seleccionado por el usuario, seran los ıtems
que se le recomienden. Como caso de estudio en este trabajo, se ha utilizado la base de
datos de pelıculas de MovieLens, que contiene un millon de votos sobre 3900 pelıculas. En
este caso de estudio, vamos a ser capaces de recomendar pelıculas sin que el usuario haya
votado ninguna pelıcula y sin que tengamos informacion ninguna sobre su perfil o gustos.
Un ejemplo de los resultados obtenidos lo podemos ver en la siguiente imagen (figura 1):
Con este mapa de ıtems (pelıculas) es muy sencillo realizar recomendaciones; ya que
un usuario no registrado, puede navegar por el mapa para ver que pelıculas son similares
(o adyacentes) a una que el haya visto o le haya gustado. Por ejemplo, si a un usuario le
ha gustado la pelıcula de “Terminator 2”, se posicionara sobre ese ıtem y podra ver que
sus pelıculas adyacentes son: Terminator, Jurassic Park, El Fugitivo, Braveheart, Matrix
y Total Recall; por tanto esas son las pelıculas que se le recomendaran. De la misma forma
Autor: Ricardo Moya Garcıa 13
1 INTRODUCCION
Figura 1: Ejemplo del sistema de recomendacion propuesto en este trabajo (RS-IST)
podra seguir navegando y seleccionar otras pelıculas, partiendo de la premisa de que si Ju-
rassic Park se parece a Terminator 2, entonces Men in Black tambien tiene cierto parecido
con Terminador 2 ya que Men in Black se parece a Jurassic Park. Evidentemente estas
recomendaciones no seran tan buenas como las que harıa un sistema de recomendacion en
el que el usuario estuviese registrado y se tuviesen conocimientos sobre sus gustos, pero
como primera recomendacion y en base a los votos de otros muchos usuarios, podemos
hacer este tipo de recomendaciones.
En este trabajo el caso de estudio es sobre una base de datos de votaciones de pelıculas
en las que hemos podido estudiar (en base a los votos) las similaridades entre pelıculas,
pero esta idea se puede aplicar a cualquier otro tipo de sistema de recomendacion en el
que se puedan obtener de una manera o de otra las similaridades entre los ıtems que se
quieren recomendar, bien sea con filtrado colaborativo o con filtrado basado en contenido.
1.3. Esquema de la tesis
El resto de esta tesis doctoral se estructura de la siguiente manera: en el capıtulo 2 se
presentara el estado del arte de los sistemas de recomendacion comerciales y las tendencias
14 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
1 INTRODUCCION
en la investigacion de los sistemas de recomendacion; en el capıtulo 3 se presentaran los
tipos de sistemas de recomendacion, haciendo especial hincapie en las diferentes tecnicas
de los sistemas de recomendacion basados en contenido y en filtrado colaborativo que
nos permiten obtener los datos necesarios para poder calcular similaridades entre ıtems;
en el capıtulo 4 se mostraran la medidas de similaridad para cada una de las tecnicas
de los diferentes sistemas de recomendacion expuestas en el capıtulo 3, para que puedan
ser aplicadas a los mapas graficos que se proponen en este trabajo; en el capitulo 5 se
explicara en detalle como crear los mapas graficos propuestos ası como su aplicacion; y
por ultimo en los capıtulos 6 y 7 expondremos las conclusiones y los posibles trabajos
futuros relacionado con la visualizacion de relaciones en los sistemas de recomendacion.
Autor: Ricardo Moya Garcıa 15
2 ESTADO DEL ARTE
2. ESTADO DEL ARTE
En este apartado 2 sobre el estado del arte en los sistemas de recomendacion (en
adelante SR), vamos a mostrar algunos ejemplos de SR comerciales para ver el impacto
que estos tienen sobre los usuarios de Internet. Se explicara cuales han sido las tendencias
o areas de investigacion de los SR y se expondran tambien cuales son (o van a ser) las
tendencias futuras en la investigacion de los SR. Al centrarse este tesis en la visualizacion
de relaciones en los SR, se mostrara tambien el estado del arte en este area al igual que las
formas de recomendar a usuarios no registrados en los SR y que por tanto no se dispone
informacion sobre ellos (perfil, gustos, etc).
El contenido de los capıtulos 3 y 4 de este trabajo, deberıan de formar parte del
capıtulo 2 ya que se enmarcan dentro del estado del arte en los SR, pero dado que se
explican con bastante detalle los SR basados en contenido (FBC) y en filtrado colaborativo
(FC), se a optado por escribirlos en capıtulos separados ya que tienen suficiente entidad
para ello, aunque forman parte del estado del arte.
2.1. Contexto en los Sistemas de Recomendacion
Hoy en dıa, Internet es una importante herramienta de comunicacion y de obtencion
de informacion que es utilizada a diario por mucha gente para trabajar, entretenerse,
mantenerse informado sobre la actualidad, realizar transacciones, compras, etc. Es sin
duda Internet, una de las herramientas mas importantes y versatiles creadas por el ser
humano, pero es justo esa versatilidad el punto mas debil que tiene Internet, ya que la
mayorıa de los usuarios se sienten impotentes ante la gran cantidad de informacion que
hay en la red. A este fenomeno se le conoce con el nombre de ”el problema de la
sobrecarga de informacion”.
Con el objetivo de reducir este problema de la sobrecarga de informacion, se han
desarrollado herramientas conocidas como Buscadores, que tienen como objetivo mos-
Autor: Ricardo Moya Garcıa 17
2 ESTADO DEL ARTE
trar al usuario la informacion que hay en Internet, filtrando esa informacion por palabras
clave. El resultado que ofrecen esos buscadores al usuario, es una lista de paginas web
(tras realizar un analisis del contenido que hay en Internet) que contienen las palabras
claves buscadas y que les permitira encontrar los elementos que buscan en Internet. Uno
de los buscadores mas conocidos y utilizados por los usuarios es Google, que ordena los
resultados de las busquedas con el algoritmo conocido como el PageRank, que es un
algoritmo que otorga un factor de importancia a las paginas web y que las lista en funcion
de la busqueda realizada por el usuario y de la importancia de la web.
Con el paso del tiempo Internet ha ido evolucionando hacia lo que se conoce como
la Web 2.0 o Web social, que ha permitido que los propios usuarios de Internet puedan
generar informacion (a traves de Blogs, Wikis, etc.) y agravar de alguna forma el problema
de la sobrecarga de informacion. Ni mucho menos esto se ha convertido en un problema ya
que gracias a los usuarios, Internet tiene cada vez mas contenido y permite a los usuarios
obtener mayor informacion sobre determinados temas, pero sigue siendo necesario que
esa informacion se filtre de alguna forma. Otro exito de la Web social, han sido las redes
sociales, como Facebook, Twitter, Instagram, Linkedin, etc. que tambien permiten a los
usuarios generar informacion de caracter mas personal.
Pese al aplastante exito de la Web social, para un usuario de Internet inexperto o
sin ganas de preocuparse por elegir el tipo de informacion que desea recibir, este tipo
de paradigma de Internet es insuficiente. Seria mucho mas comodo para los usuarios
que un sistema informatico monitorizase su actividad en la red y que descubriera lo
que realmente les gusta y les consiguiese aquella informacion que fuese verdaderamente
interesante para el usuario. Estas herramientas existen y han sido denominadas como
Sistemas de Recomendacion.
Un sistema de recomendacion, es un sistema inteligente, capaz de aprender las pre-
ferencias o gustos de un usuario y poder ofrecerle aquella informacion que pueda ser de
utilidad para dicho usuario. Por tanto, podemos entender el sistema de recomendacion
18 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
2 ESTADO DEL ARTE
como un filtro que deja pasar aquella informacion que le va a resultar de interes al usuario
y va a desechar aquella informacion que le pueda resultar indiferente al usuario .
La gran ventaja que tienen los sistemas de recomendacion frente a los buscadores
o a la Web social, es precisamente el filtrado automatico de la informacion. Otro punto
favorable de los sistemas de recomendacion, es que son capaces de cubrir cualquier campo
en el que se requieran realizar recomendaciones como por ejemplo recomendar libros,
pelıculas, paginas web, restaurantes, viajes, etc. En definitiva, cualquier objeto que pueda
ser clasificado de forma implıcita o explıcita, podra ser recomendado por un sistema de
recomendacion.
La desventaja que tienen los sistemas de recomendacion frente a los buscadores, es
que los usuarios deben de aportar informacion al sistema sobre su perfil, gustos etc. y
algunos otros requieren que los usuarios valoren los ıtems que el sistema ofrece, bien sea
con una nota numerica o con un “me gusta” o “no me gusta”; en definitiva, estos sistemas
requieren que los usuarios se registren para poder estudiar sus gustos en funcion de su
comportamiento y su perfil. El problema reside en que los usuarios suelen ser bastan-
te reticentes a dar informacion personal o a interactuar con los sistemas; por tanto, los
sistemas de recomendacion no pueden hacer buenas recomendaciones sino tienen retroali-
mentacion por parte del usuario; por el contrario, si el usuario colabora con el sistema,
este le podra ofrecer un contenido muy personalizado y concreto, frente a lo que le pueda
ofrecer un buscador.
Los sistemas de recomendacion que se basan en tecnicas de filtrado, intentan reducir
la cantidad de informacion disponible para los usuarios. Podemos considerar los siguientes
procedimientos para la formulacion de recomendaciones:
Basados en Datos: Las recomendaciones se calculan teniendo en cuenta la infor-
macion sobre los usuarios (edad, genero, profesion, etc.) o sobre la descripcion textual
de los ıtems (peliculas, libros, viajes, etc.), especificando algun tipo de caracterıstica
Autor: Ricardo Moya Garcıa 19
2 ESTADO DEL ARTE
de los mismos (reparto de una pelıcula, genero de un libro, etc).
Basados en Votaciones: Este tipo de sistema de recomendacion (basado en filtrado
colaborativo) realiza las recomendaciones teniendo en cuenta solo las valoraciones que
los usuarios han realizado sobre los ıtems. Hasta la fecha este tipo de filtrado es el
que mejores resultados obtiene a la hora de realizar recomendaciones.
Para las distintas tecnicas de filtrado expuestas, las tendencias en la investigacion de
los sistemas de recomendacion han ido muy encaminadas en la mejora de la precision y
la calidad en las recomendaciones pero ha habido un area que no ha sido estudiada en
profundidad como es el tema de la visualizacion de los sistemas de recomendacion y es
que los sistemas de recomendacion comerciales muestran un conjunto muy pequeno de
los ıtems y lo suelen hacer en formatos muy triviales como listas, tablas, etc. Por otro
lado no justifican las recomendaciones realizadas para que el usuario pueda decidir si la
recomendacion puede ser correcta o no.
2.2. Sistemas de recomendacion comerciales
Hoy en dıa los sistemas de recomendacion estan presentes en numerosas paginas de
Internet para ofrecer a los usuarios un contenido mas personalizado, bien sea porque
el sistema estudia sus gustos o porque hace un estudio conjunto de los gustos y com-
portamientos de todos los usuarios. Buscadores como “Google” ya no solo actuan como
buscadores tradicionales, sino que al hacer una busqueda ofrecen (a parte del contenido
que se busca) informacion adicional que pueda ser de interes. Un ejemplo de esto lo pode-
mos ver al buscar informacion sobre la conocida serie “The Big Bang Theory”, que no solo
muestra informacion relativa a la serie (reparto, noticias, etc), sino que muestra tambien
otras series de television que buscaron los usuarios de Google al hacer esta busqueda:
20 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
2 ESTADO DEL ARTE
Figura 2: Ejemplo de busqueda en Google, con recomendacion
Otras paginas de venta Online; como “Amazon”, tambien ofrecen recomendaciones
de productos, estudiando el comportamiento de los usuarios en su web. Amazon fue pio-
nera en incluir un SR en una pagina web comercial. Esta web registra el comportamiento
que tiene el usuario a la hora de navegar y de comprar productos y comparandolo con
el comportamiento que tienen otros usuarios, es capaz de realizar recomendaciones per-
sonalizadas sobre productos que puedan ser del interes del usuario. De la misma forma
es capaz de hacer recomendaciones de productos sin que el usuario este registrado en su
web, estudiando el comportamiento que tienen los usuarios en su web. Evidentemente las
recomendaciones que haga a usuarios no registrados no seran tan buenas como las que
hace a usuarios registrados, ya que conoce sus gustos.
Autor: Ricardo Moya Garcıa 21
2 ESTADO DEL ARTE
Figura 3: Ejemplo de recomendacion en la web de Amazon
No solo los sistemas de recomendacion comerciales se centran en la venta de pro-
ductos, sino que son muy habituales los sistemas de recomendacion que recomiendan
contenido. Una de las webs mas conocidas sobre contenido de vıdeos es “YouTube” que
tiene integrado un sistema de recomendacion que permite recomendar vıdeos en funcion
de los gustos que tenga el usuario registrado o recomendar vıdeos similares en funcion
del vıdeo que este viendo el usuario, bien sea porque las descripciones de los vıdeos son
similares o porque los usuarios que ven un determinado vıdeo, navegan hacia otros vıdeos.
Un ejemplo de recomendacion lo vemos en la siguiente imagen:
Figura 4: Ejemplo de recomendacion de vıdeos en YouTube
22 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
2 ESTADO DEL ARTE
Otro ejemplo de recomendacion de artıculos de webs y blogs, lo tenemos en la web
de “Docusapiens.com” que es una web capaz de hacer un estudio del contenido de los
artıculos y relacionarlos entre sı, para que el usuario pueda ir navegando por artıculos de
similar contenido (ver figura 5), recomendando los artıculos que van apareciendo en la
navegacion:
Figura 5: Recomendacion de artıculos de webs y blogs en Docusapiens.com
Hasta la fecha son muchas las webs que han incluido un sistema de recomendacion,
aunque las recomendaciones las hagan haciendo un estudio del comportamiento del con-
junto de los usuarios o haciendo un estudio de la descripcion de los ıtems que recomiendan.
Los sistemas de recomendacion que mejores resultado proporcionan son aquellos en
los que los usuarios deben de votar los ıtems que el sistema ofrece y en funcion de las
votaciones de otros usuarios, el sistema es capaz de ver que usuarios son similares en gustos
(por medio de los votos emitidos) al usuario al que se le ha de recomendar (usuario activo)
y comprobar que ıtems les han gustado a los usuarios similares y no ha votado el usuario
activo. A este tipo de sistema de recomendacion se le denomina sistema de recomendacion
basado en filtrado colaborativo y un ejemplo de este tipo de sistema de recomendacion lo
tenemos en la web de “FilmAffinity” que es una web de recomendacion de pelıculas, series,
cortometrajes, etc. Esta web por tanto, comprueba que usuarios (a estos usuarios los llama
“almas gemelas”) han realizado unas votaciones similares al usuario activo y recomienda
Autor: Ricardo Moya Garcıa 23
2 ESTADO DEL ARTE
los ıtems que las almas gemelas han valorado positivamente y el usuario activo no ha
valorado. Un ejemplo de esa recomendacion lo vemos en la siguiente imagen:
Figura 6: Recomendacion de pelıculas en Filmaffinity
Otra web similar a Filmaffinity es “Lastfm” que recomienda contenido musical a
traves de un filtrado colaborativo, con la diferencia de que en vez de comparar a los
usuarios por las votaciones que hacen sobre las canciones, lo hace por el numero de veces
que el usuario escucha las canciones en su web.
Figura 7: Recomendacion de musica en Lastfm
Podıamos seguir poniendo muchos ejemplos mas sobres webs comerciales que tienen
24 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
2 ESTADO DEL ARTE
implantados sistemas de recomendacion (Netflix, MovieLens, Pandora, Reddit, etc.), pero
al final todas ellas recomiendan con tecnicas similares a las expuestas en este punto.
2.3. Tendencias en la investigacion de los sistemas de recomendacion
Los sistemas de recomendacion empezaron a surgir para evitar el denominado “pro-
blema de la sobrecarga de informacion” cuando Internet empezo a ser utilizado por mucha
gente. Desde entonces se abrio un nuevo campo de investigacion; en el area de la inteligen-
cia artificial, para presentar y formalizar los sistemas de recomendacion. Desde entonces
han sido muchas las mejoras propuesta en este campo.
Las investigaciones en torno a los SR comenzaron a realizarse en los inicios de la web,
tomando como datos para realizar las recomendaciones la informacion de perfil y los votos
explıcitos de los usuarios, las descripciones de los ıtems, etc. Los SR tenıan la finalidad de
filtrar la informacion que habıa en la red, de ahi que es habitual que al SR se le denomine
”filtro”debido a que actua como tal. Actualmente se clasifican los SR en cuatro tipos que
son los siguientes [2][64][20]:
Filtrado basado en contenido[5]: Las recomendaciones que se realizan al usuario
se basa en el conocimiento que se tiene de los ıtems.
Filtrado demografico [47]: Las recomendaciones que se realizan al usuario acti-
vo, se realizan comparando los gustos de otros usuarios que comparten edad, sexo,
situacion geografica, profesion, etc.
Filtrado colaborativo [34]: Los datos de los usuarios y los ıtems son almacenados
en una base de datos que contienen las votaciones de un gran numero de usuarios
sobre un gran numero de ıtems (pelıculas, libros, viajes, etc.). El filtrado colabora-
tivo consiste en ver que usuarios son similares al usuario activo y a continuacion,
recomendar aquellos ıtems que no han sido votados por el usuario activo y que han
resultado bien valorados por los usuarios similares. Este tipo de filtrado es el que
Autor: Ricardo Moya Garcıa 25
2 ESTADO DEL ARTE
mejores resultados obtiene.
Metodos de filtrado hıbridos [3][18][20][27]: los metodos hıbridos mezclan alguno
de los tres filtrados mencionados anteriormente.
Las primeras investigaciones se centraron en mejorar la precision de las recomenda-
ciones [34] [61] con el estudio de nuevas medidas de evaluacion, que permitieron poner
a prueba y mejorar paulatinamente las recomendaciones proporcionadas por los SR [19].
Webs comerciales como Netflix, MovieLens, LastFm, Jester, Bookcrossing, Delicious, etc.
ayudaron a comunidad investigadora a la mejora de los sistemas de recomendacion, pu-
blicando parte de sus bases de datos para que los investigadores tuviesen un nexo comun
y pudiesen comparar los resultados de sus investigaciones.
Las investigaciones se centraron mucho al principio en la mejora de la precision de los
resultados [30] [17], pero con el paso del tiempo las investigaciones tambien empezaron a
estudiar temas como el coverage, el precision y el recall (ver punto 3.2.3) que son medidas
relacionadas con la calidad de las recomendaciones.
Otro tema muy importantes a resolver en area de los SR; principalmente en el FC
aunque tambien afecta a los otros tipo de filtrado, es el conocido “Cold-Start” o arranque
en frıo [48][62], que es una situacion que se da en los SR cuando se tienen pocos datos de
entrenamiento para poder hacer recomendaciones correctas.
Actualmente existe un interes creciente por obtener algoritmos que proporcionen re-
comendaciones diversas y novedosas, incluso a costa de reducir los niveles de precision
en las recomendaciones. Con el fin de evaluar estos aspectos, se han propuesto diversas
metricas que obtienen el valor de lo que han denominado “novelty” y “diversity” de las
recomendaciones [42] [68].
En base a todas estas lineas de investigacion, se han propuesto frameworks que ayudan
a definir y estandarizar los metodos y algoritmos empleados en los sistemas de recomenda-
26 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
2 ESTADO DEL ARTE
cion, ası como los mecanismos de evaluacion de calidad de sus resultados (MAE, coverage,
precision/recall, novelty, reliability, trust, etc.) [33] [39] [46] [6] [12].
Otra area abierta y bastante interesante de los sistemas de recomendacion, es la
recomendacion a grupos de usuarios, los cuales pueden tener gustos dispares y puede ser
complejo el proceso de recomendacion. Algunos de los estudios propuestos para realizar
este tipo de recomendaciones, proponen diferente algoritmos [9] [28] [23] [7] [13] [4] para
la recomendacion a grupos.
2.4. Tendencias futuras
Estudiando la evolucion de los sistemas de recomendacion y de los artıculos de in-
vestigacion [14], se aprecia una clara tendencia a recopilar e integrar cada vez mas tipos
diferentes de datos. Esta tendencia corre paralela a la propia evolucion de la web, donde
podrıamos establecer tres etapas principales:
1. Inicio de la web: Los Sistemas de recomendacion se nutrıan unicamente de los
votos explıcitos de los usuarios, de su perfil y las descripciones o informacion que
incluıan los propios sistemas de recomendacion.
2. Web 2.0: Ademas de la informacion expuesta, los sistemas de recomendacion recopi-
lan y utilizan informacion de redes sociales como: amigos, followers, etc. simultanea-
mente, los usuarios participan colaborativamente en blogs, redes sociales, etc.
3. Web 3.0: A la informacion anterior se incorpora el “context-aware” proveniente de
una gran variedad de dispositivos y sensores de captura de datos. Ahora predomina la
ubicuidad, pero la tendencia prevista es la incorporacion paulatina de informaciones
tales como: datos de identificacion de frecuencia de radio (RFID), datos de vigilan-
cia, parametros de salud online, compras de alimentos y habitos, teleoperaciones,
telepresencia, etc.
Autor: Ricardo Moya Garcıa 27
2 ESTADO DEL ARTE
Tambien existe una clara tendencia hacia la recopilacion implıcita de informacion, en
lugar de la tradicional valoracion explıcita de ıtems mediante votos. Last.Fm es un buen
ejemplo de esta situacion: las valoraciones de los usuarios se infieren a traves del numero
de veces que han escuchado cada cancion. Lo mismo se podra hacer en una gran cantidad
de situaciones cotidianas: acceso a direcciones web, utilizacion de los diversos transportes
publicos, alimentos adquiridos, accesos a instalaciones deportivas, acceso a recursos de
aprendizaje, etc.
La incorporacion de informacion implıcita acerca de las costumbres cotidianas de los
usuarios permitira a los sistemas de recomendacion hacer uso de una gran variedad de
datos; estos datos seran utilizados como base para futuros procesos de filtrado colaborativo
cada vez mas utiles y precisos. Las consideraciones de privacidad y seguridad cobraran una
creciente importancia a medida que se vaya generalizando el uso consentido de dispositivos
y sensores situados en el ambito del Internet of Things (IoT).
La paulatina incorporacion de los diferentes tipos de informacion (votos, relaciones
sociales, informacion de los usuarios, localizacion, tendencias de uso, etc.) estan forzando
la utilizacion se sistemas de recomendacion hıbridos.
Las ultimas investigaciones en el campo del filtrado colaborativo, consiguen mejoras
modestas de los resultados de predicciones y recomendaciones cuando se maneja un solo
tipo de informacion (cuando unicamente se utilizan los votos de los usuarios, cuando solo
se hace uso de la informacion del perfil de los usuarios, cuando se acude unicamente al
contenido de los ıtems, etc.). Los resultados mejoran en mayor medida cuando se combinan
diversos algoritmos de filtrado colaborativo aplicados a sus respectivos tipos de datos.
Existe un numero creciente de publicaciones que abordan metodo hıbridos haciendo uso
de las bases de datos que incorporan, simultaneamente, votos, e informacion de los ıtems
y usuarios.
28 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
3. SISTEMAS DE RECOMENDACION
Un sistema de recomendacion es un sistema inteligente que proporciona a los usuarios
una serie de sugerencias personalizadas (recomendaciones) sobre un determinado tipo de
elementos (ıtems). Los sistemas de recomendacion estudian las caracterısticas de cada
usuario y mediante un procesamiento de los datos, encuentran un subconjunto de ıtems
que pueden resultar de interes para el usuario.
Figura 8: Esquema general de un sistema de recomendacion
La forma en la que se realizaran las recomendaciones puede variar mucho en funcion
de que es lo que se quiera recomendar en un sistema de recomendacion. No obstante, todos
los sistemas de recomendacion deben de tener en comun las siguientes caracterısticas[2]
[21]:
1. Existe un conjunto de usuarios a los que realizar recomendaciones. Sobre
estos usuarios se puede tener la informacion que el sistemas de recomendacion necesite
tener, como nombre, edad, sexo, etc.
2. Se dispone de un conjunto de ıtems que se quiere recomendar. Los ıtems
a recomendar pueden diferir mucho entre cada sistema (libros, musica, pelıculas,
Autor: Ricardo Moya Garcıa 29
3 SISTEMAS DE RECOMENDACION
viajes, etc).
3. Se tienen registrados las valoraciones que realizan los usuarios sobre
los ıtems. La forma en la que los usuarios valoran los ıtems puede ser implıcita (el
usuario es monitorizado y se evaluan los ıtems en funcion de su comportamiento) o
explıcita (el usuario decide que ıtems valorar).
De forma adicional y dependiendo del sistema de recomendacion, el sistema puede
tener registrada mas informacion sobre los usuarios y los ıtems para llevar a cabo el
proceso de recomendacion.
El funcionamiento de los sistemas de recomendacion puede variar en funcion del ti-
po de ıtems que se quiera recomendar y de la forma en la que tanto los ıtems como las
preferencias de los usuarios son almacenadas. Por tanto, los sistemas de recomendacion
emplean diferentes mecanismos para recomendar los ıtems a los usuarios. Es habitual que
al sistema de recomendacion se le denomine “filtro” debido a que actua como tal. Actual-
mente se clasifican los sistemas de recomendacion en cuatro tipos que son los siguientes
[2][64][20]:
Figura 9: Clasificacion de los sistemas de recomendacion
1. Filtrado basado en contenido [5]: las recomendaciones que se realizan al usuario
se basa en el conocimiento que se tiene de los ıtems que el usuario ha valorado en
el pasado. Un ejemplo de este tipo de filtrado podrıa ser la recomendacion de un
30 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
determinado libro de ciencia ficcion (que el usuario no haya leıdo), debido a que el
usuario ha votado de forma positiva un libro de ese genero que previamente ha leıdo.
2. Filtrado demografico [47]: las recomendaciones que se realizan al usuario activo,
se realizan comparando las valoraciones positivas de otros usuarios que comparten
edad, sexo, situacion geografica, profesion, etc. con el usuario activo. En este tipo de
filtrado se presupone que usuarios con caracterısticas sociales similares comparten
las preferencias sobre los ıtems a recomendar.
3. Filtrado colaborativo [2][64][34]: los datos de los usuarios y los ıtems son alma-
cenados en una base de datos que contienen las votaciones de un gran numero de
usuarios sobre un gran numero de ıtems (peliculas, libros, viajes, etc.). El filtrado
colaborativo consiste en ver que usuarios son similares al usuario activo y a conti-
nuacion, recomendar aquellos ıtems que no han sido votados por el usuario activo y
que han resultado bien valorados por los usuarios similares.
4. Metodos de filtrado hıbridos [3][18][20][27]: los metodos hıbridos mezclan alguno
de los tres filtrados mencionados anteriormente. Por lo general se suele mezclar el
filtrado basado en contenidos o el filtrado demografico con el filtrado colaborativo.
Con los metodos hıbridos podemos realizar recomendaciones en base a un conjunto
mas amplio de informacion y ademas manejar las situaciones de cold-star [48][62] en
las que es difıcil realizar las recomendaciones con la tecnica del filtrado colaborativo
debido a que la base de datos de las votaciones es pequena.
Generalmente el filtrado colaborativo obtiene mejores resultados que el resto de sis-
temas de filtrado descritos [20] por lo que su uso es el mas extendido tanto en el mundo
de la investigacion como en los sistemas comerciales. El problema que tiene el filtrado
colaborativo es que necesita tener una base de datos relativamente grande para poder
buscar usuarios similares y realizar las recomendaciones [34]. Generalmente un sistema
de recomendacion tendra almacenado en la base de datos decenas de miles de usuarios y
miles de ıtems los cuales tendran millones de votaciones realizadas por los usuarios sobre
Autor: Ricardo Moya Garcıa 31
3 SISTEMAS DE RECOMENDACION
los ıtems. Por otro lado se ha de tener en cuenta que un usuario unicamente vota un
pequeno subconjunto de los ıtems que hay registrados en la base de datos, por lo que
las matrices de votaciones entre usuarios e ıtems tendran un elevado grado de dispersion
[65][57], lo cual supone un problema para el filtrado colaborativo.
En este capıtulo 3 vamos a explicar algunas de las tecnicas mas importantes del
filtrado basado en contenido (capıtulo 3.1) y del filtrado colaborativo (capitulo 3.2) que
podran ser aplicadas en la generacion de mapas graficos para la visualizacion de relaciones
en los sistemas de recomendacion. Tambien hablaremos en el capıtulo 3.3 sobre los otros
tipos de sistemas de recomendacion aunque la aplicacion de estos para la generacion de
mapas graficos no sea tan intuitiva como en el caso de los SR basados en contenido y en
FC.
3.1. Sistemas de Recomendacion basados en contenido
Los sistemas de recomendacion basados en contenido [60] (filtrado basado en conteni-
do) son aquellos que realizan las recomendaciones basandose en el conocimiento (o en el
contenido de la descripcion) que se tienen sobre los ıtems que el usuario ha valorado en el
pasado. Para este tipo de filtrado se debe hacer un analisis del contenido de los ıtems y en
funcion de ese analisis, recomendar al usuario aquellos ıtems con caracterısticas similares
a los ıtems que el usuario ha valorado positivamente (informacion explicita) o aquellos
ıtems que suponemos que al usuario le gustan por la informacion que podemos obtener de
el (informacion implıcita) como su comportamiento a la hora de navegar por una pagina
web, etc.
En otras palabras, este tipo de filtrado debe de extraer las caracterısticas de los ıtems
que no conoce el usuario al que se le ha de recomendar y compararlas con las caracterısticas
de los ıtems que el usuario conoce y ha valorado. Un ejemplo de este tipo de filtrado seria
recomendar a un usuario un libro de un determinado genero o de un determinado autor
que no ha leıdo y que sabemos que ha valorado positivamente un libro de ese genero o
32 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
autor, al igual que se le podıan recomendar pelıculas o series de un determinado genero o
director.
Las ventajas que presentan los SR basados en contenido son la de no necesitar que
los usuarios voten los ıtems para realizar las recomendaciones y por tanto no sufren el
problema del “cold-start” tal y como sucede en los SR basados en FC cuando se tienen
pocas votaciones.
La desventaja mayor que presenta estos sistemas de recomendacion son las de no
proporcionar recomendaciones utiles para los usuarios ya que las recomendaciones que
proporcionan son demasiado obvias para el usuario, como por ejemplo recomendar libros
de un mismo autor o continuaciones de pelıculas como por ejemplo “El Padrino” o “El
Padrino II”.
En el FBC cada ıtem puede estar definido por un vector de “n” caracterısticas
(x1, ..., xn) que lo describe, como por ejemplo la tematica de un artıculo periodıstico
(deporte, polıtica, economıa, ...), el genero de una pelıcula (accion, comedia, terror, ...),
etc. Estas caracterısticas pueden estar definidas por un humano experto en el conteni-
do que ofrece el sistema recomendador. Por ejemplo en un sistema de recomendacion de
pelıculas, cada pelıcula podıa estar descrita por un vector de caracterısticas (x1, x2, x3, x4)
en la que cada componente indica la cantidad de accion (x1), comedia (x2), violencia (x3)
y terror (x4) que contiene esa pelıcula. Tambien podrıamos considerar componentes no
numericas, como el director de la pelıcula, los actores, etc.
No obstante, es mucho mas interesante en este tipo de sistemas de recomendacion,
aquellos que son capaces de reconocer las caracterısticas de estos sin tener que decirlas
explıcitamente, de modo que estas se obtienen automaticamente por un algoritmo a partir
de una descripcion textual de cada ıtem.
En los siguientes puntos de este trabajo vamos a ver algunas de las tecnicas (o al-
goritmos) mas importantes del FBC que nos permitiran obtener automaticamente las
Autor: Ricardo Moya Garcıa 33
3 SISTEMAS DE RECOMENDACION
caracterısticas de los ıtems. Estas tecnicas tendran dos enfoques; uno probabilıstico y
otro no probabilıstico. Las tecnicas no probabilısticas (o modelos discriminativos) que
vamos a ver son el LSI y los SR basados en vectores de palabras, que tienen como finalidad
generar un modelo aprendiendo directamente de los datos de entrenamiento. Por otro lado
las tecnicas probabilisticas (o modelos generativos) que vamos a ver son el PLSI y el
LDA, que son tecnicas que van creando el modelo a traves de un proceso de generacion
de los datos de entrenamiento.
Otra tecnica no probabilıstica que puede ser utilizada para obtener las caracterısticas
de los ıtems es el “TF-IDF ” (Term frequency – Inverse document frequency), aunque
este algoritmo tiene una mayor aplicacion en el campo de la recuperacion de informacion
(Information Retrieval) y la minerıa de datos (Data Mining). Esta tecnica (aplicada a los
SR) ofrece una medida que expresa cuanto de relevante es una palabra en la descripcion
de un ıtem del SR. Para calcular esa relevancia, mide por un lado la frecuencia de una
palabra (TF) en la descripcion de un ıtem y por otro lado mide la frecuencia inversa de
documento (IDF); es decir, la frecuencia de aparicion de esa palabra en las descripciones
de todos los ıtems de SR. De esta forma se puede otorgar un peso a cada palabra de
la descripcion de un ıtem y de esta forma hacer una comparacion entre ıtems. Al ser
el TF-IDF una medida aplicada sobre todo por los motores de busqueda para medir la
importancia de un documento en funcion de una consulta, no se va a explicar en detalle
en este trabajo, aunque si deber ser mencionada ya que es una tecnica que tiene cabida
en el campo de los SR basados en FBC.
Para ver el funcionamiento de las tecnicas mencionadas (SR basados en vectores
de palabras, LSI, PLSI y LDA) vamos a considerar el siguiente ejemplo (ver tabla 1).
Consideremos un sistema de recomendacion con ıtems (por ejemplo artıculos periodısticos)
que estan descritos por 15 posibles terminos. El numero de terminos que aparece en cada
ıtem esta reflejado en la siguiente tabla:
34 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
Balon 3 · 2 · · · · · · · ·Futbol 2 6 8 · · · · · · 1 1Liga 3 · · · · · · · · · 1CR7 6 7 · · · · · · · · ·Messi 1 2 5 · · · · · · · ·
Polıtica · · · 4 4 4 · · · 1 1PP · · · 6 3 · · · 1 · ·
PSOE · · · · 4 6 · · 1 · ·ZP · · · · 3 5 · 1 1 · 1
Rajoy · · · 5 1 · · 1 1 · 1Dinero · · · · · · 1 4 4 · ·FMI · · · · · · 5 4 4 · ·UE · · · · · · 4 4 3 · ·PIB · · · · · · 3 1 · 1 ·Ibex · · · · · · 2 · · · ·
Tabla 1: Ejemplo de matriz con el numero de apariciones de palabras en ıtems
De esta forma representamos a cada ıtem con el numero de veces que aparecen escritas
las palabras (en este caso las palabras relevantes del ıtem); por ejemplo, vemos que en el
ıtem “I2” aparece 6 veces la palabra Futbol, 7 veces la palabra CR7 y 2 veces la palabra
Messi. De la misma forma podemos ver que en el ıtem “I6” aparece 4 veces la palabra
Polıtica, 6 veces la palabra PSOE y 5 veces la palabra ZP.
Vista esta distribucion de palabras, cualquier humano experto sabrıa que estos ıtems
hablan sobre los temas de Futbol, Polıtica y Economıa; por tanto, podrıamos decir que el
vector de caracterısticas (x1, x2, x3) para este sistema recomendador serian las tematicas
descritas (x1 = Futbol, x2 = Polıtica, x3 = Economıa). Ademas cualquier humano experto
sabrıa asignar; en funcion del numero de apariciones de las palabras, un porcentaje de
pertenencia de cada ıtem a cada tematica. Por ejemplo el ıtem “I1” se ve claramente que
pertenece a la tematica de futbol (1, 0, 0), el ıtem “I5” pertenece a la tematica de polıtica
(0, 1, 0), y el ıtem “I9” se ve que pertenece en mayor parte a la tematica de economıa pero
tambien habla de polıtica, por lo tanto haciendo una regla de tres, podrıamos decir que
el ıtem “I9” tendrıa el siguiente vector de caracterısticas (0,0.27,0.73). En base a estos
vectores de caracterıstica podrıamos determinar que ıtems son similares a un ıtem dado
y poder recomendar en funcion de esa similaridad.
Autor: Ricardo Moya Garcıa 35
3 SISTEMAS DE RECOMENDACION
Este es un ejemplo muy sencillo en el que haciendo la labor de “experto” podemos
caracterizar a los ıtems y ver las similaridades entre ellos en funcion de sus caracterısti-
cas. En los siguiente puntos de este trabajo vamos a explicar las tecnicas (o algoritmos)
mas importantes del FBC para que de forma automatica hagan la labor de “experto” y
caractericen a los ıtems para poder ver la similaridad entre ellos y poder recomendarlos.
Para mostrar un ejemplo de cada una de estas tecnicas utilizaremos el ejemplo mostrado
anteriormente (ver tabla 1).
3.1.1. Sistemas de Recomendacion basados en vectores de palabras
Una de las primeras aproximaciones que se pueden hacer a la hora de recomendar
ıtems basandonos en su contenido o descripcion, es ver la similaridad que tienen esos
ıtems en funcion del contenido o las palabras que lo describen. Para hacer un calculo
correcto de esta similaridad entre ıtems, se debe hacer primero un preprocesamiento de la
descripcion, eliminando las palabras que no aportan nada de informacion sobre los ıtems
como por ejemplo, las preposiciones, artıculos, determinantes, conjunciones, pronombres,
adverbios, verbos copulativos, verbos predicativos, etc. y trasformar las palabras que esten
puestas con diminutivos, plurales, etc. a su palabra raız; como por ejemplo trasformar las
palabras “deportes” o “dinerillo” a “deporte” y “dinero” respectivamente. De esta forma
conseguimos transformar el contenido de los ıtems a vectores de palabras que contienen
el numero de apariciones de cada palabra “relevante” de su descripcion, tal y como se
muestra en el ejemplo de la tabla 1.
Una vez que se ha procesado el contenido de los ıtems y se ha trasformado cada ıtem
a un vector de palabras, ya podemos hacer recomendaciones en base a su contenido ha-
ciendo un simple calculo de distancias entre cada par de vectores, para ver la similaridad
entre ellos. Para hacer este calculo de distancias entre vectores, podemos utilizar cual-
quier metrica que calcule distancias como por ejemplo la distancia euclidea, el coseno, la
correlacion de Pearson, etc.
36 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
La primera aproximacion que podemos hacer es calcular la distancia euclidea (por ser
la mas simple y conocida) entre cada par de vectores de palabras. La distancia euclidea
se define como:
diste(x, y) =
√√√√ n∑i=1
(xi − yi)2 (1)
Al tener distancia igual a cero dos vectores de palabras iguales, definiremos la distancia
de un vector de palabras con el mismo de la siguiente forma:
dis(x, y) = • cuando x = y. (2)
Para el calculo de distancias entre vectores se verifica la propiedad conmutativa, por
lo que dado el vector de palabras x y el vector de palabras y se cumple:
dist(x, y) = dist(y, x) (3)
Si calculamos la distancia euclidea entre cada par de vectores de palabras de la tabla
de ejemplo (ver tabla 1) que representan a cada ıtem obtenemos los siguientes valores
de similaridad que mostramos en la tabla 2. Dado que la distancia entre dos vectores
cumple la propiedad conmutativa (sim(I1, I2) = sim(I2, I1)), la matriz de similaridades
resultante es simetrica, por tanto solo mostramos la matriz triangular superior:
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
I1 • 6 9.9 11.7 10.5 11.7 10.7 10.5 10.2 7.6 7.3I2 • 8.1 12.9 11.8 12.9 12 11.8 11.6 8.9 9.1I3 • 13 12 13 12.2 12 11.7 8.9 9.1I4 • 7.1 11 11.5 10.9 10 8.5 8I5 • 4.2 10.3 9.7 8.6 6.8 6.3I6 • 11.5 10.9 10 8.5 8I7 • 4.5 5.3 7.2 7.7I8 • 2 7.2 7.2I9 • 6.9 6.8I10 • 2I11 •
Tabla 2: Similaridades entre ıtems utilizando la distancia euclidea
Una vez calculadas las distancias entre cada par de vectores de palabras, podemos
Autor: Ricardo Moya Garcıa 37
3 SISTEMAS DE RECOMENDACION
ver que ıtems son mas similares a un ıtem dado. En el ejemplo propuesto en la tabla
1 podemos ver como los ıtems que hemos definido a priori como similares (haciendo
la labor de “experto”) tienen similaridades bajas (sim(I1, I2) = 6, sim(I5, I6) = 4.2,
sim(I8, I9) = 2, etc.); mientras que los ıtems que hemos definido como no similares
(es decir los que hablan de temas distintos como futbol, polıtica y economıa) tienen
similaridades altas (sim(I2, I4) = 12.9, sim(I3, I6) = 13, etc.).
Con esta primera aproximacion del calculo de distancias entre vectores de palabras
con la metrica de la distancia euclidea, podemos recomendar aquellos ıtems que tienen
similaridades mas bajas respecto a un ıtem dado. Por ejemplo; si a un usuario le ha
gustado el ıtem I1, le recomendarıamos el ıtem I2 ya que es el ıtem mas similar o cercano
a el y posteriormente le tendrıamos que recomendar el ıtem I11. Puesto este ejemplo de
recomendacion del ıtem I1, vimos que haciendo la labor de “experto”, recomendarıamos
antes el ıtem I3 que el ıtem I11, ya que parece a priori que por su contenido es mas similar
el ıtem I3 (que solo habla de futbol) que el ıtem I11 (que habla de futbol y de polıtica),
al contener el ıtem I3 mas palabras comunes que el ıtem I11 como vemos a continuacion:
Balon Futbol Liga CR7 Messi Polıtica ZP Rajoy
I1 3 2 3 6 1 · · ·I3 2 8 · · 5 · · ·I11 · 1 1 · · 1 1 1
Tabla 3: Numero de apariciones de palabras de los ıtem I1, I3 e I11
En resumen, vemos que la metrica de la distancia euclidea no se ajusta muy bien
a los resultados que queremos obtener para el calculo de similaridades entre vectores de
palabras ya que es una metrica muy simple, y aunque como primera aproximacion no
esta mal, no es la metrica ideal para aplicar en este tipo de sistema de recomendacion.
Una de las metricas mas apropiadas para utilizar en el calculo de vectores de palabras
es la metrica del coseno mide el angulo que hay entre dos puntos. La metrica de
38 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
similaridad del coseno se define como:
simcos(x, y) = Cos(Θ) =x · y‖x‖ · ‖y‖
=
n∑i=1
xi · yi√n∑
i=1
x2i ·√
n∑i=1
y2i
∈ [0, 1] (4)
Esta metrica de similaridad tambien cumple la propiedad conmutativa y tambien
definiremos con el simbolo “•” a la similaridad que hay entre un ıtem con el mismo ya
que el coseno de un ıtem con el mismo forma un angulo de cero grado y el coseno de “0”
da como resultado “1”. En el caso de la metrica del coseno, cuanto mas cercano a “1” es
el resultado del coseno entre dos ıtems, mas similares son.
A continuacion mostramos la matriz de similaridades entre ıtems, utilizando la metri-
ca del coseno y tomando como datos el ejemplo propuesto en la tabla 1.
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
I1 • 0.77 0.36 0 0 0 0 0 0 0.15 0.29I2 • 0.64 0 0 0 0 0 0 0.37 0.28I3 • 0 0 0 0 0 0 0.48 0.37I4 • 0.62 0.21 0 0.08 0.19 0.26 0.46I5 • 0.88 0 0.08 0.23 0.32 0.5I6 • 0 0.08 0.19 0.26 0.46I7 • 0.81 0.72 0.23 0I8 • 0.96 0.08 0.13I9 • 0 0.13I10 • 0.52I11 •
Tabla 4: Similaridades entre ıtems utilizando la metrica del coseno
Utilizando la metrica del coseno, vemos que los resultados obtenidos son mas cohe-
rentes y se acercan mas a los resultados propuestos en un principio haciendo la labor de
“experto”.
Vemos por ejemplo como la similaridad entre ıtems que no tienen ninguna palabra
en comun (por ejemplo el ıtem I1 con el ıtem I4), tienen una similaridad de cero. Este
resultado es muy coherente ya que dos ıtems que no tienen ninguna palabra en comun no
Autor: Ricardo Moya Garcıa 39
3 SISTEMAS DE RECOMENDACION
tienen porque parecerse en nada.
Por otro lado vemos que ahora sı, el ıtem I3 es mas similar que el ıtem I11 sobre el
ıtem I1; ya que el ıtem I1 y el ıtem I3 hablan de la misma tematica (el futbol), mientras
que el ıtem I1 y el ıtem I11 tienen una tematica compartida (la tematica del futbol),
pero difieren en una segunda tematica (la tematica de polıtica), por tanto el resultado
obtenido es mas coherente que el obtenido con la metrica de la distancia euclidea.
Esta es una demostracion de porque la metrica del coseno es la mas apropiada para el
calculo de similaridades entre vectores, ya que es la unica que tiene en cuenta el modulo
que forma el vector de palabras y lo normaliza. En realidad cualquier metrica que calcule
distancias entre vectores podrıa funcionar tan bien como la metrica del coseno siempre y
cuando se normalicen previamente los vectores de palabras para que la similaridad entre
los ıtems no dependa del numero de palabras de los ıtems, sino del contenido que tienen
en comun los ıtems.
3.1.2. Sistemas de Recomendacion basados en LSI
El LSI [25] es una tecnica de factorizacion de matrices que se basa en la tecnica ma-
tematica del SVD (Singular Value Descomposition) y que tiene como finalidad extraer una
serie de factores latentes que caracterizan a cada una de las palabras y de los documentos
que describen a los ıtems que se han de recomendar. El objetivo de esta tecnica es extraer
esos factores latentes para poder comparar unos ıtems con otros y ver su similaridad (en
base a esos factores latentes), para posteriormente poder recomendar aquellos ıtems que
son similares por su descripcion a un ıtem dado.
El LSI descompone una matriz A que esta formada por el numero de apariciones de
cada palabra en cada documento (tal y como se ha reflejado en el ejemplo de la tabla
1); es decir, una matriz cuyas filas son las palabras y sus columnas los documentos. Esta
matriz A la descompone en tres matrices U , S y V cuyo producto matricial es igual a la
40 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
matriz original A.
SV D(A) = U × S × V t (5)
Cada una de estas matrices tiene la siguiente informacion:
U: La matriz U contiene los valores de los factores latentes de las palabras.
V: La matriz V contiene los valores de los factores latentes de los documentos.
S: La matriz S es una matriz en cuya diagonal estan los llamados valores singulares
que son decrecientes y no negativos. Esta matriz representa la importancia que tiene
cada uno de los factores latentes de las palabras y de los documentos.
Respecto a las dimensiones de las matrices tenemos que la matriz A va a tener unas
dimensiones de (n ×m) es decir n filas (n palabras) y m columnas (m documentos). La
matriz U va a tener dimension (n×n), la matriz S tendra dimension (n×m) y por ultimo
la matriz V tendra dimension (m×m). Al ser V una matriz cuadrada las dimensiones de
la matriz traspuesta seran las mismas que la matriz original. A continuacion mostramos
(6) como serian las dimensiones de las matrices para esta descomposicion:
SV D(A)n×m = Un×n × Sn×m × V tm×m (6)
Las matrices U y V han de cumplir las siguientes propiedades (7) (8) respectivamente:
U t × U = U × U t = In×n (7)
V t × V = V × V t = Im×m (8)
Por otro lado la matriz S (9) ha de ser una matriz diagonal, la cual tendra en su
diagonal lo que se denominan Valores Singulares, y estos han de estar puestos en orden
decreciente (y tendran siempre valores mayores o iguales a cero), es decir que la matriz S
Autor: Ricardo Moya Garcıa 41
3 SISTEMAS DE RECOMENDACION
tendra la siguiente forma:
S =
λ1 0 · · · 0
0 λ2...
.... . . 0
0 · · · 0 λn
, donde λ1 ≥ λ2 ≥ · · · ≥ λn ≥ 0 (9)
En la siguiente figura 10 podemos ver esta factorizacion matricial y la informacion
que nos dan estas matrices.
Figura 10: Factorizacion matricial realizada en el LSI
Antes de pasar a explicar el calculo de las tres matrices (U , S y V ), es necesario
conocer la definicion de lo que son los autovalores, autovectores y que es el polinomio
caracterıstico de una matriz ya que son conceptos que hemos de manejar para la obtencion
de estas matrices. Las definiciones son la siguientes [49]:
Definicion 1 Sea T : S → V una transformacion de S en V . Un escalar λ se denomina
autovalor de T si existe un elemento no nulo x en S tal que T (x) = λx. El elemento x se le
llama autovector de T perteneciente a λ. El escalar λ se llama autovalor correspondiente
a x.
Definicion 2 Si A es una matriz cuadrada n × n, el determinante f(λ) = det(λI − A)
se denomina polinomio caracterıstico de A.
42 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
Las matrices U y V van a estar compuestas por lo autovectores (puestos en las filas)
obtenidos de las matrices cuadradas tras multiplicar (A×At) y (At×A) respectivamente
y la matriz S va a estar compuesta (su diagonal) por la raiz cuadrada de los autovalores
asociados a los autovectores de la matrices U y V . Estos valores que tienen como resultado
la raiz cuadrada de los autovalores, son lo que se denomina Valores Singulares.
Calculo de la Matriz U
El primer paso que tenemos que dar para obtener la matriz U es multiplicar la matriz
original A por su traspuesta para que nos de como resultado una matriz cuadrada y
poder obtener los autovalores y autovectores. Hay que recordar que solo se pueden obtener
autovalores y autovectores a partir de una matriz cuadrada. A continuacion mostramos
como obtenemos esta matriz cuadrada que llamaremos C y cuales son las dimensiones de
cada matriz:
An×m × Atm×n = Cn×n (10)
A partir de esta matriz cuadrada C obtenemos sus autovalores (los λn) igualando su
polinomio caracterıstico a cero y despejando λ:
det(λI − C) = 0 (11)
Es decir que si el determinante fuese de dimension 2 tendrıamos que obtener los
autovales (λ1 y λ2) resolviendo la siguiente ecuacion que seria de segundo grado en este
ejemplo:
|C| =
∣∣∣∣∣∣∣a− λ b
c d− λ
∣∣∣∣∣∣∣ = (a− λ) · (d− λ)− b · c (12)
Una vez que se tienen los autovalores, se puede pasar a calcular los autovectores
asociados a cada autovalor. Para el calculo estos autovalores (~v) se ha de cumplir la
siguiente ecuacion (13):
C~v = λ~v (13)
Autor: Ricardo Moya Garcıa 43
3 SISTEMAS DE RECOMENDACION
Por tanto con cada autovalor (λn) obtendremos su autovector correspondiente (~v)
resolviendo el sistema de ecuaciones que se de para cada autovalor; es decir, tal y como
se muestra en el siguiente ejemplo para una matriz cuadrada C de dimensiones 2× 2:
C~v1 = λ~v1;
c1,1 c1,2
c2,1 c2,2
x1x2
= λ1
x1x2
(14)
Es decir que el autovector ~v1 se obtendrıa resolviendo el siguiente sistema de ecuacio-
nes:
c1,1x1 + c1,2x2 = λ1x1
c2,1x1 + c2,2x2 = λ1x2
(15)
Llegados a este punto en el que tenemos calculados los autovales y autovectores de
la matric cuadrada C, ya podemos generar la matriz U que pretendıamos calcular ya que
esta esta compuesta en cada fila por los autovectores calculados, es decir que en la final
1 se tendra el autovector ~v1 en la fila 2 el autovector ~v2 y ası hasta completar la matriz
con el autovector ~vn:
U =
~v1
~v2
...
~vn
=
v1,1 · · · · · · v1,n
v2,1 · · · · · · v2,n
.... . .
...
vn,1 · · · · · · vn,n
(16)
Para la creacion de esta matriz U no tendremos en cuenta los autovales, ya que estos
los utilizaremos para generar la matriz de Valores Singulares S.
Calculo de la Matriz V
Para obtener la matriz V hay que realizar los mismos pasos que para obtener la matriz
U con la diferencia de que en este caso obtendremos los autovalores y autovectores con
otra matriz cuadrada de dimensiones (m×m) en vez de dimensiones (n×n), lo cual quiere
decir que es posible que el numero de autovalores y autovectores con los que trabajemos
para el calculo de esta matriz V sera distinto que para el calculo de la matriz U . Esto
44 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
sera ası para el caso de que la matriz original A no sea cuadrada. La matriz cuadrada
de la que obtendremos los autovalores y autovectores para calcular V la calculamos de la
siguiente manera:
Atm×n × An×m = Cm×m (17)
Una vez calculada la matriz V tendremos m autovalores, los cuales tendran el mismo
valor que los autovalores obtenidos en el calculo de la matriz U . En el caso de que n 6= m
los autovales que no sean igual por la diferencia de dimension tendran valor cero, es decir
que si n = 2 y m = 3, tendremos al menos 3 − 2 = 1 autovalores con valor 0, siendo los
otros 2 autovalores iguales.
Calculo de la Matriz S
Una vez que se tienen los autovalores obtenidos en el calculo de la matriz U y V , el
calculo de la matriz S es casi inmediato, ya que en su diagonal va a estar formada por la
raiz cuadrada de los autovalores.
La matriz S va a tener la misma dimension que la matriz original A es decir dimension
n×m y como se ha dicho va a ser una matriz de ceros, salvo su diagonal que estara formada
por la raiz cuadrada de los autovalores obtenidos en el calculo de U y V que ademas cada
par de autovalores tendran el mismo valor no nulo. A continuacion ponemos un ejemplo
aclaratorio:
Sea A la matriz original de dimension 2 × 3 obtendremos como autovalores tras el
calculo de la matriz U λ1 y λ2 y como autovalores tras el calculo de la matriz V λ1, λ2yλ3
siendo λ3 = 0 necesariamente y teniendo el mismo valor λ1 y λ2, quedando la matriz S
de la siguiente forma:
S =
λ1 0 0
0 λ2 0
(18)
Autor: Ricardo Moya Garcıa 45
3 SISTEMAS DE RECOMENDACION
Y cumpliendo ademas la propiedad antes descrita de que λ1 ≥ λ2 y evidentemente la
propiedad de λ1 ≥ λ2 ≥ λ3 ya que λ3 = 0.
Hasta ahora ya hemos visto de que forma calcular las tres matrices U , S y V pero
hay que decir varias cosas al respecto sobre este calculo:
1. Para comprobar que el calculo de las matrices U y V es correcto, se puede demostrar
que haciendo el producto escalar de una fila consigo misma da valor 1.
2. Otra comprobacion para ver que el calculo de las matrices U y V es correcto, se
demuestra que haciendo el producto escalar de una fila cualquiera con otra, tiene
que dar como resultado 0 al ser los autovectores ortonormales.
Como la matriz S nos va a dar la informacion de la importancia que tiene cada
uno de los factores latentes, podemos coger solo los K − factores mas importantes para
caracterizar cada una de las palabras y de los ıtems. El trabajar solamente con los K −
factores mas importantes nos proporciona ciertas ventajas como la de tener matrices
mas reducidas y que el tiempo de computo para el calculo de estas matrices reducidas sea
menor que si lo hiciesemos con las matrices enteras.
El resultado de trabajar con estas matrices reducidas (si elegimos bien el valor k) es
muy similar al de trabajar con las matrices enteras ya que la tecnica matematica del SVD
tiene una propiedad muy importante que viene dada por el teorema de Eckart-Young ,
que afirma que la mejor aproximacion a la matriz A la obtenemos poniendo a ceros los
“n” valores singulares de menor a mayor valor; es decir, reduciendo la matriz S. Por tanto
si multiplicasemos las submatrices Uk · Sk · V tk obtendrıamos una matriz A
′de rango K
que mejor aproxima (de acuerdo con la norma de Frobenius) a la matriz A.
An×m ' Un×k × Sk×k × V tk×m (19)
En la figura 11 podemos ver como quedarıa esta reduccion de dimensiones:
46 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
Figura 11: Factorizacion matricial realizada en el LSI teniendo en cuenta K − factores
Respecto a la eleccion del numero de factores latentes k, se debe determinar en funcion
de los valores singulares de la matriz S. Dado que los valores singulares representan la
importancia de cada uno de los factores latentes y dado que estos valores son decrecientes,
se deben de coger un numero suficiente de factores hasta que el porcentaje de importancia
(o varianza retenida) supere un cierto umbral Φ que deberıa ser entorno a 0.95 ≤ Φ ≤ 0.99,
aunque podemos disminuir el valor de este umbral en funcion del tamano de las matrices
que queramos manejar.
k∑i=1
λi
n∑i=1
λi
≥ Φ (20)
Una vez que se tienen calculadas las submatrices se puede pasar a trabajar con los
factores latentes de las matrices U y V pero previamente se deben de multiplicar por la
matriz S ya que esta proporciona la importancia que tienen cada factor. Una vez sabidos
estos factores latentes que caracterizan a las palabras y a los documentos (o descripcion
de los ıtems) se puede pasar a calcular cual es la similaridad entre los ıtems para poder
recomendarlos.
A continuacion vamos a pasar a mostrar un ejemplo del calculo de los factores latentes
de las palabras y los documentos y a obtener los valores singulares a partir del ejemplo
propuesto en la tabla 1. Al ejecutar el SVD de la matriz que forma la tabla 1 con la
Autor: Ricardo Moya Garcıa 47
3 SISTEMAS DE RECOMENDACION
herramienta matlab, obtenemos los siguientes resultados:
U =
−0.19 0.01 0.00 0.00 −0.04 0.04 −0.71 0.21 −0.19 0.26 0.19 0.30 0.32 0.24 0.13−0.73 0.04 −0.01 0.00 0.45 −0.01 0.17 −0.19 −0.02 −0.30 0.04 −0.02 0.30 0.11 −0.06−0.10 0.00 0.00 0.00 −0.25 0.03 −0.60 −0.29 0.14 −0.48 −0.17 −0.34 −0.15 −0.18 −0.18−0.55 0.04 −0.01 0.01 −0.78 −0.01 0.25 0.08 0.00 0.15 0.00 0.04 −0.08 −0.02 0.04−0.35 0.02 −0.01 0.00 0.36 0.03 −0.17 0.26 0.11 0.39 −0.13 −0.10 −0.61 −0.28 0.04−0.03 −0.46 0.35 −0.07 0.00 −0.20 −0.01 −0.29 −0.36 0.00 0.06 0.28 0.00 −0.53 0.18−0.02 −0.35 0.20 −0.58 −0.01 −0.01 0.03 0.49 −0.09 −0.28 −0.33 −0.04 −0.04 0.25 −0.02−0.02 −0.42 0.28 0.49 0.00 0.01 0.02 0.38 0.06 0.01 0.32 −0.40 0.16 −0.04 −0.27−0.02 −0.38 0.18 0.40 0.00 0.12 −0.02 −0.27 0.25 0.04 −0.39 0.25 −0.19 0.47 0.17−0.02 −0.27 0.08 −0.50 0.00 0.13 −0.02 −0.38 0.42 0.37 0.37 −0.18 0.04 0.13 −0.12−0.01 −0.25 −0.37 0.01 0.00 0.64 0.04 −0.06 −0.39 −0.10 0.16 −0.24 −0.12 0.03 0.36−0.01 −0.34 −0.56 0.02 0.00 −0.16 −0.01 0.15 0.27 −0.28 0.30 0.46 −0.19 −0.08 −0.18−0.01 −0.29 −0.48 0.02 0.00 −0.09 −0.01 −0.04 −0.01 0.34 −0.54 −0.17 0.42 −0.21 −0.17−0.01 −0.10 −0.19 0.01 0.01 −0.57 −0.03 −0.19 −0.47 0.10 0.11 −0.27 −0.30 0.42 −0.120.00 −0.04 −0.09 0.01 0.00 −0.40 −0.03 0.10 0.33 −0.09 0.07 −0.28 0.13 −0.03 0.77
(21)
S =
13.40 0 0 0 0 0 0 0 0 0 00 12.50 0 0 0 0 0 0 0 0 00 0 11.10 0 0 0 0 0 0 0 00 0 0 7.87 0 0 0 0 0 0 00 0 0 0 7.13 0 0 0 0 0 00 0 0 0 0 3.88 0 0 0 0 00 0 0 0 0 0 3.50 0 0 0 00 0 0 0 0 0 0 1.91 0 0 00 0 0 0 0 0 0 0 1.10 0 00 0 0 0 0 0 0 0 0 0.79 00 0 0 0 0 0 0 0 0 0 0.510 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0
(22)
V =
−0.44 0.03 −0.01 0.00 −0.60 0.03 −0.66 0.07 −0.08 0.03 0.04−0.66 0.04 −0.01 0.00 −0.28 −0.03 0.69 −0.03 0.07 −0.01 −0.03−0.59 0.03 −0.01 0.00 0.75 0.03 −0.26 0.10 0.01 0.06 −0.01−0.03 −0.42 0.27 −0.80 −0.01 −0.05 0.00 −0.05 0.10 0.23 0.19−0.03 −0.48 0.34 0.08 −0.01 −0.07 0.01 0.33 −0.27 −0.38 −0.57−0.03 −0.50 0.36 0.59 0.00 −0.03 0.00 −0.14 0.17 0.33 0.34−0.01 −0.28 −0.52 0.03 0.00 −0.78 −0.05 0.10 0.18 −0.04 0.02−0.01 −0.34 −0.50 0.01 0.00 0.32 0.01 −0.31 −0.28 0.44 −0.40−0.02 −0.37 −0.40 −0.01 0.00 0.49 0.04 0.26 0.13 −0.45 0.41−0.06 −0.04 0.01 −0.01 0.07 −0.20 0.04 −0.35 −0.77 −0.25 0.40−0.07 −0.09 0.05 −0.02 0.03 0.02 −0.14 −0.74 0.39 −0.47 −0.20
(23)
Una vez obtenidas estas matrices debemos seleccionar el numero de factores latentes
con los que queremos trabajar. Para ello tenemos que ver los valores singulares de la
matriz S y seleccionar K valores hasta que la varianza retenida o importancia supere el
umbral Φ que lo fijaremos en este ejemplo en 0.95. En la siguiente tabla mostramos la
varianza retenida en funcion del numero de valores singulares aplicando la formula 20:
K 1 2 3 4 5 6 7 8 9 10 11Valor Singular 13.4 12.5 11.1 7.87 7.13 3.88 3.5 1.91 1.1 0.79 0.51
Varianza 0.21 0.41 0.58 0.71 0.82 0.88 0.93 0.96 0.98 0.99 1
Tabla 5: Ejemplo de seleccion del numero de factores latentes en el LSI
Como vemos en este ejemplo deberıamos coger 8 factores latentes para caracterizar
a cada una de las palabras y de los documentos que queremos recomendar ya que con 8
48 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
factores tenemos un 96 % de la importancia de los factores y con esto conseguimos reducir
las dimensiones de las matrices que caracterizan a las palabras y a los documentos.
A continuacion mostramos como quedarıan las matrices reducidas U , S y V :
U15x8 =
−0.19 0.01 0.00 0.00 −0.04 0.04 −0.71 0.21−0.73 0.04 −0.01 0.00 0.45 −0.01 0.17 −0.19−0.10 0.00 0.00 0.00 −0.25 0.03 −0.60 −0.29−0.55 0.04 −0.01 0.01 −0.78 −0.01 0.25 0.08−0.35 0.02 −0.01 0.00 0.36 0.03 −0.17 0.26−0.03 −0.46 0.35 −0.07 0.00 −0.20 −0.01 −0.29−0.02 −0.35 0.20 −0.58 −0.01 −0.01 0.03 0.49−0.02 −0.42 0.28 0.49 0.00 0.01 0.02 0.38−0.02 −0.38 0.18 0.40 0.00 0.12 −0.02 −0.27−0.02 −0.27 0.08 −0.50 0.00 0.13 −0.02 −0.38−0.01 −0.25 −0.37 0.01 0.00 0.64 0.04 −0.06−0.01 −0.34 −0.56 0.02 0.00 −0.16 −0.01 0.15−0.01 −0.29 −0.48 0.02 0.00 −0.09 −0.01 −0.04−0.01 −0.10 −0.19 0.01 0.01 −0.57 −0.03 −0.190.00 −0.04 −0.09 0.01 0.00 −0.40 −0.03 0.10
(24)
S8x8 =
13.40 0 0 0 0 0 0 00 12.50 0 0 0 0 0 00 0 11.10 0 0 0 0 00 0 0 7.87 0 0 0 00 0 0 0 7.13 0 0 00 0 0 0 0 3.88 0 00 0 0 0 0 0 3.50 00 0 0 0 0 0 0 1.91
(25)
V11x8 =
−0.44 0.03 −0.01 0.00 −0.60 0.03 −0.66 0.07−0.66 0.04 −0.01 0.00 −0.28 −0.03 0.69 −0.03−0.59 0.03 −0.01 0.00 0.75 0.03 −0.26 0.10−0.03 −0.42 0.27 −0.80 −0.01 −0.05 0.00 −0.05−0.03 −0.48 0.34 0.08 −0.01 −0.07 0.01 0.33−0.03 −0.50 0.36 0.59 0.00 −0.03 0.00 −0.14−0.01 −0.28 −0.52 0.03 0.00 −0.78 −0.05 0.10−0.01 −0.34 −0.50 0.01 0.00 0.32 0.01 −0.31−0.02 −0.37 −0.40 −0.01 0.00 0.49 0.04 0.26−0.06 −0.04 0.01 −0.01 0.07 −0.20 0.04 −0.35−0.07 −0.09 0.05 −0.02 0.03 0.02 −0.14 −0.74
(26)
Tambien podıamos haber cogido menos factores latentes para trabajar con matrices
de menor tamano aunque perderıamos precision a la hora de caracterizar a las palabras
y a los documentos, por eso dependiendo de la dimension de la matriz original podemos
coger menos factores latentes con el fin de trabajar con matrices de menor tamano. De esta
forma perdemos precision pero ganamos rendimiento en nuestro sistema recomendador ya
que trabajar con matrices de gran tamano resulta muy costoso computacionalmente. En
este ejemplo tenemos una matriz original de tamano (15x11) y tras hacer el calculo de
las matrices de factores latentes y seleccionar un numero apropiado de K, hemos pasado
de tener una matriz U con dimensiones (15x15) a dimensiones de (15x8) y una matriz
V de dimensiones (11x11) a dimensiones (11x8), con lo cual hemos conseguido reducir el
tamano de las matrices en un 39.8 %.
Autor: Ricardo Moya Garcıa 49
3 SISTEMAS DE RECOMENDACION
Unas vez que ya hemos seleccionado el numero de factores latentes con los que vamos
a trabajar, debemos de multiplicar las matrices U y V por la matriz S, ya que como hemos
dicho el valor de los valores singulares muestra la importancia que tiene cada uno de los
factores que caracterizan a las palabras y a los documentos, por tanto para caracterizar
bien a los factores de las palabras y de los documentos, debemos de multiplicar cada factor
por su importancia (o valor singular).
A continuacion mostramos como quedarian las matrices U y V con los factores latentes
de las palabras y de los documentos respectivamente:
UfactoresPalabras =
−2, 52 0, 15 −0, 03 0, 01 −0, 29 0, 15 −2, 50 0, 40−9, 74 0, 45 −0, 06 −0, 02 3, 22 −0, 06 0, 60 −0, 37−1, 40 0, 00 0, 03 −0, 01 −1, 76 0, 10 −2, 11 −0, 55−7, 31 0, 46 −0, 11 0, 05 −5, 53 −0, 06 0, 86 0, 15−4, 74 0, 28 −0, 06 0, 00 2, 59 0, 13 −0, 60 0, 50−0, 46 −5, 73 3, 93 −0, 58 0, 03 −0, 78 −0, 05 −0, 56−0, 25 −4, 33 2, 24 −4, 60 −0, 08 −0, 03 0, 09 0, 94−0, 31 −5, 30 3, 10 3, 83 −0, 03 0, 05 0, 08 0, 72−0, 33 −4, 74 1, 96 3, 16 0, 00 0, 48 −0, 06 −0, 52−0, 25 −3, 38 0, 85 −3, 96 −0, 03 0, 50 −0, 06 −0, 72−0, 13 −3, 11 −4, 11 0, 04 −0, 02 2, 48 0, 15 −0, 11−0, 17 −4, 22 −6, 20 0, 16 0, 00 −0, 62 −0, 04 0, 29−0, 14 −3, 57 −5, 28 0, 13 0, 00 −0, 34 −0, 02 −0, 07−0, 10 −1, 21 −2, 05 0, 09 0, 08 −2, 21 −0, 09 −0, 37−0, 02 −0, 55 −1, 05 0, 06 0, 01 −1, 55 −0, 09 0, 20
(27)
VfactoresDocumentos =
−5, 96 0, 35 −0, 07 0, 03 −4, 25 0, 11 −2, 30 0, 12−8, 88 0, 52 −0, 11 0, 03 −2, 00 −0, 12 2, 41 −0, 07−7, 96 0, 43 −0, 07 −0, 02 5, 35 0, 13 −0, 92 0, 19−0, 35 −5, 27 3, 01 −6, 32 −0, 07 −0, 20 0, 01 −0, 10−0, 38 −5, 98 3, 74 0, 60 −0, 04 −0, 27 0, 04 0, 62−0, 40 −6, 27 3, 97 4, 63 −0, 01 −0, 11 0, 00 −0, 27−0, 14 −3, 46 −5, 81 0, 22 0, 03 −3, 01 −0, 17 0, 19−0, 18 −4, 24 −5, 55 0, 08 −0, 01 1, 25 0, 05 −0, 60−0, 20 −4, 63 −4, 41 −0, 05 −0, 03 1, 91 0, 13 0, 50−0, 77 −0, 52 0, 16 −0, 07 0, 47 −0, 78 0, 13 −0, 68−0, 91 −1, 07 0, 61 −0, 18 0, 21 0, 06 −0, 48 −1, 42
(28)
En este caso lo que nos interesa es ver las relaciones que hay entre los ıtems (o
documentos) y no entre las palabras (aunque tambien podrıamos hacerlo de la misma
manera que haremos con los ıtems); por tanto, debemos de coger la matriz V que es la
que caracteriza a los ıtems y calcular sus similaridades en funcion de los factores latentes
que los caracteriza.
Para el calculo de estas similaridades, se puede usar cualquiera de las metricas de
similaridad (Distancia Euclidea, Coseno, Correlacion, etc.), pero al igual que pasaba con
el calculo de similaridades entre vectores de palabras, se recomienda el uso de la metrica
de similaridad del coseno.
50 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
Teniendo ya los factores latentes que representan a los ıtems, podemos pasar ya a
calcular sus similaridades. Para ello aplicaremos la metrica del coseno al igual que hicimos
con los vectores de palabras, solo que ahora esos vectores estan formados por factores
latentes que son los que mostramos a continuacion:
F1 F2 F3 F4 F5 F6 F7 F8
I1 -5,96 0,35 -0,07 0,03 -4,25 0,11 -2,30 0,12I2 -8,88 0,52 -0,11 0,03 -2,00 -0,12 2,41 -0,07I3 -7,96 0,43 -0,07 -0,02 5,35 0,13 -0,92 0,19I4 -0,35 -5,27 3,01 -6,32 -0,07 -0,20 0,01 -0,10I5 -0,38 -5,98 3,74 0,60 -0,04 -0,27 0,04 0,62I6 -0,40 -6,27 3,97 4,63 -0,01 -0,11 0,00 -0,27I7 -0,14 -3,46 -5,81 0,22 0,03 -3,01 -0,17 0,19I8 -0,18 -4,24 -5,55 0,08 -0,01 1,25 0,05 -0,60I9 -0,20 -4,63 -4,41 -0,05 -0,03 1,91 0,13 0,50I10 -0,77 -0,52 0,16 -0,07 0,47 -0,78 0,13 -0,68I11 -0,91 -1,07 0,61 -0,18 0,21 0,06 -0,48 -1,42
Tabla 6: Factores latentes de los ıtems para el ejemplo del LSI
En base a estos factores latentes de los ıtems, la similaridad que hay entre ellos
aplicando la metrica del coseno es la siguiente:
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
I1 • 0.77 0.36 0 0 0 0 0 0 0.17 0.30I2 • 0.64 0 0 0 0 0 0 0.43 0.29I3 • 0 0 0 0 0 0 0.56 0.38I4 • 0.63 0.21 0 0.08 0.19 0.32 0.48I5 • 0.88 0 0.08 0.23 0.36 0.52I6 • 0 0.08 0.19 0.32 0.48I7 • 0.82 0.72 0.29 0I8 • 0.97 0.08 0.15I9 • 0 0.13I10 • 0.72I11 •
Tabla 7: Similaridades entre los factores latentes de los ıtems utilizando la metrica del coseno
Como vemos los resultados que hemos obtenido con el LSI son practicamente iguales
a los obtenidos con los vectores de palabras aplicando la metrica de similaridad del coseno.
De hecho podemos comprobar que dado un ıtem, harıamos las mismas recomendaciones
con cualquiera de las dos tecnicas vistas hasta el momento. En el ejemplo que hemos
puesto no se aprecia nada bien las ventajas que ofrece el LSI frente a los sistemas de
recomendacion basados en vectores de palabras porque el ejemplo se ha hecho sobre una
Autor: Ricardo Moya Garcıa 51
3 SISTEMAS DE RECOMENDACION
matriz muy pequena (de 15x11). Si se hubiese hecho sobre una matriz mucho mas grande
(por ejemplo de 4000 palabras y 1000 ıtems) los resultados hubiesen sido mejores con el
LSI, ya que esta tecnica reduce considerablemente las dimensiones de las matrices y por
tanto la informacion de los ıtems queda caracterizada por sus factores latentes y no por el
numero de apariciones de las palabras. Aun ası hemos visto que haciendo una reduccion
del tamano de las matrices hemos conseguido los mismos resultados (o los resultados que
esperabamos) a pesar de que el calculo de las matrices de los factores latentes al aplicar el
SVD es bastante costosa computacionalmente, pero como se ha dicho esta tecnica aplicada
a sistemas de recomendacion con un numero considerable de ıtems y de palabras es la que
mejores resultados proporciona.
3.1.3. Sistemas de Recomendacion basado en PLSI
En estos tipos de SR basado en PLSI [40] (tambien conocido como PLSA), los ıtems
o las palabras estan descritas por una distribucion de probabilidad en el que se indica con
que grado (de probabilidad) un ıtem o una palabra se refiere a un tema o a otro.
Al igual que en los sistemas de recomendacion basados en LSI, en el PLSI se va
a descomponer la matriz de apariciones de palabras/documentos en matrices, pero a
diferencia del LSI, estas matrices van a tener un significado probabilıstico y por tanto las
matrices U y V van a tener valores comprendidos entre 0 y 1.
El PLSI es una evolucion del LSI al que se le anadio un modelo probabilıstico para
hacerlo mas robusto. Se trata de una tecnica estadıstica para el analisis de textos a partir
de similitudes sin conocimiento a priori de las caracterısticas de estos textos. Esta tecnica
tiene muchas aplicaciones en campos como recuperacion de la informacion (IR), filtrado de
informacion (ISR), procesamiento natural del lenguaje (NLP) y aprendizaje automatico
(conocido como Machine Learning) a partir de textos dados.
En el PLSI el numero de “temas” es muy similar al numero de factores latentes en
52 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
el LSI. Este numero de temas es un parametro que se tiene que elegir antes de ejecutar
el PLSI y que va a ser el numero de temas del que puede estar compuesto un texto. Las
distribuciones de probabilidad que se asocian a las palabras y a los documentos describen
cuanto estan relacionadas esas palabras o documentos a esos temas. Teniendo en cuenta
el ejemplo puesto en la tabla 1 y eligiendo como numero de temas 3 (que haciendo un
poco la labor de expertos sabemos que los ıtems tienen las tematicas de futbol, polıtica y
economıa), esta tecnica nos dira en que porcentaje pertenece cada documento a cada tema
y el porcentaje de pertenencia de cada palabra a cada tema; es decir, que nos deberıa de
decir que el ıtem I1 pertenece un 100 % a la tematica de futbol, y un 0 % a las tematicas
de polıtica y economıa. De la misma forma nos dara una distribucion de probabilidad de
cual es el grado de pertenencia de cada palabra a cada tema.
El PLSI al ser un modelo probabilıstico, se basa en la distribucion de probabilidad para
representar el conocimiento que de alguna forma esta latente u oculto en los documentos.
Por norma general, estos modelos estan disenados para aplicaciones especificas que suelen
ser la clasificacion de textos y la recuperacion de informacion ya que el conocimiento
que puede recoger es limitado. El PLSI basa su funcionamiento en un modelo estadıstico
llamado “Aspect Model”, que es un modelo para la co-ocurrencia de datos que asocia una
variable no observada [40].
Definimos el conjunto de temas al que puede pertenecer un documento como:
z ∈ Z = {z1, ..., zk} (29)
Definimos a cada observacion, siendo una observacion la ocurrencia de un termino,
como al conjunto de terminos de los documentos:
w ∈ W = {w1, ..., wn} (30)
Definimos al conjunto de los documentos como:
d ∈ D = {d1, ..., dm} (31)
Autor: Ricardo Moya Garcıa 53
3 SISTEMAS DE RECOMENDACION
El funcionamiento del PLSI tienen las siguientes 3 fases:
1. Seleccionar un documento d con probabilidad P (d)
2. Escoger una clase lantente (o tema) z con probabilidad P (z | d)
3. Generar un termino w con probabilidad P (w | z)
Figura 12: Representacion “Plate Notation” del modelo PLSI
De esta forma podemos obtener la probabilidad de una palabra en un documento
como:
P (w | d) =∑z∈Z
P (w | z)P (z | d) (32)
Tambien podemos obtener la distribucion de probabilidad que nos interesa para ver
las similaridades que hay entre los ıtems (o documentos) del SR a traves de la probabilidad
de que un documento pertenezca a un determinado tema P (z | d).
De la misma forma podemos saber la distribucion de probabilidad de que dado un
tema salga una palabra P (w | z).
Para el calculo de estas distribuciones de probabilidad se utiliza el algoritmo del
Expectation–Maximization (EM) que se trata de un metodo iterativo para encontrar
la maxima verosimilitud o maximos estimadores a posteriori de los parametros de modelos
54 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
estadısticos, donde el modelo depende de las variables latentes no observables, como es el
caso del PLSI.
A continuacion vamos a pasar a mostrar un ejemplo del calculo de las distribuciones
de probabilidad de las palabras y de los ıtems a partir del ejemplo propuesto en la tabla
1. Para simplificar este ejemplo vamos a tomar como numero de temas 3 (k = 3) ya que
haciendo la labor de experto en el ejemplo propuesto hemos visto como tenemos definidos
los temas de futbol, polıtica y economıa; por tanto vamos a ver como la tecnica del PLSI
va a obtener un modelo en el que realizara un clustering en el que agrupara los documentos
por tematicas.
Dado un K = 3 obtenemos las siguientes distribuciones de probabilidad de que un
documento pertenezca a un determinado tema P (z | d):
Futbol Polıtica Economıa
I1 1.00 0 0I2 1.00 0 0I3 1.00 0 0I4 0 1.00 0I5 0 1.00 0I6 0 1.00 0I7 0 0 1.00I8 0 0 1.00I9 0 0.21 0.79I10 0.33 0.33 0.33I11 0.40 0.60 0
Tabla 8: Distribucion de probabilidad de que un documento pertenezca a un determinado tema con elPLSI
Como vemos, este modelo ha realizado un clustering muy interesante en el que ha
agrupado los documentos por las tematicas de futbol, polıtica y economıa. Ademas ha
agrupado estos documentos como esperabamos, obteniendo como resultados que los ıtems
I1, I2 e I3 pertenecen un 100 % a la tematica de futbol, los ıtems I4, I5 e I6 pertenecen
un 100 % a la tematica de polıtica y los ıtems I7 e I8 pertenecen un 100 % a la tematica de
economıa; es decir, que para estos ıtems el PLSI nos dice con total certeza que estos ıtems
Autor: Ricardo Moya Garcıa 55
3 SISTEMAS DE RECOMENDACION
pertenecen a esas tematicas. Por el contrario para los ıtems I9, I10 e I11 obtenemos una
distribucion de probabilidad distinta en el que ya no nos da un 100 % de probabilidades
de que un ıtem pertenezca a una sola tematica, sino que un ıtem puede perteneces (en
diferente grado) a una tematica u a otra. Por ejemplo al ıtem I9 se le da una probabilidad
de un 21 % de pertenecer al tema de polıtica (P (z = polıtica | d = 9) = 0.21) y un 79 %
de pertenecer al tema de economıa (P (z = economıa | d = 9) = 0.79).
Por otro lado tambien obtenemos la distribucion de probabilidad de que salga una
palabra en un documento dado un tema; es decir, que podemos saber cuales son las
palabras mas caracterısticas de los temas. Por tanto P (w | z) quedarıa de la siguiente
manera.
Balo
n
Fu
tbol
Lig
a
CR
7
Mess
i
Polı
tica
PP
PS
OE
ZP
Rajo
y
Din
ero
FM
I
UE
PIB
Ibex
Futbol 0.10 0.38 0.08 0.27 0.17 0 0 0 0 0 0 0 0 0 0Polıtica 0 0 0 0 0 0.27 0.19 0.21 0.18 0.14 0 0 0 0 0
Economıa 0 0 0 0 0 0 0 0 0.03 0.03 0.21 0.30 0.26 0.12 0.05
Tabla 9: Distribucion de probabilidad de que dado un tema salga una palabra con el PLSI
Con estos resultados, podemos concluir de que si un documento pertenece por ejemplo
a la tematica de futbol, hay un 38 % de probabilidades de que salga la palabra “Futbol”, un
10 % de que salga la palabra “Balon”, etc. Tambien podemos deducir que si un documento
habla de economıa, hay un 30 % de probabilidades de que aparezca la palabra “FMI”, un
26 % “UE”, etc.
Una vez obtenidas las distribuciones de probabilidad vistas en las tablas 8 y 9 podemos
obtener la probabilidad de que una palabra aparezca en un documento multiplicando estas
dos matrices tal y como se ha definido en la formula 32.
A continuacion se muestra la probabilidad de una palabra en un documento P (w | d):
56 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
Balon 0.10 0.10 0.10 0 0 0 0 0 0 0.03 0.04Futbol 0.38 0.38 0.38 0 0 0 0 0 0 0.13 0.15Liga 0.08 0.08 0.08 0 0 0 0 0 0 0.03 0.03CR7 0.27 0.27 0.27 0 0 0 0 0 0 0.09 0.11Messi 0.17 0.17 0.17 0 0 0 0 0 0 0.06 0.07
Polıtica 0 0 0 0.27 0.27 0.27 0 0 0.06 0.09 0.16PP 0 0 0 0.19 0.19 0.19 0 0 0.04 0.06 0.11
PSOE 0 0 0 0.21 0.21 0.21 0 0 0.04 0.07 0.13ZP 0 0 0 0.18 0.18 0.18 0.03 0.03 0.06 0.07 0.11
Rajoy 0 0 0 0.14 0.14 0.14 0.03 0.03 0.05 0.06 0.08Dinero 0 0 0 0 0 0 0.21 0.21 0.17 0.07 0FMI 0 0 0 0 0 0 0.30 0.30 0.24 0.10 0UE 0 0 0 0 0 0 0.26 0.26 0.21 0.09 0PIB 0 0 0 0 0 0 0.12 0.12 0.09 0.04 0Ibex 0 0 0 0 0 0 0.05 0.05 0.04 0.02 0
Tabla 10: Probabilidad de que una palabra aparezca en un documento en el PLSI
Como resultados, vemos que los ıtems que tienen un 100 % de probabilidades de
pertenecer a un tema, tienen una distribucion de probabilidad de que una palabra aparezca
en ese documento igual a que dado un tema salga una palabra. Por el contrario si nos
fijamos en los ıtems I9, I10 e I11 vemos que hay cierta probabilidad de que aparezcan
palabras de varios temas y en concreto en el ıtem I10 hay cierta probabilidad de que
aparezcan todas las palabras ya que este ıtem tiene el mismo porcentaje de pertenencia
a todos los temas.
En este trabajo el tema que nos interesa es ver las relaciones que hay entre los ıtems
del SR, por tanto tenemos que ver de que forma definimos las similaridades entre ıtems.
En los sistemas de recomendacion basados en vectores de palabras y en LSI, no tenıamos
definidos a los ıtems por distribuciones de probabilidad; como es el caso del PLSI, por
tanto las metricas de similaridad utilizadas en esos SR (distancia euclidea, coseno, etc.)
no nos valen para el PLSI. Para ver las similaridades que hay entre dos distribuciones
de probabilidad se utiliza la divergencia de Kullback-Leibler (KL)que es una metrica de
similaridad entre dos funciones de distribucion de probabilidad. Sobre esta medida de
similaridad hablaremos en el apartado 4.1.3 y veremos de que forma se relacionan los
ıtems en el PLSI.
Autor: Ricardo Moya Garcıa 57
3 SISTEMAS DE RECOMENDACION
3.1.4. Sistemas de Recomendacion basado en LDA
El LDA [11], es un modelo probabilıstico (al igual que el PLSI) que se enmarca dentro
de los modelos generativos ya que trata de describir como se crea un documento. El LDA
propone que un documento se crea mediante la seleccion de los temas y las palabras de
acuerdo a las representaciones probabilısticas del texto natural del documento. Utiliza
un modelo Bayesiano jerarquico de tres niveles, como conocimiento previo para evitar el
problema del overfiting o sobre ajuste.
Al igual que en el PLSI, en el LDA se obtienen dos matrices de probabilidad P (w | z)
y P (z | θ), donde la primera distribucion de probabilidad (P (w | z)) es la de que dado
un tema salga una palabra y la segunda distribucion de probabilidad (P (z | θ)) es la
de que un documento pertenezca a un tema. En el LDA denotamos a la distribucion de
probabilidad de que un documento pertenezca a un tema con el sımbolo θ en vez de con la
letra d como se denotaba en el PLSI. Por tanto multiplicando estas dos distribuciones de
probabilidad podemos obtener la probabilidad de una palabra en un documento al igual
que en el PLSI:
P (w | θ) =∑z∈Z
P (w | z)P (z | θ) (33)
La diferencia fundamental entre el PLSI y el LDA radica en como se calculan las dos
matrices de probabilidad P (w | z) y P (z | θ). En el LDA cada ıtem esta representado por
un vector que describe una distribucion de Dirichlet mientras que en el PLSI cada ıtem
tiene asociada una distribucion categorica.
En la siguiente figura 13 mostramos la representacion grafica propuesta en el LDA
[11]. En esta figura podemos ver como se tienen en cuenta todas las distribuciones de
probabilidad comentadas anteriormente y que explicamos su significado a continuacion:
K: Numero de temas.
N: Numero de palabras:
58 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
M: Numero de documentos:
α: Parametro de Dirichlet. Este parametro es un vector de K componentes que
describe el conocimiento a priori que se tiene sobre como los temas se distribuyen en
los documentos.
β: Parametro de Dirichlet. Este parametro es un vector de N componentes que
describe el conocimiento a priori que se tiene sobre como las palabras se distribuyen
en cada tema.
θ: Distribucion de probabilidad de que un documento pertenezca a un tema.
Z: Distribucion de probabilidad de que una palabra pertenezca a un tema.
W: Identifica todas las palabras en todos los documentos.
ϕ: Distribucion de probabilidad de que dado un tema salga una palabra.
Figura 13: Representacion grafica del LDA
Se ha de decir que esta representacion grafica del LDA no es exactamente igual que
la que se propone en el artıculo de Blei [11]. En esta imagen hemos representado las
constantes como cuadrados y las distribuciones de probabilidad como cırculos.
Autor: Ricardo Moya Garcıa 59
3 SISTEMAS DE RECOMENDACION
Los parametros α y β de Dirichlet, suelen ser parametros definidos a priori y deben
de tener un valor inferior a ′1′. Si se presupone que los documentos van a tratar sobre
pocos temas (1 o 2 temas), se recomienda poner un valor de α pequeno (por ejemplo 0.1)
y si por el contrario se presupone que un documento va a tratar sobre varios temas, se
recomienda poner un valor de α grade (cercano a 1). Sobre el valor que debe de tomar el
parametro β, se recomienda que si un tema va a tener pocas palabras el valor de β sea
muy pequeno (por ejemplo 0.001) y si por el contrario un tema va a estar compuesto por
muchas palabras, se recomienda que β tome un valor cercano a 1. En el caso de que los
parametros α y β tuviesen ambos valor 1 el LDA se comportarıa igual que el PLSI ya que
una distribucion de Dirichlet (CITA) con estos parametros a 1 se comporta de la misma
manera que una distribucion uniforme.
A continuacion vamos a pasar a mostrar un ejemplo del calculo de las distribuciones
de probabilidad de las palabras y de los ıtems a partir del ejemplo propuesto en la tabla
1 con el LDA. Al igual que con el ejemplo del PLSI, tomaremos como numero de temas
3.
Dado un K = 3 obtenemos las siguientes distribuciones de probabilidad de Dirichlet
de que un documento pertenezca a un determinado tema P (z|θ):
Futbol Polıtica Economıa
I1 15.01 0.01 0.01I2 15.01 0.01 0.01I3 15.01 0.01 0.01I4 0.01 15.01 0.01I5 0.01 15.01 0.01I6 0.01 15.01 0.01I7 0.01 0.01 15.01I8 0.01 2.01 13.01I9 0.01 4.01 11.01I10 1.01 1.01 1.01I11 2.01 3.01 0.01
Tabla 11: Distribucion de probabilidad de Dirichlet de que un documento pertenezca a un determinadotema con el LDA
60 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
Como vemos, el LDA ha realizado un clustering muy similar al realizado en el PLSI,
en el que ha dado un grado de pertenencia de los ıtems a los tres temas. La diferencia
que vemos con respecto al PLSI, es que cada ıtem esta representado por un vector que
describe una distribucion de Diritchlet y no una distribucion categorica, de ahı que los
vectores caracterısticos de los ıtems no esten normalizados. Por ejemplo el ıtem I1 tiene
una distribucion de Diritchlet de (15.01, 0.01, 0.01); si hiciesemos la media de cada compo-
nente de la distribucion, tendrıamos una distribucion de (1, 0, 0), la cual la entenderıamos
mejor que la distribucion de Diritchlet, interpretando que el ıtem I1 tiene un grado de
pertenencia a la tematica del futbol del 100 % y un grado de pertenencia del 0 % a las
tematicas del polıtica y economıa.
Por otro lado tambien podemos la distribucion de probabilidad de que salga una
palabra en un documento dado un tema; es decir, que podemos saber cuales son las
palabras mas caracterısticas de los temas. Por tanto P (w|z) quedarıa de la siguiente
manera.
Balo
n
Fu
tbol
Lig
a
CR
7
Mess
i
Polı
tica
PP
PS
OE
ZP
Rajo
y
Din
ero
FM
I
UE
PIB
Ibex
Futbol 5.01 18.01 4.01 13.01 8.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01
Polıtica 0.01 0.01 0.01 0.01 0.01 13.01 11.01 11.01 11.01 9.01 0.01 0.01 0.01 0.01 0.01
Economıa 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 9.01 13.01 11.01 5.01 2.01
Tabla 12: Distribucion de probabilidad de Diritchlet de que dado un tema salga una palabra con el LDA
Como vemos obtenemos tambien unos resultados muy similares a los obtenidos con
el PLSI, con la diferencia de que cada tema sigue una distribucion de Diritchlet y no una
distribucion categorica.
Estudiando la media de las distribuciones de Dirichlet, obtenemos unos resultados de
distribuciones de probabilidad P (w | z) y P (z | θ) mas intuitivos:
Autor: Ricardo Moya Garcıa 61
3 SISTEMAS DE RECOMENDACION
Futbol Polıtica Economıa
I1 1.00 0 0I2 1.00 0 0I3 1.00 0 0I4 0 1.00 0I5 0 1.00 0I6 0 1.00 0I7 0 0 1.00I8 0 0.13 0.87I9 0 0.27 0.73I10 0.33 0.33 0.33I11 0.40 0.60 0
Tabla 13: Distribucion de probabilidad de que un documento pertenezca a un determinado tema con elLDA
Balo
n
Fu
tbol
Lig
a
CR
7
Mess
i
Polı
tica
PP
PS
OE
ZP
Rajo
y
Din
ero
FM
I
UE
PIB
Ibex
Futbol 0.10 0.37 0.08 0.27 0.17 0 0 0 0 0 0 0 0 0 0Polıtica 0 0 0 0 0 0.24 0.20 0.20 0.20 0.16 0 0 0 0 0
Economıa 0 0 0 0 0 0 0 0 0 0 0.22 0.32 0.27 0.12 0.05
Tabla 14: Distribucion de probabilidad de que dado un tema salga una palabra con el LDA
Vemos que los resultados obtenidos son muy similares a los obtenidos en el PLSI
(ver tablas 8 y 9 respectivamente). Encontramos algunas diferencias como que el ıtem
I8 ya no tiene un 100 % de pertenencia a la tematica de economıa, sino que tiene parte
de pertenencia a la tematica de polıtica (un 13 %) y respecto a la probabilidad de que
dado un tema salga una palabra (tabla 14), vemos que los porcentajes de pertenencia han
variado muy poco y por ejemplo las palabras “ZP” y “Rajoy” ya no tiene un grado de
pertenencia a la tematica de economıa, al contrario que con el PLSI que les asignaba un
3 % de pertenencia.
De la misma forma que con el PLSI, multiplicando las distribuciones de probabilidad
P (w | z) y P (z | θ) obtenemos la probabilidad de una palabra en un documento:
62 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
Balon 0.10 0.10 0.10 0 0 0 0 0 0 0.03 0.04Futbol 0.38 0.38 0.38 0 0 0 0 0 0 0.12 0.15Liga 0.08 0.08 0.08 0 0 0 0 0 0 0.03 0.03CR7 0.27 0.27 0.27 0 0 0 0 0 0 0.09 0.11Messi 0.17 0.17 0.17 0 0 0 0 0 0 0.06 0.07
Polıtica 0 0 0 0.24 0.24 0.24 0 0.03 0.06 0.08 0.15PP 0 0 0 0.20 0.20 0.20 0 0.03 0.05 0.07 0.12
PSOE 0 0 0 0.20 0.20 0.20 0 0.03 0.05 0.07 0.12ZP 0 0 0 0.20 0.20 0.20 0 0.03 0.05 0.07 0.12
Rajoy 0 0 0 0.16 0.16 0.16 0 0.02 0.04 0.05 0.10Dinero 0 0 0 0 0 0 0.22 0.19 0.16 0.07 0FMI 0 0 0 0 0 0 0.32 0.28 0.23 0.11 0UE 0 0 0 0 0 0 0.27 0.23 0.20 0.09 0PIB 0 0 0 0 0 0 0.12 0.10 0.09 0.04 0Ibex 0 0 0 0 0 0 0.05 0.04 0.04 0.02 0
Tabla 15: Probabilidad de que una palabra aparezca en un documento en el LDA
Como resultados, vemos que los ıtems que tienen un 100 % de probabilidades de
pertenecer a un tema, tienen una distribucion de probabilidad de que una palabra aparezca
en ese documento igual a que dado un tema salga una palabra. Por el contrario si nos
fijamos en los ıtems I8, I9, I10 e I11 vemos que hay cierta probabilidad de que aparezcan
palabras de varios temas y en concreto en el ıtem I10 hay cierta probabilidad de que
aparezcan todas las palabras ya que este ıtem tiene el mismo porcentaje de pertenencia
a todos los temas.
Autor: Ricardo Moya Garcıa 63
3 SISTEMAS DE RECOMENDACION
3.2. Sistemas de Recomendacion basados en filtrado colaborativo
En el filtrado colaborativo [2][64][34] los datos de los usuarios y los ıtems son alma-
cenado en una base de datos que contienen las votaciones de un gran numero de usuarios
sobre un gran numero de ıtems (peliculas, libros, viajes, etc.). El FC consiste en ver que
usuarios son similares al usuario al que se le ha de recomendar y a continuacion, reco-
mendar aquellos ıtems que no han sido votados por el usuario y que han resultado bien
valorados por usuarios similares.
Como ya se ha comentado, este tipo de filtrado es el que mejores resultados obtiene
y es el mas extendido en el mundo de la investigacion.
La mayor ventaja que presenta este tipo de filtrado es la de proporcionar recomenda-
ciones no obvias para los usuarios (como por ejemplo no recomendar libros de un mismo
autor o continuaciones de pelıculas como “Torrente”, “Torrente 2”, ...), de modo que estos
sistemas estan mejor valorados por los usuarios que los sistemas basados en contenidos.
La mayor desventaja que presenta este tipo de SR es la necesidad de que los usuarios
voten, ya que sin un numero de votaciones suficientes en sistema no sera capaz de hacer
buenas recomendaciones e incluso puede no ser capaz de recomendar. Por tanto en este
tipo de filtrado existe el problema del cold-star [15] que sucede cuando hay registradas
muy pocas votaciones en la base de datos o cuando un usuario ha votado poco y no se le
pueda hacer buenas recomendaciones, o cuando un ıtem ha sido votado por pocos usuarios
y no puede ser recomendado correctamente.
Dentro del filtrado colaborativo se ha establecido una clasificacion para determinar los
tipos de filtrado. Estos se han clasificado en funcion de los metodos usados para determinar
los usuarios que son similares al usuario al que se le ha de recomendar (usuario activo) o
de manera similar, los ıtems que son similares a un ıtem dado. Sobre esta clasificacion se
encuentran los siguientes tres tipos:
64 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
1. Metodos basados en memoria : emplean metricas de similaridad para determinar
el parecido entre una pareja de usuarios. Para ello calculan los ıtems que han sido
votados por ambos usuarios y comparan dichos votos para calcular la similaridad.
2. Metodos basados en modelos: utilizan la matriz de votaciones para crear un
modelo a traves del cual establecer el conjunto de usuarios similares al usuario ac-
tivo. Algunos ejemplos de estos modelos son los clasificadores bayesianos, las redes
neuronales, algoritmos geneticos, sistemas borrosos y la factorizacion de matrices que
trataremos en este trabajo con mas profundidad.
3. Metodos hıbridos : son metodos que se encargan de combinar los dos metodos
descritos anteriormente.
Para que un sistema de recomendacion basado en filtrado colaborativo funcione co-
rrectamente, se debe disponer de una base de datos en la que n usuarios han votado m
ıtems dentro de un rango de votaciones [min,...,max], siendo este rango discreto o con-
tinuo (en nuestro caso discreto), en la que la ausencia de voto se representa mediante el
simbolo •.
Esencialmente vamos a disponer de los siguientes elementos para completar el proceso
de recomendacion a los usuarios:
U = {u ∈ |1 ≤ u ≤ n} , conjunto de usuarios. (34)
I = {i ∈ |1 ≤ i ≤ m} , conjunto de ıtems. (35)
W = {w ∈ |min ≤ w ≤ max} ∪ {•} , conjunto de posibles votaciones; (36)
Ru = {(i, v) |i ∈ I, v ∈ W} , votos del usuario u (37)
Denotamos el voto v del usuario u al ıtem i como ru,i = v. (38)
Definimos la cardinalidad de un conjunto C como el numero de elementos validos de
dicho conjunto:
#C = # {x ∈ C|x 6= •} . (39)
Autor: Ricardo Moya Garcıa 65
3 SISTEMAS DE RECOMENDACION
Definimos Iu = {i ∈ I|ru,i 6= •} como el conjunto de votos validos de u. (40)
Denotamos la votacion media de un usuario u como ru =1
#Iu·∑i∈Iu
ru,i . (41)
A traves de estos elementos y de algunos otros derivados de ellos, seremos capaces
de realizar el proceso de filtrado colaborativo completo, o dicho de otra forma, seremos
capaces de realizar las recomendaciones de los ıtems a los usuarios del sistema.
Para ver el funcionamiento de estas tecnicas vamos a considerar el siguiente ejemplo
(ver tabla 16). Consideremos un sistema de recomendacion cuyos ıtems son pelıculas, en
el cual tenemos registradas una serie de votaciones que los usuarios han ido haciendo
sobre pelıculas que han visto. Como ya se ha dicho en este tipo de SR existe una gran
dispersion en su matriz de votos ya que los usuarios votan un subconjunto muy pequeno
de los ıtems que hay registrados en la base de datos.
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12
U1 1 2 • • 2 • 3 4 • 4 1 •U2 • • 1 5 • 5 3 1 • 5 2 1U3 1 • • 2 • 1 • 3 4 • • •U4 • 1 4 4 • • 3 • 5 4 • 1U5 2 • 5 • 1 • 1 • • • 2 1U6 • • 5 2 1 • • 4 • 1 • 2
Tabla 16: Ejemplo de matriz de votos de los usuarios en el ejemplo de filtrado colaborativo
Una primera aproximacion para realizar recomendaciones; dada la matriz de votos,
podrıa ser el recomendar aquellos ıtems que tienen mayor nota media. En este ejemplo
la primera recomendacion que se le harıa a los usuarios seria el ıtem “I9” ya que tiene
una nota media de 4.5, pero esta recomendacion no seria muy fiable ya que esta nota
media se ha realizado a partir de 2 votaciones. Por ejemplo seria mas fiable el tomar la
nota media de los ıtems “I3”, “I4”, “I7”, “I8”, “I10” e “I12” que tienen 4 votos. Esta
primera aproximacion podrıa ser buena en algunos casos partiendo de la premisa de que
si esta pelıcula ha sido votada positivamente por los usuarios que lo han visto, tambien
sera votada positivamente por los usuarios que no lo han visto. Pero, ¿Que pasarıa si este
ıtem fuese una pelıcula de un determinado genero (por ejemplo, una pelıcula de terror)
66 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
que solo lo han votado aquellos usuarios que les gustan las pelıculas de ese genero?, pues
que estarıamos recomendando una pelıcula muy valorada por los usuarios que les gusta
mucho ese genero; y por eso tiene muy buenas votaciones, pero estarıamos recomendando
una pelıcula de un genero que posiblemente a otro usuario no le gustase nada y valorase
ese ıtem con una valoracion negativa.
Los metodos basado en memoria tratan de evitar este tipo de errores, buscando
aquellos usuarios que son similares (por las votaciones que realizan) al usuario al que
se le ha de recomendar. Por este motivo no se le recomendarıa a un usuario un ıtem que
no hayan votado usuarios similares a el por muy alta que tenga su nota media. En este
ejemplo podemos ver como los usuarios “U1” y “U4” realizan votaciones similares sobre
los mismos ıtems, por tanto los metodos basados en memoria observan como de similares
son las votaciones de los usuarios y tendran muy en cuenta las votaciones que realiza
un usuario sobre aquellos ıtems que el otro usuario no ha valorado para posteriormente
realizar recomendaciones.
Los metodos basados en modelos son algo mas abstractos y complejos de entender que
los metodos basados en memoria, ya que estos realizan recomendaciones en base al modelo
que obtienen una vez que han procesado la matriz de votos. El metodo de factorizacion
de matrices que vamos a ver en este trabajo va a obtener una serie de factores latentes a
partir de la matriz de votos, que van a caracterizar a cada uno de los usuarios y a cada uno
de los ıtems. El significado de estos factores latentes no los sabemos a priori, pero puede
representar por ejemplo el grado de accion, comedia, drama, romance, etc. que tienen las
pelıculas y de la misma forma pueden representar el grado de gusto que tiene un usuario
sobre estos generos; pero en principio estos factores latentes son abstractos y difıciles de
entender.
Autor: Ricardo Moya Garcıa 67
3 SISTEMAS DE RECOMENDACION
3.2.1. Sistemas de Recomendacion basados en k-vecinos
El filtrado colaborativo (al igual que el resto de filtrados), tiene como objetivo pre-
sentar al usuario una serie de ıtems que le puedan resultar de interes. El proceso por
el cual se consigue mostrar al usuario estos ıtems, se realiza mediante la busqueda de
usuarios similares al usuario al que se le ha de recomendar (usuario activo) y mediante
el analisis de sus votaciones. El metodo de la busqueda de usuarios similares al usuario
activo utilizando la matriz de votos, se conoce como el metodo del Knn o K-Vecinos
que se enmarca dentro del filtrado colaborativo basado en memoria. De forma similar,
tambien se pueden hacer recomendaciones a los usuarios buscando aquellos ıtems que son
similares a un ıtem dado (o muy bien valorado por el usuario activo) mediante el analisis
de los votos de los ıtems.
Dentro de los sistemas de recomendacion basados en el metodo de los K-Vecinos, se
pueden hacer dos tipos de recomendaciones que son las orientas a usuarios o a ıtems:
Orientada a usuarios: El algoritmo de los K-Vecinos orientado a los usuarios se
basa en encontrar un conjunto de usuarios (vecinos) con gustos similares al usuario
activo. El sistema recomendara al usuario activo aquellos ıtems que los vecinos del
usuario activo han votado con valores altos.
Orientada a ıtems: El algoritmo de los K-Vecinos orientado a ıtems se basa en
la busqueda de un conjunto de ıtems que han sido valorados de forma similar que
un determinado ıtem i. El sistema recomendara el ıtem i, a aquellos usuarios que
han valorado los vecinos de i con valores altos. Debido a su gran escalabilidad y
precision, este enfoque orientado a ıtems es en muchos casos mejor que el primer
metodo orientado a usuarios.
En lineas generales, la forma en la que se realizan las recomendaciones al usuario
activo con el metodo de los K-Vecinos, puede ser divido en las siguientes cuatro etapas
68 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
[2][64]:
1. Calculo de la similaridad entre usuarios: En primer lugar se ha de elegir una
metrica para determinar la similaridad[21][32][52][66] entre una pareja de usuarios.
Algunas de las metricas mas utilizadas son: la correlacion de Pearson, el coseno, la
correlacion con restricciones, el coeficiente de correlacion de Spearman, la diferencia
cuadratica media (MSD) y el indice de Jaccard (JMSD).
2. Calcular los K-Vecinos: Haciendo uso de la metrica de similaridad seleccionada,
se obtienen los k usuarios mas similares al usuario activo. A estos usuarios se les
denomina como los k-vecinos del usuario activo.
3. Calcular las predicciones de los ıtems: A partir de los k-vecinos del usuario
activo, se determinan las posibles valoraciones que el usuario activo harıa sobre los
ıtems que no ha votado, es decir, se predice como el usuario valorarıa esos ıtems.
4. Realizar las recomendaciones : Tras el calculo de las predicciones, se eligen los
N ıtems mas adecuados para ser recomendados al usuario, es decir, las predicciones
mas altas, mas novedosas, mas votadas, etc. De forma opcional, puede incluirse un
umbral para evitar que los ıtems con una prediccion inferior a dicho umbral sean
recomendados.
Figura 14: Esquema general del filtrado colaborativo basado en memoria (K-Vecinos)
El proceso de busqueda de los K-Vecinos, es decir, los k usuarios mas similares al
usuario activo, puede resumirse en los siguientes dos pasos:
Autor: Ricardo Moya Garcıa 69
3 SISTEMAS DE RECOMENDACION
1. Calcular la similaridad del usuario activo con el resto de usuarios del sistema.
2. Encontrar los k usuarios con la similaridad mas alta respecto al usuario activo.
De la misma forma que se hace la busqueda de los K-Vecinos con los usuarios se puede
hacer con los ıtems, pero en este apartado del trabajo se va a explicar la tecnica de los
K-Vecinos orientado a los usuarios y no a los ıtems, aunque el proceso seria el mismo,
sustituyendo usuarios por ıtems.
El calcular la similaridad del usuario activo con el resto de usuarios, es uno de los
elementos fundamentales del K-Vecinos, ya que sino se calcula correctamente el parecido
entre una pareja de usuarios, no seremos capaces de encontrar aquellos ıtems que realmente
van a resultar interesantes para el usuario activo. Uno de los problemas que suele tener
en el filtrado colaborativo, es que la base de datos de las votaciones con la que se trabaja
tiene un grado de dispersion muy elevado, es decir; que los usuarios votan un pequeno
porcentaje de los ıtems que hay en el sistema, por lo que la similaridad entre un par de
usuarios debe ser calculada unicamente con aquellos ıtems que hayan sido comunmente
valorados por ambos usuarios.
Definimos el conjunto de ıtems que han sido valorados tanto por el usuario x como
por el usuario y como:
Bx,y = {i ∈ I|rx,i 6= • ∧ ry,i 6= •} . (42)
A partir de este conjunto de ıtems somos capaces de calcular la similaridad entre
dos usuarios con alguna de las metricas de similaridad existentes. A lo largo de los anos
se han propuesto varias metricas de similaridad para el filtrado colaborativo tradicional.
Algunas de las mas utilizadas y tradicionales son [2][64][21][66]: la diferencia cuadratica
media (MSD) (43), la correlacion de Pearson (44) y el coseno (45).
MSDx,y = 1− 1
#Bx,y
∑i∈Iu
(rx,i − ry,imax−min
)2
∈ [0, 1] cuando Bx,y 6= ∅ (43)
70 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
CORRx,y =
∑i∈Bx,y
(rx,i − rx) · (ry,i − ry)√∑i∈Bx,y
(rx,i − rx)2 ·∑
i∈Bx,y
(ry,i − ry)2∈ [−1, 1] cuando Bx,y 6= ∅ (44)
COSx,y =
∑i∈Bx,y
rx,i · ry,i√∑i∈Bx,y
r2x,i ·√∑
i∈Bx,y
r2y,i
∈ [0, 1] cuando Bx,y 6= ∅ (45)
En el caso de que no existan ıtems valorados por ambos usuarios, es decir, si Bx,y = ∅,
se puede decir que:
sim(x, y) = • cuando Bx,y = ∅. (46)
Igualmente definimos que la similaridad de un usuario con el mismo no puede ser
calculada:
sim(x, y) = • cuando x = y. (47)
Ademas, todas las metricas anteriores verifican la propiedad conmutativa, por lo que,
dados el usuario x y el usuario y se cumple:
sim(x, y) = sim(y, x). (48)
Por ultimo, todas las medidas de similaridad mostradas verifican que, a mayor simila-
ridad real entre parejas de usuarios, mayor sera el valor de la metrica. En otras palabras,
si un usuario x se parece lo mismo o mas a un usuario y que a un usuario z se tiene que,
ante la misma metrica de similaridad usada:
sim(x, y) ≥ sim(x, z). (49)
El segundo punto es una tarea trivial, en el que se trata de encontrar a los k usuarios
que posean mayor similaridad con el usuario activo. Por tanto, determinamos el conjunto
de k-vecinos del usuario activo u (al que representamos como Ku) verificando lo siguiente:
Ku ⊂ U ∧#Ku = k ∧ u /∈ Ku. (50)
Autor: Ricardo Moya Garcıa 71
3 SISTEMAS DE RECOMENDACION
∀x ∈ Ku, ∀y ∈ (U −Ku) : sim(u, x) ≥ sim(u, y) (51)
Una vez que tenemos el conjunto de usuarios similares al usuario activo, tenemos
que combinar las votaciones realizadas por los k-vecinos hacia aquellos ıtems que no han
sido votados por el usuario activo. De este modo podremos predecir la votacion que el
usuario activo realizara sobre aquellos ıtems que no ha valorado y obtener una serie de
recomendaciones para el mismo, que por lo general, seran aquellos ıtems con la prediccion
mas alta.
En este punto nos volvemos a encontrar con el problema de la dispersion que tienen
las matrices de votaciones. Cuando queremos realizar la prediccion de un ıtem para el
usuario activo, suele suceder que no todos los k-vecinos han valorado ese ıtem, por lo que
la prediccion se realizara unicamente con aquellos vecinos que si han valorado el ıtem.
Puede ocurrir en el peor de los casos que ninguno de los k-vecinos haya votado el ıtem, en
cuyo caso no podemos obtener la prediccion sobre el ıtem deseado. Por tanto, definimos
el conjunto de vecinos del usuario u que han votado el ıtem i:
Gu,i = {n ∈ Ku|rn,i 6= •} (52)
Las formas mas habituales de combinar las votaciones de los k-vecinos para obtener
la prediccion de un ıtem i con respecto al usuario activo u, pu,i son [2][64][21]: la media
(53), la media ponderada (54) y la media ponderada de la desviacion con respecto a la
media (55) (esta ultima es la que generalmente mejores resultados proporciona [21]). En
la media, todos los usuarios aportan el mismo peso a la prediccion, mientras que en la
media ponderada y en la media ponderada de la desviacion con respecto a la media, el
peso de cada vecino se realiza en funcion de la similaridad con el usuario activo.
pu,i =1
Gu,i
·∑
n∈Gu,i
rn,i cuando Gu,i 6= ø (53)
pu,i =
∑n∈Gu,i
sim(u, n) · rn,i∑n∈Gu,i
sim(u, n)cuando Gu,i 6= ø (54)
72 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
pu,i = ru +
∑n∈Gu,i
sim(u, n) · (rn,i − r)∑n∈Gu,i
sim(u, n)cuando Gu,i 6= ø (55)
En el caso extremo de que ninguno de los k-vecinos haya valorado el ıtem que se
intenta predecir, es decir, si Gu,i = ø, la prediccion no podra ser calculada:
pu,i = • cuando Gu,i 6= ø (56)
Para obtener las N mejores recomendaciones para cada usuario debemos predecir el
voto del usuario sobre los ıtem que no haya votado y encontrar los N que dispongan de una
prediccion mas alta (generalmente es ası, aunque puede haber determinados sistemas en
los que se quieran recomendar otro tipo de ıtems, como por ejemplo los mas novedosos o los
mas valorados). Formalmente definimos Xu como el conjunto de posibles recomendaciones
a realizar al usuario u y Zu como el conjunto de las N recomendaciones realizadas al usuario
u. Las siguientes expresiones deben verificarse asumiendo que cada usuario es capaz de
recibir N recomendaciones:
Xu ⊂ I ∧ ∀i ∈ Xu, ru,i = •, pu,i 6= • (57)
Zu ⊆ Xu,#Zu = N,∀i ∈ Zu,∀j ∈ (Xu − Zu) : Pu,i ≥ pu,j (58)
A continuacion vamos a pasar a mostrar un ejemplo de como realizarıamos recomen-
daciones a los usuarios con el metodo de los K-Vecinos, tomando como matriz de votos la
tabla 16 mostrada anteriormente. Para este ejemplo utilizaremos los parametros mostra-
dos en la siguiente tabla.
Para poder determinar el conjunto de k-vecinos de cada usuario, primero debemos
determinar la similaridad existente entre cada pareja de usuarios. Para realizar este ejem-
plo vamos a utilizar como metrica de similaridad, la metrica mas simple y sencilla de
entender, que es el MSD (43).
Autor: Ricardo Moya Garcıa 73
3 SISTEMAS DE RECOMENDACION
Parametro Valor
Numero de usuarios 6
Numero de ıtems 12
Valor mınimo de la votacion 1
Valor maximo de la votacion 5
Ausencia de voto •
Numero de vecinos (k) 2
Numero de recomendaciones (N) 2
Umbral de relevancia de un ıtem (θ) 4
Tabla 17: Parametros utilizados en el ejemplo de filtrado colaborativo.
En la tabla 18 se muestran todas las medidas de similaridad entre cada pareja de
usuarios. Hay que recordar que la similaridad entre cada pareja de usuarios cumple la
propiedad conmutativa (48) por lo que solo se ha rellenado la tabla en la parte triangular
superior, es decir, que si la tabla fuese una matriz, seria simetrica.
Sim (x,y) U1 U2 U3 U4 U5 U6
U1 • 0.828 0.968 0.979 0.891 0.792U2 0.000 • 0.396 0.863 0.688 0.363U3 • 0.844 0.938 0.969U4 • 0.896 0.766U5 • 0.979U6 •
Tabla 18: Similaridad entre cada pareja de usuarios en el ejemplo de filtrado colaborativo.
Para determinar el conjunto de k-vecinos de cada uno de los usuarios del sistema,
debemos encontrar los k usuarios que tengan una similaridad mas alta con el usuario
activo, tal y como se definio en (50) y (51). En la siguiente tabla 18 se muestran los
k-vecinos de cada usuario para un valor de k = 2.
K=2 U1 U2 U3 U4 U5 U6
Ku {U4, U3} {U4, U1} {U6, U5} {U1, U5} {U6, U3} {U5, U3}
Tabla 19: Conjunto de k-vecinos de cada usuario del ejemplo del filtrado colaborativo para k=2.
A continuacion combinaremos las votaciones de los vecinos de los usuarios para ob-
tener la prediccion de voto del usuario activo. Con el fin de simplificar los calculos, se
empleara la media aritmetica (53) como mecanismo de combinacion de las votaciones de
los K-Vecinos.
74 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
La tabla 20 contiene todas la predicciones de voto realizadas sobre todos los ıtems
del sistema para todos los usuarios del mismo. Las celdas de la tabla que estan de color
azul indican que el usuario no puntuo el ıtem y las celdas con el sımbolo • indica la
imposibilidad de calcular la prediccion de un ıtem para un usuario, al no ser ese ıtem
votados por ninguno de sus vecinos.
pu,i I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12
U1 1 1 4 3 2 1 3 3 4,5 4 • 1U2 1 1 4 3,5 2 1 3 3 5 4 • 1U3 2 • 5 2 1 • 1 4 • 1 2 1,5U4 1,5 1 4,5 3 1,5 1 2 3 • 4 2 1U5 2 • 5 • 1 • • 4 • 1 2 2U6 2 • 5 2 1 • • 4 • • 2 2
Tabla 20: Predicciones de voto realizadas mediante la votacion de los k-vecinos en un ejemplo de filtradocolaborativo. Los ıtems de color azul, son los ıtems que no han sido votados por los usuarios.
Ahora, a cada usuario le seran recomendados aquellos ıtems que hayan obtenido una
prediccion mas alta de entre aquellos que no hayan votado.
N=2 U1 U2 U3 U4 U5 U6
Xu {I3,I4,I6,I9,I12} {I1,I2,I5,I9} {I3,I5,I7,I10,I11,I12} {I1,I5,I6,I8,I11} {I8,I10} {I1,I11}Zu {I9,I3} {I9,I5} {I3,I11} {I8,I11} {I8,I10} {I1,I11}
Tabla 21: ıtems susceptibles de ser recomendados (Xu) e ıtems recomendados (Zu) a los usuarios delfiltrado colaborativo.
3.2.2. Sistemas de Recomendacion basado en factorizacion matricial
Los SR basados en factorizacion matricial se enmarcan dentro de los SR basados
en modelos. Estos tipos de sistemas de recomendacion utilizan la matriz de votos para
generar un modelo que permita en definitiva realizar recomendaciones a los usuarios.
Los sistemas de recomendacion basados en factorizacion matricial van mas alla de la
realizacion de recomendaciones a los usuarios, ya que estos obtienen una serie de factores
latentes que caracterizan a los usuarios y a los ıtems (similar al metodo del LSI para
los SR basados en contenido). Con estos factores no solo tenemos la posibilidad de hacer
recomendaciones de ıtems a los usuarios, sino tambien poder estudiar las relaciones que
Autor: Ricardo Moya Garcıa 75
3 SISTEMAS DE RECOMENDACION
hay entre los usuarios y los ıtems del sistema a partir de sus factores latentes.
Una de las tecnicas mas importantes utilizadas en los SR basados en factorizacion
matricial es el SVD aplicado a los SR basados en FC [45]. Tambien existe un enfoque
probabilıstico basado en factorizacion matricial que es el PMF (Probabilistic Matrix
Factorization) [59] y que tambien tiene como finalidad el obtener una serie de factores
latentes que caractericen a los usuarios y los ıtems. El SVD aplicado a los SR basados en
FC se basa en la tecnica matematica del SVD pero no se aplica esta tecnica como tal a
la matriz de votos ya que hay que contemplar la excepcion de los ıtems no votados por
los usuarios. En el caso del LSI si que se aplicaba la tecnica matematica como tal ya que
habia que tener en cuenta todas las apariciones de las palabras en los documentos, aunque
estas fuesen de 0 apariciones. En el caso de los SR basados en FC tenemos matrices no
rellenas, ya que los ıtems no votados no los podemos rellenar con ceros.
En esencia el SVD aplicado al FC es muy similar a la tecnica del LSI ya que su
finalidad es obtener una serie de factores latentes que en este caso describen a los usuarios
y a los ıtems. Con esta tecnica se puede observar como al obtener estos factores latentes
que caracterizan a los usuarios y a los ıtems, se pueden obtener las predicciones de los
votos de los usuarios simplemente multiplicando las matrices de factores. En este apartado
del trabajo vamos a explicar como se realiza el SVD adaptado al FC y el significado de
los factores latentes, para que a partir de ellos podamos obtener las predicciones de voto
de los usuarios y podamos realizar recomendaciones.
La tecnica matematica del SVD como tal, ya se explico en el apartado 3.1.2 de este
trabajo (Sistemas de Recomendacion basados en LSI), pero ahora tenemos que adaptar
esta tecnica al FC teniendo en cuenta la excepcion de los ıtems no votados por los usuarios.
Haciendo un pequeno resumen de la tecnica matematica del SVD aplicada al FBC; se tiene
que esta tecnica descomponıa en tres matrices denominadas U , S y V , una matriz rellena
A, y decıamos que si en la matriz A tenia como filas el numero de apariciones de cada
palabra en un documentos y como columnas los documentos, obtenıamos en la matriz U
76 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
los factores latentes de las palabras, en la matriz V los factores latentes de los documentos
y en la matriz S la importancia de cada uno de estos factores latentes. Si ahora la matriz
A tuviese en sus filas los votos realizados por los usuarios y en las columnas los ıtems,
tendrıamos como resultado una matriz U que tendrıa los factores latentes de los usuarios,
una matriz V que tendrıa los factores latentes de los ıtems y por ultimo una matriz S
que tendrıa la importancia de cada uno de estos factores. Como esta descomposicion de
la matriz de votos A no la podemos hacer al no ser una matriz rellena (porque hay ıtems
que no han sido votados), tenemos que hacer una abstraccion del SVD y adaptarlo para
obtener una matriz con los factores latentes de los usuarios y otra matriz con los factores
latentes de los ıtems.
Haciendo una abstraccion de la tecnica del SVD aplicado al FC, lo que se pretende
es obtener una serie de factores que caractericen a cada uno de los usuarios y de los ıtems
del sistema, por tanto, y a nivel conceptual para el caso del FC, podemos simplificar el
proceso del SVD, obteniendo solamente las matrices de factores de los usuarios e ıtems.
Esto es posible ya que si la matriz S la descomponemos en dos matrices iguales (haciendo
la raız cuadrada de cada valor singular) y multiplicamos cada una de ellas a las matrices
U y V obtendremos dos matrices Ufac y Ifac con los factores caracterısticos de los
usuarios e ıtems y ademas se tendra ya calculada la importancia de cada factor latente.
Esta simplificacion la mostramos a continuacion:
Descomponemos la matriz de valores singulares en dos matrices iguales:
Skxk =
λ1
. . .
λk
=
√λ1
. . .
√λk
·√λ1
. . .
√λk
(59)
Se observa que el producto de estas cuatro matrices sigue dando la mejor aproximacion
Autor: Ricardo Moya Garcıa 77
3 SISTEMAS DE RECOMENDACION
a la matriz original, ya que es lo mismo que tener las tres matrices U , S y V : V otosnxm
=
Unxk
·√λ1
. . .
√λk
·√λ1
. . .
√λk
· Vkxm
(60)
Obtengo la nueva matriz de factores de los usuarios : Ufac
=
Unxk
·√λ1
. . .
√λk
(61)
Obtengo la nueva matriz de factores de los ıtems : Ifac
t
=
√λ1
. . .
√λk
· Vkxm
(62)
Se puede demostrar que este producto matricial es el mismo que el de (Unxk · Skxk ·
V tkxm): V otosnxm
=
Ufac
· Ifac
t
(63)
Una vez que ya hemos hecho la abstraccion del SVD para aplicarlo al FC, solo nos
queda ver de que forma conseguimos obtener las matrices de factores de los usuarios y de
los ıtems; teniendo en cuenta el tratamiento de los ıtems no votados.
La solucion al tratamiento de los ıtems no votados la dio Simon Funck [26], que
propuso no tener en cuenta en la matriz de votos, aquellos votos que no se han realizado
para calcular los factores de los usuarios y de los ıtems. Analıticamente se obtiene que un
voto dado ha de ser el producto escalar del vector de factores del usuario que realiza el
78 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
voto sobre el ıtem y de los factores del ıtem sobre el que se realiza el voto. Si consideramos
qi al vector que representa los factores de un ıtem y pu al vector que representa los factores
del usuario se tendrıa que cumplir lo siguiente:
ru,i = qti · pu (64)
Es decir, lo que plantea Simon Funck es calcular los factores de los usuarios y de los
ıtems, ajustando los factores para aquellos usuarios e ıtems que hayan emitido un voto;
es decir, que solo se calculen los qi y pu para todo ru,i 6= •.
En resumen, lo que plantea Simon Funck es encontrar el mınimo de la siguiente
expresion (65):
mınq∗,p∗
∑(u,i)∈k
(ru,i − qti · pu)2 (65)
siendo
error =∣∣ru,i − qti · pu∣∣ (66)
Para aliviar el problema del Overfitting se le anade a la expresion (65) que hay
que minimizar una constante de control o de regularizacion que llamaremos λ, que nos
permitira que la regresion que realicemos no se ajuste tanto a los datos de entrenamiento
que tenemos; es decir, a los votos conocidos, y nos permita obtener unos factores mas
generalizados de los usuarios e ıtems para poder hacer mejores recomendaciones. Dado
el parametro de regularizacion λ, debemos ahora encontrar el mınimo de la siguiente
expresion (67):
mınq∗,p∗
∑(u,i)∈k
(ru,i − qti · pu)2 + λ(‖qi‖2 + ‖pu‖2) (67)
De esta forma conseguimos que no se adapte la funcion a los datos de entrenamiento
y conseguimos que generalice mas.
Uno de los problemas que puede surgir ahora, es ver que valor de K o de factores
latentes cogemos. Como ya se comento con los valores singulares de la matriz S, podıamos
Autor: Ricardo Moya Garcıa 79
3 SISTEMAS DE RECOMENDACION
ver la varianza retenida que nos daban los valores singulares en funcion de su valor. En
este caso, con la abstraccion que hemos hecho del SVD aplicado al FC no tenemos los
valores singulares pero son muy sencillos de obtener una vez calculados los factores de los
usuarios y de los ıtems. Estos valores singulares se pueden obtener haciendo el producto
de los modulos de los factores de los usuarios y de los ıtems, es decir:
V alorSingulari =∣∣∣−−−→Ufaci
∣∣∣ · ∣∣∣−−−→Ifaci
∣∣∣ (68)
Por tanto si se saben los valores singulares es muy sencillo coger un numero apropiado
de factores, tal y como se mostro en la formula (20).
Dado que el calculo de los factores latentes de los usuarios y de los ıtems es muy
costoso computacionalmente si la matriz de votos es relativamente grande y dado que los
factores latentes se calculan en orden; es decir, que primero se calcula el primer factor
latente, luego el segundo y ası sucesivamente, se han propuesto otras soluciones [51] como
el dejar de calcular factores cuando el ultimo valor singular calculado tenga un valor que
este por debajo de un cierto porcentaje del primer valor singular o el dejar de calcular
factores cuando los resultados obtenidos con un factor mas varıan muy poco.
Una vez que ya se tienen calculados los factores de los usuarios y de los ıtems, el
calculo de las predicciones de voto de los usuarios es inmediato, ya que al multiplicar las
matrices de los factores obtenemos la prediccion de voto de los usuarios sobre todos los
ıtems, tanto los que han votado como los que no:
Ufac
· Ifac
t
=
Predicciones
(69)
Y como es obvio, una vez que se tienen las predicciones de voto de los usuarios, el
80 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
proceso de recomendacion de ıtems es inmediato, ordenando las predicciones de mayor
a menor puntuacion y recomendando aquellas predicciones que esten por encima de un
determinado umbral.
A continuacion vamos a mostrar un ejemplo de como se realizarıan recomendaciones
a los usuarios con la tecnica del SVD aplicada el FC. Para este ejemplo vamos a utilizar la
matriz de votos mostrada en la tabla 16 y como parametros del sistema de recomendacion
utilizaremos los mostrados en la tabla 17. En resumen realizaremos el mismo ejemplo que
se hizo para la tecnica de los K-Vecinos.
En primer lugar vamos a obtener las matrices de factores de los usuarios y de los ıtems.
El numero de factores latentes que utilizaremos, vendra dado por el valor de los valores
singulares; es decir, iremos calculando factores latentes hasta que el valor del ultimo valor
singular calculado tenga un valor inferior al 1 % del primer valor singular [51].
Una vez puesto a ejecutar el SVD aplicado al FC, obtenemos los siguiente 3 valores
singulares:
K 1 2 3
Valor Singular 21.6 0.32 0.16% 0 1.48 0.74
Tabla 22: Ejemplo de seleccion del numero de factores latentes en el SVD
En este ejemplo vemos que al calcular el tercer factor latente de los usuarios y de los
ıtems, obtenemos un valor singular que esta por debajo del 1 % del primer valor singular,
lo que significa que la importancia que va a tener el tercer factor latente va a ser muy
pequena en comparacion con el primer y el segundo factor; incluso es mas, si fuesemos un
poco mas permisivos en este ejemplo, podrıamos caracterizar a los usuarios y a los ıtems
con tan solo un factor latente, ya que vemos que el primer valor singular tiene un valor
considerablemente mas grande que el segundo valor singular. Aun ası hemos calculado
tres factores latentes para los usuarios y para los ıtems, ası que los utilizaremos para el
calculo de las predicciones de voto de los usuarios.
Autor: Ricardo Moya Garcıa 81
3 SISTEMAS DE RECOMENDACION
A continuacion vamos a pasar a mostrar los factores latentes calculados que caracte-
rizan a los usuarios y a los ıtems:
F1 F2 F3U1 -1.96 -0.01 -0.02U2 -1.82 -0.41 0.29U3 -1.32 0.10 -0.08U4 -2.03 -0.02 0.01U5 -1.72 0.15 -0.09U6 -1.56 0.32 -0.23
F1 F2 F3I1 -0.72 0.03 -0.02I2 -0.68 -0.01 -0.01I3 -1.92 0.36 -0.26I4 -1.82 -0.19 0.13I5 -0.72 -0.03 -0.00I6 -1.74 -0.18 0.13I7 -1.27 -0.10 0.05I8 -1.62 0.24 -0.20I9 -2.27 0.03 -0.02I10 -1.82 -0.25 0.17I11 -0.85 -0.01 0.01I12 -0.64 0.07 -0.05
Tabla 23: Factores de los usuarios (Matriz U) y los ıtems (Matriz V)
Como se observa en los valores de los factores latentes, el valor del primer factor
latente es mucho mayor que el del segundo y del tercer factor latente, dado que los valores
singulares nos han indicado la importancia de cada uno de ellos.
Una vez calculados los factores latentes caracterısticos de los usuarios y de los ıtems,
vamos a obtener la prediccion de voto de lo usuarios multiplicando las dos matrices (U ·V t).
Haciendo esta multiplicacion vamos a obtener una matriz en la que el resultado sera la
prediccion del voto que realizarıa el usuario sobre todos los ıtems. En este caso solo
habrıa que tener en cuenta las predicciones para los ıtems no votados que son los que
nos interesan. Haciendo el producto matricial de U · V t obtenemos como predicciones lo
siguiente (tabla 24):
pu,i I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12
U1 1.41 1.33 3.77 3.57 1.42 3.40 2.49 3.19 4.45 3.56 1.66 1.24U2 1.29 1.23 3.28 3.44 1.33 3.28 2.37 2.79 4.13 3.46 1.55 1.11U3 1 1 2.59 2.37 1 2.26 1.66 2.17 2.99 2.35 1.11 1U4 1.46 1.37 3.89 3.69 1.47 3.53 2.58 3.27 4.61 3.69 1.71 1.29U5 1.25 1.17 3.39 3.10 1.24 2.96 2.17 2.84 3.93 3.08 1.46 1.11U6 1.14 1.05 3.17 2.75 1.12 2.62 1.94 2.64 3.55 2.71 1.31 1.02
Tabla 24: Predicciones de voto realizadas con el SVD. Los ıtems de color azul, son los ıtems que no hansido votados por los usuarios.
En el caso del SVD obtenemos las predicciones para todos los ıtems, a diferencia de lo
82 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
que pasaba con el K-Vecinos, en el que habıa casos en los que no se podıa calcular alguna
prediccion porque sus vecinos no habıan votado esos ıtems. Respecto a las predicciones
obtenidas en este ejemplo, vemos que hay votos que se ajustan bastante al voto realizado
por el usuario y otros que no. Esto es debido a que el ejemplo propuesto no tiene una
gran cantidad de votos a tratar por eso el modelo que realiza o los factores que obtiene
no se ajustan lo suficiente a las caracterısticas de los usuarios y de los ıtems, por eso hay
votos que los predice bastante mal, pero este metodo aplicado a bases de datos como la
de Netflix o Movielens obtiene mejores resultados que con el metodo del K-Vecinos.
Una vez obtenidas las predicciones de votos sobre los ıtems que el usuario no ha
votado, se han de recomendar aquellos ıtems que hayan obtenido una prediccion mas
alta:
N=2 U1 U2 U3 U4 U5 U6
Xu {I3,I4,I6,I9,I12} {I1,I2,I5,I9} {I3,I5,I7,I10,I11,I12} {I1,I5,I6,I8,I11} {I8,I10} {I1,I11}Zu {I9,I3} {I9,I5} {I3,I10} {I6,I8} {I9,I4} {I9,I6}
Tabla 25: ıtems susceptibles de ser recomendados (Xu) e ıtems recomendados (Zu) a los usuarios con elSVD.
En este ejemplo con el SVD vemos que las recomendaciones de los ıtems a los usuarios
han variado un poco respecto del ejemplo de los K-Vecinos, ya que se les recomiendan
ıtems diferentes.
3.2.3. Evaluacion de los sistemas de recomendacion
Una vez que se han calculado las recomendaciones a los usuarios (o al usuario activo),
debemos de ser capaces de cotejar la calidad de los resultados obtenidos. Con este proposi-
to se han desarrollado una serie de medidas de calidad que nos permiten comprobar si los
mecanismos que estamos empleando para realizar recomendaciones estan funcionando de
forma correcta.
Asimismo, las medidas de calidad tienen un peso muy importante en el area de la
investigacion de los sistemas de recomendacion pues estas permiten comprobar si las va-
Autor: Ricardo Moya Garcıa 83
3 SISTEMAS DE RECOMENDACION
riaciones incluidas en el sistema de recomendacion, mejoran los resultados que otros inves-
tigadores hayan logrado. Como medidas de calidad mas empleadas encontramos [34][66]:
1. Medidas de calidad de las predicciones:
Accuracy : indica el nivel medio de la calidad de las predicciones realizadas en
el sistema de recomendacion. Las medidas de accuracy mas empleadas son el
error medio absoluto y algunas de sus variantes, como el error cuadratico medio.
Coverage : indica el porcentaje de predicciones realizadas de entre todas las
posibles. Potencialmente se puede realizar una prediccion a todos los ıtems que
no haya votado el usuario activo; sin embargo, realmente solo es posible realizar
predicciones sobre un subconjunto de estos ıtems. En filtrado colaborativo, por
ejemplo, solo se pueden predecir aquellos ıtems valorados por al menos uno de
los k-vecinos.
Porcentaje de predicciones perfectas, porcentaje de predicciones malas, etc.
2. Medidas de calidad de las recomendaciones:
Precision : indica la proporcion de ıtems relevantes recomendados respecto del
total de recomendados (N).
Recall : indica la proporcion de ıtems relevantes recomendados respecto de todos
los ıtems relevantes disponibles.
Especificidad, novedad, credibilidad, etc.
Para mostrar un ejemplo del empleo de estas medidas de calidad, utilizaremos los
resultados de las predicciones de voto (ver tabla 20) obtenidas con el metodo de los K-
Vecinos. Para cotejar la calidad de los resultados obtenidos, se emplearan como medidas
de calidad el error medio absoluto (MAE ) para medir la precision con la que estamos
realizando las predicciones, el coverage, para medir la capacidad de recomendacion del
sistema y la precision y el recall, para obtener la calidad de las recomendaciones.
84 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
El error medio absoluto, tambien denominado MAE (Mean Absolute Error), calcula
la distancia absoluta existente entre las predicciones realizadas y la votacion real del
usuario.
Definimos Cu como el conjunto de ıtems valorados por el usuario u para los que ha
sido posible obtener la prediccion:
Cu = {i ∈ I|ru,i 6= • ∧ pu,i 6= •} (70)
Calculamos el MAE de un usuario, MAEu como el valor medio de la diferencia ab-
soluta entre las predicciones realizadas y las votaciones reales del usuario:
MAEu =1
#Cu
·∑i∈Cu
|ru,i − pu,i| (71)
Calculamos el MAE como el promedio del error medio absoluto cometido en cada
usuario:
MAEu =1
#U·∑u∈U
MAEu (72)
A partir de las predicciones calculadas en la tabla 20 y de las votaciones de los
usuarios mostradas en la tabla 16, vamos a obtener el MAE del sistema. Como ya se
menciono anteriormente, el MAE debe calcularse a partir de las predicciones realizadas
sobre aquellos ıtems que ya ha valorado el usuario.
Como ejemplo, vamos a detallar como calcular el MAE cometido por el usuario 1 :
Cu1 = {I1, I2, I5, I7, I8, I10} (73)
MAEU1 =|1− 1|+ |2− 1|+ |2− 2|+ |3− 3|+ |4− 3|+ |4− 4|
6= 0, 33 (74)
La tabla 26 muestra el MAE cometido al predecir las votaciones de todos los usuarios
del sistema. En la tabla se muestra (para aquellos ıtems que se les ha podido recomendar
al usuario) el error absoluto que se ha cometido al predecir la votacion del ıtem corres-
pondiente, |ru,i − pu,i|. La ultima columna de la tabla refleja el MAE cometido en cada
usuario del sistemas MAEu:
Autor: Ricardo Moya Garcıa 85
3 SISTEMAS DE RECOMENDACION
|ru,i − pu,i| I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 MAEu
U1 0 1 0 0 1 0 0,33
U2 3 1,5 4 0 2 1 0 1,64
U3 1 0 1 0,66
U4 0 0,5 1 1 0 0 0,42
U5 0 0 0 0 1 0,2
U6 0 0 0 0 0 0
Tabla 26: Error medio absoluto obtenido en el ejemplo de filtrado colaborativo.
Sabiendo el MAEu obtenemos el MAE global del sistema:
MAEu =1
#U·∑u∈U
MAEu =0, 33 + 1, 64 + 0, 66 + 0, 42 + 0, 2 + 0
6= 0, 54 (75)
El coverage tiene como finalidad medir la capacidad de recomendacion que tienen los
K-Vecinos de cada usuario, o dicho con otras palabras, indica el porcentaje de ıtems que
han podido ser predichos respecto del total de los que podıan haberlo sido. El coverage
de un usuario, coverageu, se calcula tal y como se indica en la siguiente expresion:
coverageu = 100 · # {i ∈ I|ru,i = • ∧ pu,i 6= •}# {i ∈ I|ru,i = •}
(76)
Por su parte, el coverage del sistema es computado como el valor promedio del coverage
de cada usuario:
coverage =1
#U·∑u∈U
coverageu (77)
Partiendo de las predicciones de la tabla 20 podemos obtener el coverage del sistema
calculando la proporcion de ıtems para los que se ha podido realizar una prediccion
respecto del total de ıtems no valorados por el usuario. Es importante resaltar que ahora
unicamente nos fijamos en las predicciones de los ıtems no votados por el usuario porque
no necesitamos la votacion real del usuario para calcular la medida de calidad.
Como ejemplo detallado vamos a mostrar como se puede calcular el coverage del
usuario 5:
coverageu = 100 · # {I8, I10}# {I2, I4, I6, I8, I9, I10}
= 100 · 2
6= 33 % (78)
86 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
La tabla 27 contiene el coverage obtenido a partir de las predicciones realizadas en la
tabla 20. Las celdas que no contienen ningun dato corresponden a los ıtems votados por
el usuario, mientras que las celdas no sombreadas contienen las predicciones de voto de
los ıtems no valorados. La columna de la derecha contiene el coverage para cada usuario,
coverageu:
pu,i I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 Coverageu
U1 4 3 1 4,5 1 100 %
U2 1 1 2 5 100 %
U3 • 5 1 1 1 2 1,5 85,71 %
U4 1,5 1,5 1 3 2 100 %
U5 • • • • 1 33 %
U6 2 • • • • 2 33 %
Tabla 27: Coverage obtenido en el ejemplo de filtrado colaborativo.
Sabiendo el Coverageu obtenemos el Coverage del sistema:
coverage =1
#U·∑u∈U
coverageu =100 + 100 + 85, 71 + 100 + 33 + 33
6= 75, 28 % (79)
Respecto al Coverage hay que comentar que para el caso del SVD es del 100 % ya que
este metodo predice todos los votos de todos los ıtems, por tanto esta medida de calidad
aplicada al SVD es muy positiva.
La calidad de las recomendaciones realizadas puede medirse mediante dos medidas
que, habitualmente, aparecen unidas que son la precision y el recall. La precision busca
comprobar cuantos de los ıtems recomendados al usuario activo eran realmente relevantes
para el. El recall se encarga de comprobar que porcentaje de los ıtems relevantes para un
usuario le fueron recomendados. Para poder definir cuando un ıtem es o no relevante se
emplea un parametro Θ que especifica la nota mınima que debe tener un ıtem para ser
considerado como relevante.
El calculo de estas medidas requiere redefinir los criterios con los cuales se recomienda
un ıtem descrito en (50) y (51). El problema que tienen Xu y Zu es que no permiten evaluar
Autor: Ricardo Moya Garcıa 87
3 SISTEMAS DE RECOMENDACION
si un ıtem es o no relevante para el usuario u porque no se conoce la votacion real del
usuario. Vamos a redefinirlos en (80) y (81), asumiendo que todos los usuarios pueden
recibir hasta un total de N recomendaciones:
X′
u ⊂ I ∧ ∀i ∈ X ′u, ru,i 6= •, pu,i 6= • (80)
Z′
u ⊆ X′
u,#Z′
u = N,∀i ∈ Z ′u,∀j ∈ (X′
u − Z′
u) : pu,i ≥ pu,j (81)
Ahora es posible comprobar que ıtems son relevantes y cuales no para el usuario
activo. Definimos los siguientes conjuntos para el usuario u:
Yu ={i ∈ Z ′u|ru,i ≥ Θ
}, ıtems recomendados y relevantes. (82)
Nu ={i ∈ Z ′u|ru,i < Θ
}, ıtems recomendados y no relevantes. (83)
Ou ={i ∈ (Iu − Z
′
u)|ru,i ≥ Θ}
, ıtems no recomendados y relevantes. (84)
Definimos la precision de un usuario u, y la denotamos como precisionu, como el
porcentaje de ıtems relevantes entre los recomendados:
precisionu =#Yu
#Yu + #Nu
(85)
La precision del sistema puede calcularse como el valor promedio de la precision de
cada usuario:
precision =1
#U·∑u∈U
precisionu (86)
Definimos el recall de un usuario u, y la denotamos por recallu, como el porcentaje
de ıtems relevantes recomendados respecto del total de relevantes:
recallu =#Yu
#Yu + #Ou
(87)
El recall del sistema puede calcularse como el valor promedio del recall de cada
usuario:
recall =1
#U·∑u∈U
recallu (88)
88 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
Para poder calcular las medidas del precision y el recall debemos obtener los ıtems
que recomendarıamos de los que ya han sido votados. Para ello, haciendo uso de las
predicciones mostradas en la tabla 20, la tabla 28 muestra los ıtems que han sido valorados
por los usuarios y para los que ha sido posible realizar una prediccion, X′u, y los ıtems
que serian recomendados a cada usuario entre los citados anteriormente, Z′u.
N=2 U1 U2 U3
X′
u {I1, I2, I5, I7, I8, I10, I11} {I3, I4, I6, I7, I8, I10, I11} {I1, I4, I6, I8, I9}Z
′
u {I10, I7 ∨ I8} {I3, I10} {I8, I1 ∨ I4}
N=2 U4 U5 U6
X′
u {I2, I3, I4, I7, I9, I10, I12} {I1, I3, I5, I7, I11, I12} {I3, I4, I5, I8, I10, I12}Z
′
u {I3, I10} {I3, I1 ∨ I11 ∨ I12} {I3, I8}
Tabla 28: Items susceptibles de ser recomendados (X′
u) e ıtems recomendados (Z′
u) entre aquellos valo-rados por el usuario en el ejemplo de filtrado colaborativo.
Para poder calcular las dos ultimas medidas de calidad necesitamos definir el umbral a
partir del cual consideramos un ıtem como relevante. En este caso definiremos el umbral de
relevancia como Θ = 4. Aquellos ıtems que hayan sido votados por el usuario con una nota
igual o superior a ese umbral seran considerados relevantes, mientras que los que tengan
una valoracion estrictamente inferior a la indicada por el umbral seran considerados como
no relevantes.
Vamos a ver en detalle como calcular la precision y el recall del usuario 1 a partir de
sus votos (tabla 16) y de las predicciones obtenidas (tabla 20):
precisionU1 =# {I10}
# {I10}+ # {I7}=
1
1 + 1= 0, 5 (89)
recallU1 =# {I10}
# {I10}+ # {I8}=
1
1 + 1= 0, 5 (90)
La tabla 29 permite calcular la precision del sistema de filtrado colaborativo. Las
celdas de la tabla contienen los votos de los usuarios para los ıtems del sistema. Aquellas
celdas que aparecen con los votos de color azul son las de los ıtems que han sido reco-
mendados y han resultado ser relevantes, mientras que aquellas celdas que estan en color
rojo, son las de los ıtems que han sido recomendados y que nos han resultado relevantes.
Autor: Ricardo Moya Garcıa 89
3 SISTEMAS DE RECOMENDACION
La columna de la derecha muestra la precision de cada usuario, precisionu:
ru,i I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 PrecisionuU1 1 2 • • 2 • 3 4 • 4 1 • 1
1+1 = 0, 5
U2 • • 1 5 • 5 3 1 • 5 2 1 11+1 = 0, 5
U3 1 • • 2 • 1 • 3 4 • • • 00+2 = 0
U4 • 1 4 4 • • 3 • 5 4 • 1 22+0 = 1
U5 2 • 5 • 1 • 1 • • • 2 1 11+1 = 0, 5
U6 • • 5 2 1 • • 4 • 1 • 2 22+0 = 1
Tabla 29: Precision obtenida en el ejemplo de filtrado colaborativo
Sabiendo el precisionu, obtenemos la precision del sistema:
precision =1
#U·∑u∈U
precisionu =0, 5 + 0, 5 + 0 + 1 + 0, 5 + 1
6= 0, 58 (91)
La tabla 30 permite calcular el recall del sistema de filtrado colaborativo. Las celdas
de la tabla contienen los votos de los usuarios para los ıtems del sistema. Aquellas celdas
que aparecen de color azul son la de los ıtems que han sido recomendados y han resultado
ser relevantes, mientras que aquellas que aparecen de color rojo son los ıtems que no
han sido recomendados y que han resultado relevantes para el usuario. La columna de la
derecha muestra el recall de cada usuario (recallu):
ru,i I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12 RecalluU1 1 2 • • 2 • 3 4 • 4 1 • 1
1+1 = 0, 5
U2 • • 1 5 • 5 3 1 • 5 2 1 11+2 = 0, 33
U3 1 • • 2 • 1 • 3 4 • • • 00+1 = 0
U4 • 1 4 4 • • 3 • 5 4 • 1 22+2 = 0, 5
U5 2 • 5 • 1 • 1 • • • 2 1 11+0 = 1
U6 • • 5 2 1 • • 4 • 1 • 2 22+0 = 1
Tabla 30: Recall obtenido en el ejemplo de filtrado colaborativo
Sabiendo el recallu, obtenemos el recall del sistema:
recall =1
#U·∑u∈U
recallu =0, 5 + 0, 33 + 0 + 0, 5 + 1 + 1
6= 0, 56 (92)
90 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
3.3. Otros tipos de sistemas de recomendacion
En capıtulo 3.3 vamos a explicar brevemente los otros dos tipos de sistemas de re-
comendacion que hemos mencionado (los SR basados en Filtrado Demografico y los SR
Hıbridos). Estos sistemas de recomendacion no encajan demasiado bien en la generacion
de mapas graficos para la visualizacion de relaciones debido a que en el filtrado demografi-
co es bastante complicado cuantificar las distancias entre ıtems de una forma objetiva ya
que se trata de un filtrado basado en reglas que deben ser propuestas por un experto en
base a los datos que se recopilan de los usuarios y de los ıtems, por tanto no existen tecni-
cas concretas que puedan ser aplicadas en todos los SR. Por otro lado el filtrado hıbrido
que mezcla algunos de los tres filtrados mencionados (FBC, FD y FC) podrıa encajar en
la generacion de mapas graficos para la visualizacion de relaciones, pero su uso depende
del SR que se quiera construir y la decision de dar mas peso a un tipo de filtrado u otro
a la hora de combinar los datos.
3.3.1. Sistemas de Recomendacion basados en Filtrado Demografico
Los sistemas de recomendacion basados en filtrado demografico (FD) [47] son aque-
llos que realizan recomendaciones basandose en las caracterısticas demograficas de los
usuarios; es decir, edad, sexo, situacion geografica, profesion, etc. Este tipo de SR realiza
recomendaciones comparando las valoraciones positivas de otros usuarios que comparten
unas caracterısticas demograficas similares; como por ejemplo, recomendar un viaje a una
persona de entre 35 y 40 anos, casado y con hijos o recomendar a un adolescente un res-
taurante economico y que ofrece un tipo de comida para un publico joven, suponiendo que
previamente algun usuario con esas caracterısticas ha valorados positivamente ese viaje o
restaurante.
Este tipo de filtrado por si solo es el que peor resultados suele dar de los tres ya que
se presupone que los usuarios con caracterısticas sociales similares comparten las mismas
preferencias sobre los ıtems a recomendar. Por otro lado los usuarios; por lo general,
Autor: Ricardo Moya Garcıa 91
3 SISTEMAS DE RECOMENDACION
Figura 15: Filtrado Demografico
suelen ser bastante reticentes a dar informacion personal a los SR; por tanto, es bastante
complicado realizar recomendaciones sin saber cuales son sus caracterısticas o sabiendo
solo algunas de ellas.
Este tipo de filtrado presenta otra serie de inconvenientes como por ejemplo la defini-
cion de reglas por parte de un experto en la que debe de tener en cuenta varios aspectos
demograficos y requiere tambien catalogar los ıtems de forma manual y no automatica tal
y como se hace en el FBC y FC. Por otro lado es posible entrenar al sistema para obtener
reglas demograficas de forma automatica, pero como ya se ha comentado los usuarios sue-
len ser bastante reticentes a la hora de proporcionar sus datos y por tanto es complicado
tener buenos datos de entrenamiento para la obtencion de esas reglas.
3.3.2. Sistemas de Recomendacion Hıbridos
Los metodos hıbridos [3][18][20][27] mezclan algunos de los tres filtrados mencionados
(FBC, FD y FC). Por lo general se suele mezclar el filtrado basado en contenidos o el fil-
trado demografico con el filtrado colaborativo. Con los metodos hıbridos podemos realizar
recomendaciones en base a un conjunto mas amplio de informacion y ademas manejar las
situaciones de cold-star [48][62] en las que es difıcil realizar las recomendaciones.
En lo referente a los metodos hıbridos no hay nada preestablecido sobre como com-
binar los diferentes tipos de filtrado. Dependiendo de las caracterısticas del sistema re-
92 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
3 SISTEMAS DE RECOMENDACION
comendador y de los datos que se tengan de los usuarios y de los ıtems se le puede dar
mas peso a un tipo de filtrado o incluso se pueden combinar estos con alguna otra tecni-
ca de inteligencia artificial como puede ser la computacion evolutiva, logica difusa, redes
neuronales etc.
Considerando el filtrado hıbrido como una mezcla exclusiva del resto de filtrados,
podemos ver en la imagen 16 como combinar estos filtrados, bien combinando sus reco-
mendaciones, generando un modelo a partir de los diferentes tipos de filtrado o dando
mas peso a un tipo de filtrado que a otro.
Figura 16: Posibles ejemplos de Filtrado Hıbrido
En definitiva los metodos hıbridos suelen dar buenos resultados siempre y cuando se
sepan adaptar a las caracterısticas del sistema recomendador y se sepan aprovechar los
datos de los que se dispone.
Autor: Ricardo Moya Garcıa 93
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
4. MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTREITEMS
Uno de los pilares de este trabajo es ver las similaridades que hay entre los ıtems de
nuestro SR para poder relacionarlos entre ellos de una manera sencilla e intuitiva para
el usuario. Por este motivo es muy importante estudiar minuciosamente las medidas de
similaridad y saber cual aplicar en cada una de las tecnicas vistas en el capıtulo 3 de este
trabajo.
Todas estas medidas de similaridad tienen como objetivo ver cual es la distancia que
hay entre cada par de ıtems, ya sea en funcion de sus factores latentes, distribuciones de
probabilidad, vectores de palabras o votos, etc. En el ambito de los SR es muy frecuente
utilizar medidas (o metricas) de similaridad en lugar de medidas de distancias; ya que
con el paso del tiempo las investigaciones en el area de los SR han ido adaptando y
mejorando las medidas de distancias entre puntos (distancia euclidea, coseno, correlacion,
etc.), evolucionando hacia unas medidas de similaridad mas especificas que se adaptan
mejor a los SR y a las excepciones que estos puedan tener como las ausencias de votos,
matrices no rellenas etc.
Antes de pasar a explicar cuales son las metricas de similaridad mas apropiadas para
cada uno de los SR explicados en el capıtulo 3 de este trabajo vamos a definir algunas
caracterısticas que deben de cumplir las medidas de similaridad:
sim(x, y) = 1⇔ x = y
A medida que dos ıtems x, y se van pareciendo mas, mas cercano es (o mayor valor
tiene) la medida de similaridad sim(x, y).
sim(x, y) < 1⇔ x 6= y
Con estos valores de similaridad entre ıtems, definimos la distancia entre dos ıtems
Autor: Ricardo Moya Garcıa 95
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
como:
dist(x, y) = 1− sim(x, y) (93)
Una vez introducidos los conceptos basicos sobre las medidas (o metricas) de simi-
laridad, vamos a pasar a explicar en los siguientes puntos cuales son las metricas mas
apropiadas para el calculo de similaridades entre ıtems en funcion del tipo de SR que se
vio en el capıtulo 3.
4.1. Sistemas de Recomendacion basados en contenido
En los sistemas de recomendacion basados en contenido, cada ıtem esta representado
por un vector de “k” componentes, ya sea por el numero de apariciones de cada palabra en
cada documentos, por el valor de sus factores latentes (LSI), o por una distribucion de pro-
babilidad (PLSI y LDA). En funcion de lo que represente esos vectores, habra que definir
una medida de similaridad u otra para obtener unos resultados correctos y coherentes.
En los siguientes puntos vamos a ver las metricas de similaridad mas importantes que
se deben aplicar a cada tipo de SR basado en contenido visto en el capıtulo 3.
4.1.1. Sistemas de Recomendacion basados en vector de palabras
En los SR basados en vectores de palabras, cada ıtem viene representado por un
vector que indica la frecuencia con la que aparece cada termino en un documento que
describe el ıtem.
En este tipo de SR es frecuente definir una medida de similaridad entre ıtems en lugar
de una distancia, de hecho la medida de similaridad que mejores resultados obtiene en
este tipo de SR es la medida de similaridad del coseno entre dos vectores.
Para justificar que la mejor medida de similaridad para los SR basados en vectores
de palabras es la del coseno, vamos a introducir previamente la medida de similaridad del
96 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
MSD (Minimum Square Difference), al ser esta la metrica de similaridad mas simple y
mas didactica para compararla con otras metricas. Esta metrica como su propio nombre
indica, calcula la diferencia cuadratica media entre dos vectores y es la siguiente:
MSD(x, y) = 1− 1
N
n∑i=1
(rx,i − ry,imax−min
)2
∈ [0, 1] (94)
Si aplicamos esta metrica de similaridad al ejemplo propuesto en la tabla 1 obtendre-
mos los siguientes resultados:
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
I1 1 0.96 0.90 0.86 0.89 0.86 0.88 0.89 0.89 0.94 0.94I2 1 0.93 0.83 0.85 0.83 0.85 0.85 0.86 0.92 0.91I3 1 0.82 0.85 0.82 0.85 0.85 0.86 0.92 0.91I4 1 0.95 0.87 0.86 0.88 0.90 0.93 0.93I5 1 0.98 0.89 0.90 0.92 0.95 0.96I6 1 0.86 0.88 0.90 0.93 0.93I7 1 0.98 0.97 0.95 0.94I8 1 0.99 0.95 0.95I9 1 0.95 0.95I10 1 0.99I11 1
Tabla 31: Similaridades entre ıtems utilizando el MSD para el FBC
Vemos que los resultados de similaridades obtenidos con la metrica del MSD no son
como se esperaban, ya que por ejemplo vemos que los ıtems I10 e I11 son mas similares
al ıtem I1 que el ıtem I3 y se esperaba que el ıtem I3 fuese mas similar al ıtem I1 que los
ıtems I10 e I11. Este tipo de resultados no esperados tambien los vemos en otros ıtems,
por tanto vemos que al aplicar la metrica del MSD no obtenemos los resultados esperados.
La metrica del coseno mide el angulo entre dos vectores y es la metrica mas apropiada
para utilizar en los SR basados en vectores de palabras. La metrica del coseno es la
siguiente:
COS(x, y) =
n∑i=1
rx,i · ry,i√n∑
i=1
r2x,i ·√
n∑i=1
r2y,i
∈ [0, 1] (95)
Autor: Ricardo Moya Garcıa 97
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
Si aplicamos esta metrica de similaridad al ejemplo propuesto en la tabla 1 obtendre-
mos los siguientes resultados:
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
I1 1 0.77 0.36 0 0 0 0 0 0 0.15 0.29I2 1 0.64 0 0 0 0 0 0 0.37 0.28I3 1 0 0 0 0 0 0 0.48 0.37I4 1 0.62 0.21 0 0.08 0.19 0.26 0.46I5 1 0.88 0 0.08 0.23 0.32 0.5I6 1 0 0.08 0.19 0.26 0.46I7 1 0.81 0.72 0.23 0I8 1 0.96 0.08 0.13I9 1 0 0.13I10 1 0.52I11 1
Tabla 32: Similaridades entre ıtems utilizando la metrica del coseno para el FBC
Como vemos, con esta metrica ya tenemos unos resultados mas coherente que con la
metrica del MSD, ya que los ıtems que comparten tematica son mas similares que con el
resto o con aquellos que comparten tematica. En el caso del ıtem I1, vemos que los dos
ıtems mas similares son el ıtem I2 e I3 ya que estos tratan sobre la tematica de futbol.
Por el contrario los ıtem I10 e I11 tienen una similaridad mas baja ya que estos no tratar
exclusivamente de futbol, aunque en parte si. Lo mismo pasarıa con los ıtems que tratan
las tematicas de polıtica y economıa.
La justificacion por la que la metrica de similaridad mas apropiada para aplicar en
los SR basados en vectores de palabras es la del coseno, es porque esta metrica calcula
la similaridad en funcion del angulo que forman cada par de vectores. Por el contrario
las otras metricas de similaridad estan basadas en el calculo de distancias, por tanto
influye mucho el modulo (o longitud) del vector; lo que quiere decir que los ıtems que
tengan muchas palabras, tendran un modulo mayor que aquellos ıtems que tengan pocas
palabras, aunque sean muy similares.
Consideremos por ejemplo el caso de dos documentos, siendo uno el resumen del otro.
Es natural considerar que los dos ıtems tienen similaridad 1 (ya que tratan de lo mismo,
siendo por tanto la distancia igual a 0). Sin embargo, el numero de veces que aparece una
98 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
palabra en el documento resumen es menor que en el documento original y por tanto los
vectores asociados a los ıtems pueden ser muy diferentes. Por esta razon una medida de
distancia como MSD, no nos informarıa correctamente que la distancia entre estos dos
documentos es 0 (o similaridad 1). En la metrica del coseno podemos ver que en su divisor
se encuentra el producto de los modulos de los vectores; por lo que esta metrica mide el
angulo de dos vectores normalizados. En la siguiente imagen vemos un ejemplo grafico
de la justificacion del uso de la metrica del coseno respecto de otras metricas basadas en
distancias y no en angulos:
Figura 17: Explicacion grafica de la utilizacion de la metrica de similaridad del coseno para el calculo desimilaridades entre documentos
Una solucion posible para que las metricas de similaridad basadas en distancias fun-
cionasen correctamente, seria la de normalizar previamente los vectores que forman la
matriz de palabras/documentos. De esta forma todos los vectores tendrıan modulo igual
a 1 o distancia igual a 1 y se podrıa entonces utilizar cualquier metrica de similaridad
para calcular correctamente los resultados. A continuacion vamos a ver como normalizan-
do los vectores de palabras de los documentos mostrados en en el ejemplo de la tabla 1
y aplicando la metrica del MSD obtenemos unos resultados similares a los obtenidos con
la metrica del coseno. En primer lugar mostramos como quedarıa la tabla 1 normalizada
por ıtems (o documentos):
Autor: Ricardo Moya Garcıa 99
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
Balon 0.39 0 0.21 0 0 0 0 0 0 0 0Futbol 0.26 0.64 0.83 0 0 0 0 0 0 0.58 0.45Liga 0.39 0 0 0 0 0 0 0 0 0 0.45CR7 0.78 0.74 0 0 0 0 0 0 0 0 0Messi 0.13 0.21 0.52 0 0 0 0 0 0 0 0
Polıtica 0 0 0 0.46 0.56 0.46 0 0 0 0.58 0.45PP 0 0 0 0.68 0.42 0 0 0 0.15 0 0
PSOE 0 0 0 0 0.56 0.68 0 0 0.15 0 0ZP 0 0 0 0 0.42 0.57 0 0.14 0.15 0 0.45
Rajoy 0 0 0 0.57 0.14 0 0 0.14 0.15 0 0.45Dinero 0 0 0 0 0 0 0.13 0.56 0.60 0 0FMI 0 0 0 0 0 0 0.67 0.56 0.60 0 0UE 0 0 0 0 0 0 0.54 0.56 0.45 0 0PIB 0 0 0 0 0 0 0.40 0.14 0 0.58 0Ibex 0 0 0 0 0 0 0.27 0 0 0 0
Tabla 33: Matrız del ejemplo de la tabla 1 de apariciones de palabras/documentos normalizada por ıtems
Si aplicamos la metrica del MSD a esta matriz de palabras/documentos normalizada,
tenemos los siguientes resultados de similaridades entre ıtems:
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
I1 1 0.96 0.88 0.81 0.81 0.81 0.81 0.81 0.81 0.84 0.86I2 1 0.93 0.81 0.81 0.81 0.81 0.81 0.81 0.88 0.86I3 1 0.81 0.81 0.81 0.81 0.81 0.81 0.90 0.88I4 1 0.93 0.85 0.81 0.82 0.84 0.86 0.90I5 1 0.98 0.81 0.82 0.85 0.87 0.90I6 1 0.81 0.82 0.84 0.86 0.90I7 1 0.96 0.95 0.85 0.81I8 1 0.99 0.82 0.83I9 1 0.81 0.83I10 1 0.91I11 1
Tabla 34: Similaridades entre ıtems utilizando el MSD con la matriz de palabras/documentos normalizadapara el FBC
Como vemos estos resultados ya son mas parecidos a los obtenidos con la metrica del
coseno y a los resultados esperados. Vemos por ejemplo que el ıtem I3 es mas similar al
ıtem I1 que los ıtems I10 e I11 como era de esperar y con el resto de los ıtems vemos que el
orden en que estos se recomendarıan dado un ıtem seria igual a como se recomendarıa con
la metrica del coseno, por tanto hemos justificado porque es la metrica del coseno la mas
apropiada para utilizar en los SR basados en vectores de palabras, y como normalizando
los vectores de palabras y aplicando cualquier metrica basada en distancias, obtenemos
unos resultados similares a los obtenidos con la metrica del coseno.
100 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
4.1.2. Sistemas de Recomendacion basados en LSI
Con la tecnica del LSI conseguimos reducir los vectores de palabras de un ıtem a un
vector de “k” dimensiones que contiene los factores latentes del ıtem. Como ya se comento
en el capıtulo 3.1.2 al aplicar la tecnica matematica del SVD, obtenemos 3 matrices U , S
y V a partir de la matriz A de apariciones de palabras en documentos.
A = U × S × V t (96)
Como ya se dijo, en base al teorema de Eckart-Young que afirma que la mejor aproxi-
macion a la matriz A la obtenemos poniendo a ceros los “n” valores singulares de menor a
mayor valor reduciendo la matriz S, podemos reducir el tamano de las matrices U , S y V ,
quedandonos como resultado una matriz A′ de rango K que mejor aproxima (de acuerdo
con la norma de Frobenius) a la matriz A.
A′ = Uk × Sk × V tk (97)
La matriz U y la matriz V tienen los k factores latentes caracterısticos de las palabras
y de los documentos respectivamente, y la matriz S contiene la importancia de cada uno
de estos factores. Como lo que nos interesa en este apartado es estudiar la similaridad entre
ıtems, necesitaremos la matriz V que contiene los factores latentes de los documentos para
estudiar sus relaciones. Para este estudio previamente (y habiendo seleccionado un valor
correcto de k) hay que multiplicar las matrices S y V para asignar a cada factor latente
la importancia que vienen determinada por los valores singulares que se encuentran en la
diagonal de la matriz S.
Una vez realizados estos pasos, ya tenemos una matriz V ′ que contiene el valor de los
factores latentes de los documentos con su importancia, por tanto es con esta matriz con
la que hay que trabajar y hacer el calculo de similaridades.
Para el calculo de similaridades entre ıtems con la tecnica del LSI, la justificacion de
porque la metrica del coseno es la mas adecuada (95), es la misma que con los SR
Autor: Ricardo Moya Garcıa 101
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
basados en vectores de palabras, y es que al no estar la matriz V ′ normalizada, debemos
de hacer el calculo de similaridades a traves del angulo que forman los vectores y no a
traves de distancias, salvo que los vectores esten normalizados.
Para mostrar esta justificacion vamos a hacer el calculo de similaridades entre ıtems
con la metrica del MSD (94), con la del coseno y posteriormente aplicaremos la metrica
del MSD con la matriz de factores latentes normalizada.
En primer lugar aplicaremos la metrica del MSD a la matriz compuesta por los factores
latentes de los documentos (ver tabla 6). Los resultados de las similaridades entre ıtems
los mostramos en la siguiente tabla:
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
I1 1 0.98 0.94 0.92 0.93 0.92 0.93 0.93 0.94 0.96 0.97I2 1 0.96 0.90 0.91 0.90 0.91 0.91 0.92 0.95 0.95I3 1 0.90 0.91 0.90 0.91 0.91 0.91 0.95 0.95I4 1 0.97 0.92 0.92 0.93 0.94 0.96 0.96I5 1 0.99 0.93 0.94 0.95 0.97 0.98I6 1 0.92 0.93 0.94 0.96 0.96I7 1 0.99 0.98 0.97 0.96I8 1 0.99 0.97 0.97I9 1 0.97 0.97I10 1 0.99I11 1
Tabla 35: Similaridades entre ıtems utilizando el MSD con la matriz de factores latentes de los documentosen el LSI
Vemos que los resultados obtenidos aplicando la metrica del MSD, no son los resulta-
dos esperados y tambien vemos son muy parecidos a los obtenidos aplicando esta metrica
en el ejemplo de los SR basados en vectores de palabras (ver tabla 31).
En este ejemplo seguimos viendo como los ıtems I10 e I11 tienen mayor similaridad
con el ıtem I1 que el ıtem I3, por tanto dado el ıtem I1 se recomendarıan antes los ıtems
I10 e I11 que el ıtem I3, cosa que no es correcta.
A continuacion vamos a aplicar la metrica del coseno a la matriz compuesta por los
factores latentes de los documentos (ver tabla 6), para ver como de esta forma vamos a
102 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
obtener unos resultados de similaridad esperados:
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
I1 1 0.77 0.36 0 0 0 0 0 0 0.17 0.30I2 1 0.64 0 0 0 0 0 0 0.43 0.29I3 1 0 0 0 0 0 0 0.56 0.38I4 1 0.63 0.21 0 0.08 0.19 0.32 0.48I5 1 0.88 0 0.08 0.23 0.36 0.52I6 1 0 0.08 0.19 0.32 0.48I7 1 0.82 0.72 0.29 0I8 1 0.97 0.08 0.15I9 1 0 0.13I10 1 0.72I11 1
Tabla 36: Similaridades entre ıtems utilizando la metrica del coseno para el LSI
Con esta metrica vemos que los resultados que obtenemos son los esperados, al igual
que los mostrados en la tabla 32, en la que aplicamos la metrica del coseno al SR basado en
vectores de palabras. En este caso vemos por ejemplo que dado el ıtem I1 se recomendarıa
antes el ıtem I3 que los ıtems I10 e I11, como era de esperar.
Por ultimo para demostrar que normalizando la matriz de factores latentes y aplicando
una metrica basada en el calculo de distancias (como la del MSD), obtendremos unos
resultados similares a los obtenidos con la metrica del coseno. En primer lugar vamos a
normalizar la matriz de factores latentes de los documentos (tabla 6), quedando esta de
la siguiente forma:
F1 F2 F3 F4 F5 F6 F7 F8
I1 -0.78 0.05 -0.01 0.00 -0.55 0.01 -0.30 0.02I2 -0.94 0.06 -0.01 0.00 -0.21 -0.01 0.26 -0.01I3 -0.83 0.04 -0.01 0.00 0.55 0.01 -0.10 0,02I4 -0.04 -0.60 0.34 -0.72 -0.01 -0.02 0.00 -0.01I5 -0.05 -0.84 0.53 0.08 -0.01 -0.04 0.01 0.09I6 -0.05 -0.72 0.45 0.53 0.00 -0.01 0.00 -0.03I7 -0.02 -0.47 -0.78 0.03 0.00 -0.41 -0.02 0.03I8 -0.03 -0.60 -0.78 0.01 0.00 0.18 0.01 -0.08I9 -0.03 -0.69 -0.66 -0.01 0.00 0.29 0.02 0.07I10 -0.52 -0.35 0.11 -0.04 0.31 -0.53 0.09 -0.46I11 -0.42 -0.50 0.28 -0.08 0.09 0.03 -0.22 -0.66
Tabla 37: Factores latentes de los ıtems normalizados para el ejemplo del LSI
A continuacion hacemos el calculo de similaridades entre los ıtems con la metrica del
Autor: Ricardo Moya Garcıa 103
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
MSD, dando los siguiente resultados:
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
I1 1 0.97 0.93 0.89 0.89 0.89 0.89 0.89 0.89 0.91 0.92I2 1 0.96 0.89 0.89 0.89 0.89 0.89 0.89 0.94 0.92I3 1 0.89 0.89 0.89 0.89 0.89 0.89 0.95 0.93I4 1 0.99 0.91 0.89 0.90 0.91 0.92 0.94I5 1 0.99 0.89 0.90 0.91 0.93 0.95I6 1 0.89 0.90 0.91 0.92 0.94I7 1 0.98 0.97 0.92 0.89I8 1 0.99 0.90 0.90I9 1 0.89 0.90I10 1 0.97I11 1
Tabla 38: Similaridades entre ıtems utilizando el MSD con la matriz de factores latentes de los documentosen el LSI
Vemos que con los resultados obtenidos, harıamos las mismas recomendaciones que
con la metrica del coseno (dado el ıtem I1 recomendarıamos antes el ıtem I3 que los ıtems
I10 e I11), por tanto normalizando la matriz de factores latentes de los ıtems y aplicando
cualquier metrica basada en distancias obtendrıamos unos resultado muy similares a los
obtenidos con la metrica del coseno.
4.1.3. Sistemas de Recomendacion basado en PLSI
En los SR basados en modelos probabilısticos, cada ıtem esta representado por una
distribucion de probabilidad, por tanto no podemos estudiar las relaciones entre ellos
con medidas de distancias (MSD) o angulos (coseno). Para ello, necesitamos una medida
que sea capaz de estudiar las similaridades entre distribuciones de probabilidad, como es
el caso de la medida basada en la divergencia Kullback-Liebler (KL). La divergencia de
Kullback-Liebler (KL) se define como:
KL(p || q) =∑i
p(i)lnp(i)
q(i)(98)
Algunas de las propiedades de la divergencia de Kullback-Liebler son las siguientes:
1. Si p = q, KL(p || q) = 0.
104 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
2. KL(p || q) ≥ 0.
3. Cuanto mas parecido hay entre las distribuciones de probabilidad p y q, mas cercano
a 0 es KL(p || q).
4. La divergencia KL no es simetrica. KL(p || q) 6= KL(q || p)
De la propiedad 1, 2 y 3, podemos considerar que KL(p || q) mide como de diferentes
son dos distribuciones de probabilidad (en lugar de medir la similaridad entre ıtems). Por
otro lado, la propiedad 4 nos indica que KL no es una distancia ya que no es simetrica.
No obstante podemos facilmente definir una medida de distancia basada en la diver-
gencia KL de acuerdo con la siguiente expresion:
dist(p, q) = KL(p || q) +KL(q || p) (99)
En el PLSI, cada ıtem esta representado por un vector (x1, ..., xk) que describe una
distribucion categorica, lo que significa que xi representa la probabilidad de que en el
ıtem aparezca una palabra del tema i. El vector asociado a un ıtem debe de cumplir lo
siguiente:
x1 + ...+ xk = 1
Para cualquier componente del vector se tiene que 0 ≤ xi ≤ 1
Por lo tanto, dadas dos distribuciones categoricas i1 = (x1, ..., xk) e i2 = (y1, ..., yk)
que representan a dos ıtems, podemos calcular su similaridad de la siguiente forma.
KL(i1 || i2) =k∑
i=1
p(xi)lnxiyi
(100)
Y tambien podemos calcular la distancia entre los dos ıtems de la siguiente forma:
dist(i1, i2) = KL(i1 || i2) +KL(i2 || i1) (101)
Autor: Ricardo Moya Garcıa 105
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
Vamos a poner un breve ejemplo para ver las diferencias que hay a la hora de calcular
distancias entre distribuciones de probabilidad. Para ver este ejemplo consideremos las
siguientes distribuciones de probabilidad como vectores ordinarios, y calcularemos el KL,
la distancia basada en la divergencia de KL, la distancia MSD y la distancia dada por el
coseno; es decir, 1− coseno:
x y KL(x || y) KL(y || x) Dis KL Dis MSD Dis 1-cos
0.96 0.02 0.02 0.98 0.01 0.01 0.008 0.006 0.014 0.0006 0.000110.96 0.02 0.02 0.94 0.03 0.03 0.004 0.005 0.009 0.0006 0.000120.50 0.25 0.25 0.52 0.24 0.24 0.001 0.001 0.002 0.0006 0.000690.50 0.25 0.25 0.48 0.26 0.26 0.001 0.001 0.002 0.0006 0.00073
Tabla 39: Ejemplo de calculo de distancias con KL, MSD y coseno
Como puede verse en la tabla 39, estas medidas de similaridad no son equivalentes:
De acuerdo con MSD, el documento (0.96, 0.02, 0.02) esta a una distancia igual que
al documento (0.98, 0.01, 0.02) y (0.94, 0.03, 0.03).
De acuerdo con la distancia basada en la divergencia KL, el documento
(0.96, 0.02, 0.02) esta mas cerca del documento (0.94, 0.03, 0.03) que del documen-
to (0.98, 0.01, 0.02).
De acuerdo con la distancia basada en la similaridad del coseno, el documento
(0.96, 0.02, 0.02) esta mas cerca del documento (0.98, 0.01, 0.02) que del documen-
to (0.94, 0.03, 0.03).
Por otro lado, tambien puede verse en la tabla 39 como la distancia KL toma valores
mayores que los dados por la distancia MSD o la distancia obtenida por la similaridad del
coseno. La diferencia entre las distancias MSD y la basada en KL es mas notable cuando
comparamos ıtems descritos por vectores en los que ambos tienen una componente muy
bajo. En ese sentido lnxi
yipuede tomar valores muy grandes aun cuando xi
yitoma valores
pequenos.
En definitiva, la distancia definida anteriormente toma valores entre 0 y ∞. La dis-
tancia toma valor ∞ cuando para algun i, xi = 0 e yi > 0. Por ello, es conveniente que
106 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
las componentes del vector tengan como mınimo un valor (por ejemplo 0.001). Por eso,
antes de aplicar la distancia KL, aplicamos una transformacion a cada componente del
vector de la forma:
x′i = (xi + 0.001)/(1.001) (102)
De esta manera, todas las componentes tienen un valor 0.01 como mınimo.
A continuacion vamos a aplicar la divergencia de KL al ejemplo del PLSI para hacer el
calculo de similaridades entre ıtems, que para este caso estan caracterizados por una dis-
tribucion de probabilidad. Dado los resultados del PLSI obtenidos en la tabla 8, debemos
de aplicar la transformacion propuesta en (102), para que el KL nos devuelva resultados
distintos a ∞. Una vez realizadas esas transformaciones, obtenemos los siguientes valores
de KL:
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
I1 0 0 0 6.90 6.90 6.90 6.90 6.90 6.89 1.09 0.91I2 0 0 0 6.90 6.90 6.90 6.90 6.90 6.89 1.09 0.91I3 0 0 0 6.90 6.90 6.90 6.90 6.90 6.89 1.09 0.91I4 6.90 6.90 6.90 0 0 0 6.90 6.90 1.55 1.09 0.50I5 6.90 6.90 6.90 0 0 0 6.90 6.90 1.55 1.09 0.50I6 6.90 6.90 6.90 0 0 0 6.90 6.90 1.55 1.09 0.50I7 6.90 6.90 6.90 6.90 6.90 6.90 0 0 0.23 1.09 6.89I8 6.90 6.90 6.90 6.90 6.90 6.90 0 0 0.23 1.09 6.89I9 6.39 6.39 6.39 4.94 4.94 4.94 0.94 0.94 0 0.59 5.05I10 3.47 3.47 3.47 3.47 3.47 3.47 3.47 3.47 1.78 0 1.66I11 3.48 3.48 3.48 2.09 2.09 2.09 6.24 6.24 3.02 0.43 0
Tabla 40: Similaridades entre ıtems en el ejemplo del PLSI con la divergencia de KL
Con los resultados que hemos obtenido podemos ver que la divergencia KL no es
simetrica (KL(I10 || I11) = 1.66 6= KL(I11 || I10) = 0.43). Con estos resultados no
somos capaces todavıa de ver las similaridades entre los ıtems, ya que para ello debemos
de obtener la distancia entre dos distribuciones de probabilidad y esta la obtenemos a
partir de la formula (99).
Por tanto aplicando la formula (99) obtenemos las distancias entre los ıtems que son
las que mostramos a continuacion:
Autor: Ricardo Moya Garcıa 107
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
I1 0 0 0 13.80 13.80 13.80 13.80 13.80 13.29 4.57 4.38I2 0 0 13.80 13.80 13.80 13.80 13.80 13.29 4.57 4.38I3 0 13.80 13.80 13.80 13.80 13.80 13.29 4.57 4.38I4 0 0 0 13.80 13.80 6.49 4.57 2.59I5 0 0 13.80 13.80 6.49 4.57 2.59I6 0 13.80 13.80 6.49 4.57 2.59I7 0 0 1.17 4.57 13.13I8 0 1.17 2.37 13.13I9 0 0 8.07I10 0 2.09I11 0
Tabla 41: Distancias entre ıtems en el ejemplo del PLSI
Con los resultados obtenidos sobre las similaridades entre ıtems, harıamos las mismas
recomendaciones que con los SR basados en vectores de palabras y LSI vistos en los puntos
4.1.1 y 4.1.2 respectivamente, por tanto vemos que son resultados coherente y esperados
los que nos da la medida de la divergencia de KL para el PLSI. Por el contrario si aplicase-
mos la metrica del coseno para medir las similaridades no funcionaria correctamente ya
que por ejemplo el ıtem I11 es mas similar al ıtem I10 (dist(I11, I10) = 2.09) que al
ıtem I5 (dist(I11, I5) = 2.59); sin embargo, si aplicasemos la medida de similaridad del
coseno el ıtem I11 seria mas similar al ıtem I5 (distcos(I11, I5) = 0.83) que al ıtem I10
(distcos(I11, I10) = 0.8). Es por ello que para medir similaridades entre distribuciones de
probabilidad es conveniente utilizar la medida de la divergencia de KL.
4.1.4. Sistemas de Recomendacion basado en LDA
En el caso de LDA cada ıtem puede estar representado por un vector (x1, ..., xk)
que describe una distribucion de Dirichlet (siendo los valores xi > 0). La hipotesis de
considerar que un documento sigue a posteriori una distribucion de Dirichlet se considera
cuando utilizamos inferencia Variacional en LDA. En general, esto es muy diferente a
lo que ocurre con el PLSI, donde cada ıtem tiene asociado una distribucion categorica,
mientras que en el LDA es posible que se cumpla lo siguiente:
x1 + ...+ xk 6= 1.
108 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
Para cualquier componente del vector se tiene que xi > 1.
De ese modo podrıamos definir una distancia entre ıtems basado en la divergencia
KL entre dos distribuciones de Dirichlet. Veamos ahora el calculo de la divergencia entre
dos distribuciones de Dirichlet i1 = (x1, ..., xk) e i2 = (y1, ..., yk):
KL(i1||i2) = ln Γ(x0)− ln Γ(y0) +K∑i=1
ln Γ(yi)− ln Γ(xi) + (xi− yi)(ψ(xi)−ψ(x0)) (103)
donde:
ψ es la funcion digamma, esto es la derivada del logaritmo neperiano de la funcion
Gamma:
ψ(x) =d ln Γ(x)
dx(104)
x0 =k∑
i=1
xi
y0 =k∑
i=1
yi
Por lo tanto la distancia entre dos ıtems i1 = (x1, ..., xk) e i2 = (y1, ..., yk) podrıa
definirse de la siguiente manera:
d(i1, i2) = KL(i1||i2) +KL(i2||i1) =k∑
i=1
(xi − yi)(ψ(xi)− ψ(yi) + ψ(x0)− ψ(y0)) (105)
No obstante, esta distancia adolece de serios problemas. Consideremos por ejemplo,
un ıtem x descrito por 500 palabras del tema 1, 500 al tema 2 y 500 al tema 3 y un
ıtem y descrito por 5000 palabras del tema 1, 5000 del tema 2 y 5000 del tema 3. Parece
intuitivo pensar que el ıtem x e ıtem y tratan de lo mismo (desde el punto de vista de
los temas), aunque el ıtem x ha utilizado menos palabras para describirlos que el ıtem y.
Sin embargo, la distancia definida anteriormente da valores muy altos tal como figura en
la siguiente tabla 42. Observese como ese valor de distancia es mucho mas grande que la
distancia entre el ıtem x con un ıtem y muy diferente (100,600,800).
Autor: Ricardo Moya Garcıa 109
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
x y Dis KL
500 500 500 5000 5000 5000 62186500 500 500 100 600 800 805
Tabla 42: Ejemplo sobre la divergencia de KL
Por ello es necesario, utilizar otra medida de similaridad en este caso diferente a la
basada en la divergencia KL entre distribuciones de Dirichlet.
La razon por la que no funciona aquı la distancia anterior es porque la distribucion de
Dirichlet asociada a un ıtem nos informa del conocimiento que tenemos sobre la proporcion
de topics asociado a ese ıtem, y por tanto la divergencia KL nos informa de como de
diferente es el conocimiento que tenemos de ese ıtem, algo que es diferente a lo que
queremos estudiar cuando trabajamos con medidas de similaridad.
La distribucion de Dirichlet asociada a un ıtem con parametros x = (x1, . . . , xk)
informa de la probabilidad de que ese ıtem tenga asociado un vector correspondiente a
una distribucion categorica x′ = (x′1, . . . , x′k) donde xi > 0 y
k∑i=0
xi = 1.
Aquı podemos considerar dos formas de definir la medida de similaridad entre los
ıtems x, y:
Estudiar tal como hicimos en el apartado anterior, la distancia entre los vectores
esperados x′, y′ de la respectivas distribuciones de Dirichlet x , y. Ya que el valor
esperado en una distribucion de Dirichlet con parametros [x1, . . . , xk] es:
[x1x0, ...,
xkx0
] siendo x0 =k∑
i=1
xi (106)
Por tanto tenemos que:
dLDA([x1, ..., xk], [y1, ..., yk]) = dPLSI([x1x0, ...,
xkx0
], [y1y0, ...,
y1y0
]) (107)
siendo
x0 =k∑
i=1
xi e y0 =k∑
i=1
yi (108)
110 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
Una forma de medir la distancia entre dos ıtems, es estudiar la esperanza de obtener
una distancia entre las distribuciones categoricas que generan las distribuciones de
Dirichlet. Esta distancia categorica estarıa definida por la ecuacion (99).
D(x, y) =
∫dPLSI([x
′1, ..., x
′k], [y′1, ..., y
′k]−D)q(x′1, ..., x
′k)q(y′1, ..., y
′k) (109)
donde q es la funcion de densidad de la distribucion de Dirichlet.
Es importante destacar que el modelo LDA es un modelo bayesiano y por tanto
puede proporcionarnos una medida de fiabilidad asociada con la medida de similaridad
que estamos calculando mediante una expresion formal. Esta se puede calcular estudiando:
La varianza de las distancias de las distribuciones categoricas que generan las distri-
buciones de Dirichlet.
Fiabilidad([x1, ..., xk], [y1, ..., yk]) =∫(dPLSI([x
′1, ..., x
′k], [y′1, ..., y
′k])−D)2q(x′1, ..., x
′k)q(y′1, ..., y
′k)
(110)
Podemos calcularlo a traves de una forma heurıstica de la siguiente manera:
Fiabilidad([x1, ..., xk], [y1, ..., yk]) = f(x0)f(y0) (111)
donde
f(x) = 1 +α
1− x(112)
donde α es un parametro definido segun el contexto.
A continuacion vamos a aplicar la divergencia de KL al ejemplo realizado con el LDA
de la tabla 13; una vez que se han hecho las medias de las distribuciones de Dirichlet, para
posteriormente hacer el calculo de similaridades entre ıtems, tal y como hemos definido en
este punto del trabajo. Unas vez estudiadas las medias (tabla 13), obtenemos los siguientes
valores de KL:
Autor: Ricardo Moya Garcıa 111
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
I1 0 0 0 6.90 6.90 6.90 6.90 6.90 6.90 1.10 0.91I2 0 0 0 6.90 6.90 6.90 6.90 6.90 6.90 1.10 0.91I3 0 0 0 6.90 6.90 6.90 6.90 6.90 6.90 1.10 0.91I4 6.90 6.90 6.90 0 0 0 6.90 2.03 1.30 1.10 0.50I5 6.90 6.90 6.90 0 0 0 6.90 2.03 1.30 1.10 0.50I6 6.90 6.90 6.90 0 0 0 6.90 2.03 1.30 1.10 0.50I7 6.90 6.90 6.90 6.90 6.90 6.90 0 0.13 0.31 1.10 6.90I8 6.52 6.52 6.52 5.62 5.62 5.62 0.52 0 0.06 0.71 5.69I9 6.33 6.33 6.33 4.46 4.46 4.46 1.29 0.07 0 0.52 4.59I10 3.47 3.47 3.47 3.47 3.47 3.47 3.47 1.91 1.72 0 1.66I11 3.48 3.48 3.48 2.09 2.09 2.09 6.24 3.31 2.87 0.43 0
Tabla 43: Similaridades entre ıtems en el ejemplo del LDA con la divergencia de KL
A partir de estos valores de similaridades entre distribuciones de probabilidad, pode-
mos obtener las distancias entre ıtems aplicando la formular (99):
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11
I1 0 0 0 13.80 13.80 13.80 13.80 13.42 13.22 4.57 4.38I2 0 0 13.80 13.80 13.80 13.80 13.42 13.22 4.57 4.38I3 0 13.80 13.80 13.80 13.80 13.42 13.22 4.57 4.38I4 0 0 0 13.80 7.65 5.76 4.57 2.60I5 0 0 13.80 7.65 5.76 4.57 2.60I6 0 13.80 7.65 5.76 4.57 2.60I7 0 0.65 1.60 4.57 13.13I8 0 0.13 2.62 8.99I9 0 2.24 7.47I10 0 2.09I11 0
Tabla 44: Distancias entre ıtems en el ejemplo del LDA
Como vemos los resultados obtenidos sobre las similaridades entre ıtems, son muy
parecidos a los obtenidos con el PLSI; y de la misma manera, a los obtenidos con los SR
basados en vectores de palabras y con el LSI. De la misma forma que pasaba con el PLSI,
si aplicasemos la metrica del coseno para medir las similaridades entre ıtems a partir de
las distribuciones de probabilidad de Dirichlet, obtendrıamos unos resultados distintos a
los esperados ya que con esa metrica no podemos medir la similaridad entre distribuciones
de probabilidad.
112 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
4.2. Sistemas de Recomendacion basados en filtrado colaborativo
Al igual que los SR basados en contenido, los ıtems de los SR basados en filtrado
colaborativo tambien estan representados por un vector de “k” componentes, ya sea por
los votos emitidos por los usuarios o por los factores latentes de los ıtems. En funcion de
lo que represente esos vectores, habra que definir una medida de similaridad u otra para
obtener unos resultados correctos y coherentes.
En los puntos 4.2.1 y 4.2.2 vamos a ver las metricas de similaridad mas importantes
que deben ser aplicadas para los sistemas de recomendacion basados en K-Vecinos y en
factorizacion matricial.
4.2.1. Sistemas de Recomendacion basados en k-vecinos
En estos SR, consideramos que cada ıtem viene representado por un vector que con-
tiene tantas componentes como usuarios registrados tenga el SR. Cada componente del
vector indica el voto que el usuario ha dado al ıtem. Es comun en estos SR que los usuarios
no valoren todos los ıtems, por tanto el vector que representa al ıtem estara incompleto.
En la siguiente tabla 45, vemos como hay usuarios que no han votado cierto ıtems y estos
los representamos con el sımbolo “•”.
I1 I2 I3 I4 I5 I6
U1 4 3 • 1 2 •U2 • • 1 4 4 5U3 5 5 • • • •U4 4 4 5 3 3 •U5 1 • 5 2 2 •
Tabla 45: Ejemplo 2 de matriz de votos para el FC
En las medidas de similaridad utilizadas en los SR basados en FC, es comun considerar
solamente aquellas componentes correspondientes a usuarios en los que ambos han votado
el ıtem. Por ejemplo, para ver la similaridad entre los ıtems I1 e I2 de la tabla 45,
solamente se tendran en cuenta los votos de los usuarios U1, U3 y U4, ya que los dos han
Autor: Ricardo Moya Garcıa 113
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
votado ambos ıtems; sin embargo, el voto del usuario U5 sobre el ıtem I1 no se tendran
en cuenta para el calculo de las similaridades.
Una vez expuesta la excepcion de no considerar aquellos votos que no hayan sido
votados por ambos usuarios, podemos considerar numerosas medidas de similaridad, como
por ejemplo las medidas de similaridad [2][64][21][66] del MSD (113), el coseno (114) y la
correlacion de Pearson (115) entre vectores, que son medidas muy utilizadas y que sirven
como referencia para compararlas con otras medidas mas optimas propuestas en artıculos
de investigacion:
sim(x, y) = 1− 1
#Nx,y
∑u∈Nx,y
(ru,x − ru,ymax−min
)2
∈ [0, 1] cuando Nx,y 6= ∅ (113)
sim(x, y) =
∑u∈Nx,y
ru,x · ru,y√ ∑u∈Nx,y
r2u,x ·√ ∑
u∈Nx,y
r2u,y
∈ [0, 1] cuando Nx,y 6= ∅ (114)
sim(x, y) =
∑u∈Nx,y
(ru,x − rx) · (ru,y − ry)√ ∑u∈Nx,y
(ru,x − rx)2 ·∑
u∈Nx,y
(ru,y − ry)2∈ [−1, 1] cuando Nx,y 6= ∅ (115)
Siendo Nx,y el conjunto de usuarios que han valorado tanto el ıtem x como por el
ıtem y:
Nx,y = {u ∈ U |ru,x 6= • ∧ ru,y 6= •} . (116)
A lo largo de los anos se han propuesto otras medidas de similaridad que obtienen
mejores resultados que las propuestas anteriormente, como la medida de similaridad del
JMSD [64] (ver formula 117) que sera la que se utilizara para la generacion de los mapas
en el tema 5:
114 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
simx,y = Jaccardx,y ·MSDx,y (117)
siendo
Jaccardx,y =|#Nx,y|
|{u ∈ U |ru,x 6= ∅ ∨ ru,y 6= ∅}|(118)
Esta medida de similaridad obtiene mejores resultados en el MAE y en el Precision/-
Recall que las de MSD, el coseno y la correlacion, a parte de que con la medida del Jaccard
(118) podemos obtener una medida de fiabilidad del valor numerico de la similitud.
En un principio, hay que observar que las medidas de similaridad pueden no ser muy
fiable cuando es muy bajo el numero de usuarios que han votado los ıtems x e y. De hecho,
utilizando la medida de similaridad del coseno, es facil demostrar que la similaridad es 1
si solo hay un usuario que ha votado tanto el ıtem x como el ıtem y. Parece razonable,
definir una medida de fiabilidad asociada al calculo de la similaridad que informe de lo
fiable que es el calculo de la similaridad. Esta medida de fiabilidad debe cumplir que es
creciente con respecto al numero de usuarios que han votado los dos ıtems x e y.
En definitiva, proponemos utilizar la siguiente expresion para el calculo de la medida
de fiabilidad:
Fiabilidad(x, y) = 1 +α
1−Nx,y
(119)
donde α es un parametro definido segun el contexto.
Para poner un ejemplo del calculo de las similaridades entre ıtems con las metricas de
similaridad propuestas, vamos a calcular las similaridades entre los ıtems del ejemplo de
la tabla 45. En primer lugar vamos a calcular las similaridades entre ıtems con la metrica
del MSD, al ser la metrica mas simple y mas didactica de todas las propuestas. Los valores
de las similaridades quedarıan de la siguiente manera:
Autor: Ricardo Moya Garcıa 115
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
I1 I2 I3 I4 I5 I6
I1 • 0.98 0.47 0.77 0.87 •I2 • 0.94 0.84 0.94 •I3 • 0.54 0.54 0I4 • 0.98 0.94I5 • 0.94I6 •
Tabla 46: Similaridades entre ıtems en el ejemplo del FC con la metrica del MSD
En primer lugar vemos que algunas similaridades entre ıtems no se pueden calcular,
ya que no tienen ningun voto en comun, como por ejemplo los ıtems I1 e I2 que no tienen
ningun votos comun con el ıtem I6. Tambien vemos algunas similaridades con valor 0,
como por ejemplo la similaridad entre el ıtem I3 e I6, ya que como podemos observa en
la tabla 45, solamente el usuario U2 ha votado ambos ıtems y uno lo ha hecho con la
nota maxima y el otro con la nota mınima. Sobre el resto de valore obtenidos, vemos que
obtenemos unos resultados bastante obvios ya que si comparamos los votos de los ıtems,
vemos que los pares de ıtems I1,I2 e I4,I5 son muy similares al tener muchos votos en
comun y por tanto tienen unos valores de similaridad muy altos (ambos con valor 0.98).
Por otro lado vemos que el ıtem I6 es muy similar a los ıtems I4 e I5, aunque ese valor
de similaridad es muy poco fiable ya que el ıtem I6 solamente tiene un voto.
Si aplicasemos la metrica del coseno al ejemplo de la tabla 45 obtendrıamos unos
resultados bastante malos, ya que los ıtems que compartan un solo voto en comun tendrıan
similaridad igual a 1, lo que quiere decir que la similaridad entre esos ıtems seria maxima
y eso (aunque pudiese ser verdad si el voto fuese el mismo) nos darıa un resultado de
similaridad muy poco fiable. A continuacion mostramos los resultado obtenidos con la
metrica de coseno.
I1 I2 I3 I4 I5 I6
I1 • 0.99 0.86 0.84 0.93 •I2 • 1 0.95 0.99 •I3 • 0.75 0.75 1I4 • 0.98 1I5 • 1I6 •
Tabla 47: Similaridades entre ıtems en el ejemplo del FC con la metrica del Coseno
116 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
Esto no quiere decir que la metrica del coseno sea mala, sino que tiene ciertas limita-
ciones como las que hemos visto para SR que tienen pocos votos.
Por ultimo vamos a ver la metrica de similaridad del JMSD, que es una de las mejores
metricas para el calculo de similaridades entre ıtems, ya que esta metrica aplica un factor
de fiabilidad en las medidas de similaridad. A continuacion mostramos los resultados
obtenidos, tomando como matriz de votos la tabla 45:
I1 I2 I3 I4 I5 I6
I1 • 0.73 0.19 0.46 0.53 •I2 • 0.19 0.34 0.38 •I3 • 0.41 0.41 0I4 • 0.98 0.23I5 • 0.23I6 •
Tabla 48: Similaridades entre ıtems en el ejemplo del FC con la metrica del JMSD
Si comparamos estos resultados de similaridad con los del MSD (ver tabla 54), vemos
que obtenemos unos valores a los que se les ha aplicado un factor de fiabilidad, basada
en el numero de votaciones comunes que tienen los ıtems. Vemos por ejemplo que la
similaridad entre los ıtems I4 e I5 tiene el mismo valor que con la metrica del MSD y
es porque ambos ıtems tienen 4 votos y los han emitido los mismos usuario, por tanto el
valor del Jaccard en este caso seria 1. Sin embargo vemos que la similaridad entre el ıtem
I1 e I2 tiene un valor mas bajo, debido a que el valor del Jaccard es de 34, por tanto su
valor seria 34· 0.98 = 0.73. Vemos tambien otros resultados bastante interesantes como las
similaridades entre I4,I6 e I5,I6 en la que veıamos en la metrica del MSD como estas
similaridades tenıan un valor muy alto (0.94) y ahora su similaridad es considerablemente
mas baja, ya que el valor del Jaccard es muy bajo (14), lo que significa que la fiabilidad
en esa medida de similaridad era muy baja, por tanto ahora esa medida de similaridad
toma un valor de 14· 0.94 = 0.23.
Los resultados que hemos obtenido con este ejemplo se han realizado con una matriz
de votos muy pequena y poco dispersa, con lo que hemos podido comprobar las debilidades
de las metricas de MSD y el Coseno frente a la metrica del JMSD. Si hubiesemos utilizado
Autor: Ricardo Moya Garcıa 117
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
una matriz de votos mucho mas grande, los resultados obtenidos con las metricas del
MSD y Coseno hubiesen sido (por lo general) resultados mas obvios pero en ningun caso
se hubiese aplicado el factor de fiabilidad que aplica la metrica del JMSD, que le hace a
esta metrica mas robusta y fiable, a parte de obtener unos resultados considerablemente
mejores en el MAE y en el Precision/Recall.
4.2.2. Sistemas de Recomendacion basado en factorizacion matricial
En estos SR, cada ıtem esta representado por un vector de “k” factores latentes, que
se obtienen tras realizar la descomposicion matricial vista en el punto 3.2.2. A diferencia
de los SR basados en K-Vecinos, todas las componentes de estos vectores estan definidas
y pueden tomar tanto valores positivos como negativos.
Por el mismo motivo que en los SR basados en LSI, es util considerar la matriz
de factores latentes de los ıtems (y de los usuarios tambien si se quisiesen estudiar la
similaridad entre ellos) con la importancia que tiene cada factor latente, que viene dado por
los valores singulares obtenidos en la matrix S; por tanto, para el calculo de similaridades
entre ıtems, se debe de trabajar con la matriz de factores latentes obtenida tras multiplicar
(S · V t). De la misma forma es posible trabajar con la matriz de factores latentes que se
obtiene al minimizar esta expresion:
mınq∗,p∗
∑(u,i)∈k
(ru,i − qti · pu)2 + λ(‖qi‖2 + ‖pu‖2) (120)
que como se dijo en el capıtulo 3.2.2, se obtiene dos matrices (una de factores latentes de
usuarios y otra de ıtems) en las que ya viene asignado el valor de la importancia en cada
factor latente.
Una vez que ya se tiene la matriz de factores latentes de los ıtems con su importancia,
ya se puede pasar al estudio de las similaridades entre ıtems. Para el estudio de estas
similaridades, se puede aplicar cualquier metrica de similaridad entre vectores, basada
en distancias (MSD) o en angulos (Coseno). En este caso tenemos la ventaja de que las
118 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
matrices son completas, no como en el caso de los K-Vecinos en los que tenıamos matrices
incompletas, al no votar los usuarios todos los ıtems; por tanto, cualquier metrica de
similaridad nos valdrıa. Hay que destacar que la metrica del JMSD aplicada a una matriz
de factores latentes darıa los mismos resultados que la metrica del MSD, ya que el Jaccard
serıa 1 al aplicarse sobre una matriz rellena; por tanto, como se comento en el punto
anterior, la metrica del JMSD es una metrica especifica para los SR basados en K-Vecinos.
Pasamos ahora a mostrar un ejemplo del calculo de similaridades entre ıtems en un
SR basado en factorizacion matricial. Si calculamos 2 factores latentes de los ıtems de la
tabla 45, obtenemos los siguientes resultados:
F1 F2
I1 -1.9535 -0.0397I2 -1.9638 0.0067I3 -1.9660 0.0735I4 -1.1411 -0.0196I5 -1.3067 -0.0321I6 -0.0471 -0.0639
Tabla 49: Factores latentes de los ıtems para la matriz de votos de la tabla 45
Al obtener los valores singulares, observamos que el primer factor latente F1, tiene
mas peso que el segundo factor F2, ya que los valores singulares obtenidos son de 14.52 y
0.012. En el ejemplo que estamos realizando, hemos puesto solamente 2 valores singulares
con el fin de poder representar estos ıtems en 2 dimensiones. Si dibujamos estos ıtems en
2D (figura 18), podemos ver de forma intuitiva la similaridad entre los ıtems en funcion
de su posicion:
Figura 18: Representacion en 2D de los factores latentes de los ıtems.
Autor: Ricardo Moya Garcıa 119
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
Se puede observar como los ıtems I1, I2, e I3, al igual que los ıtems I4 e I5 son
muy similares entre ellos al estar situados muy cerca los unos de los otros, sin embargo
el ıtem I6 es muy poco similar al resto, al estar mas alejado. Si hacemos el calculo de
similaridades con la metrica del MSD, obtendremos unos valores de similaridad acordes
a lo observado en la imagen anterior:
I1 I2 I3 I4 I5 I6
I1 • 0.9997 0.9984 0.9206 0.9497 0.5630I2 • 0.9995 0.9185 0.9479 0.5578I3 • 0.9172 0.9464 0.5551I4 • 0.9967 0.8559I5 • 0.8091I6 •
Tabla 50: Similaridades entre los factores latentes de los ıtems en el ejemplo del FC con la metrica delMSD
Podemos ver en la siguiente imagen (figura 19) como los valores obtenidos son acordes
a la distancia que hay entre cada par de ıtems; cuanto mas alejados esten los ıtems, menor
sera el valor de la similaridad. Vemos por ejemplo que la similaridad entre los ıtems I1,
I2 e I3 tienen valores cercanos a 1 ya que son muy similares entre ellos; sin embargo
podemos ver como los ıtems I3 e I4 ya no son tan similares y mucho menos lo son entre
los ıtems I3 e I6 que son los que menor valor de similaridad tienen.
Figura 19: Representacion en 2D de los factores latentes de los ıtems aplicando la metrica del MSD
De la misma forma podemos ver las similaridades entre ıtems aplicando la metrica de
similaridad del coseno, viendo el angulo que se forma entre cada par de vectores. Haciendo
120 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
el calculo de similaridad entre ıtems con la metrica del coseno obtenemos los siguientes
resultados:
I1 I2 I3 I4 I5 I6
I1 • 0.9997 0.9983 0.9999 0.9999 0.6094I2 • 0.9994 0.9998 0.9996 0.5904I3 • 0.9985 0.9981 0.5626I4 • 0.9999 0.6068I5 • 0.6127I6 •
Tabla 51: Similaridades entre los factores latentes de los ıtems en el ejemplo del FC con la metrica delCoseno
Con estos resultados, podemos ver el angulo que forman cada par de vectores (hacien-
do el arcocoseno de la similaridad y pasando los radianes a grados) para ver su similaridad.
En la siguiente imagen (figura 20) mostramos el angulo que se forma entre los ıtems I2,I3
e I4,I6:
Figura 20: Representacion en 2D de los factores latentes de los ıtems aplicando la metrica del Coseno
En este ejemplo, hemos podido ver graficamente como se estudia la similaridad entre
ıtems en base al angulo que forman entre ellos.
Hay que senalar, que el ejemplo propuesto es un ejemplo con fines didacticos, con el
fin de mostrar conceptualmente como se calcula la similaridad entre ıtems con las metrica
propuestas. Para ello el ejemplo realizado se ha hecho cogiendo solamente 2 factores para
poder hacer una representacion de los mismos en 2D, pero lo ideal hubiese sido coger mas
factores para hacer un mejor calculo de similaridades entre ıtems, solo que de esa forma
Autor: Ricardo Moya Garcıa 121
4 MEDIDAS DE SIMILARIDAD Y DISTANCIA ENTRE ITEMS
estarıamos trabajando en N dimensiones y no se hubiese podido representar graficamente
las distancias y angulos entre ıtems.
122 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
5. ARBOLES EN LOS SISTEMAS DE RECOMENDACION
En la presente tesis, se propone un metodo que permite la visualizacion de las rela-
ciones de similaridad entre los ıtems de los SR basados en FC a partir de las votaciones
de los usuarios, ası como la importancia relativa de cada uno de los ıtems y la fiabilidad
entre cada par de ıtems que se consideran similares.
El resultado que ofrece el metodo propuesto en este trabajo, proporciona como resul-
tado un arbol filogenetico de ıtems que llamaremos RS-IST (Recommender System Items
Similarity Tree) [38]. Estos arboles mostraran en que lugar se encuentran los ıtems mas
representativos y que ıtems son votados de una manera mas parecida en funcion de los
votos emitidos por los usuarios del SR.
En los siguientes puntos del apartado 5 de esta tesis, se justificara el trabajo propuesto,
se veran sus aplicaciones y se explicaran todos los elementos graficos y algoritmos para la
obtencion de un arbol de recubrimiento mınimo a partir de un grafo, que sera la forma
que tenga el mapa en el que se visualizaran los ıtems y sus relaciones.
5.1. Justificacion
Son muchos los SR que son capaces de realizar buenas recomendaciones (sobre todo los
SR basados en FC) a usuarios registrados en el sistema, ya que este registra su actividad
y recoge sus gustos; bien sea de forma implıcita o explıcita. Con estos datos y con las
descripciones de los ıtems, es relativamente sencillo realizar recomendaciones aplicando las
tecnicas vistas en el punto 3 de este trabajo, ya que se dispone de informacion suficiente
para hacer recomendaciones personalizadas. Una de las areas que no se ha trabajado
mucho en los SR son las formas de recomendar a usuarios que no estan registrados
en el sistema y por tanto no se dispone de informacion sobre sus gustos y su perfil.
Por otro lado es bastante comun que los usuarios sean bastante reticentes a dar sus datos
e interactuar con el sistema. Por estos motivos, surge el area de estudio para ofrecer
Autor: Ricardo Moya Garcıa 123
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
recomendaciones a usuarios no registrados.
Aprovechando el conocimiento que se puede extraer de las votaciones de los usuarios
registrados de los SR basados en FC, vamos a ser capaces de ver (en funcion de los votos)
las similaridades entre los ıtems y poder relacionarlos entre ellos para presentar a los
usuarios no registrados un mapa grafico (que tendra forma de arbol) que relacione los
ıtems del SR. La finalidad de crear este mapa, es el de ofrecer (en base a los gustos de
muchos usuarios que han realizado votaciones), una vision global de los ıtems del SR
para que un usuario no registrado y del que no sabemos nada, sea capaz de buscar un
ıtem (que bien pueda conocer o le haya gustado), y recomendarle aquellos ıtems que sean
adyacentes al ıtem en el que se ha posicionado en el mapa. De esta forma no solo somos
capaces de recomendar ıtems; sino tambien, de explicar al usuario las recomendaciones
realizadas. Evidentemente las recomendaciones que se hacen de esta forma a usuarios
no registrados, no es tan buena como si se hiciesen a usuarios registrados de los que
se dispone de informacion sobre su perfil y sus gustos y por tanto se le pueden hacer
recomendaciones mucho mas personalizadas, pero de esta forma conseguimos hacer una
recomendacion justificada (basada en los votos y gustos de otros muchos usuarios) sin
que el usuario tenga que perder el tiempo en completar un registro, enumerar sus gustos
o realizar una serie de votaciones sobre los ıtems de SR que conozca.
Como resultado de este trabajo, se ha realizado el mapa de relaciones entre ıtems
con la base de datos de pelıculas de MovieLens (con un millon de votos). Supongamos
que sin ser expertos o aficionados al cine, queremos obtener una recomendacion para ver
una pelıcula de las 3900 que hay representada en el mapa. Para que un SR de pelıculas
basado en FC (como Netflix, MovieLens, Filmaffinity) nos ofrezca una recomendacion,
debemos previamente registrarnos en el sistema y estaremos obligados a hacer un mınimo
de votaciones para que el sistema pueda calcular las recomendaciones. Una persona poco
aficionada al cine o que simplemente no quiera perder el tiempo en ese tipo de registro,
es probable que no se registre en el sistema; sin embargo, si ofrecemos un mapa, el usua-
124 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
rios solo tendrıa que buscar una pelıcula que haya visto o le haya gustado y viendo los
ıtems adyacentes del mapa tendra las recomendaciones. De la misma forma podra seguir
navegando en el mapa para ver otras pelıculas, aunque segun se vaya alejando del ıtem
seleccionado, menor similaridad tendran los ıtems y por tanto la recomendacion sera peor.
Los mapas propuestos en este trabajo se han realizado a partir de las votaciones de un
SR basado en FC, pero de la misma forma puede ser aplicado a SR basados en contenido o
a los SR basados en modelos, en los que se pueda de alguna forma estudiar la similaridad
entre ıtems; bien sea a partir de sus vectores de palabras, factores latentes, distribuciones
de probabilidad, etc.
5.2. Elementos graficos
Los mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
que se propone en este trabajo, dan como resultado un arbol de recubrimiento mınimo a
partir de un grafo; es decir, que dado un grafo, debemos de obtener un subgrafo que debe
de ser un arbol y contener todos los vertices del grafo inicial.
El RS-IST, propuesto en este trabajo, va a ser un arbol representado por el grafo
Gt =< V,E, p, n, s >, en el que cada uno de estos elementos esta asociado a una carac-
terıstica de un SR. A continuacion pasamos a explicar cada uno de los elementos del grafo
Gt y el significado que tienen en el SR.
En el RS-IST se representa un arbol en el que:
V: Cada vertice vi ∈ V representa un ıtem del SR.
E: Una arista ei ∈ E entre dos vertices (ıtems), representa la similaridad entre
los ıtems que une. Dada una arista del RS-IST, se puede interpretar la regla de
que: “si un usuario esta interesado por un ıtem de la arista, entonces es probable que
tambien este interesado por el otro ıtem”.
Autor: Ricardo Moya Garcıa 125
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
En relacion con la informacion visual relativa a los vertices y aristas del RS-IST,
tenemos:
p: Este valor esta asociado a la importancia (o popularidad) del ıtem y su
valor va a ser proporcional al tamano del vertice; es decir, cuanta mas importancia
tenga el ıtem, mayor sera el radio del vertice. Esta medida de importancia puede ser
calculada intuitivamente:
• A traves informacion explicita obtenida del valor medio de los votos que ha
tenido ese ıtem (informacion que se tiene cuando nos encontramos en un SR
basado en FC).
• A traves de informacion implıcita obtenida por el numero de usuarios que se han
interesado por ese ıtem (numero de veces que se ha visitado una noticia, numero
de reproducciones que ha tenido un vıdeo, etc).
El color del vertice puede informar de una caracterıstica del ıtem en el que nos
encontramos. En muchos SR, los ıtems suelen venir descritos a traves de un vector
de K componentes. Cuando este numero K es pequeno podemos considerar que cada
caracterıstica viene representado por un color y que el vector (x1, ..., xN) esta repre-
sentado por una mezcla de K colores segun la proporcion que indica (x1, ..., xN). En
general, es ideal que utilicemos unicamente 3 caracterısticas describiendo cada una
de ellas el grado de rojo, verde y azul que tiene el color del vertice. De esa mane-
ra el color del vertice reflejarıa fielmente las caracterısticas que queremos describir
visualmente del ıtem. Para un K > 3, no hay una correspondencia directa entre el
color y el vector, de manera que un mismo color podrıa representar vectores de ıtems
diferentes. Consideramos interesante este tipo de informacion en los siguientes casos:
• En los SR basado en contenidos en los que cada ıtem esta descrito por un vector
dado de manera explıcita por un humano. Por ejemplo, si nos encontramos en
un SR de pelıculas, estas pueden estar definidas como un numero que indica el
grado de accion, violencia y humor que tienen. De manera que el color Rojo,
126 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
Verde y Azul podrıan definir cada una de las caracterısticas para distinguir la
pelıcula.
• En los sistemas de recomendacion basado en contenidos en los que cada ıtem
esta descrito por un vector, obtenidos por un algoritmo como el LSI, PLSI o
LDA.
• En los SR basado en FC que realizan factorizacion matricial (SVD). En este
caso, podemos asociar el color del vertice a las tres primeras componentes del
vector asociado al ıtem (las tres componentes mas importantes del vector).
n: Este valor esta asociado a la similaridad entre dos ıtems y su valor va a
ser proporcional a la longitud de la arista entre dos ıtems. Cuanto menor sea la
longitud de la arista, mayor sera la similaridad (o menor sera la distancia) entre los
ıtems. Esta longitud describe lo seguro que estamos segun la siguiente regla: “si un
usuario esta interesado por un ıtem de la arista, entonces es probable que tambien
este interesado por el otro ıtem”.
s: Este valor esta asociado a la fiabilidad (el Jaccard) de la medida de similari-
dad n. En funcion del valor de la fiabilidad en la medida de similaridad, podemos
representar la arista con un determinado grosor, con un determinado nivel de trans-
parencia, con un determinado color, etc.
En la imagen (figura 21) mostramos un ejemplo de un RS-IST (Gt =< V,E, p, n, s >)
obtenido a partir de un SR de pelıculas basado en FC. En esta imagen se puede ver
como el tamano de los vertices que representan a los ıtems es diferente ya que unos los
consideramos mas importantes (o populares) que otros. Tambien se puede apreciar como
las aristas tienen diferentes longitudes y colores, que representan las similaridad entre los
ıtems y la medida de fiabilidad sobre los valores de similaridad respectivamente. Cuanto
mas cortas sean las aristas, significa que la similaridad entre esos ıtems es mayor y cuanto
mas claro sea el color (azul claro) mayor sera la fiabilidad que se tiene sobre la similaridad
entre los ıtems que une, por el contrario si el color es mas calido (morado o rojo), menor
Autor: Ricardo Moya Garcıa 127
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
sera la fiabilidad.
Figura 21: Ejemplo de un RS-IST sobre un SR de pelıculas
Por el contrario; al tratarse la figura 21 de un SR basado en FC y utilizando la tecnica
de los K-Vecinos, no tenemos un vector que caracterice a cada ıtem para poder dibujar
el vertice de diferente color, aunque lo podıamos haber dibujado de un color diferente en
funcion de su tematica, aunque eso tendrıa que ser asignado por un experto en cine.
5.3. Recomendaciones a usuarios no registrados
La aplicacion de los mapas graficos que se proponen en este trabajo [38], es para la
recomendacion a usuarios no registrados en el sistema y que por tanto no se dispone de
informacion sobre su perfil, gustos, votos, etc. Aprovechando los votos emitidos por los
usuarios de un SR, vamos a ser capaces de estudiar la similaridad entre los ıtems y poder
mostrar sus relaciones de similaridad en un mapa grafico en forma de arbol, que hemos
llamado RS-IST.
El arbol que se generara con las relaciones entre ıtems, se basara en el conocimiento
que aportan los votos de muchısimos usuarios registrados del SR; por tanto, el objetivo
es poder representar de forma visual los conocimientos y gustos de todos esos usuarios
sobre los ıtems, para poder hacer recomendaciones a un usuario no registrado a traves del
128 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
mapa grafico.
Una vez generado el arbol, ya tendremos las relaciones entre los ıtems del SR; por tan-
to, al posicionarse un usuario en un ıtem del arbol (que bien conozca o le haya gustado),
se le recomendaran los ıtems adyacentes. El usuario no registrado, tambien podra navegar
por el arbol para ver las similaridades entre otros ıtems y poder recibir mas recomenda-
ciones que las que ofrecemos solamente con los ıtems adyacentes, aunque segun se vaya
alejando del ıtem inicial, menor sera la similaridad entre ıtems y por tanto la recomenda-
cion sera peor.
Como caso de estudio en la presente tesis; se mostraran los resultados obtenidos
utilizando la base de datos de MovieLens con un millon de votos emitidos por 6040
usuarios sobre 3900 pelıculas (ıtems).
El arbol que queremos obtener va a estar representado por el siguiente grafo Gt =<
V,E, p, n, s > donde:
V: Cada vertice vi ∈ V representa un ıtem del SR.
E: Una arista ei ∈ E entre dos ıtems, representa la similaridad entre los ıtems que
une.
p: Representa la importancia o popularidad del ıtem.
n: Representa la distancia (1− similaridad) entre cada par de ıtems.
s: Representa la fiabilidad de la medida de similaridad.
Tomando la matriz de votos del SR tenemos que hacer los calculos de la importancia
de cada ıtem, las similaridades entre los ıtems y la medida de fiabilidad asociada a cada
medida de similaridad calculada.
Con la medida de la importancia de cada ıtem representaremos el tamano del vertice,
lo que interpretara que a mayor importancia (o popularidad) del ıtem, mayor sera su
Autor: Ricardo Moya Garcıa 129
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
tamano. La importancia de cada ıtem la calculamos de la siguiente forma:
importancia (i) =∑u∈U
[ru,i −
[min+
max−min2
]](121)
siendo min la votacion mınima permita y max el voto maximo permitido.
La distancia entre cada par de ıtems, la podemos calcular basandonos en cualquier
metrica de similaridad (MSD, Coseno, Correlacion, JMSD, etc). Como ya se comento en
el punto 4.2.1 la distancia entre cada par de ıtems se calcula restando 1 al valor de la
similaridad (distx,y = 1− simx,y). En este caso aplicaremos la metrica de similaridad del
MSD para calcular la distancia entre cada par de ıtems, quedando la distancia del MSD
entre dos ıtems de la siguiente manera:
MSDx,y =1
#U
∑u∈#U
(ru,x − ru,ymax−min
)2
(122)
siendo #U el conjunto de usuarios que han valorado tanto el ıtem x como por el ıtem y:
#U = {u ∈ U |ru,x 6= • ∧ ru,y 6= •} (123)
Con la matriz de distancias que obtenemos, serıamos capaces de generar un grafo con
las distancias entre cada par de ıtems. Es con esta matriz de distancias con la que tenemos
que trabajar para obtener el arbol de recubrimiento mınimo. Las distancia entre cada par
de ıtems se utilizaran para representar en el arbol la longitud de la arista y por tanto se
podra ver graficamente la similaridad entre ıtems (a menor distancia, mayor similaridad).
Por ultimo tenemos que calcular el valor de la fiabilidad de cada medida de similaridad
calculada. Para ello utilizaremos la medida del Jaccard que viene dado por la siguiente
formula:
Jaccardx,y =|#U |
|{u ∈ U |ru,x 6= ∅ ∨ ru,y 6= ∅}|(124)
130 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
Con esta medida de fiabilidad, pintaremos en el arbol las aristas de diferentes colores
para que se pueda reflejar en el, la fiabilidad de cada relacion de similaridad entre ıtems.
En resumen, los pasos para obtener el RS-IST a partir de la matriz de votos seria el
siguiente:
1. Calculamos la importancia o popularidad de cada ıtem para dibujar el vertice del
ıtem con mayor o menor tamano.
2. Calculamos la distancia entre ıtems utilizando alguna metrica de similaridad (MSD).
3. A partir de la matriz de distancias, obtenemos el arbol de recubrimiento mınimo con
el algoritmo de Prim.
4. Calculamos la medida de fiabilidad (Jaccard) de cada similaridad, para dibujar las
aristas de un determinado color.
A continuacion vamos a mostrar un sencillo ejemplo de como obtener el RS-IST a
partir de la siguiente matriz de votos:
I1 I2 I3 I4 I5 I6
U1 4 3 • 1 2 •U2 • • 1 4 4 5U3 5 5 • • • •U4 4 4 5 3 3 •U5 1 • 5 2 2 •
Tabla 52: Ejemplo de matriz de votos para generar el RS-IST
El primer paso sera calcular la importancia de cada uno de los ıtem, aplicando la
formula (121), obtenemos los siguientes resultados:
I1 I2 I3 I4 I5 I6
Importancia 2 3 2 -2 -1 2
Tabla 53: Importancia de los ıtems para el ejemplo de generacion del RS-IST
Vemos como el ıtem I2 lo ha considerado como el mas importante (o el mas popular),
ya que el valor de la importancia depende bastante de los votos positivos que tenga un
Autor: Ricardo Moya Garcıa 131
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
ıtem. El ıtem I4 es el menos importante, ya que vemos que sus votaciones no son muy
altas. Por el contrario vemos que el ıtem I6 tiene una importancia bastante alta aunque
solo tenga un voto, pero ya veremos mas adelante como la fiabilidad de sus valores de
similaridad sera baja. Visto estos resultados, el vertice del ıtem I2 lo dibujaremos con el
tamano mas grande y el ıtem I4 con el mas pequeno.
El siguiente paso sera el de calcular las distancias entre ıtems aplicando el MSD (122):
I1 I2 I3 I4 I5 I6
I1 • 0.02 0.53 0.33 0.13 •I2 • 0.06 0.16 0.06 •I3 • 0.46 0.46 1I4 • 0.02 0.06I5 • 0.06I6 •
Tabla 54: Similaridades entre ıtems para el ejemplo de generacion del RS-IST
Observamos que hay distancias que no han sido posible calcularlas ya que los ıtems
I1 e I2 no tienen votos en comun con el ıtem I6. Con estas distancias podemos dibujar
en un grafo las relaciones entre los ıtems, teniendo tambien en cuenta la importancia de
los mismos (tamano del vertice), calculada en la tabla 53:
Figura 22: Grafo con las relaciones entre ıtems en el ejemplo de generacion del RS-IST
132 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
El siguiente paso es calcular el arbol de recubrimiento mınimo a partir del grafo de la
tabla 54. Aplicando el algoritmo de Prim y partiendo del ıtem I1 obtenemos el siguiente
arbol de recubrimiento mınimo:
Figura 23: Arbol de recubrimiento mınimo en el ejemplo de generacion del RS-IST
Comparando los grafos de las figuras 22 y 23, podemos apreciar que aplicando el
algoritmos de Prim se simplifica muchısimo el grafo de distancias entre ıtems y de esa
forma podemos mostrar las relaciones entre los ıtems, asegurandonos de que siempre
habra un camino de un ıtem a otro que los relacione.
El ultimo calculo que debemos hacer es el de la fiabilidad de las distancias calculadas
en la tabla 54. Para hacer este calculo aplicamos la formula del Jaccard (124), obteniendo
los siguientes resultados:
I1 I2 I3 I4 I5 I6
I1 • 0.75 0.40 0.60 0.60 0I2 • 0.40 0.40 0.40 0I3 • 0.75 0.75 0.33I4 • 1 0.25I5 • 0.25I6 •
Tabla 55: Fiabilidad en las medidas de similaridad para el ejemplo de generacion del RS-IST
Autor: Ricardo Moya Garcıa 133
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
Con los resultados obtenidos, podemos observar como efectivamente la fiabilidad en
la medida de distancias con respecto al ıtem I6 son muy bajas, y esto es debido a que
el ıtem I6 tiene muy pocos votos en comun con otros ıtems. Por el contrario la medida
de similaridad entre los ıtems I4 e I5 tiene una fiabilidad del 100 % ya que ambos ıtems
han sido votados por los mismos usuarios y por tanto las metricas de similaridad tienen
en cuenta todos los votos para hacer el calculo de la similaridad.
Una vez que tenemos los datos de la fiabilidad, debemos de asignar un color a las
aristas del arbol para reflejar graficamente la fiabilidad de cada una de sus relaciones.
Estos colores los podemos asignar de muchas maneras; pero en este ejemplo lo vamos a
asignar por tramos de fiabilidad, asignando a cada tramo un color:
Fiabilidad 1 - 0.8 0.79 - 0.6 0.59 - 0.4 0.39 - 0.2 0.19 - 0
Color Rojo Naranja Verde Morado Azul
Tabla 56: Tramos de fiabilidad para aplicar los colores a los vertices en el ejemplo de generacion delRS-IST
Las justificacion de utilizar un numero finito de colores (en este caso 5) para repre-
sentar la fiabilidad en las relaciones, se debe a que es mucho mas sencillo para el usuario,
que el mapa tenga pocos colores y los pueda entender rapidamente. Si por el contrario
hubiesemos querido representar la fiabilidad cogiendo dos colores que representen la fia-
bilidad maxima y mınima, y asignar toda la gama de colores intermedia en proporcion a
los diferentes valores de fiabilidad; tendrıamos muchısimos colores en el mapa y por tanto
el usuario podrıa liarse; sin embargo con 5 o 3 colores es mucho mas sencillo de entender
para el usuario.
Asignando los colores correspondientes de fiabilidad a las aristas del arbol, tenemos
el siguiente RS-IST:
134 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
Figura 24: Resultado del ejemplo de generacion del RS-IST
Con el arbol obtenido es relativamente facil interpretar las relaciones de similaridad
que hay entre los ıtems, observando que a menor distancia entre ıtems, mas similares son
y en funcion del color de la arista, la recomendacion sera mas o menos fiable. De igual
manera, en funcion del tamano del vertice podemos interpretar lo popular (o no popular)
que es el ıtem.
Si comparamos el RS-IST de la figura 24 con la matriz de votos de la tabla 52,
podremos interpretar los resultados obtenidos:
En primer lugar, nos fijamos que los pares de ıtems I1, I2 e I4, I5 son ıtems muy
similares entre ellos, ya que los usuarios que han votado ambos ıtems lo han hecho
emitiendo votos muy simulares; por tanto, la similaridad entre esos ıtems es muy
alta (dada por la tecnica de los K-Vecinos) y los representamos en el RS-IST muy
juntos, con una arista muy corta. Sin embargo las relaciones de similaridad entre el
resto de ıtems no son tan altas; por tanto unimos el resto de ıtems con aristas mas
largas para representar que no son tan similares los unos de los otros.
Sobre la fiabilidad dada por el color de las aristas, vemos como la fiabilidad entre los
pares de ıtems I1, I2 e I4, I5 es muy alta ya que son muchos los usuarios que han
votado ambos ıtems y por tanto hacemos esa recomendacion en base al conocimiento
aportado por muchos usuarios, por lo que podemos asegurar que si a un usuario le
Autor: Ricardo Moya Garcıa 135
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
ha gustado un ıtem es muy probable que tambien le guste el ıtem adyacente. Por el
contrario vemos que la relacion de similaridad entre los ıtems I5 e I6 es muy baja
ya que solamente un usuario a votado las dos pelıculas y por tanto hacemos esa
recomendacion en base a los conocimientos de un solo usuario; por lo que se debe de
interpretar que si a un usuario le ha gusta el ıtem I6 se le recomendara el ıtem I5
pero no se asegura que le vaya a gustar ese ıtem.
Por ultimo debemos de interpretar la popularidad o la importancia de los ıtems en
base al tamano del vertice que representa el ıtem. Basicamente la popularidad repre-
senta lo bien o mal votado que esta el ıtem, lo cual no quiere decir que sus relaciones
con otros ıtems sean poco fiables o esten mal calculadas, sino que los usuarios votan
ese ıtem con notas altas o bajas. Podemos observar como la popularidad del ıtem I6
es considerablemente mas alta que la de los ıtems I4 e I5, sin embargo la popularidad
del ıtem I6 viene dada solamente por un voto y la popularidad de los ıtems I4 e I5
viene dada por 4 votos
En resumen, se ha mostrado un ejemplo de la creacion del RS-IST de la figura 24
a partir de la matriz de votos de la tabla 52, en el que hemos podido ver como relacio-
nar los ıtems para hacer recomendaciones a usuarios no registrados. De esta forma no
solo somos capaces de hacer recomendaciones de ıtems; sino tambien de justificar esas
recomendaciones (ver punto 5.4) en base a las relaciones entre ıtems.
A continuacion vamos a pasar a explicar los resultados obtenidos del RS-IST aplicado
a la base de datos de MovieLens con un millon de votos emitidos por 6040 usuarios sobre
3900 pelıculas (ıtems). El procedimiento aplicado para la obtencion del RS-IST de la base
de datos de MovieLens es el mismo que el aplicado en el ejemplo propuesto en este punto
del trabajo, con la unica diferencia de que los colores que representan la fiabilidad son
distintos; representando con el color rojo la fiabilidad maxima y decreciendo a los colores
a naranja, amarillo, verde, azul claro y azul oscuro que representa la fiabilidad mınima.
136 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
En la siguiente figura 25 mostramos todo el arbol de recubrimiento mınimo de las
3900 pelıculas que componen la base de datos de MoviLens:
Figura 25: Imagen del RS-IST a partir de la base de datos de MovieLens 1M
En el RS-IST, podemos ver como el arbol tiene una forma de columna vertebral en
el centro en el que se encuentran las pelıculas con mayor popularidad, ya que a pesar de
que la imagen se ve muy pequena, se distinguen en esas pelıculas los vertices en color
blanco que tienen un mayor tamano. Por otro lado tambien se puede apreciar como la
relacion entre los ıtems de mayor popularidad tienen una alta fiabilidad ya que mucho
estan unidas por aristas de color rojo. Vemos por otro lado como segun nos vamos alejando
de las pelıculas que se encuentran en esa columna vertebral, la popularidad de las pelıculas
es mas baja, al igual que la similaridad y la fiabilidad de las similaridades.
Si hacemos zoom (figura 26) en el lugar donde se encuentran las pelıculas con mayor
popularidad, vemos pelıculas como “Terminator”, “Star Wars”, “Indiana Jones”, “Bat-
Autor: Ricardo Moya Garcıa 137
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
man”, etc. lo cual demuestra que estamos asignando una popularidad muy alta a pelıculas
que realmente lo son. Por otro lado vemos que las similaridades entre estas pelıculas tie-
nen una fiabilidad muy elevada; al estar la arista pintada de color rojo, lo cual tiene
bastante sentido ya que al ser pelıculas muy conocidas son muchos los usuarios que votan
todas estas pelıculas. Por ultimo podemos apreciar como la relaciones entre pelıculas tie-
nen bastante sentido al estar relacionadas continuaciones de pelıculas como por ejemplo
“Terminator y Terminatos 2”, las sagas de “Star Wars”, “El Padrino y el Padrino II”,
etc.
Figura 26: Zoom 1 del RS-IST a partir de la base de datos de MovieLens 1M
Haciendo zoom en otra parte del arbol (figura 27), podemos ver pelıculas menos
populares y cuyas similitudes son mas bajas y menos fiables. En la siguiente imagen
podemos ver como relaciona las pelıculas de “Loca academia de policıa” (Police Academy)
que no son muy populares, pero su similaridad tiene una fiabilidad bastante elevada,
no como las relaciones que se ven en colores azules que denotan una fiabilidad en las
similaridades muy bajas.
138 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
Figura 27: Zoom 2 del RS-IST a partir de la base de datos de MovieLens 1M
Por ultimo, en la siguiente imagen del RS-IST podemos apreciar casos en el que a
partir de determinadas pelıculas podemos hacer muchas recomendaciones (como es el caso
de la pelıcula “Number Seventeen”) ya que tiene muchas pelıculas adyacentes:
Figura 28: Zoom 3 del RS-IST a partir de la base de datos de MovieLens 1M
Este caso de estudio (el RS-IST) se ha realizado a partir de una base de datos de votos
de pelıculas de un SR basado en FC. El procedimiento del calculo de similaridades entre
ıtems y el calculo del arbol de recubrimiento mınimo puede ser aplicado a cualquier SR
(ya sea FC o FBC) que sea capaz de relacionar ıtems; por tanto, aplicando cualquiera de
Autor: Ricardo Moya Garcıa 139
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
las tecnicas vistas en el capıtulo 3 de este trabajo y haciendo los calculos de similaridades
entre ıtems con las metricas vistas en el capıtulo 4, se puede crear este tipo de mapas
graficos que relacionan de forma muy simple los ıtems del SR. Ademas no solo podemos
dibujar los mapas como se ha realizado en este caso de estudio, sino que podemos anadir
objetos visuales nuevos en funcion de las caracterısticas del SR. Por ejemplo en el caso
de estudio presentado, podıamos haber dibujado de un determinado color los vertices que
representan a los ıtems en funcion del genero de la pelıcula, la decada de creacion,etc.
Como vemos el objetivo de este trabajo no es mostrar unos pasos de representacion de
mapas concreto, sino mostrar que con el estudio de las similaridades entre los ıtems y
aplicando un algoritmo que simplifique un grafo con muchas relaciones podemos obtener
una representacion visual de los ıtems de un SR de forma intuitiva y atractiva para los
usuarios; por tanto, la representacion visual de estos mapas queda muy abierta para que
se adapte al SR al que se quiera aplicar.
5.4. Explicacion de la recomendaciones
Una de las aplicaciones mas interesantes que puede tener la visualizacion de arboles
es la de poder explicar a los usuarios las recomendaciones realizadas [36] de una forma
muy sencilla e intuitiva; y es que dado un ıtem I1 del arbol que le guste a un usuario,
se le puede explicar la recomendacion diciendo: “Si te ha gusta un ıtem I1, entonces es
probable que te guste el ıtem I2 adyacente, ya que estos ıtems son muy similares”. Esto
nos permite aportar un valor extra a las recomendaciones que se realicen.
Tal y como se vio en el capıtulo 3.2.1, los SR basados en FC en el que se utiliza la
tecnica de los K-Vecinos, tiene como objetivo estudiar la similaridad entre usuario o ıtems
para obtener las recomendaciones. En funcion de si estudiamos las similaridades entre
usuarios o entre ıtems podemos explicar las recomendaciones de las siguientes formas:
1. Orientado a usuarios: Para los SR que utilizan el algoritmo de los K-Vecinos orien-
tado a usuarios, las explicaciones suelen ser de la siguiente manera:“El sistema reco-
140 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
mienda el ıtem i al usuario u porque hay otro usuario con gustos similares y que ha
valorado positivamente el ıtem i”. Este tipo de explicaciones se denominan “explica-
ciones al estilo humano”.
2. Orientado a ıtems: Para los SR que utilizan el algoritmo de los K-Vecinos orienta-
do a ıtems, las explicaciones suelen ser de la siguiente manera: “El sistema recomienda
el ıtem i al usuario u porque el usuario u ha votado el ıtem j con un valor alto”.
Este tipo de recomendaciones se denominan “explicaciones al estilo ıtem”.
Las “explicaciones al estilo ıtem” [10] suelen ser mejores que las “explicaciones al
estilo humano”, porque en el primero los usuarios pueden juzgar con mayor precision las
recomendaciones basandose en el conocimiento que tienen sobre los ıtems, sin embargo
no pueden saber cuales son los gustos o preferencias de otros usuarios. Es por este motivo
por el que se muestra de forma visual las relaciones entre ıtems y no entre usuarios.
Como aplicacion de los mapas graficos se propone las “explicaciones al estilo ıtem”
ya que es mas sofisticado y se muestra de forma mas clara una explicacion del siguiente
estilo: “El sistema recomienda el ıtem i al usuario u porque el usuario u ha votado el ıtem
j con un valor alto y este tiene una similaridad muy alta con el ıtem i”; por tanto, las
ventajas de explicar las recomendaciones a partir de un mapa grafico son las siguiente:
Las explicaciones se basan en informacion visual. A diferencia de las recomendacio-
nes textuales, esta informacion visual proporciona a los usuarios una manera mas
atractiva y rapida de entender las recomendaciones.
En lugar de dar una explicacion independiente para cada una de las recomenda-
ciones, ofrecemos una explicacion global para todo el conjunto de recomendaciones
que se dan; ademas se proporcionan a los usuarios razones para la eleccion de una
recomendacion sobre otra.
Las explicaciones a traves del mapa, proporcionan a los usuarios informacion muy
Autor: Ricardo Moya Garcıa 141
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
interesante acerca de la fiabilidad de una recomendacion y de su popularidad o im-
portancia.
Veamos ahora un ejemplo (a partir del caso de estudio del RS-IST con la base de
datos de MovieLens) de como explicarıamos las recomendaciones a partir de las siguientes
relaciones entre pelıculas:
Figura 29: Ejemplo 1 de explicaciones de recomendaciones con el RS-IST a partir de la base de datos deMovieLens 1M
Si a un usuario le ha gustado la pelıcula “Star Wars: Episodio V”, podemos recomen-
dar los 7 ıtems adyacentes a el. La explicacion para recomendar la pelıcula de “Regreso
al futuro” (Back to the future) seria: “El sistema recomienda al usuario la pelıcula de
“Regreso al futuro” porque al usuario le gusta la pelıcula de “Star Wars: Episodio V” y
ambas pelıculas son muy similares, por tanto en muy probable que al usuario le guste la
pelıcula de “Regreso al futuro””. Ademas utilizamos la expresion de “es muy probable”
porque la fiabilidad entre las medidas de similaridad de esos ıtems es muy alta. Por el
142 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
contrario si la media de fiabilidad fuese baja entre ambos ıtems podıamos haber utilizado
otras palabras como “posiblemente” o “quizas”.
No solo podemos hacer recomendaciones con las pelıculas adyacentes, sino que pode-
mos hacerlas a un nivel superior, sabiendo que segun nos alejemos de la pelıcula inicial
la recomendacion puede ser peor. Por ejemplo podemos recomendar la pelıcula de “El
Padrino” (The Godfather) a partir de la pelıcula “Star Wars: Episodio V” de la siguiente
manera: “El sistema recomienda al usuario la pelıcula de “El Padrino” porque al usuario
le gusta la pelıcula de “Star Wars: Episodio V” que es muy similar a “Star Wars: Episodio
IV”, por tanto es probable que al usuario le guste la pelıcula de “El Padrino” al ser esta
muy similar a “Star Wars: Episodio IV””.
Las explicaciones de las recomendaciones realizadas a partir del mapa de la figura
29 son recomendaciones para usuarios no registrados, que hemos obtenido a partir de la
matriz de votos de MovieLens; por tanto, hemos aprovechado el conocimiento de mucho
usuarios que han votado para relacionar los ıtems del SR y poder hacer recomendaciones.
Una evolucion para mostrar este tipo de explicaciones a partir de mapas graficos, seria
generar un mapa de ıtems personalizado para usuarios registrados [36] [55] de los cuales
se tenga conocimiento de los votos emitidos. De esta forma podrıamos explicar las reco-
mendaciones de una forma intuitiva y muy atractiva para el usuario, basandonos en las
relaciones de los ıtems y los votos que ha realizado el usuario.
A continuacion vamos a mostrar un ejemplo de como generar estos mapas graficos
personalizados para usuarios registrados. Para ello consideremos un SR con 12 ıtems
{I1, ..., I12} y 15 usuarios {U1, .., U15} en el que los usuarios pueden valorar los ıtems
con valores del 1 al 5, tal y como se observa en la siguiente tabla:
Autor: Ricardo Moya Garcıa 143
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12
U1 • 5 • 5 • 4 • 5 • 5 4 5U2 2 • 2 1 2 • • 2 2 1 1 2U3 • 4 5 4 4 5 • 4 • 5 • •U4 4 3 4 4 • 2 4 4 3 4 1 2U5 2 1 • 1 1 2 2 1 3 1 5 5U6 • 5 1 • • • • • 5 2 2 2U7 3 2 • 3 3 2 5 2 2 5 5 5U8 4 2 3 3 • 4 1 5 3 1 5 5U9 • 1 4 5 4 • • • • • • •U10 4 5 4 4 • 4 1 5 3 2 4 4U11 1 2 4 2 • 3 5 1 • 4 1 1U12 2 3 • 1 1 2 1 • • 2 5 5U13 4 3 4 5 1 3 • 4 • 2 2 2U14 5 3 5 4 2 3 1 5 • 2 3 3U15 1 1 3 1 5 4 5 1 5 • 1 •
Tabla 57: Ejemplo de matriz de votos para la generacion de mapas graficos personalizados para usuariosregistrados
Calculando la similaridad entre los ıtems, a traves de la metrica de similaridad de la
correlacion (formula (44)), obtenemos los siguientes resultados:
Sim (x,y) I1 I2 I3 I4 I5 I6 I7 I8 I9 I10 I11 I12
I1 • 0.6 0.5 0.9 -0.4 0.1 -0.5 0.9 -0.4 -0.1 0.2 0.1I2 • -0.2 0.5 -0.2 0.4 -0.5 0.8 0.2 0.2 0.0 -0.1I3 • 0.7 0.0 0.0 -0.3 0.5 -0.3 0.5 0.2 0.1I4 • 0.1 0.3 -0.2 0.8 -0.2 0.4 0.0 -0.1I5 • 0.7 0.8 -0.2 0.7 0.8 -0.4 0.1I6 • -0.2 0.4 0.6 0.2 -0.1 0.1I7 • -0.7 0.2 0.9 -0.6 -0.5I8 • -0.2 0.0 0.3 0.2I9 • 0 0 0I10 • -0.1 0.0I11 • 1.0I12 •
Tabla 58: Similaridad entre cada par de ıtems para el ejemplo de la generacion de mapas graficos perso-nalizados para usuarios registrados
Veamos ahora como generarıamos el arbol para explicar las recomendaciones a un
usuario. En primer lugar tenemos que definir un conjunto R, como el conjunto de ıtems
que se predicen que van a ser votados con un valor alto por el usuario:
R = {i ∈ I|pu,i ≥ w} (125)
En segundo lugar, tenemos que definir un conjunto H, como el conjunto de ıtems que
144 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
el usuario ha votado con una nota alta:
H = {i ∈ I|ru,i ≥ w} (126)
Para ver un ejemplo interesante, vamos a generar el arbol para el usuario U1. En
primer lugar definimos el conjunto de ıtems R, que se predice que le gustaran al usuario
con una nota mayor o igual a 4 (pu,i ≥ 4):
R = {I1, I3, I5, I7, I9} (127)
En segundo lugar, definimos el conjunto de ıtems H, que el usuario U1 ha votado con
una nota superior o igual a 4 (ru,i ≥ 4):
H = {I2, I4, I6, I8, I10, I11, I12} (128)
Se ha elegido el usuario U1, porque generaremos un arbol en el que se representaran
los 12 ıtems, ya que sus votos y predicciones son muy altos. Para ello representaremos
los ıtems votados por el usuario con una nota alta (conjunto H) con un vertice de fondo
blanco y los ıtems a recomendar (conjunto R) con un vertice de color rojo.
Figura 30: Mapa grafico para el ejemplo de la generacion de mapas graficos personalizados para usuariosregistrados
Autor: Ricardo Moya Garcıa 145
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
Observamos que la similaridad entre cada par de ıtems no esta representada por un
vertice, ya que para simplificarlo se han eliminado las relaciones con distancia mayor que
0.5 y las relaciones entre los ıtems que el usuarios ha votado; es decir, las relaciones entre
los ıtems del conjunto H, ya que no interesa al usuario ver las relaciones entre los ıtems
que ha votado, sino las relaciones con los ıtems que no ha votado para explicarle las
recomendaciones.
Calculando el arbol de recubrimiento mınimo a partir de los grafos de la figura 30,
obtenemos el siguiente resultado:
Figura 31: Arbol de recubrimiento mınimo para el ejemplo de la generacion de mapas graficos personali-zados para usuarios registrados
Con el arbol generado en la figura 31, tenemos un arbol personalizado para el usuario
U1 ya que con las relaciones que se muestran, vamos a ser capaces de explicarle las
recomendaciones de ıtems que no ha votado, basandonos en el conocimiento que el usuario
tiene sobre los ıtems que ha valorado. Por ejemplo; podrıamos explicar la recomendacion
del ıtem I1 al tener como ıtems similares (y por tanto adyacentes) los ıtems I2, I4 e I8,
diciendo que “Si al usuario U1 le ha gustado el ıtem I2, es muy probable que le guste el
ıtem I1 ya que el ıtem I1 e I2 son muy similares”. De forma similar se pueden justificar
las recomendaciones de los ıtems representados en color rojo.
146 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
5 ARBOLES EN LOS SISTEMAS DE RECOMENDACION
La generacion de estos mapas personalizados en base a los votos realizados por el
usuario, permite justificar y explicar las recomendaciones de una forma sencilla, con la
ventaja respecto de la generacion del arbol de todo el SR, que se eliminan del mapa
aquellos ıtems que predecimos que no le van a gustar al usuario; por tanto, ese mapa
personalizado no solo se centrara en mostrarle los ıtems que se predicen que le gustaran,
sino que se le muestra un arbol con muchos menos ıtems y mucho mas legible ya que se
elimina la informacion redundante para el usuario.
En resumen, los mapas graficos propuestos en este trabajo no solo nos permiten
explicar y justificar las recomendaciones sino que permiten tambien a los usuarios navegar
por el mapa para ver de una forma facil y atractiva todos los ıtems del SR y sus relaciones,
pudiendo no solo recibir recomendaciones directas a partir de los ıtems adyacentes, sino
darles a los usuarios los elementos visuales necesarios para que puedan sacar ellos mismos
las conclusiones sobre los ıtems que les puedan gustar o no gustar en funcion de la posicion
de los ıtems.
Autor: Ricardo Moya Garcıa 147
6 CONCLUSIONES
6. CONCLUSIONES
En la presente tesis doctoral se ha presentado un modelo de inferencia sencillo que
permite a un usuario no registrado en un sistema de recomendacion inferir por si mismo
las propias recomendaciones a partir de sus gustos.
Este modelo esta basado en una descripcion visual a traves de un arbol en la que
se destacan aquellas relaciones de similaridad mas importantes entre los ıtems que se
recomiendan. Ese arbol viene descrito por los distintos elementos graficos que resultan
utiles para un usuario no registrado: los tamanos de los vertices indica su importancia
(o popularidad); la longitud de los vertices indica la similitud que existe entre pares de
ıtems; y el color indica la fiabilidad del valor de similitud.
Utilizando la base de datos MovieLens 1M, la visualizacion de las pelıculas obtenidas,
nos permite identificar con claridad las areas en las que se representan el conjunto de las
pelıculas mas importantes. Utilizando el metodo propuesto, la informacion mas relevante
esta concentrada en un conjunto limitado de ramas centrales de la cual los arboles se
ramifica hasta alcanzar las hojas de los arboles.
Cuando se avanza en el arbol para ver el contexto de una opcion concreta (en nuestro
caso de estudio de una pelıcula), se puede determinar facilmente que pelıculas han sido
votadas de forma similar. Usando la base de datos MovieLens 1M, cada pelıcula presenta
un numero adecuado de pelıculas que se relacionan con ella en lo que respecta al tema,
genero, secuela, director, etc.
Autor: Ricardo Moya Garcıa 149
7 TRABAJOS FUTUROS
7. TRABAJOS FUTUROS
En este trabajo se presenta una amplia gama de posibilidades para desarrollarse en
futuros trabajos, como por ejemplo:
1. Estudiar posibles formas de generar arboles personalizados para usuarios de los que
se tiene cierta informacion sobre su perfil, gustos, etc.
2. Introducir otras medidas de fiabilidad.
3. Comparar las diferentes estructuras de arboles al aplicar diferentes medidas de simi-
laridad entre ıtems.
4. Incorporar una etapa de pre-clasterizacion para poder crear arboles mas pequenos y
con menos ıtems, separados por tematica, genero, etc.
5. Recuperacion de informacion en las diferentes areas en las que existen sistemas de
recomendacion basados en memoria (redes sociales, blogs, musica, sistemas de reco-
mendacion geograficas, etc.), para poder aplicar mas caracterısticas a los arboles.
6. Arboles dirigidos (Poliarboles). Serıa interesante la obtencion de recomendaciones
dirigidas para ciertos sistemas de recomendacion; por ejemplo un sistema de reco-
mendacion tipo Amazon en el que tenga sentido que si te compras un telefono movil
te recomiende una funda para el telefono y no al reves.
7. Aplicar este concepto a otros grafos planos (mallas).
Autor: Ricardo Moya Garcıa 151
A ANEXO: ALGORITMOS DE RECUBRIMIENTO MINIMO
A. Anexo: Algoritmos de recubrimiento mınimo
El problema que se pretende resolver en la presente tesis, es el de calcular un arbol
de recubrimiento mınimo a partir de un grafo conexo, valorado y no dirigido, formado
por las similaridades entre ıtems, donde los vertices del grafo son los ıtems, las aristas son
las relaciones entre los ıtems y el peso de las aristas son el valor de la similaridad de las
relaciones.
Tres de los algoritmos mas conocidos para la obtencion de un arbol de recubrimiento
mınimo a partir de un grafo conexo, valorado y no dirigido, son los algoritmos de Prim,
Kruskal y Boruvka.
Algoritmo de Prim: Este algoritmo encuentra el arbol de recubrimiento mınimo,
a partir de un vertice del grafo, al que le va agregando sucesivamente vertices cuyas
distancias a los vertices anteriores es mınima. Esto significa que en cada iteracion
del algoritmo, las aristas candidatas a anadirse al arbol son aquellas que inciden en
vertices que ya pertenecen al arbol. Cuando el arbol contiene todos los vertices del
grafo, termina su ejecucion.
Algoritmo de Kruskal: Este algoritmo no parte de un vertice dado, sino de un
par de vertices cuyo peso de la arista es el mınimo de todo el grafo. A partir de
ahı tiene un comportamiento similar al algoritmo de Prim, anadiendo al arbol la
arista de menor peso, siempre que no exista un camino entre el vertice incidente de
la arista seleccionada. Cuando el arbol contiene todos los vertices del grafo, termina
su ejecucion.
Algoritmo de Boruvka: Este algoritmo encuentra un arbol de recubrimiento mıni-
mo a partir de un grafo ponderado en el que todas las aristas tienen distinto peso.
Su comportamiento es muy diferente al del algoritmo de Prim y Kruskal ya que este
algoritmo forma el arbol a partir de pares de vertices. El algoritmo va cogiendo las
aristas de menor a mayor peso y va formando subgrafos de pares de aristas (cogiendo
Autor: Ricardo Moya Garcıa 153
A ANEXO: ALGORITMOS DE RECUBRIMIENTO MINIMO
la arista de menor peso incidente sobre los vertices de la arista), hasta que consigue
formar el arbol de recubrimiento mınimo.
Sobre los tres algoritmos propuestos, solo podran ser aplicados para obtener el RS-IST
los algoritmos de Prim y Kruskal, ya que el algoritmo de Boruvka tiene la caracterıstica
de que solo puede ser aplicado sobre grafos cuyas aristas tienen todas diferente peso y esa
caracterıstica no se ajusta al problema que se pretende resolver, ya que el grafo del que
queremos obtener el arbol de recubrimiento mınimo estara formado por las similaridades
entre ıtems, por lo que es mas que probable que haya similaridades entre ıtems con el
mismo valor.
A continuacion pasamos a mostrar con detalle el funcionamiento de los algoritmos de
Prim y Kruskal mostrando un ejemplo de la obtencion del arbol de recubrimiento mınimo
a partir del siguiente grafo (las aristas de colores no tienen ningun significado especial,
estan puestas ası para que se puedan distinguir bien):
Figura 32: Grafo para mostrar un ejemplo de la obtencion de un arbol de recubrimiento mınimo con losalgoritmos de Prim y Kruskal
Los pesos de este grafo (que en el RS-IST representan las similaridades que hay entre
cada par de ıtems), los vamos a representar en una matriz de pesos que tendra la siguiente
forma:
Se puede observar que la matriz de pesos del grafo de la figura 32 es simetrica, ya que
se trata de un grafo no dirigido. Por otro lado las aristas que no existen entre pares de
154 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
A ANEXO: ALGORITMOS DE RECUBRIMIENTO MINIMO
V1 V2 V3 V4 V5 V6
V1 ∞ 1 3 5 ∞ 1V2 1 ∞ 5 4 ∞ ∞V3 3 5 ∞ 4 ∞ 2V4 5 4 4 ∞ 3 ∞V5 ∞ ∞ ∞ 3 ∞ 6V6 1 ∞ 2 ∞ 6 ∞
Tabla 59: Pesos del grafo para mostrar un ejemplo de la obtencion de un arbol de recubrimiento mınimocon los algoritmos de Prim y Kruskal
vertices, se deben de representar con algun valor para que los algoritmos sepan que esas
aristas no existe; en este caso lo vamos a representar con distancia infinita ∞.
Algoritmo de Prim
El algoritmo de Prim comienza posicionandose en un vertice (un vertice inicial). A
partir de ese vertice; comprueba de todas las posibles aristas, cual es la que tiene menor
peso, y anade el vertice adyacente al arbol. Posteriormente el algoritmo va comprobando
cuales son las aristas que inciden en los vertices del arbol que tienen menor peso y las anade
al arbol. Este algoritmo termina su ejecucion cuando el arbol resultante esta compuesto
por todos los vertices del grafo.
Las estructuras de datos a utilizar para la implementacion de este algoritmo pueden
ser muy diversas, pero en este trabajo como se parte de una matriz de similaridades
que representaran los peso de las aristas, utilizaremos como estructura de datos para
representar al grafo, una matriz de pesos; como la que se muestra en la tabla 59.
Para implementar este algoritmo, se necesitan estructuras de datos auxiliares para
poder saber hacia que vertices puede ir creciendo el arbol, el peso de esos vertices y si han
sido o no visitados. Teniendo en cuenta todas estas estructuras, se muestra el pseudocodigo
del algoritmo de Prim utilizando una matriz de pesos para representar al grafo.
Autor: Ricardo Moya Garcıa 155
A ANEXO: ALGORITMOS DE RECUBRIMIENTO MINIMO
1 CONST NumVertices = NCONST Ve r t i c e I n i c i o = 1VAR Grafo = Matrix [ 1 . .N ] [ 1 . .N] o f T PesoVAR VerticeMasCercano = Array [ 1 . .N] o f T Vert iceVAR MenorCoste = Array [ 1 . .N] o f f l o a tVAR Ver t i c e sV i s i t ado s = Array [ 1 . .N] o f booleanVAR Vert i ceActua l = T Vert iceVAR Arbol = T Arbol
BEGINI n i c i a l i z a r ( VerticeMasCercano , MenorCoste , Ve r t i c e sV i s i t ado s , Arbol )f o r i=1 to NumVertices {
i f ( i < > Ve r t i c e I n i c i o ) {Se lecc ionarAr i s taMenorCoste ( Vert iceActual , MenorCoste ) ;Arbol . add ( Vert i ce s , Ar i s ta ) ;Ac tua l i z a rEs t ruc tu ra s ( VerticeMasCercano , MenorCoste , Ve r t i c e sV i s i t ado s ) ;
}}
END
A continuacion vamos a ir mostrando como se formarıa el arbol de recubrimiento
mınimo a partir del grafo de la figura 32 con el algoritmo de Prim, tomando como vertice
inicial el vertice V 1.
En primer lugar inicializamos las estructuras de datos posicionandonos en el vertice
V 1. Al contener el arbol (inicialmente) solamente un vertice (V 1), el arbol solamente se
podra expandir a un vertice adyacente al vertice V 1, de ahı que el array del vertice mas
cercano marque como vertice el V 1:
Figura 33: Ejemplo del algoritmo de Prim 1: Inicializacion de las estructuras de datos.
En esta primera iteracion, el arbol se expande hacia el vertice V 2, al ser un vertice
adyacente a V 1 y tener menor peso. En esta iteracion podıa haberse expandido hacia el
156 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
A ANEXO: ALGORITMOS DE RECUBRIMIENTO MINIMO
vertice V 6 que tiene el mismo peso en su arista, pero como las estructuras de datos se
recorren secuencialmente, se selecciona la primera arista de menor peso:
Figura 34: Ejemplo del algoritmo de Prim 2: Primera iteracion del algoritmo.
Las siguientes iteraciones siguen cogiendo la arista incidente de menor peso sobre los
vertice que componen el arbol, siempre que el vertice no se encuentre en el arbol. Las
siguientes 4 iteraciones las vemos en las figuras 35 y 36:
Figura 35: Ejemplo del algoritmo de Prim 3: Segunda y tercera iteracion del algoritmo.
Figura 36: Ejemplo del algoritmo de Prim 4: Cuarta y quinta iteracion del algoritmo.
Autor: Ricardo Moya Garcıa 157
A ANEXO: ALGORITMOS DE RECUBRIMIENTO MINIMO
Como resultado al algoritmo de Prim, obtenemos el arbol de recubrimiento mınimo a
partir del grafo de la figura 32, en el que se puede apreciar como el arbol contiene todos los
vertices del grafo, y el peso del las aristas que los unen es el mınimo posible. En resumen,
tenemos el siguiente arbol de recubrimiento mınimo:
GT = (< V 1, V 2, 1 >,< V 1, V 6, 1 >,< V 6, V 3, 2 >,< V 2, V 4, 4 >,< V 4, V 5, 3 >)
(129)
Algoritmo de Kruskal
Este algoritmo va buscando las arista de menor peso y comprueba si cogiendo la arista
de menor peso y el vertice incidente, existe (o no) un posible camino hacia ese vertice en
el arbol. Si existe un camino en el arbol que lleve hacia ese vertice, se descarta la arista;
sino se anade el vertice y la arista al arbol. A diferencia del algoritmo de Prim, no hay
que pasarle al algoritmo de Kruskal un vertice inicial, ya que se situa al principio entre
los dos vertices que tienen la arista de menor peso.
El pseudocodigo del algoritmo de Kruskal es el siguiente:
CONST NumVertices = NVAR Grafo = Matrix [ 1 . .N ] [ 1 . .N] o f T PesoVAR NumVerticesArbol = 0 ;VAR Aris taActua l = T AristaVAR Arbol = T Arbol
BEGINRepeat
EscogerAristaMenorPeso ( Grafo ) ;i f ( ! ExisteCamino ( Arbol , Ar istaActual , Grafo ) ) {
Arbol . add ( Vert i ce s , Ar i s ta )NumVerticesArbol ++;
}Unt i l ( NumVerticesArbol == NumVertices )
END
Como vemos, este algoritmo no necesita de tantas estructuras de datos auxiliares,
ya que va seleccionando del grafo la arista de menor y comprueba en el arbol si existe o
no un camino que lleve hacia el vertice incidente de la arista seleccionada. Por otro lado
cuando se anade una arista al arbol, el peso de esa arista se le pone a valor∞ en la matriz
158 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
A ANEXO: ALGORITMOS DE RECUBRIMIENTO MINIMO
del grafo, para que posteriormente el algoritmo no seleccione esa arista. Por ultimo, el
algoritmo finaliza cuando el arbol contiene todas las aristas del grafo.
En las siguiente imagenes (figuras 37, 38, 39) vamos a ver paso a paso la ejecucion
del algoritmo de Kruskal a partir del ejemplo del grafo de la figura 32.
En la primera iteracion del algoritmo (parte izquierda de la figura 37), se coge la
arista de menor peso. En este caso hay dos aristas con peso 1, pero se selecciona la arista
que une los vertices V 1 y V 2 ya que el algoritmo empieza a buscar en la matriz de pesos
por la posicion (1, 1). En la segunda iteracion (parte derecha de la figura 37) selecciona
la arista que unen los vertices V 1 y V 6, al ser la arista de menor peso (peso igual a 1).
Tras ser seleccionadas las aristas, se actualiza la matriz de pesos, poniendo esas aristas
con peso igual a ∞:
Figura 37: Ejemplo del algoritmo de Kruskal 1: Primera y segunda iteracion del algoritmo.
La tercera iteracion vuelve a seleccionar la arista de menor peso, que une los vertices
V 6 y V 3 y despues en la cuarta iteracion selecciona la arista de peso 3 que une los vertices
V 1 y V 3, pero esa arista no se puede anadir al arbol, ya que existe por lo menos un camino
que desde el vertice V 3 llegue al vertice V 1 (< V 3, V 6 >,< V 6, V 1 >), por tanto esa
arista no la podemos anadir al arbol ya que sino habrıa un ciclo en el grafo y no cumplirıa
la condicion para ser un arbol.
Por ultimo, el algoritmo vuelve a seleccionar las aristas de menor peso para formar
el arbol de recubrimiento mınimo:
Autor: Ricardo Moya Garcıa 159
A ANEXO: ALGORITMOS DE RECUBRIMIENTO MINIMO
Figura 38: Ejemplo del algoritmo de Kruskal 2: Tercera y cuarta iteracion del algoritmo.
Figura 39: Ejemplo del algoritmo de Kruskal 3: Quinta y sexta iteracion del algoritmo.
Vemos que el resultado obtenido es el mismo que se obtiene con el algoritmo de
Prim. Es posible que los resultados obtenidos con ambos algoritmos sean distintos ya
que puede darse el caso de que existan varios grafos que cumplan la condicion de ser
arboles de recubrimiento mınimo, al igual que con el algoritmo de Prim, podemos obtener
distintos arboles de recubrimiento mınimo en funcion del vertice inicial que le indiquemos
al algoritmo.
En la presente tesis se utilizara el algoritmo de Prim para crear el RS-IST, aunque
de la misma forma se podrıa aplicar el algoritmo de Kruskal.
160 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
REFERENCIAS
Referencias
[1] Absil.PA, Mahony.R, and Sepulchre.R. Optimization Algorithms on Matrix Mani-
folds. Princeton University Press, 2008.
[2] Adomavicius.G and Tuzhilin.A. Toward the next generation of recommender sys-
tems: a survey of the state-of-the-art and possible extensions. IEEE Transactions on
Knowledge and Data Engineering, 17(6):734–749, 2005.
[3] Al-Shamri.M and Bharadwaj.K. Fuzzy-genetic approach to recommender systems ba-
sed on a novel hybrid user model. Expert Systems with Applications, 35(3):1386–1399,
2008.
[4] Alonso.S, Cabrerizo.F, Chiclana.F, Herrera.F, and Herrera-Viedma.E. Group decision
making with incomplete fuzzy linguistic preference relations. International Journal
of Intelligent Systems, pages 201–222, 2009.
[5] Antonopoulus.N and Salter.J. Cinema screen recommender agent: combining colla-
borative and content-based filtering. IEEE Intelligent Systems, pages 35–41, 2006.
[6] Antunes.P, Herkovic.V, Ochoa.S, and Pino.J. Structuring dimensions for collabora-
tive systems evaluation. ACM Computing Surveys, 2012.
[7] Baltrunas.L, Makcinskas.T, and Ricci.F. Group recommendation with rank aggre-
gation and collaborative filtering. In Proceedings of the 2010 ACM conference on
Recommender Systems, pages 119–126, 2010.
[8] Barragans-Martınez.A, Costa-Montenegro.E, Burguillo.J, Rey-Lopez.M, Mikic-
Fonte.F, and Peleteiro.A. A hybrid content-based and item-based collaborative filteri-
ng approach to recommend tv programs enhanced with singular value decomposition.
Information Sciences, 180(22):4290–4311, 2010.
[9] Berkovsky.S and Freyne.J. Group-based recipe recommendations: Analysis of data
aggregation strategies. In Proceedings of the 2010 ACM conference on Recommender
Systems, pages 111–118, 2011.
Autor: Ricardo Moya Garcıa 161
REFERENCIAS
[10] Bilgic.M and Mooney.R. Explaining recommendations: satisfaction vs. promotion.
Recommender Systems Workshop (IUI Conf.), 2005.
[11] Blei.D, Ng.A, and Jordan.M. Latent dirichlet allocation. the Journal of machine
Learning research, pages 993–1022, 2003.
[12] Bobadilla.J, Hernando.A, Ortega.F, and Bernal.J. A framework for collaborative
filtering recommender systems. Expert systems with applications, pages 14609–14623,
2011.
[13] Bobadilla.J, Hernando.A, Ortega.F, and Bernal.J. Generalization of recommender
systems: Collaborative filtering extended to groups of users and restricted to groups
of items. Expert Systems with Applications, pages 172–186, 2012.
[14] Bobadilla.J, Hernando.A, Ortega.F, and Gutierrez.A. Recommender systems survey.
Knowledge-Based Systems, 2013.
[15] Bobadilla.J, Ortega.F, Hernando.A, and Bernal.J. A collaborative filtering approach
to mitigate the new user cold start problem. Knowledge-Based Systems, page 225–238,
2011.
[16] Borg.I and Groenen.P. Modern Multidimensional Scaling: theory and applications
(2nd ed.). Springer-Verlag, 2005.
[17] Breese.J, Heckerman.D, and Kadie.C. Empirical analysis of predictive algorithms for
collaborative filtering. In 14th Conference on Uncertainty in Artificial Intelligence,
pages 43–52, 1998.
[18] Burke.R. Hybrid recommender systems : Survey and experiments. User Modeling
and User-Adapted Interaction, 19(4):331–370, 2002.
[19] Cacheda.F, Carneiro.V, Fernandez.D, and Formoso.V. Comparison of collaborative
filtering algorithms: Limitations of current techniques and proposals for scalable,
high-performance recommender systems. ACM Transactions on the Web 5, 2011.
162 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
REFERENCIAS
[20] Campos.LM, Fernandez-Luna.JM, Huete.JF, and Rueda-Morales.MA. Combining
content-based and collaborative recommendations: A hybrid approach based on ba-
yesian networks. International Journal of Approximate Reasoning, 51(7):785–799,
2010.
[21] Candillier.L, Meyer.F, and Boull.M. Comparing state-of-the-art collaborative filtering
systems. LNAI,, 4571:548–562, 2007.
[22] Chih-Chao.M. Large-scale Collaborative Filtering Algorithms. Master Thesis, College
of Electrical Engineering & Computer Science National Taiwan University, Junio
2008.
[23] Christensen.I and Schiaffino.S. Entertainment recommender systems for group of
users. Expert Systems with Applications, pages 14127–14135, 2011.
[24] Dagan.T. Phylogenomic networks. Trends in Microbiology, pages 483–491, 2011.
[25] Deerwester.S, Dumais.ST, Furnas.GW, Landauer.TK, and Harshman.R. Indexing by
latent semantic analysis. Journal of the American Society for Information Science,
page 391, 1990.
[26] Funk.S. Netflix Update: Try This at Home. http://sifter.org/ simon/journa-
l/20061211.html, Diciembre 2006.
[27] Gao.L and Li.C. Hybrid personalized recommended model based on genetic algo-
rithm. 4th International Conference on Wireless Communications, Networking and
Mobile Computing, pages 1–4, 2008.
[28] Garcıa.I, Sebastia.L, and Onaindia.E. On the design of individual and group recom-
mender systems for tourism. Expert Systems with Applications, pages 7683–7692,
2011.
[29] Ge.S and Ge.X. An svd-based collaborative filtering approach to alleviate cold-
start problems. 2012 9th International Conference on Fuzzy Systems and Knowledge
Discovery, pages 1474–1477, 2012.
Autor: Ricardo Moya Garcıa 163
REFERENCIAS
[30] Golberg.K, Roeder.T, Gupta.D, and Perkins.C. Eigentaste: a constant time collabo-
rative filtering algorithm. Information Retrieval, pages 133–151, 2001.
[31] Gong.S, Ye.H, and Dai.Y. Combining singular value decomposition and item-based
recommender in collaborative filtering. 2009 Second International Workshop on
Knowledge Discovery and Data Mining, pages 769–772, 2009.
[32] Herlocker.J. An empirical analysis of design choices in neighborhood-based collabo-
rative. Information Retrieval, 5:287–310, 2002.
[33] Herlocker.J, Konstan.J, Borchers.Al, and Riedl.J. An algorithmic framework for
performing collaborative filtering. In Proceedings of the 22nd annual international
ACM SIGIR conference on Research and development in information retrieval, pages
230–237, 1999.
[34] Herlocker.J, Konstan.J, Terveen.L, and Riedl.J. Evaluating collaborative filtering
recommender systems. ACM Transactions on Information Systems, 22(1):5–53, 2004.
[35] Herman.G and Melancon.MS. Graph visualization and navigation in information
visualization. IEEE Transactions on Visualization and Computer Graphics, pages
24–43, 2000.
[36] Hernando.A, Bobadilla.J, Ortega.F, and Gutierrez.A. Trees for explaining recom-
mendations made through collaborative filtering. Information Sciences, 2012.
[37] Hernando.A, Bobadilla.J, Ortega.F, and Tejedor.J. Incorporating reliability measu-
rements into the predictions of a recommender system. Information Sciences, 2012.
[38] Hernando.A, Moya.R, Ortega.F, and Bobadilla.J. Hierarchical graph maps for vi-
sualization of collaborative recommender systems. Journal of Information Science,
2013.
[39] Hernandez.F and Gaudioso.E. Evaluation of recommender systems: a new approach.
Expert Systems with Applications, pages 790–804, 2008.
164 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
REFERENCIAS
[40] Hofmann.T. Probabilistic latent semantic indexing. International Computer Science
Institute, 1999.
[41] Hsieh.SY and Huang.ChW. An efficient strategy for generating all descendant subtree
patterns from phylogenetic trees with its implementation. Applied Mathematics and
Computation, pages 408–418, 2007.
[42] Hurley.N and Zhang.M. Novelty and diversity in top-n recommendations - analysis
and evaluation. ACM Transactions on Internet Technology, pages 1–29, 2011.
[43] Jolliffe.I. Principal Component Analysis, second edition. Springer, 2002.
[44] Kohonen.T. Self-organized formation of topologically correct feature maps. Biological
Cybernetics, page 59–69, 1982.
[45] Koren.Y, Bell.R, and Volinsky.C. Matrix factorization techniques for recommender
systems. IEEE Computer Society, 42(8):30–37, 2009.
[46] Koutrinka.G, Bercovitz.B, and Garcıa.H. Flexrecs: Expressing and combining flexible
recommendations. In Proceedings of the 35th SIGMOD international conference on
Management of data, pages 745–757, 2009.
[47] Krulwich.B. Using large-scale demographic data. American Association for Artificial
Intelligence, 18(2):37–46, 1997.
[48] Leung.C, Chan.S, and Chung.F. An empirical study of a cross-level association
rule mining approach to cold-start recommendations. Knowledge-Based Systems,
21(7):515–529, 2008.
[49] Apostol.Tom M. Calculus. Ed. Reverte, 1973.
[50] Michailidis.G. Data visualization through their graph representations. Handbook of
data visualization, pages 103–120, 2008.
[51] Moya.R. SVD aplicado a sistemas de recomendacion basados en filtrado colaborativo.
Tesis de Master, Escuela Universitaria de Informatica (UPM), Junio 2013.
Autor: Ricardo Moya Garcıa 165
REFERENCIAS
[52] Nayak.G, Weng.LT, and Xu.Y. An improvement to collaborative filtering for recom-
mender systems. IEEE International Conference on Computational Intelligence for
Modeling, Control and Automatitation, pages 792–795, 2005.
[53] Nuri.O. A Singular Value Descomposition Approach for Recommendation Systems.
A Thesis Tubmitted to the Graduate School of Natural and Applied Sciences, Julio
2010.
[54] Ortega.F. Filtrado Colaborativo Basado en Transcendencia. Tesis de Master, Facultad
de Informatica (UPM), Junio 2011.
[55] Ortega.F, Bobadilla.J, Hernando.A, and Rodriguez.F. Using hierarchical graph maps
to explain collaborative filtering recommendations. International Journal of Intelli-
gent Systems, pages 462–477, 2014.
[56] Ortega.F, Hernando.A, and Bobadilla.J. A collaborative filtering similarity measure
based on singularities. Information Processing and Management, page 204–217, 2012.
[57] Papagelis.M, Plexousakis.D, and Kutsuras.T. Alleviating the sparsity problem of
collaborative. page 224–239, 2005.
[58] Riedl.J and Karypis.G. Learning preferences of new users in recommender systems :
An information theoretic approach preferences george of new users in recommender
systems : An theoretic. SIGKDD Explorations, 10(2):90–100.
[59] Salakhutdinov.R and Mnih.A. Probabilistic matrix factorization. 2008.
[60] Salter.J and Antonopoulos.N. Recommender agent : Collaborative and content-based
filtering. IEEE Computer Society, pages 35–41, 2006.
[61] Sarwar.B, Karypis.G, Konstan.J, and Riedl.J. Analysis of recommendation algo-
rithms for e-commerce. ACM Conference on Electronic Commerce, pages 158–167,
2000.
[62] Schafer.J, Frankowski.D, Herlocker.J, and Sen.S. Collaborative filtering recommender
systems. The Adaptive Web, page 291–324, 2007.
166 Mapas graficos para la visualizacion de relaciones en sistemas de recomendacion
REFERENCIAS
[63] Scholkopf.B, Smola.A, and Muller.K. Kernel principal component analysis artificial
neural networks. Neural Computation, pages 583–588, 1997.
[64] Serradilla.F, Bernal.J, and Bobadilla.J. A new collaborative filtering metric
that improves the behavior of recommender systems. Knowledge-Based Systems,
23(6):520–528, 2010.
[65] Serradilla.F and Bobadilla.J. The incidence of sparsity on collaborative filtering
metrics. Australian Database Conference, page 9–18, 2009.
[66] Sanchez.J, Serradilla.F, Martınez.E, and Bobadilla.J. Choice of metrics used in co-
llaborative filtering and their impact on recommender systems. IEEE Internacional
Conference on Digital Ecosystems and Technologies, page 432–436, 2008.
[67] Luxburg.U V. A tutorial on spectral clustering. Statistics and Computing,
17(4):395–416, 2007.
[68] Vargas.S and Castells.P. Rank and relevance in novelty and diversity metrics for
recommender systems. Proceedings of the 2011 ACM conference on Recommender
Systems, pages 109–116, 2011.
[69] Vozalis.M and Margaritis.K. Using svd and demographic data for the enhancement
of generalized collaborative filtering. Information Sciences, 177(15):3017–3037, 2007.
Autor: Ricardo Moya Garcıa 167