Loading...
正在加载...
请稍候

在淘宝亿级日活上跑LLM推荐:RecGPT-V3如何把推理算力砍掉52%还涨3.97% GMV

✨步子哥 (steper) 2026年07月20日 21:11

一个工程奇迹

淘宝首页推荐位每天服务亿级用户。过去,这套系统是梯度提升树+双塔召回+排序模型的天下——快、准、便宜,但天花板也明显:只能拟合行为共现,无法真正理解用户意图,过滤气泡和长尾覆盖不足是顽疾。

RecGPT-V2 试着把 LLM 塞进推荐链路,用自然语言推理用户意图。效果有了,但算力账单也来了——每个用户每次请求都要跑一遍完整的 LLM 推理,生产环境根本扛不住。

RecGPT-V3 的技术报告给出了一个新的答案:在 GMV 提升 3.97% 的同时,端到端推理计算量降低 52.4%。这不是在实验室数据集上跑出来的数字,是在淘宝真实流量上 A/B 测试的结果。

怎么做到的?三个核心模块,每个解决一个具体工程瓶颈。

瓶颈一:无状态用户建模的冗余计算

问题

RecGPT-V2 的做法是:每次推理时,把用户过去 N 条行为序列全部喂给 LLM,让它从头理解这个用户。问题是,用户的行为序列大部分是稳定的——你三个月前买的婴儿奶粉、半年前关注的跑步装备,不会因为今天多刷了两条视频就改变。但 RecGPT-V2 每次都要重新编码这整段历史,计算量随序列长度线性增长。

这就像每次见客户都要从头做一遍背景调查——明明上次已经做过了,但档案没存,只能重来。

RecGPT-V3 的解法:Memory Hub

Memory Hub 做的事情很简单:把用户行为序列压缩成结构化记忆单元,只存指针和摘要,不存原始行为

具体来说,每个用户有一组记忆单元 \(\{m_1, m_2, \ldots, m_K\}\),每个单元包含:

  • Pattern(模式标识):如"Infant Care"、"Outdoor Running"
  • Summary(自然语言摘要):如"Frequent buyer of formula, diapers, and baby clothing for 0–6 months"
  • Behavior Index(行为指针):指向原始行为序列中的具体交互,不存原文

推理时,LLM 只看这组压缩后的记忆单元 + 最近的行为增量(delta),不需要重新编码完整序列。

增量更新:不是每次都从头压缩

Memory Hub 的关键设计是增量更新。设当前记忆状态为 \(\mathcal{M}^{(t)}\),新行为增量为 \(\Delta\mathcal{B}^{(t,t+\delta)}\),更新函数 \(\mathcal{G}\) 做两件事:

  1. 选择性更新:对每个已有记忆单元,检查新行为是否与之相关。相关则更新摘要,不相关则保留不动——"有证据才更新,无证据不打扰"
  2. 新模式提取:把没被任何已有单元匹配的新行为,尝试聚合成新的记忆单元

论文给了一个具体例子(Table 2):一个用户的记忆从 \(t\)\(t+\delta\) 的变化——

  • \(m_1\) Infant Care:从"0–6个月"更新为"6–12个月,加了幼儿玩具和学步车"(Update)
  • \(m_2\) Outdoor Running:无新相关行为,保留不动(Retain)
  • \(m_3\) Home Cooking:从"平价厨房工具"转向"高端厨具和空气炸锅配件"(Update)
  • \(m_4\) Photography:无新相关行为,保留不动(Retain)
  • \(m_5\) Pet Parenting:新单元,"宠物食品和美容用品,首次养宠"(New)

效果

Table 8 的数据:

系统 组件 计算成本
RecGPT-V2 完整序列 100%
RecGPT-V3 每次推理 33.43%
RecGPT-V3 记忆维护 10.77%
RecGPT-V3 总计 44.20%

Global Planner 的计算量降低 55.8%。Token 压缩率达到 94.5%——原来需要完整行为序列的 token,现在只需要 5.5%。

人工标注验证了记忆质量(Table 7):2514 个行为模式标注准确率 82.89%,21268 个行为指针准确率 95.27%。指针准确率特别重要——它保证了压缩后的记忆仍然可以追溯到原始行为,不是黑箱。

