Universitat Oberta de Catalunya (UOC)
Master Universitario en Ciencia de Datos (Data Science)
TRABAJO FINAL DE MASTER
Sistema de recomendacion musical para eHealth
—————————————————————————–
Autor: Adrian Quijada Gomariz
Tutor: Raul Parada Medina
Profesor: Jordi Casas Roma
—————————————————————————–
Barcelona, 24 de junio de 2020
FICHA DEL TRABAJO FINAL
Tıtulo del trabajo: Sistema de recomendacion musica para eHealth
Nombre del autor: Adrian Quijada Gomariz
Nombre del colaborador/a docente: Raul Parada Medina
Nombre del PRA: Jordi Casas Roma
Fecha de entrega (mm/aaaa): 06/2020
Titulacion o programa: Master Universitario en Ciencia de Datos (Data Science)
Area del Trabajo Final: Minerıa de datos y machine learning
Idioma del trabajo: Castellano
Palabras clave Recommender system
Content-based
Context-based
Collaborative filtering
Matrix factorization
Factorization Machines
Autoencoder
i
ii
Agradecimientos
En primer lugar, me gustarıa agradecer a mi tutor Raul Parada Medina por darme la opor-
tunidad de desarrollar este proyecto tecnico con contexto medico y por estar siempre disponible
para resolver cualquier aspecto.
Tambien me gustarıa agradecer a la UOC y a todo el equipo que hay detras, especialmente
en el Master de Ciencia de Datos, por el magnifico trabajo que desarrollan y por las facilidades
ofrecidas en este complicado inicio de 2020.
Por ultimo, agradecer a mi familia por el apoyo incondicional y, en particular, a mi pareja
por favorecer el debate tecnico constructivo que tanto me ha ayudado para generar nuevas ideas
y enfoques.
¡Muchas gracias a todos!
iii
iv
Abstract
Listening to music, singing, or playing an instrument has shown positive effects on various
neurological diseases. Parkinsons [1] is a mobile application born as an initiative of OPE-
NeHealth between the Universitat Oberta de Catalunya, Santa Creu i Sant Pau Hospital and
GMV that intends to improve the quality of people’s life with Parkinson’s disease through per-
sonalized music, video, and audio exercises. Recommendation Systems are information filtering
systems, originally intended to provide suggestions of interest to a particular user.
The goal of this work is to develop a recommendation system that helps to model the rela-
tionship between the multimedia objects considered in the Parkinsons application (specifically
music) and the users, in order to improve in the different aspects of the disease. To achieve
this, the following actions are carried out:
We analyze different state of the art approaches (content-based, collaborative-filtering
and hybrids).
We investigate the contribution of contextual information when making recommendations.
Recommendation algorithms are implemented, based on the previous analysis, with the
most advanced techniques using neural networks: Autoencoder, Matrix Factorization and
Factorization Machines.
Finally, we carry out experiments to establish the best architecture and we do a comparative
study between all the solutions. We found the Factorization Machine technique (based on
collaborative-filtering) to provide optimal results using contextual information.
As future lines, we propose the implementation of graph-based Factorization Machine solu-
tions.
v
vi
Resumen
Se ha observado en estudios medicos que escuchar musica, cantar o tocar un instrumento
trae un efecto de rehabilitacion positivo en varias enfermedades neurologicas. Parkinsons [1] es
una aplicacion movil nacida como una iniciativa de OPENeHealth entre la Universitat Oberta
de Catalunya, el Hospital de la Santa Creu i Sant Pau y GMV que tiene la intencion de
mejorar la calidad de vida de personas con la enfermedad de Parkinson mediante ejercicios
personalizados de musica, vıdeo y audio. Los Sistemas de Recomendacion son sistemas de
filtrado de informacion, originalmente destinados a proporcionar sugerencias de interes a un
usuario particular.
El objetivo de este trabajo es desarrollar un sistema de recomendacion que ayude a modelar
la relacion entre los objetos multimedia considerados en la aplicacion Parkinsons (en concreto,
musica) y los usuarios para mejorar en los diferentes aspectos de la enfermedad. Para conseguir
alcanzarlo, se realizan las siguientes acciones:
Se analizan las distintas enfoques existentes en el estado del arte (content-based, collaborative-
filtering e hıbridas).
Se investiga sobre la contribucion de la informacion contextual a la hora de realizar
recomendaciones.
Se implementan algoritmos de recomendacion, en funcion del analisis anterior, con las
tecnicas mas punteras mediante redes neuronales: Autoencoder, Matrix Factorization y
Factorization Machines.
Finalmente, se realizan experimentos para determinar la mejor arquitectura para determinar
la mejor arquitectura y un estudio comparativo entre todas las soluciones. Se determina que la
tecnica Factorization Machine (basada en collaborative-filtering) proporciona unos resultados
optimos utilizando la informacion contextual.
Como lineas de trabajo futuras, proponemos la implementacion de soluciones Factorization
Machine basadas en grafos.
vii
viii
Indice general
Abstract V
Resumen VII
Indice IX
Listado de Figuras XI
Listado de Tablas 1
1. Introduccion 3
1.1. Motivacion personal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Definicion de los objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3. Metodologıa empleada en el desarrollo del proyecto . . . . . . . . . . . . . . . . 4
1.4. Planificacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Estado del arte 7
3. Aspectos de diseno y desarrollo 11
3.1. Definicion del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2. Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.1. Million Song Dataset (MSD) . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3. Preprocesado de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3.1. Datos de canciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.3.2. Datos de usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4. Aproximacion content-based . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5. Aproximacion collaborative-filtering . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.5.1. Extension Matrix Factorization . . . . . . . . . . . . . . . . . . . . . . . 20
3.5.2. Extension Factorization Machine . . . . . . . . . . . . . . . . . . . . . . 20
3.5.3. Construccion de los embeddings . . . . . . . . . . . . . . . . . . . . . . . 21
ix
x INDICE GENERAL
3.6. Aproximacion hıbrida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.7. Entrenamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.8. Evaluacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4. Experimentos y resultados 25
4.1. Autoencoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2. Deep Matrix Factorization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3. Deep Factorization Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.4. Deep Matrix Factorization Hybrid . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.5. Comparativa entre tecnicas collaborative filtering . . . . . . . . . . . . . . . . . 31
4.6. Estudio sobre las recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5. Conclusiones y lıneas de trabajo futuras 37
Bibliografıa 38
Listado de Figuras
1.1. Diagrama de Gantt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1. Diagrama de barras por genero . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2. Histograma campo like . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.3. Arquitectura del autoencoder. By Michela Massi - Own work, CC BY-SA 4.0,
https://commons.wikimedia.org/w/index.php?curid=80177333 . . . . . . . . . . 19
3.4. Ejemplo de visualizacion de un embedding reducido a dos dimensiones mediante
tSNE. Los colores indican el rango de tempo al que pertenece cada cancion. . . . 21
4.1. Arquitectura DMF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2. Arquitectura DeepFM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.3. Arquitectura DMFHybrid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.4. Diagrama de barras por estado de animo para el experimento 4.6 . . . . . . . . 34
xi
xii LISTADO DE FIGURAS
Listado de Tablas
3.1. Listado de caracterısticas inicial de dfmusic . . . . . . . . . . . . . . . . . . . . . 12
3.2. Vinculacion entre estado de animo y tempo de la cancion . . . . . . . . . . . . . 13
3.3. Porcentaje de casos por estado de animo y rango de tempo . . . . . . . . . . . . 14
3.4. Listado de caracterısticas final de dfmusic . . . . . . . . . . . . . . . . . . . . . . 14
3.5. Agrupacion de generos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.6. Distribucion inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.7. Distribucion final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1. Rendimiento de las diferentes arquitecturas del autoencoder . . . . . . . . . . . . 26
4.2. Rendimiento de las diferentes arquitecturas del modelo deep matrix factorization 26
4.3. Rendimiento de las diferentes arquitecturas del modelo deep factorization machine 27
4.4. Rendimiento de las diferentes arquitecturas del modelo deep matrix factorization
hybrid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.5. Comparacion entre los distintos modelos desarrollados basados en la aproxima-
cion collaborative filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.6. Comparacion de P10 entre los distintos modelos generados por genero . . . . . . 33
4.7. Comparacion de P10 entre los distintos modelos generados por estado de animo . 34
2 LISTADO DE TABLAS
Capıtulo 1
Introduccion
1.1. Motivacion personal
El entorno en el que se desarrolla este proyecto, dentro de la aplicacion Parkinsons creada a
partir de la iniciativa OPENeHealth, pone en valor la importancia de como la ciencia de datos
puede ayudar a mejorar significativamente la vida de ciertas personas.
Como ya es conocido, los sistemas de recomendacion son ampliamente utilizados por apli-
caciones como Amazon, Youtube o Netflix; generando a sus usuarios un valor anadido al pro-
porcionar dinamismo y cierto grado de engagment con la aplicacion.
La motivacion de este trabajo se fundamenta precisamente en la union de las dos ideas
plasmadas anteriormente: utilizar la ciencia de datos para ayudar a mejorar la calidad de
vida de los usuarios de aplicacion mientras que se les proporciona una experiencia unica con
recomendaciones adaptadas a sus gustos y preferencias.
Por lo que el trabajo radica en la implementacion de un sistema de recomendacion optimo
para la aplicacion en cuestion. En este sentido, se propone caracterizarlo en tres lıneas:
Investigacion sobre los distintos enfoques de sistemas de recomendacion.
Desarrollo de un sistema de recomendacion para cada uno de ellos que pueda contribuir
positivamente.
Comparativa entre los distintos sistemas de recomendacion desarrollados y conclusiones.
Finalmente, sera interesante determinar si para el tipo de usuarios de la aplicacion prima
mas la experiencia previa, las caracterısticas intrınsecas de la cancion o la propia informacion
contextual en el momento de atender una recomendacion.
3
4 Introduccion
1.2. Definicion de los objetivos
Como objetivo principal del TFM se plantea la implementacion de un sistema de recomen-
dacion musical optimo dentro del entorno eHealth proporcionado por la aplicacion Parkinsons.
Secundariamente, se determinan los siguientes objetivos:
Desarrollo de un sistema de recomendacion basado en content-filter (baseline).
Analisis de estado del arte sobre sistemas de recomendacion.
Desarrollo de un sistema de recomendacion basado en la conclusion del analisis anterior.
Comparacion entre baseline y sistema de recomendacion basado en el estado del arte.
1.3. Metodologıa empleada en el desarrollo del proyecto
Al tratarse de un proyecto enfocado en la aplicacion Parkinsons, se precisa la recoleccion de
los datos disponibles para el desarrollo del proyecto. A partir del total de la muestra se definira
un conjunto de entrenamiento y otro de prueba o control. Finalmente, para evaluar la bondad
de los modelos creados sobre los datos se aplicaran metodos estadısticos y cuantitativos.
La tipologıa del proyecto permite beneficiarse de la metodologıa CRISP-DM (Cross-industry
standard process for data mining), un estandar abierto para proyectos analıticos que consiste
en seis puntos [2] diferenciados:
Entender el negocio/aplicacion.
Entender los datos.
Preparar los datos.
Modelado.
Evaluacion.
Despliegue.
1.4. Planificacion
En el proyecto se ha seguido el siguiente plan de trabajo:
1.4. Planificacion 5
Figura 1.1: Diagrama de Gantt
6 Introduccion
Capıtulo 2
Estado del arte
Los sistemas de recomendacion se han convertido en una importante area de investigacion en
las ultimas decadas, llevando a cabo tanto en la industria como de forma academica distintas
aproximaciones. Recientemente, este interes se ha visto incrementado debido a la cantidad
de aplicaciones que utilizan sistemas de recomendacion, como, por ejemplo, de productos en
Amazon, de pelıculas en Netflix y de musica en Spotify.
De forma general, podemos clasificarlos en tres tipos:
Content-based : Estos sistemas utilizan la informacion de cada usuario o producto para
caracterizar su naturaleza. Tıpicamente se utilizan medidas de similitud entre el conteni-
do para realizar una recomendacion. En el campo musical [3], se ha demostrado que un
audio con una fuerte similitud con otro no se traduce necesariamente en una mayor satis-
faccion del usuario. Lo que se conoce como gap semantico, producido entre la informacion
obtenida y la percepcion del usuario.
Collaborative-filtering : En este caso se analizan las relaciones entre usuarios y sus in-
terdependencias con los productos con el objetivo de detectar nuevas asociaciones usuario-
producto [4]. De forma general, podemos encontrar dos tipos de metodos, los basados en
vecinos y los basados en modelos. Los metodos basados en vecinos recaen en maximizar la
similitud con el vecino mas cercano, son faciles de implementar, pero ofrecen un discreto
rendimiento cuando tratamos datos esparcidos y no existen unas relaciones evidentes. En
cuanto a los metodos basados en modelos encontramos tecnicas Machine Learning para
caracterizar la interaccion usuario-producto. En este sentido, se han utilizado tecnicas
como clustering, regresion, redes bayesianas [5], matrix factorization y deep learning. To-
dos ellos mejoran respecto al tratamiento de datos esparcidos, pero siguen presentado
el problema cold-start, donde obtener una buena recomendacion sin disponer de datos
historicos del usuario se convierte en un problema.
7
8 Estado del arte
Los metodos basados en redes neuronales consiguen modelizar las complejas relaciones
no lineales entre usuarios y productos. Ademas, consiguen proporcionar soluciones muy
precisas tal y como se demuestra en los siguientes trabajos:
• En [6], los autores demuestran que anadir la informacion contextual mejora las pre-
dicciones usando la tecnica matrix factorization.
• En [7], Rendle introduce las factorization machines, que acaban situandose como
la tecnica mas puntera. Numerosos trabajos se han desarrollado a posterior, como
[8] donde se presenta una implementacion de la tecnica usando redes neuronales.
Paralelamente se publican los trabajos [9] y [10] en los que se presentan modelos
consolidados, como el Wide & Deep de Google, de sistemas de recomendacion usando
factorization machines mediante implementaciones complejas de redes neuronales.
• En [11] se comenzaron a introducir el uso de las redes neuronales convolucionales de
grafos, tecnica con gran proyeccion en el campo de la investigacion actual [12] [13],
por lo que se situa en la vanguardia del estado del arte.
Algoritmos hıbridos: estos metodos tratan de combinar cualquiera de las tecnicas pre-
sentadas en los dos espacios anteriores con el objetivo de aprovechar lo mejor de ambos.
Resultan mas complicados de implementar, pero, a la vez, desempenan un mejor ren-
dimiento. Tambien se han publicado mejoras [14] en algoritmos basados en contenido y
comportamiento mediante el uso de redes neuronales. En concreto, podemos mencionar
el caso de Google [15], que en 2016 publico un sistema de recomendacion basado en una
aproximacion hıbrida para Youtube.
En el dominio de los recomendadores musicales encontramos que los sistemas hıbridos son
ampliamente utilizados [3]. Ademas, surge la necesidad de incluir otro tipo de informacion
relacionada con el estado emocional [16] con el fin de personalizar y precisar la recomendacion
proporcionada por el sistema.
Y, en este sentido, nacen los sistemas de recomendacion context-based [17] que pretenden
anadir una dimension adicional al modelo de datos usuario-producto y de esta forma enriquecer
las posibles relaciones que se puedan dar para ası obtener una respuesta mas precisa. Encon-
tramos soluciones que utilizan el dispositivo movil para captar senales de contexto y aplicarlas
a las necesidades musicales del usuario [18]; reproductores musicales basados en el estado de
animo del artista (de forma contextual) [19]; o sistemas de recomendacion musical que tienen
en cuenta la informacion del usuario cuando se encuentra viajando en coche, como condicio-
nes del trafico, estado de animo, etc., para ofrecerle la mejor respuesta posible en base a sus
preferencias y situacion [20].
9
En cambio, en el amplio espectro de lo que podrıamos entender como sistemas de reco-
mendacion en salud o escenarios medicos, encontramos [21] que estos no han sido utilizados
extensamente ya que la amplitud y complejidad del problema aumenta exponencialmente. Por
lo que, la contribucion de este trabajo radica en la generacion de un sistema de recomendacion
con un trasfondo medico utilizando los conceptos de los recomendadores musicales, en especial,
la aplicacion del contexto para mejorar las recomendaciones.
10 Estado del arte
Capıtulo 3
Aspectos de diseno y desarrollo
3.1. Definicion del problema
Recordemos que el objetivo principal de este trabajo consiste en la implementacion de un
sistema de recomendacion musical para la aplicacion ParkinSons, en el ambito eHealth. En
general, dado el conjunto 〈usuario, estado de animo, gusto musical〉 tenemos que generar una
lista ordenada de maximo diez canciones que agraden al usuario en cuestion. A continuacion,
se van a analizar distintas aproximaciones y se compararan para determinar cual es la optima
a implementar. En funcion de la aproximacion el problema a solucionar sera relativamente
distinto:
Aproximacion content-based filtering: A partir de los metadatos de las canciones
(duracion, estilo, tempo, etc) generamos un sistema de recomendacion que se basa en
la similitud entre ellas. Trataremos el problema como un problema de reduccion de la
dimensionalidad con el objetivo de detectar patrones parecidos y realizar recomendaciones
en base a este conocimiento.
Aproximacion collaborative filtering: En este caso utilizamos la experiencia previa
del usuario (canciones que ha escuchado, gustos, etc) para generar el sistema de reco-
mendacion y descubrir que elementos seran de su interes. Trataremos el problema como
un problema de clasificacion binaria donde se aprendera si a un usuario le gusta una
determinada cancion.
Aproximacion hıbrida: Combinamos los tipos de informacion de las dos aproximaciones
anteriores para obtener un sistema de recomendacion con una mejor respuesta. En este
caso tambien trataremos el problema como un problema de clasificacion binaria con el
objetivo de aprender si a un usuario le gusta una determinada cancion.
11
12 Aspectos de diseno y desarrollo
analysis sample rate audio md5 danceabilityduration end of fade in energyidx bars confidence idx bars start idx beats confidenceidx beats start idx sections confidence idx sections startidx segments confidence idx segments loudness max idx segments loudness max timeidx segments loudness start idx segments pitches idx segments startidx segments timbre idx tatums confidence idx tatums startkey key confidence loudnessmode mode confidence start of fade outtempo time signature time signature confidencetrack id analyzer version artist 7digitalidartist familiarity artist hotttnesss artist idartist latitude artist location artist longitudeartist mbid artist name artist playmeididx artist terms idx similar artists releaserelease 7digitalid song hotttnesss song idtitle track 7digitalid idx artist mbtagsyear genre
Tabla 3.1: Listado de caracterısticas inicial de dfmusic
3.2. Datos
Para un resultado optimo y adaptado a la aplicacion Parkinsons, lo ideal hubiera sido
disponer de una base de datos que modelase el comportamiento explicito de los usuarios de la
aplicacion, es decir, que canciones han escuchado, en que estado de animo y cual ha sido el
feedback. Esto no ha sido posible ya que la aplicacion se encuentra en un estado embrionario y
no dispone aun de usuarios productivos.
Por lo que, para satisfacer los requerimientos impuestos necesitabamos encontrar:
1. Un conjunto de canciones con un amplio numero de metadatos o caracterısticas. Ademas,
de forma indispensable, necesitabamos disponer del tempo y del genero de las canciones.
2. Un conjunto de datos comportamentales que refleje la interaccion de un cierto numero de
usuarios con las canciones y que contenga informacion explicita en forma de feedback.
Finalmente, encontramos un dataset que satisface, en gran medida, nuestros requerimientos:
el Million Song Dataset [22]. Dentro del contexto de este gran conjunto de datos hacemos
uso de los datos de las canciones que proporciona el propio Million Song Dataset, los datos de
usuario que proporciona Echo Nest Taste Profile y los datos referentes al genero de las canciones
que proporciona Tagtraum [23].
3.3. Preprocesado de datos 13
3.2.1. Million Song Dataset (MSD)
El MSD contiene:
Respecto a los datos de canciones: 1.000.000 de registros con 53 caracterısticas, ver 3.1.
Respecto a los datos de usuarios: 48.373.586 de interacciones usuario-cancion, compuesta
de 1.019.318 usuarios unicos y 384.546 canciones unicas.
Respecto a los datos de generos: obtenemos un total 676.342 canciones con una serie de
generos y su peso. En este caso solo utilizamos el genero que tiene mas peso para nuestro
proposito.
3.3. Preprocesado de datos
Para poder obtener un sistema de recomendacion con buenos resultados, es indispensable
realizar un buen preprocesado de datos, ademas, la gran cantidad de datos se convierte en un
motivo anadido. Destacar que el MSD cumple con todos los requerimientos impuestos salvo
que no disponemos del estado de animo del usuario en el momento que escucha la cancion y
no disponemos de un feedback explıcito cada interaccion. Para llevar a cabo el preprocesado,
tratamos por separado los datos de las canciones (dfmusic) y los datos de los usuarios (dfuser).
3.3.1. Datos de canciones
Para (dfmusic), en primer lugar cruzamos el MSD con los datos de Tagtraum para anadir el
genero a cada una de las canciones de las que disponemos. Con el objetivo de cumplir el reque-
rimiento de disponer del estado de animo, generamos esta informacion en funcion del tempo
de la cancion, ya que este es el principal elemento influyente en el estado de animo [24]. En la
tabla 3.2 se muestra como se vinculan dichas caracterısticas. De esta forma, creamos la funcion
Mood TempoSad (0, 60]Quiet (60, 90]Happy (90, 110]Cheerful (110, 130]Energetic (130, 160]Angry (160, 200]Nervous (200, 1000]
Tabla 3.2: Vinculacion entre estado de animo y tempo de la cancion
14 Aspectos de diseno y desarrollo
(guessMood) que asigna el estado de animo correspondiente a un rango de tempo con una pro-
babilidad aproximada del 80 %, el/los estado(s) de animo consiguientes con una aproximacion
entre el 5 % y el 10 % de probabilidad y el resto de estados de animo la probabilidad restante,
tal y como se puede observar en la tabla 3.3.
Angry Cheerful Energetic Happy Nervous Quiet Sad(0, 60] 1.99 % 2.02 % 2.32 % 2.06 % 2.06 % 10.06 % 79.48 %(60, 90] 2.54 % 2.51 % 2.36 % 4.98 % 2.50 % 80.08 % 5 %(90, 110] 2.53 % 5.01 % 2.54 % 79.94 % 2.5 % 4.96 % 2.52 %(110, 130] 2.51 % 79.94 % 5.05 % 5.02 % 2.52 % 2.51 % 2.44 %(130, 160] 4.92 % 4.94 % 80.06 % 2.55 % 2.47 % 2.54 % 2.50 %(160, 200] 80.11 % 2.46 % 4.96 % 2.49 % 5.03 % 2.47 % 2.47 %(200, 1000] 9.76 % 1.96 % 2.07 % 1.87 % 80.34 % 1.93 % 2.06 %
Tabla 3.3: Porcentaje de casos por estado de animo y rango de tempo
Respecto a las caracterısticas de dfmusic, eliminamos todas aquellas que no aportan suficiente
informacion ya sea por no estar informadas o por no tener una suficiente entropıa. Finalmente,
seleccionamos un total de 19 campos que se muestran en el listado 3.4, los cuales seran analizados
a continuacion.
durationend of fade inkeykey confidenceloudnessmodemode confidencestart of fade outtempotime signaturetime signature confidenceartist familiarityartist hotttnesssartist namesong hotttnessssong idyeargenremood
Tabla 3.4: Listado de caracterısticas final de dfmusic
Comenzamos por la que serıa la caracterıstica mas importante debido a que es un requeri-
miento de entrada de la aplicacion: el genero. Por un lado, encontramos que 362.392 canciones,
3.3. Preprocesado de datos 15
aproximadamente un 36 % del total, no disponen de genero asignado; procedemos a eliminarlas
de dfmusic. Por otro lado, encontramos 5.701 generos distintos, muchos de ellos con un ındice
de representacion insuficiente. Ademas, el diseno de la aplicacion, basado en el estudio [24],
solo contempla el uso de nueve generos: Clasica, Relax, Jazz/blues, Pop, Ritmos lati-
nos, Dance, Rock, Hip-Hop y Celtic. Por lo que reducimos el numero total de generos
a nueve. Para no perder mucha informacion imputamos generos similares en una de las cate-
gorıas contempladas, tal y como muestra la tabla 3.5. El resultado lo podemos observar en la
imagen 3.1, los generos no se encuentran uniformemente distribuidos, de hecho, para el genero
Celtic unicamente encontramos 170 canciones.
Agrupacion CategorıasMusica clasica ClassicalRelax Ambient, New Age, Chill Out, Easy ListeningJazz/blues Jazz, Zydeco, LoungePop/Folk Pop, Folk, Neo Folk, MiscellaneousRitmos latinos Latin, Samba, Reggaeton, Bachata, TangoDance Electronica/Dance, Dance, Techno, Electronic, House, Dubstep, TranceRock Rock, HardcoreHip-hop Hip-Hop, Lo-Fi, Freestyle, R&BCeltic Country, Trova
Tabla 3.5: Agrupacion de generos
Seguimos por la caracterıstica artist name. Encontramos aproximadamente 400.000 artistas
distintos, el 25 % de ellos solo aparecen una vez en el conjunto de datos. Es evidente que se trata
de una variable muy dispersa que habrıa que eliminar pero consideramos que puede aportar
conocimiento al modelo. Por ello, generamos una nueva caracterıstica en base al numero de
ocurrencias de cada artista y la segmentamos en 100 valores (en el rango 0-99). Ası conseguimos
generar un ındice de popularidad del artista en funcion del numero de ocasiones que aparece
en los datos.
En tercer lugar tratamos las caracterısticas song hotttnesss, artist hotttnesss y artist familiarity.
Todas estas variables son numericas y contienen un porcentaje de missings inferior al 1 %, por
lo que se decide imputarlos a 0.
El resto de caracterısticas no necesitan ser tratadas ya que se encuentran correctamente
informadas. Por lo que, finalmente, disponemos de un conjunto de datos de 493.828 canciones
con 19 caracterısticas, que utilizaremos para calcular la similitud entre todas las canciones y
en base a ello realizar recomendaciones. Dado que las caracterısticas genre y year son categori-
cas, se proceden a codificar mediante la tecnica one-hot encoding. De esta forma conseguiremos
obtener un conjunto de datos donde todas las variables sean numericas y podamos procesar ade-
cuadamente. Destacar que la caracterıstica relativa al estado de animo no se codifica mediante
16 Aspectos de diseno y desarrollo
Figura 3.1: Diagrama de barras por genero
one-hot ya que no la utilizaremos para calcular la similitud entre canciones sino para hacer re-
comendaciones. El ultimo paso del preprocesado para estos datos consiste en una normalizacion
escalar por columnas, tal que X ′ =X −Xmin
Xmax −Xmin
. Finalmente, dividimos la totalidad de datos
en los conjuntos de entrenamiento (train), asignando aleatoriamente un 70 % de registros, y
evaluacion (test) con el resto de registros.
3.3.2. Datos de usuarios
Para dfuser encontramos un volumen de datos que resulta muy tedioso tratar, ademas de
innecesario para el proposito de la aplicacion. Inicialmente, filtramos los datos por las canciones
contenidas en dfmusic, ya que disponer de canciones tratadas es totalmente necesario. Obtene-
mos un conjunto de datos con 34.243.057 interacciones usuario-cancion, donde disponemos de
1.017.464 de usuarios unicos y 239.410 canciones unicas. El conjunto de datos sigue presentando
un volumen tedioso de tratar y que ocasiona problemas de memoria a la hora de procesarlo. Pa-
ra obtener un subconjunto representativo y con sentido para la aplicacion se realiza un pequeno
analisis sobre la distribucion de usuarios y canciones.
Observamos que la distribucion de usuarios esta muy sesgada, donde predominan los usua-
rios con poco comportamiento y muy dispersos en cuanto a reproducciones. En cuanto a la
distribucion de canciones ocurre lo mismo, encontramos un sesgo importante: la mitad de las
3.3. Preprocesado de datos 17
Indice count x σ min 25 % 50 % 75 % maxUsuarios 1.017.464 33,65 42,94 1 11 19 39 3.176Canciones 239.410 143,03 864,88 1 5 15 60 110.479
Tabla 3.6: Distribucion inicial
canciones han sido escuchadas, como maximo, por 15 usuarios distintos. Observar la tabla 3.6.
Para intentar garantizar el mejor resultado posible por el recomendador intentamos ir a
maximos en este sentido y establecemos los criterios de seleccion bajo dos premisas:
1. El conjunto de datos ha de ser factible de procesar.
2. El conjunto de datos ha de contener las canciones y los usuarios mas representativos.
Por lo que se decide filtrar por las canciones que poseen un ındice de ocurrencia superior a
300 y por los usuarios que poseen un ındice de ocurrencia entre 50 y 3.000. De esta forma,
dfuser quedarıa con 11.836.098 de interacciones usuario-cancion, 129.507 usuarios unicos con
una distribucion menos sesgada y 20.815 canciones unicas. Observar la distribucion mostrada
en 3.7.
Indice count x σ min 25 % 50 % 75 % maxUsuarios 129.507 91,39 50,56 51 60 75 103 942Canciones 20.815 568,63 987,82 29 193 299 555 25.172
Tabla 3.7: Distribucion final
Destacar el requerimiento inicial de contener informacion explicita en forma de feedback.
Este conjunto de datos presenta el campo count que indica el numero de veces que un usuario
escucha una cancion en concreto. Para facilitar la resolucion del problema por parte del modelo
a crear, se lleva a cabo la siguiente hipotesis: si un usuario escucha una cancion mas de una vez,
consideramos que le gusta; en caso contrario, no le gusta. De esta forma creamos la caracterıstica
like, observar su distribucion en la figura 3.2 donde un 60 % de las interacciones no gustan al
usuario y el 40 % restante sı, que el modelo tratara de aprender para realizar recomendaciones
con exito.
Otra de las entradas importantes al recomendador es el perfil del usuario o gustos musicales
establecidos. En este caso, al no disponer de tal informacion simularemos todas las posibles
combinaciones tal y como se explica en la seccion 4. Los gustos musicales del usuario son una
restriccion a la hora de realizar una recomendacion ya que solo se recomendaran canciones que
cumplan el requisito.
Por ultimo, a partir de dfuser generemos una version lite que usaremos para realizar las
pruebas que explicaremos en las siguientes secciones. Para ello seleccionamos los registros co-
rrespondientes a 1.800 canciones aleatorias y el conjunto de datos resultante lo filtramos por
18 Aspectos de diseno y desarrollo
Figura 3.2: Histograma campo like
los criterios especificados anteriormente (canciones que poseen un ındice de ocurrencia superior
a 300 y usuarios que poseen un ındice de ocurrencia entre 50 y 3.000). Finalmente obtenemos
df liteuser, que contiene 804.031 interacciones usuario-cancion, 10.195 usuarios unicos y 711
canciones unicas. La estrategia para la division de los datos es la misma que en el apartado
anterior, se crean los conjuntos de entrenamiento (train), asignando aleatoriamente un 70 % de
registros, y evaluacion (test) con el resto de registros.
3.4. Aproximacion content-based
En esta seccion definiremos las caracterısticas particulares del modelo que se va a construir:
un autoencoder.
Esta tecnica permite aprender la representacion de los datos de entrada, reduciendo su di-
mensionalidad y tratando de reconstruirlos. La capa mas profunda de la arquitectura contendra
las representaciones codificadas. Como podemos observar en la imagen 3.3, este modelo esta
formado de dos partes: el encoder mapea la entrada (x) en el espacio h a partir de una matriz
de pesos (W ), un bias (b) y la funcion de activacion correspondiente (σ): h = σ(Wx + b). El
decoder reconstruye la entrada desde el espacio h: x′ = σ′(W ′h + b′). De esta forma, la entra-
3.5. Aproximacion collaborative-filtering 19
Figura 3.3: Arquitectura del autoencoder. By Michela Massi - Own work, CC BY-SA 4.0,https://commons.wikimedia.org/w/index.php?curid=80177333
da y la salida nunca seran totalmente iguales, pero el modelo habra aprendido cuales son las
caracterısticas latentes que mejor representan a la entrada.
La idea de usar esta tecnica para una aproximacion content-based radica precisamente en
aprender las caracterısticas latentes (a los cuales tambien podemos llamar embeddings) de cada
una de las canciones. Por ultimo, se usara la similitud entre la susodicha y el resto de canciones
para realizar recomendaciones.
3.5. Aproximacion collaborative-filtering
En esta seccion definiremos las caracterısticas particulares de los modelos (clasificadores)
que se van a construir en funcion de la tecnica usada. Todas ellas basadas en la aproximacion
collaborative-filtering (ver capıtulo 2 para una mayor explicacion). Cabe destacar que se han
seleccionado las siguientes tecnicas por estar ampliamente extendidas en la comunidad y haber
sido aceptadas por ofrecer buenos resultados [4] [6] [7]. Tambien se explicara la construccion de
los embeddings como metodologıa de codificacion de las entidades de entrada, ya que se trata
de un paso compartido por las distintas extensiones.
20 Aspectos de diseno y desarrollo
3.5.1. Extension Matrix Factorization
Esta tecnica [25] funciona descomponiendo las interacciones usuario-cancion en dos matri-
ces de menor dimensionalidad cuyo producto resulta ser la matriz de interacciones inicial. El
feedback proporcionado por los usuarios en cada interaccion puede ser representado tambien
en forma de matriz a la que llamamos matriz de adyacencia. En un escenario real, esta matriz
estara muy esparcida ya que todos los usuarios no habran escuchado todas las canciones y las
canciones no gustaran a todos los usuarios que las escuchen. La idea es que existen caracterısti-
cas directamente no observables que determinan como un usuario indica que le gusta o no le
gusta una cancion. Asumimos que el numero de caracterısticas sera menor que el numero de
usuarios y el numero de canciones, lo que significa que los usuarios estaran interesados en las
canciones puntuadas por otros usuarios.
Por lo tanto, definimos un conjunto de usuarios U , un conjunto de canciones S y la conocida
matriz de adyacencia A, del tamano |U | × |S|, que contiene todas las puntuaciones que los
usuarios dan a las canciones. Tambien definimos K como la cantidad de caracterısticas latentes
a descubrir. Entonces, la tarea radica en encontrar las matrices P (|U | × |K|) y Q (|S| × |K|)tal que su producto se aproxime a A ≈ P×QT = A.
En este sentido, cada fila de P representarıa las caracterısticas de cada usuario y cada fila
de Q representarıa las caracterısticas de cada cancion. La forma mas sencilla de obtener una
prediccion para una cancion j por un usuario i serıa el producto entre los dos correspondientes
vectores de caracterısticas: rij = pTi qj =∑k
k=1 pikqjk.
3.5.2. Extension Factorization Machine
Esta tecnica [7], se presenta como una evolucion de matrix factorization que permite aplicar
la factorizacion a multiples caracterısticas (como podrıa ser el contexto). Con esta tecnica somos
capaces de estimar las interacciones incluso en problemas con alta dispersion.
La ecuacion que representa a las Factorization Machine es la siguiente:
y(x) = w0 +n∑i=i
wixi +n∑i=1
n∑j=i+1
xixj〈vi, vj〉 (3.1)
donde w0 es el bias global, wi representa el peso de cada i caracterıstica y 〈vi, vj〉 es el
producto de dos vectores de tamano k que representa la interaccion entre cada caracterıstica
i j. Destacar que si en la ecuacion presentada solo existieran dos caracterısticas (por ejemplo,
usuarios y canciones) serıa equivalente al modelo matrix factorization. En el capıtulo 4 se
presentara como a partir de esta tecnica podemos captar las senales de alto orden y mejorar la
precision de las recomendaciones.
3.5. Aproximacion collaborative-filtering 21
3.5.3. Construccion de los embeddings
Para nuestro problema, la aplicacion es directa mediante una clasica capa de embedding.
Aunque, bien es cierto, que debemos re-indexar todos los nodos de las entidades involucradas
con el objetivo de proporcionarle un identificador unico, desde 0 hasta el numero maximo de
nodos por cada una de las entidades: Nu para los usuarios, Ns para las canciones y NCi para
cada uno de los contextos.
Un embedding es una representacion de una entidad con k factores latentes. Computacional-
mente, es mas eficiente que otro tipo de codificaciones como podrıa ser one-hot cuando se usa
sobre conjuntos de datos muy grandes. Los embeddings se van actualizando durante el entrena-
miento de la red neuronal y se exploran relaciones similares en un espacio multi-dimensional.
Estas pueden ser visualizadas usando tecnicas de reduccion de la dimensionalidad [26].
Figura 3.4: Ejemplo de visualizacion de un embedding reducido a dos dimensiones mediantetSNE. Los colores indican el rango de tempo al que pertenece cada cancion.
22 Aspectos de diseno y desarrollo
3.6. Aproximacion hıbrida
Las caracterısticas particulares del modelo a construir han sido definidas en las dos secciones
anteriores. La aproximacion hıbrida consiste en un diseno basado en la union de las mismas.
Por lo que en este contexto encontramos un amplio numero de soluciones.
En nuestro caso en concreto, el modelo consistira en una implementacion de la tecnica matrix
factorization donde, ademas de las interacciones entre el usuario y las canciones, se tendran en
cuenta los metadatos de las canciones generados en la aproximacion content-based, es decir, los
embeddings aprendidos por el modelo autoencoder.
3.7. Entrenamiento
Entrenamos todos los modelos presentados usando la Binary Cross Entropy, una funcion
de perdida usada para las tareas de clasificacion binaria. Destacar que en la ultima capa de las
redes neuronales usamos una funcion de activacion de tipo sigmoide para facilitar al algoritmo
su funcion y obtener una salida del tipo escalar. De esta forma, la funcion de perdida serıa:
L =N∑i=1
yi log(σ(pi)) + (1− yi) log(1− σ(pi)) (3.2)
donde yi es la etiqueta o valor que se quiere predecir, pi es la probabilidad obtenida para
cada muestra y N el numero de muestras total.
Ademas, todos los modelos se entrenan usando Stochastic Gradient Descent con el optimi-
zador de Adam [27] y un parametro de aprendizaje igual a 0,0001 durante 20 epocas. En el
caso del autoencoder, entrenamos durante 50 epocas y un parametro de aprendizaje igual a 0,01
porque demora mas en converger.
Una epoca concluye cuando el conjunto de datos de entrenamiento ha pasado hacia adelante
y hacia atras por la red neuronal. Para encontrar los pesos optimos para cada problema, nos
quedamos con el modelo que se produce en la epoca donde la perdida de validacion es mınima
(ya que la perdida en entrenamiento decrece en cada epoca). De esta forma prevenimos utilizar
un modelo demasiado entrenado.
Para evitar un sobre-entrenamiento tambien establecemos un batch size de 128 muestras,
es decir, durante cada epoca el algoritmo troceara los datos de entrada y los procesara en
agrupaciones de 128 muestras en lugar de muestra a muestra. Con esto tambien conseguimos
acelerar el proceso de entrenamiento.
Por ultimo, en funcion de la arquitectura utilizada (ver capıtulo 4 para mas detalles) se
anaden capas de regularizacion Dropout que tambien ayudan a prevenir el sobre-entrenamiento
3.8. Evaluacion 23
eliminando algunas muestras de la red durante el proceso de entrenamiento. En nuestro caso
siempre fijamos el parametro de dropout a 0,2. Finalizar indicando que todos los resultados
obtenidos se pueden encontrar en el capıtulo 4.
3.8. Evaluacion
Para evaluar la bondad de los modelos presentados usamos distintas metricas, en funcion
del tipo de aproximacion o tecnica:
Autoencoder
En el caso del autoencoder usamos la metrica cosine proximity o similitud del coseno que
proporciona una medida de similitud entre dos vectores. Se calcula de la siguiente forma:
similarity = cos(Θ) =
∑Ni=1AiBi√∑N
i=1A2i
√∑Ni=1B
2i
(3.3)
donde A y B son los vectores a comparar y N es el tamano de los vectores. El resultado
sera un escalar entre -1 y 1. Los valores proximos a los extremos indicaran maxima similitud
mientras que los valores proximos a 0 indicaran mınima similitud.
Clasificador
En el caso de los distintos modelos clasificadores usamos las metricas accuracy y MSE (Mean
Squared Error):
El accuracy mide el porcentaje de muestras que se logra clasificar correctamente, compu-
tando la diferencia entre la clase asignada y la clase predicha entre el total de muestras.
Cuanto mas cercano a 1 sea esta metrica mejor sera el comportamiento del modelo.
El MSE, o error cuadratico medio, mide la diferencia entre el valor a predecir y el valor
predicho. Aplicado a una clasificacion binaria deberıa proporcionar un comportamiento
similar al accuracy. Se calcula de la siguiente forma:
MSE =1
N
N∑i=1
(Yi − Yi)2 (3.4)
donde Yi es el vector de predicciones, Yi es el vector de valores a predecir y N es el numero
total de muestras. Cuando el resultado de la formula tiende a 0 indica que las predicciones
24 Aspectos de diseno y desarrollo
son mas precisas.
Metrica adicional
Con el objetivo de poder comparar los distintos modelos entre sı se hace necesario disponer
de una metrica comun que permita evidenciar la bondad de cada uno de ellos bajo un mismo
criterio basado en las canciones recomendadas. Por lo que hacemos uso de la precision-en-k
[28], que es la proporcion de recomendaciones correctas dentro del top-k predicho. Se calcula
como sigue:
Pk(u, y) =1
k
k∑j=1
Mu,y(j) (3.5)
donde Mu,y(j) es la agrupacion de likes de las canciones recomendadas en el conjunto de
datos y k es el numero total de recomendaciones realizadas.
En nuestro caso, definiremos k igual a 10. Por lo que, siendo, practicos podemos entender la
metrica como el accuracy medio de las 10 mejores recomendaciones. Destacar que esta metrica
esta altamente influenciada por la popularidad de las canciones recomendadas, es decir, las
canciones populares ocupan mas registros en el conjunto de datos por lo que el accuracy de
estas posiblemente “arrastre” el del resto de las recomendaciones.
Notar que esta metrica no captura todos los posibles aspectos de un recomendador, aunque
es una de las utilizadas comunmente, y el trabajo se podrıa complementar con otras metricas
que se comentaran en el capıtulo 5.
Capıtulo 4
Experimentos y resultados
En esta seccion se presentan los experimentos realizados ası como los resultados obtenidos.
Recordar que los parametros de entrenamiento y validacion estan especificados en el capitulo
3.
En primer lugar, se realizan una serie de pruebas unitarias para cada una de las tecnicas
presentadas en el capitulo anterior con el objetivo de determinar la arquitectura de red neuronal
mas adecuada. Para las pruebas unitarias de las tecnicas correspondientes a la aproximacion
collaborative filtering usamos el conjunto de datos df liteuser presentado en la seccion 3.3.2.
Para la aproximacion content-based utilizamos el conjunto de datos dfmusic en su totalidad.
A continuacion, se muestran las metricas definidas sobre el conjunto de datos de validacion
(test) para las mejores arquitecturas en las distintas tecnicas de la aproximacion collaborative
filtering.
Finalmente, encontramos un estudio comparativo para un conjunto de usuarios determina-
dos entre las mejores arquitecturas de cada una de las tecnicas y aproximaciones presentadas.
4.1. Autoencoder
Evaluamos dos tipos de arquitecturas diferenciadas, basicamente, en la profundidad de la red
neuronal y en el tamano de sus capas. Las presentamos en la tabla 4.1. Es importante destacar
que el tamano de la capa mas profunda del encoder determina la dimension de los embeddings, es
decir, con este parametro controlamos la capacidad de compresion del autoencoder. Notar que,
conceptualmente, estamos aplicando una tecnica de reduccion de la dimensionalidad. Recordar
que los parametros de entrenamiento y validacion estan especificados en el capitulo 3.
En base a los resultados obtenidos, determinamos que el modelo model 128 64 50 ofrece
un mejor rendimiento y sera seleccionado para el estudio final. Destacar que el factor diferencial
ha sido establecer el parametro de maxima compresion a 50, de esta forma es mas sencillo
25
26 Experimentos y resultados
Nombre Capas Tamano Loss Cosine proximitymodel 128 64 32 10 7 128x64x32x10 0,0380 0,9533model 128 64 50 5 128x64x50 0,0287 0,9998
Tabla 4.1: Rendimiento de las diferentes arquitecturas del autoencoder
reconstruir la entrada por parte de la red neuronal, en contraposicion de una arquitectura mas
profunda y mas codificada.
4.2. Deep Matrix Factorization
Evaluamos una serie de arquitecturas incrementando su complejidad, es decir, variamos la
profundidad de la red neuronal, el tipo de union de las entradas, el tamano de cada capa y la
aplicacion de una capa fully conected (FC) a las entradas. Destacar que, en este caso, disponemos
de dos inputs : usuarios y canciones. Debido al tamano del conjunto de datos, codificamos ambas
mediante una capa embedding de tamano 50. Ademas, en funcion de la prueba, anadimos una
capa dropout despues de cada capa FC.
Union Capas Tamano Inputs FC Dropout Loss Accuracy MSEDot 0 Baseline 7 7 0,6827 0,6737 0,205Dot 1 64 3 7 0,5732 0,7047 0,194
Concatenate 1 128 7 3 0,5644 0,7087 0,191Concatenate 2 64x32 7 3 0,5639 0,7091 0,191Concatenate 2 64x128 3 3 0,5642 0,7087 0,191Concatenate 3 64x64x32 3 3 0,5640 0,7089 0,192
Multiply 1 128 7 3 0,6012 0,6878 0,207Multiply 2 64x32 7 3 0,6184 0,6783 0,214Multiply 2 64x128 3 3 0,5665 0,7012 0,192Multiply 3 64x64x32 3 3 0,5679 0,7007 0,193
Tabla 4.2: Rendimiento de las diferentes arquitecturas del modelo deep matrix factorization
Los detalles de las pruebas realizadas se pueden encontrar en la tabla 4.2. En base a los
resultados observados se concluye lo siguiente:
El mejor tipo de union de las entradas es por concatenacion.
Redes profundas mejor que capas con gran tamano.
Aplicar una FC a las entradas no evidencia una mejorıa.
Por lo que, entrenamos el modelo final para la tecnica Deep Matrix Factorization (DMF)
mediante una arquitectura 128x64x32 con dropout, concatenando las entradas y sin aplicarles
4.3. Deep Factorization Machine 27
FC inicialmente, tal y como se muestra en la figura 4.1. Destacar que establecemos un tamano de
embedding de 100 para usuarios y canciones ya que el numero de datos a codificar es superior al
doble del que tenemos en el conjunto de datos lite. Los resultados obtenidos se pueden encontrar
en la seccion 4.5.
4.3. Deep Factorization Machine
En este caso, introducimos el uso del contexto como entrada al modelo. De esta forma
utilizamos, ademas del usuario y la cancion, el genero, el estado de animo del usuario, el artista
de la cancion, el album donde se lanzo y el ano de publicacion; informacion de tipo contextual
a la interaccion usuario-cancion y el feedback implıcito.
Las pruebas unitarias presentadas radican en variar y combinar de distintas formas el tipo
de union de las entradas y la aplicacion de una capa FC a las mismas. Gracias al conocimiento
obtenido en las pruebas unitarias anteriores, fijamos el tamano de la red en 64x32 con dropout.
Establecemos el tamano de la capa de embedding a 50 para los usuarios y las canciones, a 10
para los artistas, albumes y anos de lanzamiento, 9 para los generos y 7 para los estados de
animo. Particularmente para el genero y el estado de animo realizamos una codificacion sin
compresion, ya que la informacion contenida en estas caracterısticas tiene poca granularidad y
consideramos que es muy importante.
Capas Union Comb. Inputs FC Comb. FC Loss Accuracy MSE2 Concatenate Baseline 7 7 0,5679 0,7067 0,1933 Concatenate 3 7 0,5661 0,7083 0,192
3 ConcatenateUser - Mood
Item - Genre - Artist - Release - Year7 3 0,5690 0,7057 0,193
4 ConcatenateUser - Mood
Item - Genre - Artist - Release - Year3 3 0,5670 0,7071 0,192
3 MultiplyUser - Mood
Item - Genre - Artist - Release - Year7 3 0,5668 0,7081 0,192
4 MultiplyUser - Mood
Item - Genre - Artist - Release - Year3 3 0,5672 0,7073 0,192
3 ConcatenateUser - Genre - Artist - Release - Year
Item - Mood7 3 0,5679 0,7053 0,193
4 ConcatenateUser - Genre - Artist - Release - Year
Item - Mood3 3 0,5658 0,7077 0,192
3 MultiplyUser - Genre - Artist - Release - Year
Item - Mood7 3 0,5660 0,7085 0,192
4 MultiplyUser - Genre - Artist - Release - Year
Item - Mood3 3 0,5662 0,7071 0,192
Tabla 4.3: Rendimiento de las diferentes arquitecturas del modelo deep factorization machine
Los resultados obtenidos con el conjunto de datos lite podemos encontrarlos en la tabla 4.3.
Donde llegamos a las siguientes conclusiones:
28 Experimentos y resultados
Figura 4.1: Arquitectura DMF
4.4. Deep Matrix Factorization Hybrid 29
Los resultados obtenidos multiplicando las entradas no son lo suficientemente buenos
como para justificar su uso, mas complejo para la red neuronal que la concatenacion.
Definitivamente, unir el estado de animo a la cancion presenta mejores resultados que
unirlo al usuario.
Aplicar una FC a las entradas evidencia una mejorıa en todos los casos.
Aplicar una FC a las combinaciones de entradas tambien evidencia una mejorıa.
Por lo que, entrenamos el modelo final para la tecnica Deep Factorization Machine (DeepFM)
mediante una arquitectura 64x64x64x32x16 con dropout, siempre concatenando las entradas y
aplicando una capa FC tanto inicialmente como despues de la combinacion de entradas, tal y
como se muestra en la figura 4.2. Destacar que establecemos un tamano de embedding de 100
para usuarios y canciones, el resto se mantiene: 10 para artistas, albumes y anos de lanzamiento,
9 para generos y 7 para estados de animo. Los resultados obtenidos se pueden encontrar en la
seccion 4.5.
4.4. Deep Matrix Factorization Hybrid
Para el desarrollo de esta tecnica introducimos al modelo los embeddings aprendidos por el
autoenconder (metadatos) y las interacciones entre el usuario y las canciones mediante matrix
factorization. La idea principal es que el modelo aprenda las relaciones entre los gustos de los
usuarios y si existe alguna relacion entre los gustos de los usuarios y las caracterısticas propias
de la cancion.
Las pruebas unitarias presentadas radican en variar y combinar de distintas formas el tipo de
union de las entradas con los metadatos y la aplicacion de una capa FC a las mismas. Tambien
variamos la profundidad de la red neuronal y el tamano de cada capa. Siempre aplicando
dropout. Como se ha explicado anteriormente, codificamos mediante una capa embedding de
tamano 50 las entradas de usuarios y canciones.
En la tabla 4.4 se muestran los resultados obtenidos con el conjunto de usuarios lite, los que
nos permiten alcanzar las siguientes conclusiones:
La concatenacion simple de todas las entradas demuestra los mejores resultados.
Combinar los metadatos con los usuarios o las canciones por separado no proporciona
una sustancial mejora.
En este caso, la red ancha tiende a comportarse mejor que la profunda.
30 Experimentos y resultados
Figura 4.2: Arquitectura DeepFM
4.5. Comparativa entre tecnicas collaborative filtering 31
Capas Union Tamano Comb. Inputs FC Comb. FC Loss Accuracy MSE1 Concatenate 128 Baseline 7 7 0,5673 0,7079 0,1922 Concatenate 64x32 7 7 0,5679 0,7069 0,1932 Concatenate 64x128 3 7 0,5663 0,7089 0,1923 Concatenate 64x64x32 3 7 0,5671 0,7071 0,1921 Concatenate 128 Metadatos - Item 7 7 0,5677 0,7076 0,1922 Concatenate 64x32 Metadatos - Item 7 7 0,5677 0,7076 0,1922 Concatenate 64x128 Metadatos - Item 3 7 0,5663 0,7088 0,1923 Concatenate 64x64x32 Metadatos - Item 3 7 0,5674 0,7079 0,1922 Concatenate 64x128 Metadatos - Item 7 3 0,5672 0,7077 0,1923 Concatenate 64x64x128 Metadatos - Item 3 3 0,5667 0,7078 0,192
3 Concatenate 64x64x128User
Metadatos - Item7 3 0,5665 0,7082 0,192
4 Concatenate 64x64x64x32User
Metadatos - Item7 3 0,5671 0,7079 0,193
3 Multiply 64x64x128User
Metadatos - Item7 3 0,5676 0,7071 0,193
4 Multiply 64x64x64x32User
Metadatos - Item7 3 0,5675 0,7073 0,192
Tabla 4.4: Rendimiento de las diferentes arquitecturas del modelo deep matrix factorizationhybrid
Aplicar una FC a las entradas evidencia una mejorıa en todos los casos.
Por lo que, entrenamos el modelo final para la tecnica Deep Matrix Factorization Hybrid
(DMFHybrid) mediante una arquitectura 64x128x64 con dropout, concatenando las entradas
de forma lineal y aplicando una capa FC inicialmente a usuarios y canciones, tal y como se
muestra en la figura 4.3. Destacar que establecemos un tamano 100 a la capa de embedding.
Los resultados obtenidos se pueden encontrar en la seccion 4.5.
4.5. Comparativa entre tecnicas collaborative filtering
En este apartado compararemos los resultados de aplicar las tecnicas: DMF, DeepFM y
DMFHybrid, basadas en la aproximacion collaborative filtering, sobre el conjunto de datos de
validacion calculado sobre dfuser. Con tal fin presentamos la tabla 4.5.
Modelo Contexto Loss Accuracy P10
DMF 7 0,5869 0,6866 0,6159DeepFM 3 0,5786 0,6945 0,6875DMFHybrid 7 0,5867 0,6877 0,6178
Tabla 4.5: Comparacion entre los distintos modelos desarrollados basados en la aproximacioncollaborative filtering
Como podemos observar, el modelo DeepFM ofrece los mejores resultados en virtud de todas
las metricas analizadas. Por lo que podemos concluir que la informacion contextual proporcio-
32 Experimentos y resultados
Figura 4.3: Arquitectura DMFHybrid
4.6. Estudio sobre las recomendaciones 33
nada, como el estado de animo del usuario, el genero de la cancion, etc. es el elemento diferencial
y contribuye de forma muy positiva a lo hora de realizar las recomendaciones. En segundo lugar
encontramos al modelo DMFHybrid donde las caracterısticas propias de las canciones mejoran
tımidamente el rendimiento del modelo DMF, que podrıamos considerar como baseline.
4.6. Estudio sobre las recomendaciones
En este apartado realizamos un estudio sobre el top-10 de recomendaciones realizadas a
partir de los distintos modelos y algoritmos desarrollados. Dada la imposibilidad tecnica de
procesar el conjunto de datos en su totalidad, seleccionamos 500 usuarios intentando obtener
una muestra lo suficientemente representativa de dfuser. Para ello creamos deciles a partir del
numero de ocurrencias total y seleccionamos aleatoriamente 50 usuarios de cada decil.
Cabe destacar que el estudio radica en la evaluacion y comparacion de la metrica P10
entre los distintos modelos. Y, ademas, esta condicionado a las dos principales caracterısticas
contextuales de la aplicacion: genero y estado de animo. De esta forma, presentamos la tabla
comparativa 4.6 donde se muestra la precision de cada modelo por genero y la tabla comparativa
4.7 donde se muestra la precision de cada modelo por estado de animo.
Genero DMF DeepFM DMFHybrid AutoencoderCeltic 0,3878 0,3878 0,3878 0,2295Classical 0,4597 0,4606 0,4566 0,4451Dance 0,4972 0,5623 0,5330 0,3726Hip-Hop 0,4873 0,5296 0,5038 0,3610Jazz/Blues 0,4866 0,5149 0,4974 0,3969Latin 0,5030 0,5334 0,5157 0,4422Pop/Folk 0,4958 0,5491 0,5190 0,4118Relax 0,4702 0,4799 0,4734 0,4290Rock 0,5122 0,5978 0,5559 0,3870
Tabla 4.6: Comparacion de P10 entre los distintos modelos generados por genero
Como podemos observar, el modelo DeepFM ofrece un mejor resultado para cualquier gene-
ro. Por lo que se determina que la informacion contextual ayuda a ofrecer recomendaciones
precisas. Los peores resultados se observan en el caso del genero Celtic, donde el poco volumen
de registros existentes penalizan el recomendador. En contraposicion, encontramos el genero
Rock donde se presentan los mejores resultados. Por lo que, disponer de un gran volumen ayu-
da a ofrecer mejores recomendaciones (ver imagen 3.1), aunque no es determinante. En general,
observamos que el modelo que ofrece peores recomendaciones es el Autoencoder. Por lo que
se determina que la informacion comportamental del conjunto de usuarios es relevante para
ofrecer mejores recomendaciones.
34 Experimentos y resultados
Estado de animo DMF DeepFM DMFHybrid AutoencoderAngry 0,4785 0,5164 0,4962 0,4070Cheerful 0,5062 0,5459 0,5236 0,4163Energetic 0,4771 0,5184 0,4958 0,3648Happy 0,4935 0,5350 0,5119 0,4095Nervous 0,4477 0,4765 0,4605 0,3830Quiet 0,4808 0,5175 0,4978 0,3636Sad 0,4605 0,4800 0,4694 0,3586
Tabla 4.7: Comparacion de P10 entre los distintos modelos generados por estado de animo
En este caso, el modelo DeepFM sigue ofreciendo un mejor resultado para todos los es-
tados de animo y, en contraposicion, el Autoencoder ofrece el peor rendimiento. Los mejores
resultados los encontramos para los estados de animo Cheerful y Happy, que precisamente no
son los que mas volumen de datos concentran pero se encuentran en una posicion intermedia
en cuanto a tempo (ver tabla 3.2). Por otro lado, los estados de animo extremos en cuanto a
tempo son Nervous y Sad, precisamente aquellos que ofrecen un peor rendimiento respecto a
recomendaciones. Ademas, estos estados de animo tienen poco volumen de datos respecto al
resto (ver imagen 4.4). Por lo que se determina que el recomendador tiende a funcionar mejor
para estados de animos mas “neutros” que aceptan como respuesta valida una cantidad de
canciones mas extensa. Aunque no penaliza en exceso las recomendaciones a estados de animo
mas “extremos”.
Figura 4.4: Diagrama de barras por estado de animo para el experimento 4.6
4.6. Estudio sobre las recomendaciones 35
Finalmente, se recomienda el uso de la aproximacion collaborative filtering y en concreto
del modelo DeepFM, siempre y cuando se disponga de informacion comportamental de usuario
ası como de sus preferencias que se utilizaran de forma contextual. Acorde a los resultados
de los trabajos [6], [20], [18], [8], etc. explicados en el capitulo 2, se concluye que la tecnica
factorization machine mas la informacion contextual proporciona los mejores resultados dentro
del conjunto de pruebas realizadas. Estas no son directamente comparables con los trabajos
analizados ya que se han trabajado distintas metricas para su evaluacion
36 Experimentos y resultados
Capıtulo 5
Conclusiones y lıneas de trabajo
futuras
El principal objetivo del trabajo era construir un recomendador musical optimo dentro del
entorno eHealth proporcionado por la aplicacion Parkinsons. Para ello hemos adaptado el desa-
rrollo del trabajo a los requerimientos impuestos por los estudios previos llevados a cabo para el
diseno y explotacion de la aplicacion. En este sentido, presentamos el modelo DeepFM como
la mejor solucion encontrada, ademas se concluye que la informacion contextual anadida a las
interacciones usuario-cancion resulta ser muy util para obtener un mejor rendimiento. Respecto
a la arquitectura selecciona, en lineas generales hemos observado que redes profundas mejor
que anchas, la concatenacion es la forma mas efectiva de unir las distintas entradas y aplicar
una capa Fully Conected a las entradas y combinacion de entradas siempre resulta positivo. No
obstante, determinamos que la arquitectura optima se ha de encontrar particularmente para
cada aplicacion o conjunto de datos.
Respecto a los objetivos secundarios, hemos construido un modelo (autoencoder) basado en
content-filter que se puede utilizar en la aplicacion mientras no tengamos un suficiente volumen
de usuario para evitar el problema del cold-start. El autoencoder ofrece un peor rendimiento
que el resto de modelos creados, pero no esta tan condicionado al volumen de datos disponibles
en la aplicacion y sı a las caracterısticas propias que determinan muy bien las canciones. Por
ejemplo, observamos que para el genero que mejor recomendaciones realiza es para la musica
latina (ver 4.6). Ademas, hemos realizado un analisis de mercado para desarrollar, implementar
y comparar las tecnicas mas extendidas de las distintas aproximaciones (Autoencoder, DMF,
DeepFM, DMFHybrid) que nos ha servido para exponer con profundidad las conclusiones aquı
descritas ya que el trabajo proporciona una vision completa de los sistemas de recomendacion
aplicados a nuestro caso concreto.
Como lineas de trabajo encontramos dos tematicas que se pueden abordar.
37
38 Conclusiones y lıneas de trabajo futuras
Principalmente, podrıamos ampliar el trabajo actual incluyendo nuevas metricas que ayuden
a verificar la bondad de los algoritmos. En concreto, se podrıa explorar la Normalized Discounted
Cumulative Gain (NDCG) que mide la calidad del ranking recomendado teniendo en cuenta
el orden de las recomendaciones, la mean Average Precision (mAP) que es una version mas
realista de la precision-at-k ya que tiene en cuenta la densidad de cada objeto en los datos para
computar la media y el recall-at-τ (Rτ ) que mide la proporcion de recomendaciones que gustan
sobre el total de canciones que gustan.
Otra lınea de trabajo importante consiste en explorar nuevas tecnicas vanguardistas y pun-
teras sobre las que actualmente se esta investigando como por ejemplo las aproximaciones
graph-based donde se utilizan teorıas de grafos para tratar capturar las interacciones de muy
alto orden entre los usuarios y los objetos a traves de las conexiones existentes entre ambas en-
tidades. En este campo, podemos encontrar soluciones diversas como Graph Autoencoders [29],
Graph Convolutional Networks [11] y evoluciones Factorization Machines basadas en grafos.
Bibliografıa
[1] Varios Autores. Parkinsons.cat. http://parkinsons.cat, 2019.
[2] Gavin Harper and Stephen D Pickett. Methods for mining hts data. Drug Discovery Today,
11(15-16):694–699, 2006.
[3] Andreu Vall, Matthias Dorfer, Hamid Eghbal-Zadeh, Markus Schedl, Keki Burjorjee, and
Gerhard Widmer. Feature-combination hybrid recommender systems for automated music
playlist continuation. User Modeling and User-Adapted Interaction, 29(2):527–572, 2019.
[4] F Ricci, L Rokach, and B Shapira. Recommender systems handbook, 2nd edn springer.
2015.
[5] Han-Saem Park, Ji-Oh Yoo, and Sung-Bae Cho. A context-aware music recommendation
system using fuzzy bayesian networks with utility theory. In International conference on
Fuzzy systems and knowledge discovery, pages 970–979. Springer, 2006.
[6] Linas Baltrunas, Bernd Ludwig, and Francesco Ricci. Matrix factorization techniques for
context aware recommendation. In Proceedings of the fifth ACM conference on Recom-
mender systems, pages 301–304, 2011.
[7] Steffen Rendle. Factorization machines. In 2010 IEEE International Conference on Data
Mining, pages 995–1000. IEEE, 2010.
[8] Xiangnan He and Tat-Seng Chua. Neural factorization machines for sparse predictive
analytics. In Proceedings of the 40th International ACM SIGIR conference on Research
and Development in Information Retrieval, pages 355–364, 2017.
[9] Huifeng Guo, Ruiming Tang, Yunming Ye, Zhenguo Li, and Xiuqiang He. Deepfm:
a factorization-machine based neural network for ctr prediction. arXiv preprint ar-
Xiv:1703.04247, 2017.
[10] Heng-Tze Cheng, Levent Koc, Jeremiah Harmsen, Tal Shaked, Tushar Chandra, Hrishi
Aradhye, Glen Anderson, Greg Corrado, Wei Chai, Mustafa Ispir, et al. Wide & deep
39
40 BIBLIOGRAFIA
learning for recommender systems. In Proceedings of the 1st workshop on deep learning
for recommender systems, pages 7–10, 2016.
[11] Thomas N Kipf and Max Welling. Semi-supervised classification with graph convolutional
networks. arXiv preprint arXiv:1609.02907, 2016.
[12] Bita Shams and Saman Haratizadeh. Graph-based collaborative ranking. Expert Systems
with Applications, 67:59–70, 2017.
[13] Jie Zhou, Ganqu Cui, Zhengyan Zhang, Cheng Yang, Zhiyuan Liu, Lifeng Wang, Chang-
cheng Li, and Maosong Sun. Graph neural networks: A review of methods and applications.
arXiv preprint arXiv:1812.08434, 2018.
[14] Xinxi Wang and Ye Wang. Improving content-based and hybrid music recommendation
using deep learning. In Proceedings of the 22nd ACM international conference on Multi-
media, pages 627–636, 2014.
[15] Paul Covington, Jay Adams, and Emre Sargin. Deep neural networks for youtube recom-
mendations. In Proceedings of the 10th ACM conference on recommender systems, pages
191–198, 2016.
[16] Bruce Ferwerda and Markus Schedl. Enhancing music recommender systems with perso-
nality information and emotional states: A proposal. In Umap workshops, 2014.
[17] Wolfgang Woerndl and Johann Schlichter. Introducing context into recommender systems.
In Proceedings of AAAI workshop on recommender systems in E-commerce, pages 138–140,
2007.
[18] Xinxi Wang, David Rosenblum, and Ye Wang. Context-aware mobile music recommen-
dation for daily activities. In Proceedings of the 20th ACM international conference on
Multimedia, pages 99–108, 2012.
[19] Ivana Andjelkovic, Denis Parra, and John O’Donovan. Moodplay: interactive music recom-
mendation based on artists’ mood similarity. International Journal of Human-Computer
Studies, 121:142–159, 2019.
[20] Linas Baltrunas, Marius Kaminskas, Bernd Ludwig, Omar Moling, Francesco Ricci, Ay-
kan Aydin, Karl-Heinz Luke, and Roland Schwaiger. Incarmusic: Context-aware music
recommendations in a car. In International Conference on Electronic Commerce and Web
Technologies, pages 89–100. Springer, 2011.
BIBLIOGRAFIA 41
[21] Andre Calero Valdez, Martina Ziefle, Katrien Verbert, Alexander Felfernig, and Andreas
Holzinger. Recommender systems for health informatics: state-of-the-art and future pers-
pectives. In Machine Learning for Health Informatics, pages 391–414. Springer, 2016.
[22] Thierry Bertin-Mahieux, Daniel P.W. Ellis, Brian Whitman, and Paul Lamere. The million
song dataset. In Proceedings of the 12th International Conference on Music Information
Retrieval (ISMIR 2011), 2011.
[23] Hendrik Schreiber. Improving genre annotations for the million song dataset. In ISMIR,
pages 241–247, 2015.
[24] Antoni Crespo Martınez. Consideracions sobre la implementacio musical de l’app parkin-
sons, 2019.
[25] Yehuda Koren, Robert Bell, and Chris Volinsky. Matrix factorization techniques for re-
commender systems. Computer, 42(8):30–37, 2009.
[26] Alexander Platzer. Visualization of snps with t-sne. PloS one, 8(2), 2013.
[27] Diederik P Kingma and Jimmy Ba. Adam: A method for stochastic optimization. arXiv
preprint arXiv:1412.6980, 2014.
[28] Brian McFee, Thierry Bertin-Mahieux, Daniel PW Ellis, and Gert RG Lanckriet. The
million song dataset challenge. In Proceedings of the 21st International Conference on
World Wide Web, pages 909–916, 2012.
[29] Thomas N Kipf and Max Welling. Variational graph auto-encoders. arXiv preprint ar-
Xiv:1611.07308, 2016.
Top Related