A PaddlePaddle implementation of Self-Attentive Sequential Recommendation.
论文:Self-Attentive Sequential Recommendation
| Datasets | Metrics | Paper's | Ours | abs. improv. |
|---|---|---|---|---|
| MovieLens-1m | HIT@10 | 0.8245 | 0.8255 | 0.0010 |
| MovieLens-1m | NDCG@10 | 0.5905 | 0.5947 | 0.0042 |
- Python >= 3
- PaddlePaddle >= 2.0.0
- see
requirements.txt
本次实验中,我们采用了原作者处理后的数据集,剔除了活动次数少于 5 的用户记录,清洗后格式后<user id, item id>,以user id为第一关键字、time为第二关键字排序。
bash train.sh将模型分别放置于 output 目录下,如下运行 eval bash 脚本即可测试模型。
bash eval.sh可以得到如下结果:
模型在 200 epochs 左右收敛,继续训练性能会有小幅提升。
- 原文中的
LayerNorm层为MultiHeadAttention和Point-wise FFN的前置,实验证明后置模型性能更优,这也与Transformer原始架构相符。 - 原文优化器为
Adam,使用AdamW获得了更好的收敛效果。
@misc{kang2018selfattentive,
title={Self-Attentive Sequential Recommendation},
author={Wang-Cheng Kang and Julian McAuley},
year={2018},
eprint={1808.09781},
archivePrefix={arXiv},
primaryClass={cs.IR}
}


