This is a series of Boltzmann Machines models for Collaborative Filtering implemented in PyTorch, TensorFlow, and Keras.
Here are the 3 different models:
- Restricted Boltzmann Machines (paper)
- Explainable Restricted Boltzmann Machines (paper)
- Neural Autoregressive Distribution Estimator (paper)
You can download the MovieLens-1M dataset from this folder.
To run the Restricted Boltzmann Machines model:
python RBM-CF-PyTorch/train.py
To run the Explainable Restricted Boltzmann Machines model:
python Explainable-RBM-CF-TensorFlow/main.py
To run the Neural Autoregressive Distribution Estimator model:
python NADE-CF-Keras/run.py
Here are the results for all three models after 50 epochs of training:
Model | RMSE | Runtime |
---|---|---|
RBM | 0.590 | 10m56s |
Explainable RBM | 0.3116 | 1m43s |
NADE | 0.920 | 90m45s |
- Explainable RBM model has the lowest RMSE and shortest training time.
- NADE, on the other hand, has the highest RMSE and longest training time.