# GR_workspace **Repository Path**: linghu6p/GR_workspace ## Basic Information - **Project Name**: GR_workspace - **Description**: No description available - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-08-15 - **Last Updated**: 2025-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GR_workspace GR_workspace 是[腾讯广告大赛](https://algo.qq.com/)代码的离线版本,处理用户-物品交互数据并进行推荐任务。该项目包含数据处理、模型定义以及训练脚本。 ## 项目结构 主要文件如下: ### **`code_original/`文件夹是比赛平台的官方代码** - `dataset.py`:定义了数据集类 `MyDataset` 和 `MyTestDataset`,负责加载和处理用户行为数据以及特征信息。 - `main.py`:项目入口,包含参数解析函数 `get_args()`。 - `model.py`:定义了基础模型 `BaselineModel` 及其组件(如 `FlashMultiHeadAttention` 和 `PointWiseFeedForward`)。 - `model_rqvae.py`:包含 RQ-VAE 模型的定义,用于特征的量化和重建。 - `run.sh`:可能是用于运行训练或测试的脚本,但未提供具体代码。 ### `src/`存储了`readme.md`中一些图片 ### `code_zqy`、`code_lhjx`和`code_yyt`是团队成员各自的工作区 ### `code_local`存放了在本地训练时可行的代码(`run.sh`、`main.py`、`dataset.py`和`model.py`),本地环境参数配置在`run.sh`中,`model.py`修改了`attn_mask`的逻辑,`dataset.py`修改了加载数据集的逻辑。 ### **`code_0813_v0.1/`文件夹是0813的v0.1版本代码** 主要修改如下: - `main.py`: 增加了TensorBoard的监控数据; - `model.py`: 增加了print_feat_stats()函数监控训练过程中一些变量的数值; 其中,TensorBoard的监控数据会在平台路径的 **【模型训练】->【实例】->【产出】** 中看到: ![tensorboard面板](src/tensorboard%E9%9D%A2%E6%9D%BF.png) 而在代码中``print_feat_stats()`打印的变量会在 **【模型训练】->【实例】->【日志】** 中看到。 ## 主要功能 - **数据处理**:通过 `MyDataset` 类处理用户行为序列和特征数据,支持缺失特征填充和数据增强。 - **模型定义**:包含推荐系统的基础模型和 RQ-VAE 模型,适用于多任务学习场景。 - **特征嵌入管理**:支持特征嵌入的保存和加载,便于后续推理或迁移学习。 ## 安装和使用 ### 依赖项 该项目依赖以下库: - PyTorch - torch.utils.data - 其他常规 Python 科学计算库(如 NumPy) 确保已经安装这些依赖项,可以使用以下命令: ```bash pip install torch numpy ``` ### 运行项目 使用 `run.sh` 运行训练或测试任务。例如: ```bash bash run.sh ``` 脚本可能包含具体的训练参数和日志配置。请检查脚本内容以了解其详细用法。 ### 数据集 项目使用自定义的 `MyDataset` 类来处理数据。数据格式和目录结构需符合以下要求: - 数据目录包含用户和物品行为序列。 - 特征统计信息(如特征类型、数量)需作为参数传入。 ### 模型 - `BaselineModel`:基于 Transformer 的推荐模型,包含注意力机制和前馈网络。 - `RQVAE`:基于矢量量化变分自编码器(VQ-VAE)的特征编码器,用于特征的离散化和重建。 ## 代码特点 - 支持多任务学习,包含正负样本采样逻辑。 - 提供了特征嵌入的保存和加载工具。 - 使用 KMeans 和 RQ(Residual Quantization)技术进行特征压缩和语义编码。 ## 贡献 欢迎提交 Pull Request 或提出 Issues。请确保遵循项目的代码规范并提供必要的文档。 ## 许可证 该项目遵循 Apache2.0 许可证。详细信息请查看 `LICENSE` 文件。 ## 实验结果 在taiji平台的实验结果汇总到该网站:[广告大赛实验结果汇总](https://www.notion.so/24d0f402cc6e803eb9bbfd8038872d5c?source=copy_link)