Recommender System for MovieLens 1M Dataset

Prerequisites

  • Python 3
  • CPU or NVIDIA GPU + CUDA CuDNN

Getting started

  • Clone this repo:
git clone https://github.com/yilmazgencc/Recommender_System.git
cd Recommender_System
  • Install Tensorflow and other dependencies via

  • For Conda users, you can create a new Conda environment using conda env create -f environment.yml.

  • For pip users, please type the command pip install -r requirements.txt.

  • Train the recommender model via ready2use_Colab_nb.ipynb notebook on Google Colab

  • Train the recommender model with default parameters:

python train.py
  • Train the recommender model with custom parameters:
python train.py --model $MODEL  --opt $OPTIMIZER  --embedding_dim $EMBEDDING_DIMENSION --epochs $EPOCH_NUMBER 
--batch_size $BATCH_SIZE --lr $LEARNING_RATE --dropout $DROPOUT_RATE
  • The list arguments is as follows:
  • --model: Designed neural network(NN) and confusion matrix(CF) available default="NN"
  • --opt: Available optimizer for training( "Adam", "SGD", "RMSprop", "Adagrad") default="Adam"
  • --embedding_dim:Embedding layer dimension default=64
  • --epochs: Epoch number for training default=25
  • --batch_size: Batch size selection default=1024
  • --lr:Learning rate for training default=1e-4
  • --dropout: Droput rate for NN default=0.4
  • --seed: Random seed number default=123
  • --use_deterministic: Seed activation option default="store_true"
  • --specific_user: Specific user pretiction option activation default="store_true"
  • --user_id: Specific user ID for prediction
  • --train_test_split: Train and test split ratio for training default=0.8

Results and Figures

Results:

NN with 2 layers lr:1e-4

  • best validation loss: 0.7714
  • best validation rmse: 0.8783

|

CF with lr:3e-4

  • best validation loss: 0.7403
  • best validation rmse: 0.8604

|

Issues

  • Please report all issues on the public forum.