云计算百科
云计算领域专业知识百科平台

基于 PyTorch + NCF 的深度学习个性化电影推荐系统

🎬 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)。 不仅展示了深度学习算法的落地能力,更创新性地加入了用户画像和数字孪生功能,极大地提升了系统的交互性和实用性。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 基于 PyTorch + NCF 的深度学习个性化电影推荐系统
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!