本项目是一个功能完整的电影推荐系统,采用知识图谱与图神经网络相结合的技术路线,实现了个性化推荐、知识图谱可视化探索、电影对比、用户交互等核心功能。系统使用MovieLens 20M相关数据集,集成多种前沿推荐算法,适合作为推荐系统学习案例或实际项目部署。
知识图谱可视化
– 交互式图谱探索,支持电影搜索、类型筛选
– ECharts可视化展示电影-类型-用户等关系网络
– 可调节节点数量,支持缩放、重置视图
前后端分离架构
– 后端:Django REST Framework,提供规范的RESTful API
– 前端:Vue 3 + Element Plus,响应式设计,毛玻璃UI风格
– 支持用户注册/登录
系统功能清单
– 用户系统:包含注册、登录、个人中心、头像设置功能。
– 电影浏览模块:支持电影列表展示、搜索筛选、热门推荐,以及按类型、年份进行分类筛选。
– 个性化推荐模块:基于LightGCN 、KGCN、Ripplet的双图卷积网络算法实现个性化推荐,并展示推荐结果。
– 知识图谱模块:具备电影知识图谱可视化能力,支持节点交互操作。
– 电影对比模块:可实现多部电影的对比分析功能。
– 评分评论模块:支持电影评分、评论发表以及点赞互动功能。
– 收藏管理模块:包含收藏列表查看、收藏夹管理功能。
– 管理后台模块:涵盖电影管理、用户管理、数据统计三项核心管理功能。
项目结构
movie-recommendation-system/
├── backend/ # Django后端API
│ ├── api/ # 核心API模块(views、models、serializers)
│ ├── movie_backend/ # Django配置
│ └── requirements.txt # Python依赖
├── frontend/ # Vue 3前端
│ ├── src/views/ # 17+页面组件
│ ├── package.json # Node依赖
│ └── dist/ # 构建产物
├── models/ # 推荐模型
│ ├── saved_models/ # 预训练模型(LightGCN、KGCN、RippleNet)
│ ├── lightgcn.py # LightGCN实现
│ └── knowledge_graph.py # 知识图谱构建
├── ml-20m-psm/ # MovieLens数据集
├── setup_database.py # 数据库初始化脚本
├── start_all.bat # 一键启动脚本
├── INSTALL.md # 安装指南
└── DEPLOY.md # 部署文档
运行要求
– Python 3.9+
– Node.js 16+
– MySQL 8.0+
– 内存 4GB+(如若需要重新训练推荐模型需要GPU)