瓶颈二:标签到物品的信息瓶颈

问题

RecGPT-V2 的输出是自然语言标签——"用户可能喜欢户外运动、跑步装备、马拉松营养品"。这些标签再送去检索系统匹配具体物品。

问题在于:标签是泛化的,物品是具体的。"跑步鞋"这个标签可以匹配到 1000 双不同的跑步鞋,但用户真正想要的可能只是其中 3 双。标签到物品之间有一道信息鸿沟——标签承载的是类别级意图,物品需要的是个体级对齐。

更糟的是,不同用户的"跑步鞋"标签完全相同,但他们的真实偏好可能南辕北辙——一个想要竞速碳板,一个想要缓震慢跑。标签无法区分。

RecGPT-V3 的解法:混合模态基础模型

RecGPT-V3 引入了**语义ID(Semantic ID, SID)**作为 LLM 的第二种推理模态。SID 是从协同过滤信号中学到的物品标识符——每个物品有一个唯一的 SID,相似物品的 SID 在嵌入空间中接近。

推理时,模型同时输出两种信号:

  • 文本标签:承载泛化的类别级意图("Outdoor Running")
  • 语义ID:承载具体的协同过滤级意图(指向特定物品簇)

两者互补:标签提供广度,SID 提供精度。

数据验证:广度 vs 精度

Table 12 的对比数据很有说服力:

指标 文本标签 SID
类别广度(平均覆盖类别数) 1.40 0.84
跨用户重叠率 11.36% 4.61%

文本标签覆盖的类别更广(1.40 vs 0.84),但跨用户重叠率也更高(11.36% vs 4.61%)——大家的"户外运动"标签都差不多。SID 覆盖更窄但更个性化——你的 SID 和我的 SID 重叠率只有 4.61%,因为它们编码了协同过滤信号中的个体偏好。

PCA 可视化(Figure 8)也印证:标签检索的物品在嵌入空间中分散分布,SID 检索的物品形成紧凑簇。

检索互补性

Table 13 的端到端检索效果:

配置 HR@500 HR@1000
仅标签 0.1503 0.2044
仅 SID 0.1539 0.2144
混合 0.1571 0.2168

混合检索全面胜出。这验证了双模态设计的必要性——标签和 SID 不是冗余,而是互补。

通用能力保持

一个关键担忧:在推荐数据上训练 SID 能力,会不会破坏 LLM 的通用语言能力?论文做了消融(Figure 6):

  • 加通用数据训练:GSM8K 只降 1.66%(94.31%→92.65%),MMLU 降 2.65%,CMMLU 降 4.49%,IFEval 从 81.52% 降到 75.60%——大部分能力保住了
  • 不加通用数据:灾难性崩溃,所有基准断崖式下跌

这个消融很重要——它说明领域专用训练必须混入通用数据,否则模型会过拟合到推荐任务,丧失语言理解能力。这个经验适用于所有想把 LLM 领域专用的场景。

瓶颈三:显式推理的延迟地狱

问题

RecGPT-V2 用显式 CoT(Chain-of-Thought)推理:先写出完整的推理过程("这个用户最近看了跑步视频,又买了马拉松报名,可能是跑步爱好者,应该推荐..."),再输出推荐结果。

问题是:每个样本要生成约 2840 个推理 token。在自回归解码下,每个 token 都是串行的。亿级日活场景下,这个延迟根本无法接受。

RecGPT-V3 的解法:隐式意图推理

RecGPT-V3 的做法大胆:把 2840 个推理 token 压缩成 10 个隐式 token

具体流程(§4.1 Reasoning Internalization):

  1. 先用显式 CoT 做 SFT,让模型学会推理
  2. 用多任务课程,把推理过程"内化"到 10 个可学习的隐式 token 中
  3. 这些隐式 token 不对应任何可读文本,但承载了推理结果
  4. 如果需要可解释性,可以用一个解码器把隐式 token 解码回可读推理过程——按需可解释

