We are overloaded with information. Trying to choose a restaurant? a resort? a consumer product? In these and similar situations, there is generally much more information available than is possible to cope with. Recommendation systems help users overcome the information overload problem by discovering and interpreting the infomation that best fulfills their needs. How exactly this can be done is a complex problem that requires a multidisciplinary approach that includes data engineering and data mining, software engineering, user modeling, and user experience design.

This course will help you learn about recommendation systems through a project-based approach that will follow a software development process based on current open-source practices. The entire course is structured around the development of a single recommendation system for consumer products using a large, real-life database made available by a non-profit organization.

Learning Outcomes and Prerequisites

This course is intended to provide you with knowledge and experience in three different areas:

Prerequisites: To take this course, you will need (a) software development knowledge equivalent to the topics covered in COMP 303; (b) a basic knowledge of data mining concepts; (c) to be comfortable with the use of open-source tools and programming technologies.

Course Resources

All required resources are freely available on-line if you access these links from the McGill domain.

Course Work and Evaluation

The course work will consist of (a) contributing to the project, including designing and conducting evaluative experiments; (b) reading and studying complementary background documents, including research papers, and doing one or more class presentation(s) on your readings; (c) reporting on the project both in written and oral form.

All students will work on a single project (or two competing projects, depending on the size of the class). However, all evaluations will be based on individual deliverables. The final grade will be based on:

Course Topics

The detailed course schedule and associated readings can be found on the mycourses pages. Classes for the week of the 17 February will be replaced by individual progress meetings.

Week ofTopics
7 JanIntroduction to Recommendation Systems; Types of Recommendation Systems
14 JanData Exploration, Visualization, and Mining
21 JanCollaborative Recommendation
28 JanContent-Based Recommendation
4 FebKnowledge-Based Recommendation
11 FebExplanations
18 FebNo class - Progress Meetings
25 FebUser Profiles and Personalization
4 MarNo class - Study Break
11 MarEvaluating Recommender Systems
18 MarInformation Recommenders
25 MarTrust and Privacy
1 AprThreats and Limitations
8 AprFinal presentations