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.