这就像专家的直觉——专家做决策时不需要在脑子里写完整的推理链,几个关键判断就够了。但如果被问到为什么,可以事后还原推理过程。

效果:质量不降,速度暴涨

Table 10 的渐进消融:

配置 HR@30 (Category) CTR
Qwen3-14B 基础 0.2276
+ 原生推理 0.2347
混合模态基础模型 0.3050 0.0624
+ 显式 CoT (SFT) 0.3508 0.0638
+ 隐式推理 0.3462 0.0649
+ RL 0.3693 0.0679

关键发现:

  • 隐式推理的质量和显式 CoT 几乎持平(0.3462 vs 0.3508),但 token 数从 2840 降到 10
  • 加上 RL 后反超显式 CoT(0.3693 vs 0.3508)——RL 从排序反馈中学习,不需要人工标注
  • Qwen3-14B 的原生推理几乎没用(0.2347 vs 0.2276)——没有领域训练的推理等于空谈

速度收益

Table 11 的推理效率对比(1000 样本,相同硬件):

模式 输出长度 输入 TPM 输出 TPM 总时间
显式 CoT 2840 166K 531K 1020s
隐式推理 122 498K 66.7K 295s(↓71.1%)

3.46× 端到端加速。输出 token 从 2840 降到 122(降 95.7%),输入吞吐从 166K 涨到 498K——瓶颈从输出解码转移到了输入 prefill,而 prefill 是可以并行化的。

系统级账本

这里有一个精妙的工程账本(§5.4.2 Serving Cost Analysis):

使用 SID 和隐式推理让 expert 模型的计算量增加了 15%(上下文变长)。但 Global Planner 的计算量是 expert 的 20 倍。Memory Hub 让 Planner 侧的计算量降了 55.8%。加权后,总体资源节省 52.4%

这个账本说明一个重要原则:优化要瞄准瓶颈。Expert 模型增加 15% 不重要,因为 Planner 才是大头。Memory Hub 省的是 Planner 的计算,这是杠杆最大的地方。

在线 A/B 测试:真实流量的审判

所有离线指标最终都要在真实流量上验证。Table 6 的 A/B 测试结果(RecGPT-V3 vs RecGPT-V2):

场景 IPV CTR PV DAU TC GMV
Item +3.08% +0.98% +2.02% +3.10% +7.51%
Feed +1.28% +1.00% +0.83% +0.56% +1.97% +3.97%

几个关键观察:

  1. Item 场景 GMV +7.51%——这是最硬的指标。用户不只是多点了几下,是真的多买了,而且买得更贵
  2. Feed 场景 DAU +0.56%——用户留存提升了。推荐变好,用户更愿意回来
  3. CTR 涨幅不大(+0.98% / +1.00%)——但 IPV 和 GMV 涨幅大,说明推荐的不是更吸引点击的,而是更符合购买意图的
  4. Item 场景涨幅普遍大于 Feed——因为 Item 场景更接近交易意图,RecGPT-V3 的意图推理在这里发挥更大价值

在工业级推荐系统里,GMV +3.97% 是非常大的提升。大部分优化能做到 +0.5% 就值得开香槟了。

工程洞察

1. 记忆比序列更高效

Memory Hub 的核心洞察是:用户行为的大部分信息是冗余的。三个月前买的奶粉和昨天买的奶粉,在理解用户偏好时几乎等价。把冗余信息压缩成结构化记忆,只保留指针和摘要,能在不损失信息的前提下大幅降低计算量。

这个思路适用于所有需要长上下文的场景——不只是推荐系统,对话系统、代码助手、文档分析都可以用。把"每次从头看"改成"增量更新记忆",是降低推理成本通用方法。

2. 双模态优于单模态

SID 和文本标签的互补性揭示了一个更广的规律:自然语言擅长泛化,结构化标识擅长精准。只用自然语言会丢失个体级信息,只用结构化标识会丢失语义泛化能力。两者结合比任何单模态都好。

这个思路对 RAG 系统有直接启示——当前 RAG 只用文本检索,如果加上结构化标识(如知识图谱实体 ID、数据库主键),检索精度可以进一步提升。

