本项目为高质量毕业设计作品,旨在通过探究异构图表示学习和推荐算法中的图神经网络技术,提供了相关理论分析及其实现代码。
【资源说明】
1. 该资源包含项目的全部源码,下载后可以直接使用!
2. 此项目适合作为计算机、数学、电子信息等相关专业的课程设计、期末大作业或毕业设计参考。
3. 若将其作为参考资料,在实现其他功能时需要能够理解代码并热爱钻研,自行调试。
基于图神经网络的异构图表示学习和推荐算法研究源码(高分毕设)
## 目录结构
```plaintext
GNN-Recommendation/
gnnrec/ 算法模块顶级包
hge/ 异构图表示学习模块
kgrec/ 基于图神经网络的推荐算法模块
data/ 数据集目录(已添加.gitignore)
model/ 模型保存目录(已添加.gitignore)
img/ 图片目录
academic_graph/
rank/
manage.py Django管理脚本
```
## 安装依赖
Python 3.7
### CUDA 11.0
```shell
pip install -r requirements_cuda.txt
```
### CPU
```shell
pip install -r requirements.txt
```
## 异构图表示学习
基于对比学习的关系感知异构图神经网络(Relation-aware Heterogeneous Graph Neural Network with Contrastive Learning, RHCO)

实验详情见 [readme](gnnrec/hge/readme.md)
## 基于图神经网络的推荐算法
基于图神经网络的学术推荐算法(Graph Neural Network based Academic Recommendation Algorithm, GARec)

实验详情见 [readme](gnnrec/kgrec/readme.md)
## Django配置
### MySQL数据库配置
1. 创建数据库及用户
```sql
CREATE DATABASE academic_graph CHARACTER SET utf8mb4;
CREATE USER academic_graph@% IDENTIFIED BY password;
GRANT ALL ON academic_graph.* TO academic_graph@%;
```
2. 在根目录下创建文件.mylogin.cnf
```ini
[client]
host = x.x.x.x
port = 3306
user = username
password = password
database = database
default-character-set = utf8mb4
```
3. 创建数据库表
```shell
python manage.py makemigrations --settings=academic_graph.settings.prod rank
python manage.py migrate --settings=academic_graph.settings.prod
```
4. 导入oag-cs数据集
```shell
python manage.py loadoagcs --settings=academic_graph.settings.prod
```
注:由于导入一次时间很长(约9小时),为了避免中途发生错误,可以先用data/oag/test中的测试数据调试一下
### 拷贝静态文件
```shell
python manage.py collectstatic --settings=academic_graph.settings.prod
```
### 启动Web服务器
```shell
export SECRET_KEY=xxx
python manage.py runserver --settings=academic_graph.settings.prod 0.0.0.0:8000
```