Skip to content

v1.7.0

Latest

Choose a tag to compare

@RogerYet RogerYet released this 26 Dec 18:33
· 3 commits to main since this release

Release Notes — 双塔召回推荐(Two-Tower Recall)功能上线


新增功能

  • 双塔召回模型(Two-Tower / Dual-Encoder)

    • 引入用户塔与物品塔向量化表示,基于向量相似度进行候选视频召回。
    • 支持使用 MovieLens(ml-latest-small) 进行离线训练与效果验证,生成可部署的召回模型文件。
  • 召回服务模块

    • 新增召回服务 recall_service.py(或同等模块),提供 TopK 候选召回能力。
    • 应用启动时自动加载召回模型(启动日志提示 “Recall model loaded successfully.”)。
  • 推荐接口

    • 新增/扩展推荐 API:GET /api/recommend/home?user_id=...
    • 返回基于用户行为的个性化推荐列表;当用户行为不足时走冷启动逻辑(如热门/最新/类别偏好)。

数据/模型产物

  • 新增训练脚本:train_two_tower.py

  • 训练产物输出到:backend/app/services/model_data/

    • two_tower_model.pth(模型权重)
    • recall_data.pkl(召回所需索引/映射/向量等数据)
  • 建议在 Docker 环境中将 model_data 持久化挂载,避免容器重建导致模型文件丢失。


兼容性与行为变化

  • 推荐模块从“纯规则/协同过滤”为主,升级为“双塔召回 + 原排序策略融合”的流程:

    • 先召回候选(向量相似度 TopK)
    • 再结合现有热度/协同过滤/规则做融合排序(保持原有可解释性与稳定性)
  • 对现有数据库结构无强制变更;推荐依赖 action_logs 行为日志用于构建用户向量/偏好。


部署与运行提示

  • 首次使用需执行训练

    1. 安装依赖:pip install -r requirements.txt
    2. 下载并放置 MovieLens 数据集到指定目录
    3. 运行训练:python train_two_tower.py
    4. 启动服务:python run.pydocker compose up -d --build
  • 训练完成后重启后端以加载最新模型文件。