Sistema de recomendación musical para eHealth

55
Universitat Oberta de Catalunya (UOC) aster Universitario en Ciencia de Datos (Data Science ) TRABAJO FINAL DE M ´ ASTER Sistema de recomendaci´ on musical para eHealth —————————————————————————– Autor: Adri´an Quijada Gomariz Tutor: Ra´ ul Parada Medina Profesor: Jordi Casas Roma —————————————————————————– Barcelona, 24 de junio de 2020

Transcript of Sistema de recomendación musical para eHealth

Page 1: Sistema de recomendación musical para eHealth

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

Page 2: Sistema de recomendación musical para eHealth
Page 3: Sistema de recomendación musical para eHealth

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

Page 4: Sistema de recomendación musical para eHealth

ii

Page 5: Sistema de recomendación musical para eHealth

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

Page 6: Sistema de recomendación musical para eHealth

iv

Page 7: Sistema de recomendación musical para eHealth

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

Page 8: Sistema de recomendación musical para eHealth

vi

Page 9: Sistema de recomendación musical para eHealth

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

Page 10: Sistema de recomendación musical para eHealth

viii

Page 11: Sistema de recomendación musical para eHealth

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

Page 12: Sistema de recomendación musical para eHealth

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

Page 13: Sistema de recomendación musical para eHealth

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

Page 14: Sistema de recomendación musical para eHealth

xii LISTADO DE FIGURAS

Page 15: Sistema de recomendación musical para eHealth

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

Page 16: Sistema de recomendación musical para eHealth

2 LISTADO DE TABLAS

Page 17: Sistema de recomendación musical para eHealth

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

Page 18: Sistema de recomendación musical para eHealth

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:

Page 19: Sistema de recomendación musical para eHealth

1.4. Planificacion 5

Figura 1.1: Diagrama de Gantt

Page 20: Sistema de recomendación musical para eHealth

6 Introduccion

Page 21: Sistema de recomendación musical para eHealth

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

Page 22: Sistema de recomendación musical para eHealth

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].

Page 23: Sistema de recomendación musical para eHealth

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.

Page 24: Sistema de recomendación musical para eHealth

10 Estado del arte

Page 25: Sistema de recomendación musical para eHealth

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

Page 26: Sistema de recomendación musical para eHealth

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].

Page 27: Sistema de recomendación musical para eHealth

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

Page 28: Sistema de recomendación musical para eHealth

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,

Page 29: Sistema de recomendación musical para eHealth

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

Page 30: Sistema de recomendación musical para eHealth

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

Page 31: Sistema de recomendación musical para eHealth

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

Page 32: Sistema de recomendación musical para eHealth

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-

Page 33: Sistema de recomendación musical para eHealth

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.

Page 34: Sistema de recomendación musical para eHealth

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.

Page 35: Sistema de recomendación musical para eHealth

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.

Page 36: Sistema de recomendación musical para eHealth

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

Page 37: Sistema de recomendación musical para eHealth

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

Page 38: Sistema de recomendación musical para eHealth

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.

Page 39: Sistema de recomendación musical para eHealth

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

Page 40: Sistema de recomendación musical para eHealth

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

Page 41: Sistema de recomendación musical para eHealth

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:

Page 42: Sistema de recomendación musical para eHealth

28 Experimentos y resultados

Figura 4.1: Arquitectura DMF

Page 43: Sistema de recomendación musical para eHealth

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.

Page 44: Sistema de recomendación musical para eHealth

30 Experimentos y resultados

Figura 4.2: Arquitectura DeepFM

Page 45: Sistema de recomendación musical para eHealth

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-

Page 46: Sistema de recomendación musical para eHealth

32 Experimentos y resultados

Figura 4.3: Arquitectura DMFHybrid

Page 47: Sistema de recomendación musical para eHealth

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.

Page 48: Sistema de recomendación musical para eHealth

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

Page 49: Sistema de recomendación musical para eHealth

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

Page 50: Sistema de recomendación musical para eHealth

36 Experimentos y resultados

Page 51: Sistema de recomendación musical para eHealth

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

Page 52: Sistema de recomendación musical para eHealth

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.

Page 53: Sistema de recomendación musical para eHealth

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

Page 54: Sistema de recomendación musical para eHealth

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.

Page 55: Sistema de recomendación musical para eHealth

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.