Sistemas Recomendadores - IIC 3633

Denis Parra

31 de Julio, 2019

Instructor: Denis Parra, Profesor Asistente PUC Chile, Ph.D. University of Pittsburgh

Ayudantes:

Institución: Pontificia Universidad Católica de Chile

Lugar: Sala A4, Campus San Joaquín, PUC Chile.

Horario: Martes y Jueves, Módulo 3 (11:30 a 12:50).

Programa IIC 3633, 2do Semestre 2019: pdf.

El curso de Sistemas Recomendadores cubre las principales tareas de recomendación, algoritmos, fuentes de datos y evaluación de estos sistemas. Al final de este curso serás capaz de decidir qué técnicas y fuentes de datos usar para implementar y evaluar sistemas recomendadores.

Software: pyRecLab

Puedes practicar con estos jupyter notebook (que puedes igual ver en Google Colab) Most popular, Item average, User y Item KNN y FunkSVD y ALS

La componente práctica de este curso se enseña a través del uso de pyRecLab desarrollado por Gabriel Sepúlveda, biblioteca de software para desarrollo de sistemas recomendadores en Python.

Contenido

MES 1 En las primeras semanas nos enfocaremos en métodos básicos para hacer recomendación usando y prediciendo ratings (filtrado colaborativo User-based & item-based, slope-one). Luego veremos métodos de factorización matricial para ratings y para feedback implícito. En la 3ra semana veremos formas adicionales de evaluar más alla de la métricas de error de predicción de rating (MAE, MSE, RMSE) e incorporaremos métricas para evaluar listas de ítems (precision, recall, MAP, P@n, nDCG). Veremos métodos basados en contenido y sistemas híbridos.

MES 2 Métodos basados en contexto, máquinas de factorización y modelos fundamentales de deep learning para recomendación. Recapitulación de las tareas de recomendacion (predecir rating, predecir una lista de items, recomendar una secuencia, recomendación TopN) y de su evaluacion considerando diversidad, novedad, coverage, y otras métricas.

MES 3 User-centric RecSys, FAT (Fairness, Accountability and Transparency), Aplicaciones de Deep learning para problemas más específicos: recomendación de ropa, multimedia, etc. Modelos profundos generativos para recomendación.

MES 4 Principalmente presentaciones de alumnos.

Código de Honor

Este curso adscribe el Código de Honor establecido por la Escuela de Ingeniería el que es vinculante. Todo trabajo evaluado en este curso debe ser propio. En caso de que exista colaboración permitida con otros estudiantes, el trabajo deberá referenciar y atribuir correctamente dicha contribución a quien corresponda. Como estudiante es su deber conocer la versión en línea del Código de Honor

Evaluaciones

Detalles de las evaluaciones en esta presentacion.

Tarea 1

El enunciado de la tarea 1 ya fue publicado, el deadline es el 6 de septiembre. El enunciado en PDF se puede revisar en este link

Al final de las primeras 4 semanas, las(los) estudiantes implementarán mecanismos de recomendación para predecir ratings y para rankear items en un dataset que se entregará durante clases. Usarán la biblioteca pyreclab para los métodos básicos, pero si quieren optar a la nota máxima debe hacer un sistema híbrido o contextual que utilice información de contenido, como texto o imágenes.

Lecturas: Blog y Presentación

Fecha de revisión de blogs: El post de la semana x, tiene fecha de entrega el lunes a las 12pm de la semana x+2. Ejemplo: Las lecturas de la semana 1 se entregan a más tardar el lunes 19 de agosto de 2019 a las 12pm.

Cada Alumno tendrá un blog donde escribirá sus comentarios respecto de los papers indicados como obligatorios. No es necesario hacer un resumen del paper, sino indicar puntos que pueden abrir discusión, mejoras o controversias: Evaluación inadecuada, parámetros importantes no considerados, potenciales mejoras de los algoritmos, fuentes de datos que podían mejorar los resultados, etc.

Adicionalmente, cada alumno presentará al menos una vez durante el semestre un paper sobre un tópico, con el objetivo de abrir una discusión sobre el tema durante la clase.

Proyecto Final Durante Septiembre, las(los) estudiantes enviarán una idea de proyecto final, la cual desarrollarán durante Octubre y Noviembre. Enviarán un informe de avance a fines de octubre, para hacer una presentación de su proyecto al final del curso (fines de Noviembre.)

Agenda Semestral


Semana 1: Introducción

Clases Semana 1

Filtrado colaborativo es la técnica de recomendación más popular, se inventó en XEROX PARC a comienzos de los años 90 y se implementó en el sistema para filtro de correo electrónico Tapestry

Lecturas Semana 1

Lecturas sugeridas semana 1

Semana 2: Factorización Matricial: SVD regularizado, Implicit Feedback CF

La técnica de factorización matricial regularizada para filtrado colaborativo fue una de las principales usadas en el ensemble que permitió ganar el Netflix Prize. La primera implementación fue publicada en un blog post por Simon Funk, por eso se le conoce como FunkSVD.

Clases Semana 2

Lecturas Semana 2

Lecturas sugeridas semana 2

Semana 3: BPR y Evaluación

La técnica de aprendizaje BPR (Bayesian Personalized Ranking) permite mejorar el aprendizaje de vectores latente de usuarios e items al modificar la idea de aprender directamente a partir de interacciones usuario-\(item_i\) \((u,i)\) por la noción de aprender de tuplas usuario-\(item_i\)-\(item_j\), donde el usuario prefiere un item consumido \(i\) por sobre un item no consumido \(j\), \((u,i,j)\).

Clases Semana 3

Lecturas Semana 3

Lecturas sugeridas semana 3

Semana 4: Recomendación Basada en Contenido

La recomendación basada en contenido permite aliviar en parte el problema cold-start. Items nuevos en un dataset pueden ser recomendados incluso si no han sido consumidos aún, ya que su contenido puede parecerse a items ya consumidos.

Clases Semana 4

Lecturas Semana 4

Lecturas sugeridas semana 4

Semana 5: Recomendación Híbrida y Basada en Contexto

Las técnicas híbridas de recomendación permiten combinar técnicas diferentes, ayudando a mejorar las predicciones pues permiten disminuir las debilidades de cada técnica por separado, como el cold-start del filtrado colaborativo o la especialización incremental de las técnicas basadas en contenido.

Clases Semana 5

Lecturas Semana 5

Lecturas sugeridas semana 5

Semana 6: Learning to Rank y Deep Learning I

Lecturas Semana 6

Lecturas sugeridas semana 6

Semana 7: Active Learning y Reinforcement Learning

Esta semana solo hay una clase por fiestas patrias. En la clase se verán dos temas:

Lecturas Semana 7

Semana 8: Trabajo en Propuesta de Proyecto Final

Semana 9: Recomendación Centrada en el usuario

Lecturas Sugeridas

Sugeridas Semana 1

Sugeridas Semana 2

Sugeridas Semana 3

Sugeridas Semana 4

Sugeridas Semana 5

Sugeridas Semana 6