基于论文作者的TensorFlow实现进行修改,转换为PyTorch(v1.6)以简化代码,修复了诸如位置嵌入使用等问题(使其更难过拟合,不过在推荐系统中,个性化有时等同于过拟合)。
训练命令:
python main.py --dataset=ml-1m --train_dir=default --maxlen=200 --dropout_rate=0.2 --device=cuda
仅推理命令:
python main.py --device=cuda --dataset=ml-1m --train_dir=default --state_dict_path='ml-1m_default/SASRec.epoch=1000.lr=0.001.layer=2.head=1.hidden=50.maxlen=200.pth' --inference_only=true --maxlen=200
每次运行的输出略有不同,因为负样本是随机采样的。以下是我连续两次运行的输出:
第1次运行 - 测试 (NDCG@10: 0.5897, HR@10: 0.8190)
第2次运行 - 测试 (NDCG@10: 0.5918, HR@10: 0.8225)
详细介绍和更完整的README请查看论文作者的仓库,以下是论文的参考文献格式:
@inproceedings{kang2018self,
title={Self-attentive sequential recommendation},
author={Kang, Wang-Cheng and McAuley, Julian},
booktitle={2018 IEEE International Conference on Data Mining (ICDM)},
pages={197--206},
year={2018},
organization={IEEE}
}
最近我看到这个仓库有十几次引用🫰,如有需要,以下是仓库的参考文献格式:
@software{Huang_SASRec_pytorch,
author = {Huang, Zan},
title = {PyTorch implementation for SASRec},
url = {https://github.com/pmixer/SASRec.pytorch},
year={2020}
}