Collaborative filtering for canteen food recommendations in NTU - Goh, Shing Ling (Nanyang Technological University, 2021)
A recommender system aims to provide users with personalised recommendations to handle the increasing online information overload problem. Many recommendation algorithms have been proposed over the years, each with their pros and cons. This project applies the principles and techniques of recommender systems to develop a predictive model for NTU’s canteens and restaurantsrating. It explores different Collaborative Filtering methods, including using Matrix Factorisation and Deep Learning for Collaborative Filtering. In Collaborative Filtering recommender system, user’s preferences are expressed as ratings for each item. The system then finds similar users (user-based) or similar items (item-based) through a similarity matrix to recommend items to users. Each additional rating by the user extends the knowledge of the system and affects the system’s recommendation accuracy. In general, the more ratings are elicited from the users, the more effective the recommendations are. The models were evaluated against 3 benchmark datasets and SVD++, a type of Matrix Factorisation method, was found to be the best performing model with a MAP@10 of 0.755 for user-based recommendations, and 0.707 for item-based recommendations. The model was also proven to perform well with NTU’s own review and search history dataset, scoring MAP@10 of 0.584 for user-based recommendations and 0.457 for item based recommendations. To further improve the accuracy of recommendations, a new model is proposed. Instead of taking top K similar neighbours, only K neighbours above a certain similarity threshold are selected. The model was tested with 0.2, 0.4, 0.6 and 0.8 similarity threshold. Evaluation of the new model showed it performed better at 0.8 threshold with MAP@10 of 0.590 for user-based recommendations and 0.464 for item-based recommendations. In addition to the recommendation function, the map is changed from a previously paid Google Maps to a free OpenStreetMap, built using Leaflet. A forum function is also implemented using Django for users to discuss about the various food options.