Recommendation System


Objectives
The goal of this project is to develop an automatic system capable of recommending similar products to a user based on the currently displayed product and, possibly, other information (past purchasing history, personal information, etc).

Example
One great example of what is desired is the Netflix challenge, where contestants had to predict movie ratings (from 1 to 5 stars).

Description
The aim is to implement a recommendation system using machine learning techniques. Using a set of data where users give a score to products (such as movie ratings on Netflix), one can start filling a matrix with size (number of products) by (number of users). However, since each user only scores some products, there are many entries of this matrix which are unknown. In this project, you will use a technique known as collaborative filtering (which is based on the idea that “similar users like similar products”) to predict what these unknown entries should be.

Requisites
There are no mandatory requisites. Some programming experience (in languages like C/C++, Java, Python, Matlab, etc) is preferred.

Expected result
At the end of the project, the student should have created a recommendation system.

References
B. Sarwar, G. Karypis, J. Konstan and J. Riedl, "Item-based collaborative filtering recommendation algorithms," in Proceedings of the Tenth International Conference on the World Wide Web (WWW 10), pp. 285-295, 2001.
Luo Si and Rong Jin. (2003). "Flexible Mixture Model for Collaborative Filtering" In Proceedings of the Twentieth International Conference on Machine Learning. Washington, DC USA. (ICML)