Machine Learning · Recommendation Systems

Building a Recommendation Model

Vrije Universiteit Amsterdam · Course: Machine Learning

Built a recommendation model to predict which anime an individual user is likely to enjoy, using machine learning techniques.


Working in a group with fellow students, we built a recommendation model to predict which anime an individual user is likely to enjoy. Two distinct models were developed and evaluated: Matrix Factorization (including a Non-Negative variant) and Neural Collaborative Filtering (NCF), each leveraging different techniques to capture user preferences and item features.

My contribution

I implemented and tested both the Matrix Factorization and Non-Negative Matrix Factorization algorithms. These techniques decompose the user-item interaction matrix into lower-dimensional matrices that capture latent features such as preferences, with the non-negative variant constraining all elements of the factor matrices to be non-negative. Through iterative optimisation such as stochastic gradient descent, the algorithm learns embeddings that minimise reconstruction error, with early stopping to prevent overfitting.

Both algorithms were trained on clustered and unclustered data to compare performance: as expected, the models performed noticeably better on clustered data, with lower error and substantially shorter training times.

Convergence rate graphs for Matrix Factorization and Non-Negative Matrix Factorization

Notable findings

The NCF model outperformed both the Matrix Factorization and Non-Negative Matrix Factorization variants, showing lower mean squared error (MSE) and root mean squared error (RMSE), along with the fastest convergence of the three. These results suggested that the NCF model was a promising approach for recommendation systems in similar contexts.