/UnKD

Primary LanguagePython

UnKD

This is an implemention for our WSDM 2023 paper "Unbiased Knowledge Distillation for Recommendation" based on Pytorch.

Requirements

  • pytorch == 1.8.0
  • Numpy
  • python3
  • pandas == 0.25.0
  • tqdm

Datasets

Data preprocessing through python preprocess_xxx.py

  • Movielens:original data; Data preprocessing code:preprocess_ml1m.py
  • CiteULike:original data; Data preprocessing code:preprocess_cite.py
  • Apps:original data; Data preprocessing code:preprocess_app.py

Parameters

Key parameters in distill_new_api.py:

  • --split_group: The number of divided groups.
  • --sample_num: The number of samples.
  • --recdim: Model dimensions.
  • -- model: MF or LightGCN.
  • --teacher_model: MF or LightGCN.
  • --teacher_dim: Teacher model dimensions.
  • --sampler: Distillation method, such as: UnKD.
  • --datasetpkl: Dataset save location.
  • others: read help, or "python xxx.py --help"

Commands

We provide following commands for our method and baselines.The following two steps are required.

1. Train a teacher model:

  • First, we need to train a teacher model.
    python -u  train_new_api.py   --dataset=Apps  --datasetpkl=$location   --recdim=100  --model=MF  --decay=0.01   --epochs=1000 --lr=0.01  --seed=2022
    

2. Simply Reproduce the Results:

  • Then you can run the following commands to reproduce the results in our paper. Note that the name of the teacher model trained in the previous step needs to be modified in the code...
    python -u  distill_new_api.py   --split_group=4 --sample_num=30   --dataset=Apps   --datasetpkl=$location   --recdim=10  --model=MF  --teacher_model=MF  --decay=0.01   --epochs=1000 --lr=0.01  --seed=2022   --stopflag=ndcg   --teacher_dim=100  --kd_weight=1.0   --sampler=UnKD
    

Citation

If you use our codes in your research, please cite our paper.