PyTorch implementations of Regularized SVD, SVD++ and Bayesian SVD++ algorithms for collaborative filtering.
cd src/
python main.py --config ../config.yml
config.yml allows you to change model, as well as other hyperparameters.
Dataset is MovieLens 1M. Dataset split is 8:1:1 and random with seed 42. Performance metric is RMSE between ground truth and predicted ratings. Reported performances reflect the validity of each variant's mathematical modelling. Better evaluation is possible by changing random seed 5 times, and reporting mean RMSEs.
Model | Test RMSE | Best Validation RMSE |
---|---|---|
Baseline: predict train set mean | 1.1164 | - |
Baseline: predict user mean | 1.0369 | - |
Baseline: predict item mean | 0.9809 | - |
Regularized SVD | 0.8595 | 0.8561 |
SVD++ | 0.8492 | 0.8511 |
Bayesian SVD++ |