COMP40320 Recommender Systems

Academic Year 2016/2017

Recommendation technologies have become an important part of our online experiences, helping us to discover books, movies, and music that are relevant to our likes and preferences. So much so, in fact, that recommender systems are now a fundamental component of most ecommerce platforms, streaming services, and other content sites. At their core recommender systems operate by learning about the likes and dislikes of individuals and groups of users so that they may proactively tailor content for these users.

In this course we will cover the fundamentals of recommender systems technologies including the main approaches to building and evaluating recommender systems (content-based vs collaborative filtering vs hybrid approaches) as well as a variety of more advanced topics, from generating diverse and novel recommendations to explaining recommendations to coping with malicious users.

This module will be assessed by continuous assessment only which will take the form of a number of practical projects and reports related to the development of recommender systems technologies.

Please note that proficiency in the Java Programming Language is required.

Show/hide contentOpenClose All

Curricular information is subject to change

Learning Outcomes:

Learning outcomes:

- Students will understand the typical recommender system architecture and recommendation tasks.

- Students will understand core algorithms driving common recommender systems including the pros and cons of each.

- Students will learn about different approaches to evaluating recommender systems, using a variety of metrics and methodologies.

- Students will also learn about more contemporary recommender systems research covering a variety of more advanced topics including opinion mining, explanation, alternative ranking strategies, robustness etc.

- Students will build and evaluate their own recommender systems during the course of the module.

Student Effort Hours: 
Student Effort Type Hours
Lectures

24

Practical

22

Autonomous Student Learning

150

Total

196

 
Requirements, Exclusions and Recommendations
Learning Requirements:

Proficiency in the Java Programming Language is required.



 
Description % of Final Grade Timing
Continuous Assessment: Practical coding project and report (foundational and advanced topics)

50

Throughout the Trimester
Continuous Assessment: Paper (foundational and advanced topics)

50

Varies over the Trimester

Compensation

This module is not passable by compensation

Resit Opportunities

In-semester assessment

Remediation

If you fail this module you may resit or retake the next time the module is offered

Name Role
Professor Barry Smyth Lecturer / Co-Lecturer
Mrs Nina Hagemann Tutor