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=... - 返回基于用户行为的个性化推荐列表;当用户行为不足时走冷启动逻辑(如热门/最新/类别偏好)。
- 新增/扩展推荐 API:
数据/模型产物
-
新增训练脚本:
train_two_tower.py -
训练产物输出到:
backend/app/services/model_data/two_tower_model.pth(模型权重)recall_data.pkl(召回所需索引/映射/向量等数据)
-
建议在 Docker 环境中将
model_data持久化挂载,避免容器重建导致模型文件丢失。
兼容性与行为变化
-
推荐模块从“纯规则/协同过滤”为主,升级为“双塔召回 + 原排序策略融合”的流程:
- 先召回候选(向量相似度 TopK)
- 再结合现有热度/协同过滤/规则做融合排序(保持原有可解释性与稳定性)
-
对现有数据库结构无强制变更;推荐依赖
action_logs行为日志用于构建用户向量/偏好。
部署与运行提示
-
首次使用需执行训练:
- 安装依赖:
pip install -r requirements.txt - 下载并放置 MovieLens 数据集到指定目录
- 运行训练:
python train_two_tower.py - 启动服务:
python run.py或docker compose up -d --build
- 安装依赖:
-
训练完成后重启后端以加载最新模型文件。