Skip to content

Keras implementation of Neural Autoregressive Distribution Estimator for Collaborative Filtering

License

Notifications You must be signed in to change notification settings

JoonyoungYi/CFNADE-keras

 
 

Repository files navigation

CFNADE-keras

Paper Description

  • Paper: "A Neural Autoregressive Approach to Collaborative Filtering" LINK
  • Unofficial Slide: LINK
  • Keras implementation of CF-NADE.
  • The CFNADE is the model applying NADE model to the collaborative filtering problem. NADE is the modified version of the auto-encoder to estimate probabilistic distribution.

Limitation

  • This repository only works with Movielens 1M data.
  • This repository force you to use "tensorflow" backend.

How to run

  • I used python3.
git clone git@github.com:JoonyoungYi/CFNADE-keras.git
cd CFNADE-keras
virtualenv .venv -p python3
. .venv/bin/activate
pip install -r requirements.txt
python data_prep.py
python run.py

Performance

Setting 1.

  • default setting.
--hidden_dim=250
  • 1st Attempt.
training set RMSE for epoch 29 is 0.858837
validation set RMSE for epoch 29 is 0.872606
Testing...
test set RMSE is 0.820515
  • 2nd Attempt.
training set RMSE for epoch 29 is 0.882864
validation set RMSE for epoch 29 is 0.874668
val_nade_loss_loss: 0.0000e+00
Testing...
test set RMSE is 0.823059
  • 3rd Attempt.
training set RMSE for epoch 29 is 0.868767
validation set RMSE for epoch 29 is 0.874799
Testing...
test set RMSE is 0.824332

Setting 2.

--hidden_dim=500
  • 1st Attempt.
training set RMSE for epoch 29 is 0.844765
validation set RMSE for epoch 29 is 0.873419
Testing...
test set RMSE is 0.793768

Repository History

About

Keras implementation of Neural Autoregressive Distribution Estimator for Collaborative Filtering

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%