# GNN_Rec **Repository Path**: se5/gnn_rec ## Basic Information - **Project Name**: GNN_Rec - **Description**: 算法刷题推荐系统的GNN推荐模块 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 2 - **Created**: 2023-06-23 - **Last Updated**: 2023-12-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 安装文档 ## 项目结构 ```shell |-- gnn_rec ├── README.md ├── config.py ├── cf.py # 协同过滤部分代码 ├── dataloader.py ├── main.py # 主文件,包含test和train以及数据导入导出处理 ├── main_test.py # 部分函数进行单元测试的文件 ├── model.py └── requirements.txt |-- data | ├── oj | ├── oj_interactions.csv # 用户交互数据 | ├── oj_items.csv # OpenJudge平台题目数据 | ├── data.csv ``` ## 环境配置 环境: - python 3.8 - torch 2.0 - Ubuntu 20.04 LTS 使用下面命令安装所需第三方库,需要注意版本兼容性问题 如果pip失败,可以参考https://pytorch-geometric.com/whl/torch-2.0.1%2Bcu118.html安装相关包 ```python pip install -r requirements.txt ``` ## 代码运行流程 ### LightGCN模块 main.py文件为执行训练、推理的主文件,在其中分别调用train和test函数即可 input:oj_interactions.csv文件和oj_items.csv文件 output:包含每个用户id的推荐题目列表。文件格式为每行一个用户ID,后跟n个推荐题目的ID,n可以在config文件中指定 ### 协同过滤模块 input:'data.csv'文件,包含200个用户与题目的交互信息,有三列,分别是problem_id、user_id、total,其中total值为用户在该题上的submit、accepted、failed三个数值之和。 output:包含每个用户id的推荐题目列表。文件格式为每行一个用户ID,后跟10个推荐题目的ID ## 项目参考 - http://web.stanford.edu/class/cs224w/ (斯坦福图神经网络课程) - https://github.com/gusye1234/LightGCN-PyTorch (LightGCN作者 的pytorch 实现) - https://arxiv.org/abs/2002.02126 (LightGCN模型论文) - https://colab.research.google.com/drive/1KKugoFyUdydYC0XRyddcROzfQdMwDcnO?usp=sharing(LightGCN实现)