Este curso, de 6 créditos, ofrece una introducción exhaustiva a los sistemas de recomendación, que abarca tanto los fundamentos teóricos como las aplicaciones en el mundo real. Los alumnos explorarán una amplia gama de técnicas de recomendación, desde métodos basados en el conocimiento y en el contenido hasta el filtrado colaborativo, los modelos híbridos y los enfoques sensibles al contexto, junto con temas clave como la modelización de usuarios, la personalización, la recomendación grupal, la confianza y la evaluación de sistemas.
El curso combina clases teóricas con sesiones prácticas, lo que proporciona a los alumnos experiencia práctica en la creación y evaluación de sistemas de recomendación. A lo largo del curso se abordan cuestiones relacionadas con la ética, la seguridad y la gestión de datos. Al finalizar el curso, los alumnos estarán capacitados para diseñar, implementar y evaluar de forma crítica sistemas de recomendación en diversos ámbitos de aplicación, como los medios de comunicación, el comercio electrónico, la sanidad y la agricultura.
Este curso de 6 créditos (IPM-24ATRSEG) ofrece una introducción rigurosa y exhaustiva a los sistemas de recomendación, que abarca desde los fundamentos teóricos hasta los métodos algorítmicos y la implementación práctica. Impartido en inglés en la Facultad de Informática de la ELTE, el curso está dirigido a estudiantes de máster en Ciencia de Datos y programas afines.
Contenido y estructura
El curso tiene una duración de 13 semanas y abarca la siguiente secuencia de temas:
Semana 1: Introducción a los sistemas de recomendación; Resumen del curso; Tipos de sistemas de recomendación; Aplicaciones en el mundo real; Retos
Semana 2: Fundamentos; Matriz de utilidad; El problema de la «cola larga»; Conceptos básicos de minería de datos; Datos de interacción usuario-elemento
Semana 3: Filtrado basado en el contenido I; Perfiles de elementos; Similitud TF-IDF; Modelización de preferencias de usuario
Semana 4: Filtrado basado en el contenido II; Recomendador de películas utilizando TF-IDF; Sesión de laboratorio.
Semana 5: Filtrado colaborativo I; Filtrado colaborativo basado en memoria; Enfoques usuario-usuario frente a elemento-elemento; Sesión de laboratorio.
Semana 6: Filtrado colaborativo II, similitud de elementos basada en KNN; modelos de vecindad; sesión de laboratorio.
Semana 7: Modelos de factores latentes I, factorización de matrices; SVD; NMF; sesión de laboratorio.
Semana 8: Modelos de factores latentes II, SVD++; DNN con Softmax; aprendizaje profundo para el sistema de recomendación; sesión de laboratorio.
Semana 9: Sistemas de recomendación basados en el conocimiento y en restricciones, Satisfacción de restricciones; Crítica; Sesión de laboratorio.
Semana 10: Arquitecturas híbridas y avanzadas, Modelos híbridos; Sistemas de recomendación sensibles al contexto; Recomendación grupal; Modelos sociales; Confianza en los sistemas de recomendación.
Semana 11: Evaluación de sistemas de recomendación, RMSE, MAE, Precisión@K, Recuperación@K, NDCG, cobertura; Sesión de laboratorio.
Semana 12: Ética, equidad y sesgo; sesgo algorítmico; burbujas de filtro; capullos de información; técnicas para eliminar el sesgo; IA responsable.
Semana 13: Tendencias futuras y presentaciones de proyectos; redes neuronales de grafos (LightGCN); aprendizaje federado; sinergia entre LLM y sistemas de recomendación; presentaciones de proyectos de los alumnos
Al finalizar el curso, el alumno será capaz de:
LO1: Explicar los conceptos fundamentales, las arquitecturas y los ámbitos de aplicación de los sistemas de recomendación, incluyendo la matriz de utilidad, el problema de la «cola larga» y las principales familias de algoritmos
LO2: Implementar técnicas de filtrado basadas en el contenido utilizando medidas de similitud TF-IDF y modelos de preferencias de usuario en Python
LO3: Crear sistemas de filtrado colaborativo utilizando tanto enfoques basados en la memoria (usuario-usuario, elemento-elemento) como basados en modelos (KNN, factorización de matrices)
LO4: Aplicar modelos de factores latentes, incluidos SVD, SVD++, NMF y métodos de aprendizaje profundo, para descubrir patrones ocultos en los datos de interacción usuario-elemento
LO5: Diseñar sistemas de recomendación híbridos, basados en el conocimiento y en restricciones, adecuados para escenarios de aplicación complejos del mundo real
LO6: Evaluar el rendimiento de los sistemas de recomendación utilizando métricas estándar como RMSE, Precision@K, Recall@K y NDCG, e interpretar los resultados de forma crítica
LO7: Valorar los retos éticos de los sistemas de recomendación, incluyendo el sesgo algorítmico, las burbujas de filtro, la equidad y las consideraciones sobre la privacidad de los datos
LO8: Desarrollar un proyecto original de sistema de recomendación basado en IA utilizando aprendizaje automático, aprendizaje profundo o aprendizaje por refuerzo, que aborde un problema del mundo real
LO9: Utilizar herramientas y prácticas estándar del sector, como Python, Jupyter Notebooks y el control de versiones a través de GitHub, para implementar y documentar flujos de trabajo reproducibles de sistemas de recomendación
L10: Analizar las tendencias emergentes en el campo, incluyendo las redes neuronales de grafos, el aprendizaje federado y la integración de grandes modelos de lenguaje en los flujos de trabajo de recomendación
No hay requisitos previos formales para este curso. No obstante, se espera que los alumnos cuenten con:
– Experiencia básica en programación, preferiblemente en Python (variables, bucles, funciones, bibliotecas)
– Conocimientos básicos de análisis de datos, incluida la familiaridad con las estructuras de datos y los conceptos estadísticos básicos (media, varianza, medidas de similitud)
– Conocimientos básicos de álgebra lineal, incluidos vectores, matrices y operaciones matriciales (útil para comprender los modelos de factores latentes)
También se espera que los alumnos:
– Asistan a todas las clases magistrales (obligatorias) y no falten a más de cuatro sesiones prácticas
– Mantengan una cuenta en GitHub y envíen todos los trabajos de laboratorio y el código de los proyectos a través del repositorio del curso
– Elijan un tema para su proyecto de investigación individual antes de la fecha límite establecida (semana 2 del semestre)
Lectura obligatoria
[1] Ricci, F., Rokach, L., Shapira, B. (Eds.) Recommender Systems Handbook. Springer, 2.ª edición, 2015. ISBN: 978-1489976376. DOI: 10.1007/978-1-4899-7637-6
[2] Aggarwal, C. C. «Sistemas de recomendación: el libro de texto». Springer, 2016. ISBN: 978-3319296579. DOI: 10.1007/978-3-319-29659-3
[3] Koren, Y., Bell, R., Volinsky, C. «Técnicas de factorización de matrices para sistemas de recomendación». IEEE Computer, vol. 42, n.º 8, pp. 30-37, 2009. DOI: 10.1109/MC.2009.263
Lecturas recomendadas
[1] Jannach, D., Zanker, M., Felfernig, A., Friedrich, G. «Recommender Systems: An Introduction». Cambridge University Press, 2010. ISBN: 978-0521493369
[2] Wang, Z., Pu, C., Wang, F. «Deep Learning Recommender Systems». Cambridge University Press, 2025. ISBN: 978-1009447508
[3] Leskovec, J., Rajaraman, A., Ullman, J. Minería de conjuntos de datos masivos (Capítulo 9: Sistemas de recomendación). Cambridge University Press, 3.ª edición. Disponible en acceso abierto en: http://www.mmds.org/
Artículos de revisión recomendados
[1] Zhang, S., Yao, L., Sun, A., Tay, Y. «Deep Learning Based Recommender System: A Survey and New Perspectives». ACM Computing Surveys, vol. 52, n.º 1, artículo 5, 2019. DOI: 10.1145/3285029
[2] Gao, C., Zheng, Y., Li, N., Li, Y., Qin, Y., Peng, J., Han, S., Chen, J., Ma, D., Jin, D., Li, Y. Una revisión de las redes neuronales de grafos para sistemas de recomendación: retos, métodos y orientaciones. ACM Transactions on Recommender Systems, vol. 1, n.º 1, artículo 1, enero de 2023. DOI: 10.1145/3568022
[3] Zhang, Y., Chen, X. «Recomendaciones explicables: un estudio y nuevas perspectivas». Foundations and Trends in Information Retrieval, vol. 14, n.º 1, pp. 1-101, 2020. DOI: 10.1561/1500000066
[4] Wu, L., Zheng, Z., Qiu, Z., Wang, H., Gu, H., Shen, T., Qin, C., Zhu, C., Zhu, H., Liu, Q., Xiong, H., Chen, E.
Estudio sobre los grandes modelos de lenguaje para la recomendación.
Preimpresión de arXiv, 2023, última revisión en junio de 2024.
Repositorio del curso (cuadernos de laboratorio, conjuntos de datos, plantillas de proyectos)
El curso combina clases magistrales semanales con sesiones prácticas de laboratorio, en las que los alumnos implementan algoritmos de sistemas de recomendación en Python utilizando Jupyter Notebooks y Google Colab. Se puede acceder a todos los materiales de laboratorio a través del repositorio de GitHub del curso.
A lo largo del semestre, los estudiantes realizan lecturas independientes de artículos de investigación y capítulos de libros asignados, lo que les permite desarrollar el pensamiento crítico y familiarizarse con los últimos avances en la materia. Esto se refleja directamente en el examen oral final, que combina los conocimientos teóricos con un debate sobre el propio trabajo del estudiante.
La principal actividad práctica consiste en un proyecto de investigación individual, en el que cada estudiante diseña y desarrolla un sistema de recomendación original basado en la inteligencia artificial que aborda un problema del mundo real, y que se presenta formalmente al final del semestre.
Extracto académico