This is the code for a Top-aware Recommender Distillation framework - TRD with Deep Reinforcement Learning. The TRD can absorb the essence of state-of-the-art recommenders to further improve the performance of recommendations at top positions.
- Python 3.6
- Torch (>=1.1.0)
- Numpy (>=1.18.0)
- Pandas (>=0.24.0)
For clarify, we use MovieLens-100k dataset as a example and treat the BPRMF method as the teacher model in the TRD framework.
-
Firstly, we need install the dependent extensions.
python setup.py build_ext --inplace
-
Then we run the code to load the dataset and produce the experiment data. If you want to use other datasets, you can modify the code in
data_generator.py
python data_generator.py
-
Next, we run the code to get the results of the teacher model. More details of arguments are available in help message :
python run_pair_mf_train.py --help
python run_pair_mf_train.py --dataset=ml-100k --prepro=origin
-
Finally, we train the student model and produce the refined recommendation lists on test set. More details of arguments are available in help message :
python run_trd.py --help
python run_trd.py --dataset=ml-100k --prepro=origin --method=bprmf --n_actions=20 --pred_score=0
We refer to the following repositories to improve our code:
- state-of-the-art recommendation algorithms with daisyRec
- DDPG part with RL_DDPG_Recommendation