Files
vscode-workbench/PLANNING/tasks/S-03-推荐引擎v2.md
T

49 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# S-03 · 推荐引擎 v2(多目标 + 兴趣画像)
| 字段 | 值 |
|---|---|
| 项目 | DSP · `Desktop/dsp/dsp`(backend 推荐逻辑 + web feed) |
| 优先级 | P1 · M3 |
| 建议模型 | deepseek-v4.1-flash(主)/ qwen3.8-flash(排序用例复核) |
| 依赖 | S-01(测试基建先绿,推荐回归必须有网) |
| 预估 | 3 天 |
## 一、背景(为什么做)
DSP 架构文档自认推荐是"**简化版:热度 + 时间衰减 + 标签匹配**"(`docs/architecture.md` 对照表),而抖音级产品的推荐是多目标排序(完播/点赞/评论/关注)。现有 `tests/test_ranking.py`(434 行)+ `docs/ranking.md` 已有排序测试与设计底子——在此之上做 v2 是**有测试保护的可控升级**,且直接决定 feed 留存。
## 二、目标(交付物)
1. **多目标信号采集**:完播(播放时长/视频时长)、点赞、评论、收藏、关注——从现有行为表(VideoView/Like/Comment)聚合出行为权重。
2. **兴趣画像(轻量)**:用户对标签(`videos_tag`)的隐式偏好向量(行为加权累积);无画像时回退冷启动(现有逻辑)。
3. **排序公式 v2**:`score = 热度分(多目标加权) × 时间衰减 × 兴趣匹配系数`;参数全部可配置(settings,不硬编码)。
4. **测试**:排序回归扩展(新增多目标与画像用例);A/B 友好的参数快照。(与 S-01 协同,不重复建基建。)
5. 文档:`docs/ranking-v2.md`(公式、参数、回退策略、与 v1 的差异清单)。
## 三、验收标准
- [ ] 多目标权重生效:构造"高完播低赞"与"低完播高赞"视频 → 排序符合配置权重
- [ ] 兴趣画像:用户偏好的标签内容排序提升(确定性用例)
- [ ] 冷启动用户回退 v1 行为(无画像不报错、不空 feed)
- [ ] 所有参数可在 settings 调整并生效
- [ ] 既有 test_ranking 零回归 + 新增 ≥10 用例
- [ ] 性能:feed 接口 P95 延迟不劣化 >20%(附基线对照)
## 四、验收命令(参考)
```bash
cd backend && pytest -q -k ranking
pytest -q # 全量
```
## 五、边界(不许做)
- 不引入 ML 框架(纯统计加权,可控可测)
- 不做实时特征流(批式聚合)
- 不改前端 feed 契约(排序在服务端)
- 不删除现有 ranking 测试(只扩展)
## 六、交接
写 `PROGRESS_S-03.md`(含权重用例输出、性能对照、回退策略证据)。