Movies Recommendation System

Recommendation systems are used in a variety of fields such as media, marketing, content, social media and more. These systems are designed to recommend new items based on preferences or past interactions.

There are three main approaches of recommendation systems:

  • Content based – based on the similarity between the characteristics of the different items.
  • Collaborative filtering – based on the interactions between users and items (divided to used-based and item-based).
  • Hybrid – combines the previous two approaches.

In this project we created our own movie recommendation systems, based on different algorithms, and compared their structure, advantages, the process of parameters tuning and results. The purpose of our recommendation systems is to predict the rating that the user would give to some movie he hasn’t watched before, only based on preliminary information we have.

In this project we used the movielens-100k dataset. It contains 100k ratings (user ID, movie ID and rating in the range of 1-5) from different 943 users and 1682 movies, and also demographic information for the users and information about the movies (including genre).

In our recommendation systems we used three different datasets:

  • Vanilla dataset – contains only user_id, movie_id and rating.
  • Demographic dataset – we added to the Vanilla dataset the user’s demographic information (age, gender, occupation).
  • Full expanded dataset – we added to the Demographic dataset the genre of the movie.

We chose to implement and compare six different algorithms in this project – Linear regression, SVD, KNN, XGBOOST, Ensemble and Neural network.

As part of the parameters tuning process, we used different search algorithms such as grid search, genetic algorithm and also used learning curves for manual tuning.

In order to evaluate the results, we measure the MAE and inference time of each algorithm using a mean of 30 different trainings.

The best result achieved was of SVD algorithm, with MAE of  on the Vanilla dataset. Contrary to our expectations, the Neural Network achieved only the fourth best result (after KNN and ensemble): . We believe that if we keep tune the neural network parameters, we can achieve better results than SVD, basing on our preliminary research about neural networks.

The advantages of classic algorithm such as SVD over Neural Network are that it is easier to use and tune, and the running time of the algorithm is much faster.

The advantage of using the vanilla dataset is that the only information needed for the predictions is the interactions (ratings) between users and movies. This saves unnecessary work such as information gathering, pre-processing and computations, and prevents overfitting by maintaining a simple model.