🎬 1. 系统效果展示

核心功能亮点
深度学习内核:摒弃传统的矩阵分解,采用 PyTorch 实现何向南教授经典的 NCF (Neural Collaborative Filtering) 架构,利用 Embedding + MLP 捕捉用户复杂的非线性偏好。
用户性格画像 (User Profiling):利用 Plotly 绘制动态雷达图,直观展示用户的观影偏好(如“热血/冒险”、“感性/浪漫”等)。
解决冷启动 (Cold Start):独创 “数字孪生 (Digital Twin)” 匹配算法。新用户只需选择几个标签,系统即可在百万级历史数据中找到最相似的“替身用户”,借用其特征向量进行精准推荐。
多样性策略:引入 Candidate Pool Sampling 机制,拒绝千篇一律的推荐结果,保证每次刷新都有惊喜 (Serendipity)。
🛠️ 2. 技术栈与架构
-
开发语言:Python 3.10
-
深度学习框架:PyTorch (GPU/CPU 自动适配)
-
前端可视化:Streamlit + Plotly + Pandas
-
数据集:MovieLens (ml-latest) 千万级数据清洗
🧠 NCF 模型架构图
本项目模型结构如下:
-
Input Layer: 接收 User ID 和 Movie ID。
-
Embedding Layer: 将稀疏 ID 映射为 32维 稠密向量。
-
Interaction Layer: 使用多层感知机 (MLP) 替代点积,提取高阶特征交互。
-
Output Layer: 输出预测评分 (Rating Prediction)。
📂 3. 项目工程结构
本项目采用模块化 (Modular) 设计,符合软件工程规范,解耦清晰:
DeepRec_System/
├── result/ # [产物] 存放训练好的模型与元数据
│ ├── ncf_model.pth # PyTorch 模型权重
│ ├── meta_data.pkl # ID 映射字典
│ └── loss_curve.png # 训练 Loss 曲线图
├── movies.csv # 电影元数据 (标题、流派)
├── model_def.py # [核心] NCF 神经网络定义
├── backend.py # [业务] 推荐逻辑、数字孪生算法、画像生成
├── app.py # [前端] Streamlit 交互界面
└── train.py # [训练] 模型训练脚本 (支持服务器多卡训练)
🚀 4. 核心功能详细演示
4.1 “数字孪生”冷启动推荐
针对没有历史记录的新用户,系统提供“自定义画像”功能。
用户输入:“我喜欢科幻、动作,且只看 2015 年后的电影”。
后台算法:全库检索,找到一位打分行为高度一致的资深老用户(数字替身)。
向量迁移:借用该老用户的 Embedding 向量输入 NCF 模型。
结果:生成完美的冷启动推荐列表。
4.2 混合检索 (Hybrid Search + AI Ranking)
支持用户进行条件筛选(如年份、关键词),然后利用 AI 模型对筛选结果进行二次打分排序,将符合条件且质量最高的电影排在前面。
📊 5. 实验数据与性能

-
训练环境:NVIDIA GPU 4090 (CUDA 12.1)
-
数据集:MovieLens Latest (采样优化版)
-
收敛情况:模型采用了 L2 正则化 与 Early Stopping 策略,有效防止了过拟合,在验证集上 Loss 稳定收敛。
📝 6. 总结
本项目实现了一个完整的端到端推荐系统。从数据清洗、模型构建(PyTorch)、到业务逻辑封装(Backend)、再到前端可视化(Streamlit)。 不仅展示了深度学习算法的落地能力,更创新性地加入了用户画像和数字孪生功能,极大地提升了系统的交互性和实用性。
网硕互联帮助中心





评论前必须登录!
注册