Official implementation for Breaking the Bottleneck: User-Specific Optimization and Real-Time Inference Integration for Sequential Recommendation.
Wenjia Xie, Hao Wang, Minghao Fang, Ruize Yu, Wei Guo, Yong Liu, Defu Lian, and Enhong Chen. Breaking the Bottleneck: User-Specific Optimization and Real-Time Inference Integration for Sequential Recommendation. In Proceedings of the 31st ACM SIGKDD Conference on Knowledge Discovery and Data Mining V.2 (KDD 2025), pages 3333-3343, Toronto, ON, Canada, 2025.
Paper / Project Page / Citation
PCRec integrates user-specific optimization with real-time inference for sequential recommendation. The repository contains the PCRec model implementation and the trainer plugin needed to run the method in the generative-recommenders-style training stack.
- Focuses on the deployment bottleneck of per-user adaptation in sequential recommendation.
- Integrates user-specific optimization into real-time inference.
- Provides a PCRec sequential model implementation under
pcrec/modeling/sequential/PCRec.py. - Includes a trainer replacement file for the PCRec-simple plugin workflow.
PCRec encodes user histories, performs lightweight user-specific adaptation, and serves recommendations through an inference path designed for real-time use.
.
├── pcrec/modeling/sequential/PCRec.py # PCRec sequential model
├── pcrec/trainer/ # Trainer components
├── train.py # Plugin trainer replacement
├── main.py # Training entry adapted from generative-recommenders
└── docs/ # GitHub Pages project page
PCRec follows the generative-recommenders environment. Install PyTorch and the dependencies required by the upstream training stack, then place this repository's PCRec files into the working tree used for experiments.
Use the same public sequential recommendation data preparation as the underlying generative-recommenders setup. The PCRec-specific code is model and trainer logic; dataset preparation remains in the host training stack.
For the plugin corresponding to PCRec-simple, replace:
generative-recommenders-main/generative_recommenders/trainer/train.py
with this repository's root-level train.py.
Then run the training entry with the target config used by your generative-recommenders experiment:
python main.py --gin_config_file=PATH_TO_CONFIG.gin --master_port=12345The paper's reproduced setting depends on the host generative-recommenders configuration, dataset preprocessing, and GPU environment. Keep the trainer replacement and PCRec model code synchronized when reproducing the KDD 2025 experiments.
pcrec/modeling/sequential/PCRec.pyimplements the PCRec sequence encoder.- The root
train.pyis intended as the trainer replacement mentioned in the original README. - The code imports the upstream
generative_recommenderspackage, so run it inside a compatible checkout or environment.
PCRec targets the inference-time cost of user-specific optimization. The method is designed for sequential recommendation scenarios where personalization must happen quickly.
| Reproducible setting in this repository | Evidence exposed by the release |
|---|---|
| Logged ranking metrics | The trainer reports NDCG@10, HR@10, HR@50, and MRR during evaluation. |
| Full evaluation output | The evaluation code can log NDCG@1/10/50/100/200, HR@1/10/50/100/200/500/1000, and MRR. |
| Integration boundary | PCRec separates model code from the trainer plugin, making it easier to integrate with existing generative-recommendation pipelines. |
| Practical target | The repository focuses on reducing personalization overhead at inference time rather than changing dataset preprocessing. |
The ACM-hosted KDD paper tables are not mirrored in this repository and the publisher PDF was not directly accessible during this pass, so exact benchmark scores are intentionally not restated here. Add the numeric table once an accessible official source or released result artifact is available.
Conclusion: the current README can document the evaluation surface and personalization objective reliably, while avoiding unsupported numeric claims.
- Keep the original plugin instruction visible because it is the most important setup step for users.
- Avoid moving
train.pywithout updating this README and the project page. - If a standalone config is added later, place it under a stable
configs/path and update the Quick Start section.
If you find this repository useful, please cite:
@inproceedings{xie2025breaking,
title={Breaking the Bottleneck: User-Specific Optimization and Real-Time Inference Integration for Sequential Recommendation},
author={Xie, Wenjia and Wang, Hao and Fang, Minghao and Yu, Ruize and Guo, Wei and Liu, Yong and Lian, Defu and Chen, Enhong},
booktitle={Proceedings of the 31st ACM SIGKDD Conference on Knowledge Discovery and Data Mining V.2},
pages={3333--3343},
year={2025},
doi={10.1145/3711896.3736865}
}- First author: Wenjia Xie (no verified public email found from accessible paper sources).
- Repository questions: please open a GitHub issue in this repository.
