TRABAJOS FIN DE MáSTER curso: 2020-21
SERENDIPITY: Servicio web para la recomendacIón de playlists a partIr de otra playlist. |
Descripcion y Objetivos
En este TFM se aborda la creación de un servicio web que a partir de una playlist de canciones recomiende al usuario un conjunto de playlists relacionadas a partir de una base de datos de playlists previamente recolectada. Se pueden por tanto observar dos objetivos principales:
- Objetivo principal (Ciencia de datos):
- Crear un sistema de recomendación de playlists a partir de una dada partiendo de su título, canciones, géneros y otra información ofrecida por la Web API de Spotify.
- Objetivo secundario (Aplicación):
- Desarrollar un servicio web junto a una aplicación que implemente el sistema de recomendación diseñado.
Para conseguir los objetivos propuestos se deberán acometer las siguientes fases o tareas:
1.- Obtención de datos. Descarga de bases de datos ya compiladas y/o scrapping de nuevas playlists a partir de servicios disponibles (Spotify, Apple music, etc.)
2.- Selección de los datos de la playlist a emplear. Será necesario realizar la fase de extracción/construcción/selección de características que permitan representar una playlist mediante un vector n-dimensional de pares (atributo,valor).
3.- Elección del sistema de recomendación. En función de la fase anterior, determinar el tipo de sistema de recomendación a usar (colaborativo, basado en contenido, etc.), así como la tecnología idónea para su implementación (librerías, lenguaje de programación, etc.).
4.- Entrenamiento y evaluación. Diseño de las estrategias de validación y los pipelines necesarios para llevar a cabo una correcta selección de modelos.
5.- Exportación de los datos aprendidos por el sistema.
6.- Creación de un servicio web para la obtención de recomendaciones. Selección de la tecnología a emplear y la arquitectura de soporte.
7.- Desarrollo de una aplicación que emplee el servicio. La aplicación debe ser ligera computacionalmente y usable.
8.- Redacción de la memoria del TFM.
Metodología y Competencias
Se seguirá la metodología de desarrollo SCRUM:
* Sprint de 3 semanas comenzando con Presentación + Retrospectiva del sprint anterior y Planificación
del nuevo sprint. Refinamiento del Backlock periódico por parte de directores y alumno.
* Despliegue incremental del proyecto al final de cada Sprint.
Gestión de proyecto:
* Control de versiones.
* Despliegue automático de recursos asociados a integraciones de código
Competencias de la titulación desarrolladas en el TFM (ver listado de https://www.uclm.es/estudios/masteres/master-ingenieria-informatica-albacete#competencias):
CE1 - Capacidad para la integración de tecnologías, aplicaciones, servicios y sistemas propios de la Ingeniería Informática, con carácter generalista, y en contextos más amplios y multidisciplinares.
CE4 - Capacidad para modelar, diseñar, definir la arquitectura, implantar, gestionar, operar, administrar y mantener aplicaciones, redes, sistemas, servicios y contenidos informáticos.
CE5 - Capacidad de comprender y saber aplicar el funcionamiento y organización de Internet, las tecnologías y protocolos de redes de nueva generación, los modelos de componentes, software intermediario y servicios.
CE9 - Capacidad para diseñar y evaluar sistemas operativos y servidores, y aplicaciones y sistemas basados en computación distribuida.
CE12 - Capacidad para aplicar métodos matemáticos, estadísticos y de inteligencia artificial para modelar, diseñar y desarrollar aplicaciones, servicios, sistemas inteligentes y sistemas basados en el conocimiento.
CE16 - Realización, presentación y defensa, una vez obtenidos todos los créditos del plan de estudios, de un ejercicio original realizado individualmente ante un tribunal universitario, consistente en un proyecto integral de Ingeniería en Informática de naturaleza profesional en el que se sinteticen las competencias adquiridas en las enseñanzas.
Medios a utilizar
Ordenadores personales, compiladores y entornos de programación. Todo disponible en la ESIIAB. Posiblemente proveedores cloud externos, los cuáles se financiarán mediante créditos de estudiante o fuentes alternativas.
Bibliografía
Libros y manuales de inteligencia artificial y aprendizaje automático. Libros y manuales de lenguajes de programación y librerías específicas de aprendizaje automático. Todo disponible en la ESIIAB y/o en internet.
En particular se usarán entre otras las siguientes fuentes bibliográficas:
Dietmar Jannach, Markus Zanker, Alexander Felfernig, and Gerhard Friedrich. 2010. Recommender Systems: An Introduction (1st. ed.). Cambridge University Press, USA.
Jake VanderPlas. 2016. Python Data Science Handbook: Essential Tools for Working with Data (1st. ed.). O'Reilly Media, Inc.
Rounak Banik. 2018. Hands-On Recommendation Systems with Python: Start building powerful and personalized, recommendation engines with Python. Packt Publishing.
Oscar Celma. 2010. Music Recommendation and Discovery: The Long Tail, Long Fail, and Long Play in the Digital Music Space (1st. ed.). Springer Publishing Company, Incorporated.
Schedl M., Knees P., McFee B., Bogdanov D., Kaminskas M. (2015) Music Recommender Systems. In: Ricci F., Rokach L., Shapira B. (eds) Recommender Systems Handbook. Springer, Boston, MA.
Deep Learning in Music Recommendation Systems (https://www.frontiersin.org/articles/10.3389/fams.2019.00044/full)
Tutores GAMEZ MARTIN, JOSE ANTONIO ALEDO SÁNCHEZ, JUAN ÁNGEL | Alumno CANTERO VÍLLORA, MIGUEL ANGEL
|
|