All projects

Collaborative filtering from scratch

Matrix factorization and SVD on MovieLens 1M with hand-written SGD and mini-batch optimizers: SVD test RMSE 0.2258 vs. 0.2275 for MF.

Status
Research
Period
2025
Area
Recommender systems
Code
Code public
Stack
  • Python
  • NumPy
  • MovieLens 1M
SVD test RMSE
0.2258
MF test RMSE
0.2275

Problem

Understand collaborative filtering at the level of the optimizer, without a library doing the work.

Approach

I implemented matrix factorization and SVD on MovieLens 1M with hand-written SGD and mini-batch gradient descent optimizers.

Results

SVD reached a test RMSE of 0.2258, versus 0.2275 for matrix factorization.