1. 问题与动机
RECAP 研究的不是“如何用 LLM 写一段更好的用户摘要”,而是更具体的工业问题:在短视频行为持续到达、用户兴趣不断漂移、画像容量有上限的情况下,如何让一个结构化画像在多轮更新后仍然可靠,并直接为后续推荐服务。过去的语义画像方法大多是开环的:它们能流畅地概括历史,却没有被直接优化为“更能匹配未来喜欢的内容”。LangPTune、LettinGo 开始使用下游信号优化文本画像,LIBER、HiT-LBM 改善长历史切分与兴趣提取,但它们没有把原始隐式反馈、流式状态更新和有界内存政策闭成一个环。
论文指出两个实质障碍。第一,LLM 擅长语义抽象,却不擅长在反复更新中维护 span、recency、strength 等数值状态,容易出现跨 chunk 状态跳转错误。第二,直接拿工业排序分数当奖励会混入 ID、热度、上下文和曝光机制;观看与跳过也不等于纯语义喜好。RECAP 因而把问题定义为“有界结构化语义状态的离线闭环优化”,而不是一次性摘要。
2. 方法详解
数据预处理中,每条短视频先由 Qwen3-VL-8B 生成结构化 caption,包含从 25 个闭集类别中选取的 tag 和自由文本描述。有效观看被定义为播放超过 7 秒或完播;每个用户最多保留最新 500 条有效观看,再按时间切成每块最多 50 条的 chunk。第 t 轮更新可写成 P_t=f(C_t,P_{t-1}):模型只看当前 chunk 和上一轮画像,不再重读全历史。
第一个组件是 Structured User Memory。画像是最多 L 个 slot 的集合,每个 slot 包含 topic、description 和不暴露给 LLM 的生命周期字段。LLM 每轮只输出最小 JSON diff:confirmed_interests 用来确认或细化旧兴趣,new_interests 用来提出新兴趣,两者都必须带支持视频索引。新 slot 至少要有 2 条视频支持才能进入内存。确定性状态机执行 Update、Add、Remove,负责衰减、稳定/近期标记、容量淘汰与重复控制。这一分工的核心是“LLM 管语义,规则管状态不变式”。
第二个组件是 Recommendation-Aligned Reward。用户画像文本和视频 caption 分别进入双塔;排序头用 BCE 预测有效观看,对比头用正例和分布式 batch 内负例学习语义间隔,总损失为 L_eval = w_bce L_bce + w_nce L_nce。为降低隐式标签噪声,Qwen3-30B-A3B-Instruct-2507 先对正负视频做随机次序的成对判断,先找高置信负例,再重估正例一致性,仅保留一致性分超过 0.45 的样本。
第三个组件是 GRPO。对每个 chunk 采样 K=8 个语义 diff,通过同一状态机得到候选画像。奖励等于画像—视频匹配奖励,减去非法 JSON、错误引用、过长描述等格式罚项,再减去支持视频高重叠的多样性罚项。组内奖励标准化后使用 clipped surrogate 和相对冻结参考策略的 KL 约束更新。基座是 Qwen3-4B-Instruct-2507;SFT 使用 8K 条 Claude Sonnet 4.5 生成示范;GRPO 训练 80 步,batch size 64,学习率 2.5e-5,LoRA rank 32,KL 系数 0.01。双塔使用 Qwen3-Embedding-0.6B,w_bce=1, w_nce=0.1。论文没有披露优化器和具体硬件型号。
3. 核心技术贡献
- 把用户画像重新定义为可执行的有界内存。 它不要求 LLM 重写全文,而是只生成语义 diff,再由状态机保证生命周期和容量正确。这直接针对长历史方法在多轮继承时的漂移与数值状态错误。
- 从工业隐式日志中构造画像专用语义反馈。 与直接复用生产排序分数不同,RECAP 用 LLM 成对裁判清洗标签,再训练仅依赖画像文本和内容语义的双塔,因此奖励更接近“画像是否解释了用户为什么看”。
- 将 SFT 和清洗反馈 GRPO 分工。 论文的诊断表明,SFT 主要改善历史覆盖与兴趣间去重,GRPO 则改变更新动作和抽象层级。原始反馈会让模型少修改旧兴趣、多产生无支持新兴趣;清洗奖励则促使其生成更有根据、更偏动机层的描述。
4. 实验结果分析
离线数据由两个不相交的 10K 用户集构成:一个用于奖励模型与 GRPO,一个只做最终评估。每个用户画像窗口最多 500 条有效观看,平均 463 条;训练和目标窗口各最多保留 200 个交互。原始策略集约含 164 万物品和 200 万训练对,清洗后为约 129 万物品和 129.9 万训练对。
| 方法 | Clean uAUC | Clean Recall@2000 | Raw uAUC | Raw Recall@2000 |
|---|---|---|---|---|
| Base | 0.7519 | 0.0122 | 0.5871 | 0.0088 |
| GRPO-raw | 0.7539 | 0.0119 | 0.5874 | 0.0087 |
| GRPO-clean | 0.7572 | 0.0121 | 0.5883 | 0.0087 |
| SFT | 0.7564 | 0.0127 | 0.5866 | 0.0091 |
| RECAP (SFT+GRPO) | 0.7603 | 0.0128 | 0.5886 | 0.0089 |
完整模型对 Base 的 clean uAUC 提升 0.0084,Recall@2000 从 0.0122 提到 0.0128,相对提升约 4.9%。值得注意的是,GRPO-raw 在 clean Recall 上反而从 0.0122 降到 0.0119,说明“有更多日志”不等于“有更好的奖励”。清洗反馈与 SFT 结合才同时获得最好 uAUC 和 Recall。
消融还给出三个重要结论。BCE 与 cosine-margin 联合奖励最好,因为前者管标签判别,后者管语义拉开;只用粗粒度评估指标的 chunk 奖励不稳定。画像容量越大性能越好却成本越高,L=8 是论文在训练、编码和服务预算下的折中。让 LLM 直接生成全量生命周期字段时,离线分数未必明显变差,但跨 chunk 的 span 错误频繁,证明工程可靠性不能只用排序指标衡量。
线上实验在快手海外短视频服务运行 7 天,实验组分配 10% 流量,对照组 20%。RECAP 画像经 Qwen3-Embedding-0.6B 编码后作为生产 U2I 召回的新特征,使人均 App 使用时长相对提升 0.139%,统计显著。提升幅度不大,但它是在不替换主排序器、仅增加语义画像特征的情况下获得,工业信号很强。
5. 局限与未来方向
作者没有设置独立 limitations 章节,因此不能把泛化局限当成论文自述。文中明确的边界包括:视频 caption 是由 Qwen3-VL-8B 离线生成并被当作已知输入,并未联合优化视觉理解;主要实验来自快手内部短视频数据,数据不公开;奖励依赖 LLM judge 和双塔代理模型,仍可能继承裁判器的偏差;画像容量与性能存在明确成本折中。作者也只报告 7 天线上实验和人均使用时长,未报告长期留存、内容多样性或创作者侧影响。
作者未充分讨论的风险是反馈回路:若画像参与召回后又用新日志强化自身,小的早期误判可能被稳定 slot 固化。未来应增加探索流量、反事实校正和画像置信度,并测试跨地区、跨内容品类迁移。
6. 工业实践意义
对推荐与社区搜索团队,最可操作的起点不是立即训练 GRPO,而是先建立可追溯的 slot 画像和确定性状态机。每个兴趣必须保留支持行为,新兴趣设最小证据数,对长期与近期兴趣分层,这些设计本身就能降低幻觉和无限增长。第二阶段再用现有点击、停留、收藏和跳过日志构造成对样本,但必须先做标签一致性清洗,否则策略很容易学会“不改”或产生会被规则删除的空更新。
部署时,RECAP 的路径很清晰:caption、LLM 画像更新和 judge 都放在离线;线上只读取最新有界画像,用小型 embedding 模型编码为 U2I 特征。这使它适合以旁路特征方式小流量接入,回滚只需移除该特征。需要额外监控的不只是 uAUC 和时长,还包括 slot 覆盖率、重复分配率、无支持兴趣数、更新率、画像 token 长度和兴趣漂移速度。对 UGC 搜索,可把视频 caption 替换为帖子标题、正文、话题与评论摘要,将画像 embedding 同时供给个性化召回和精排,但保留非个性化通路作为探索与安全垫底。