本项目为AIC-2025图书馆预测推荐赛道代码仓库,竞赛成绩为国赛二等奖。本仓库基于 RecBole 框架实现推荐系统训练、评测与提交文件生成流程。项目包含原始数据预处理、RecBole 数据集构建、模型训练、结果生成等完整步骤。
.
|-- csv_data/ # 原始数据及部分中间处理文件
|-- dataset/ # RecBole 格式数据集
|-- generated/ # 生成的最终提交文件
|-- log/ # 模型训练日志
|-- log_tensorboard/ # TensorBoard 日志目录
|-- saved/ # 训练好的模型 checkpoint
|-- config_bpr_pre/ # 训练配置
|-- config_bpr_semi/ # 训练配置
|-- config_bpr_final/ # 训练配置
|-- generate_submission.py # 用于生成提交文件的脚本
|-- utils.ipynb # 数据预处理 Notebook
|-- train.sh # 启动训练的脚本
|-- generate.sh # 生成提交文件的脚本
请确保已安装 Python 版本 ≥ 3.8。
pip install -r requirements.txt项目的原始数据文件位于 csv_data/ 目录中。对原始数据进行划分并将其转换为 RecBole 所需数据格式,请运行:
- 打开并运行
utils.ipynb - Notebook 会生成 RecBole 需要的
dataset/目录结构
如果希望训练新的模型,运行:
bash train.sh说明:
- 训练脚本会自动加载预设 config(如 config_bpr_pre/、config_bpr_final/)
- 训练完成的模型保存在
saved/中 - 训练日志会保存到
log/和log_tensorboard/中
如需修改训练配置,请编辑对应目录下的 .yaml 文件。
生成提交文件前,请确保:
- 已训练完成一个模型 checkpoint(保存在
saved/中) generate.sh中的 checkpoint 路径已正确修改,例如:
--model_file saved/BPR-Nov-21-2025_18-57-05.pthbash generate.sh运行后,结果将输出到 generated/ 目录。
-
安装依赖
pip install -r requirements.txt
-
数据预处理
- 运行
utils.ipynb,生成 RecBole 数据格式
- 运行
-
训练模型(若使用预训练权重,跳过此步)
bash train.sh
-
生成提交文件
- 修改
generate.sh中的 checkpoint 路径
bash generate.sh
- 修改