🎬 1. 系统效果展示

核心功能亮点

  1. 深度学习内核:摒弃传统的矩阵分解,采用 PyTorch 实现何向南教授经典的 NCF (Neural Collaborative Filtering) 架构,利用 Embedding + MLP 捕捉用户复杂的非线性偏好。

  2. 用户性格画像 (User Profiling):利用 Plotly 绘制动态雷达图,直观展示用户的观影偏好(如“热血/冒险”、“感性/浪漫”等)。

  3. 解决冷启动 (Cold Start):独创 “数字孪生 (Digital Twin)” 匹配算法。新用户只需选择几个标签,系统即可在百万级历史数据中找到最相似的“替身用户”,借用其特征向量进行精准推荐。

  4. 多样性策略:引入 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 “数字孪生”冷启动推荐

针对没有历史记录的新用户,系统提供“自定义画像”功能。

  1. 用户输入:“我喜欢科幻、动作,且只看 2015 年后的电影”

  2. 后台算法:全库检索,找到一位打分行为高度一致的资深老用户(数字替身)。

  3. 向量迁移:借用该老用户的 Embedding 向量输入 NCF 模型。

  4. 结果:生成完美的冷启动推荐列表。

4.2 混合检索 (Hybrid Search + AI Ranking)

支持用户进行条件筛选(如年份、关键词),然后利用 AI 模型对筛选结果进行二次打分排序,将符合条件且质量最高的电影排在前面。

📊 5. 实验数据与性能

  • 训练环境:NVIDIA GPU 4090 (CUDA 12.1) 

  • 数据集:MovieLens Latest (采样优化版)

  • 收敛情况:模型采用了 L2 正则化Early Stopping 策略,有效防止了过拟合,在验证集上 Loss 稳定收敛。

📝 6. 总结

本项目实现了一个完整的端到端推荐系统。从数据清洗、模型构建(PyTorch)、到业务逻辑封装(Backend)、再到前端可视化(Streamlit)。 不仅展示了深度学习算法的落地能力,更创新性地加入了用户画像数字孪生功能,极大地提升了系统的交互性和实用性。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