3. 隐式推理是工程妥协的艺术

隐式推理的本质是:推理过程不需要对用户可见,只需要推理结果。把 2840 token 压缩到 10 token,质量几乎不降——这说明大部分推理 token 是"解释性冗余",不是"计算必需"。

但论文保留了"按需解码回可读推理"的能力——这是聪明的工程妥协。日常推理走隐式(快),需要解释时走解码(准)。可解释性和性能不是非此即彼,可以按需切换

4. RL 从排序反馈学习

Table 10 最有意思的数据点是:隐式推理 + RL 反超显式 CoT(0.3693 vs 0.3508)。这说明 RL 从排序反馈中学到的东西,比人工设计的 CoT 更有效。

原因可能是:人工 CoT 是给"通用推理"设计的,不是给"推荐推理"设计的。RL 直接优化排序指标,能学到推荐特有的推理模式——哪些信号重要、哪些不重要,由数据说了算。

这个发现对 Agentic RL 有启示:与其人工设计推理链,不如让模型从任务反馈中自己学

5. 系统级优化要看加权账本

Serving Cost Analysis 那段是全文最精彩的工程账本:expert 增加 15%,planner 省了 55.8%,planner 是 expert 的 20 倍权重,总体省 52.4%。

这个账本方法适用于所有系统优化——不要只看局部指标的涨跌,要看全局加权后的净收益。一个模块增加 15% 计算量不可怕,如果它能让权重更大的模块省 50%+,总体就是赚的。

局限与思考

论文也有几个值得追问的地方:

1. 记忆单元的数量上限。论文没有讨论 K(记忆单元数量)的取值和影响。K 太小会丢失信息,K 太大会增加计算量。K 是固定的还是动态的?不同用户的 K 是否应该不同?这些在论文里没有回答。

2. SID 的冷启动问题。新物品没有协同过滤信号,无法分配 SID。论文没有讨论新物品如何进入这个系统。这在生产环境是个硬问题——电商每天都有大量新品上架。

3. 隐式推理的可解释性边界。"按需解码回可读推理"听起来很好,但解码出来的推理是否忠实于模型的真实决策过程?还是事后合理化?这和机械可解释性中的"faithfulness"问题是同一类挑战。

4. A/B 测试的长期效应。论文报告的是 A/B 测试期间的结果,但推荐系统的长期效应可能不同——用户新鲜感消退后,GMV 提升是否持续?过滤气泡问题是否真的缓解了?需要更长期的数据。

5. 通用能力保持的代价。虽然 GSM8K 只降了 1.66%,但 IFEval 降了 5.92 个百分点(81.52%→75.60%)。指令遵循能力下降对下游任务可能有非线性的影响——5% 的指令遵循下降可能导致某些任务完全失败。这个代价是否可接受,取决于具体应用场景。

更广的启示

RecGPT-V3 的三个核心模块,其实对应了 LLM 应用落地的三个通用瓶颈:

瓶颈 RecGPT-V3 的解法 通用启示
长上下文重复计算 Memory Hub 增量记忆 所有需要长上下文的场景都可以用
自然语言输出信息密度低 SID 双模态输出 结构化标识 + 自然语言 > 纯自然语言
显式推理延迟高 隐式推理 + 按需解码 推理过程和推理结果可以分离

这三个解法不只适用于推荐系统。对话系统可以用 Memory Hub 管理对话历史,代码助手可以用双模态输出(自然语言 + AST),Agent 系统可以用隐式推理降低延迟。

RecGPT-V3 的真正价值不是推荐系统升级,是 LLM 工程落地的三个通用模式


论文RecGPT-V3 Technical Report
作者:RecGPT Team
场景:淘宝亿级日活推荐
核心数据:GMV +3.97%(Feed)/ +7.51%(Item),推理计算量 -52.4%
代码:未公开

一句话总结:在工业级推荐系统里落地 LLM,瓶颈不在模型能力,在工程效率。RecGPT-V3 用记忆压缩、双模态输出、隐式推理三招,把 LLM 推理的算力账单砍掉一半,同时还能涨 GMV——这才是 LLM 工程化的正确姿势。

讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录