Source code for paper: Intent Contrastive Learning for Sequential Recommendation
Motivation:
Users' interactions with items are driven by various underlying intents. These intents are often unobservable while potentially beneficial to learn a better users' preferences toward massive item set.
Model Architecture:
Please cite our paper if you use this code.
@article{chen2022intent,
title={Intent Contrastive Learning for Sequential Recommendation},
author={Chen, Yongjun and Liu, Zhiwei and Li, Jia and McAuley, Julian and Xiong, Caiming},
journal={arXiv preprint arXiv:2202.02519},
year={2022}
}
Python >= 3.7
Pytorch >= 1.2.0
tqdm == 4.26.0
Four prepared datasets are included in data
folder.
To train ICLRec on Sports_and_Outdoors
dataset, change to the src
folder and run following command:
python main.py --data_name Sports_and_Outdoors
The script will automatically train ICLRec and save the best model found in validation set, and then evaluate on test set.
You can directly evaluate a trained model on test set by running:
python main.py --data_name Sports_and_Outdoors --model_idx 0 --do_eval
We provide a model that trained on Sports_and_Games dataset in ./src/output
folder. Please feel free to test is out.
- Transformer and training pipeline are implemented based on S3-Rec. Thanks them for providing efficient implementation.