OneLatent: Latent Reasoning for Efficient Foundation Recommendation Models

Hao Jiang, Peiru Du, Pengfei Yao, Mengting Li, Siyuan Lou, Kuo Cai, Sheng Yu, Qiang Luo, Jian Liang, Ruiming Tang 等 13 人 · Kuaishou · arXiv 2610.30675 · 发表 2026-10-22
14 分钟阅读时长 5333字 4.40综合分 第 2 名10-24 Generative 日报
目录 · 6 节1显式推理为什么在推荐里不好用2方法:3 个潜在 token 加三视角教师推理3实验4我认为它的局限5一个推荐或搜索团队可以怎么试6总结评价
相关 4新颖 5实用 5证据 5时效 5

把大语言模型直接用来做推荐时,一种做法是让模型先写一段 CoT 推理,再输出下一个物品的三层 Semantic ID(SID)。推理文本比三层 SID 长得多,解码时间和吞吐都被它拖住;而且此前的 OneReason 工作已经报告,同一个模型先推理再作答,并不稳定地好于直接作答。快手这篇 OneLatent 的做法是在用户上下文后面接 3 个固定的特殊 token,训练分几步:先让模型在这 3 个 token 之后复现教师大模型写的推理文本,再改成在它们之后直接输出目标 SID;上线时只接这 3 个 token,不生成任何推理文字。在快手本地生活工业数据上,OneLatent 的 SID@64 是 0.1993,比先写推理再作答的 OneReason-CoT 高 17.44%,推理吞吐是显式推理的 17.49 倍,和不推理的直接预测基本相同。和所有非 OneLatent 方法里最强的一个相比(它用评估视角的推理数据训练、直接作答),OneLatent 在工业数据上只高 1.58%;和用同一份三视角合并数据训练、直接作答的模型(0.1851)相比,高 7.67%。这两组数字能说明完整训练流程有效,但不能拆出教师推理数据和潜在 token 各占多少功劳。5% 流量的线上 A/B 测试估算收入提升 9.6%,目前已全量上线。

显式推理为什么在推荐里不好用

论文把这类模型称为 foundation recommendation model(FRM)。它的输入是用户画像 、按时间排列的交互历史 和请求时的上下文 (时间、地点、搜索词等),输出是下一个交互物品的 SID。让模型先写推理有两个问题。一是成本:每个请求都要逐个解码整段推理文字。二是准确率不一定涨:推理文字和 SID 之间多了一段生成路径,推理写偏一步,后面的 SID 就跟着偏。论文的 Table 2 里,OneReason-CoT 的先推理模式在工业数据上 SID@64 是 0.1697,低于同一检查点直接作答的 0.1823。

作者的思路是把教师写的推理只当训练信号,推理过程留在模型内部的隐状态里,推理时不输出文字。

方法:3 个潜在 token 加三视角教师推理

OneLatent 的整体流程(论文 Figure 2)。从左往右看:教师模型 Qwen3-235B 从三个视角写推理文本;学生模型先做预训练,再经过三阶段的潜在 token 对齐,最后做课程式后训练。注意右侧推理时的输入只有用户上下文加 3 个潜在 token,输出直接是 SID。
OneLatent 的整体流程(论文 Figure 2)。从左往右看:教师模型 Qwen3-235B 从三个视角写推理文本;学生模型先做预训练,再经过三阶段的潜在 token 对齐,最后做课程式后训练。注意右侧推理时的输入只有用户上下文加 3 个潜在 token,输出直接是 SID。

潜在 token 是什么

作者在词表里加了 3 个特殊 token ,所有样本共用这同一组 token ID。Transformer 处理到这 3 个位置时会产生随上下文变化的隐状态,后面的 SID token 通过普通的因果注意力读取这些隐状态。这里没有额外的编码器、投影层或解码器,推理时多出来的计算就是固定的 3 个 token。作者也明确说,后面的 token 仍然能直接看到原始上下文,所以不能保证推理信息全部压在这 3 个位置里。 Hoot 说

Hoot 说同一组 token ID,为什么能装下不同用户的推理收起 ✕
token ID 相同,隐状态不同:3 个潜在 token 对谁都一样,但走到这 3 个位置时注意力读到的是各自的上下文,SID 读的是这些隐状态。
左右两列:用户 A 和用户 B 的上下文各自接上同一组 3 个潜在 token,得到不同的隐状态 h_A 和 h_B,再各自生成下一个物品的 SID用户 A 的上下文常买露营装备(示意)用户 B 的上下文刚买了婴儿推车(示意)⟨L₁⟩⟨L₂⟩⟨L₃⟩隐状态 h_A:读的是 A 的上下文同一组 ID⟨L₁⟩⟨L₂⟩⟨L₃⟩隐状态 h_B:读的是 B 的上下文同一组 IDA 的下一个物品 SID读 h_A,也能直接看上下文B 的下一个物品 SID读 h_B,也能直接看上下文
左右两列:用户 A 和用户 B 的上下文各自接上同一组 3 个潜在 token,得到不同的隐状态 h_A 和 h_B,再各自生成下一个物品的 SID用户 A 的上下文常买露营装备(示意)用户 B 的上下文刚买了婴儿推车(示意)⟨L₁⟩⟨L₂⟩⟨L₃⟩隐状态 h_A:读的是 A 的上下文同一组 ID⟨L₁⟩⟨L₂⟩⟨L₃⟩隐状态 h_B:读的是 B 的上下文同一组 IDA 的下一个物品 SID读 h_A,也能直接看上下文B 的下一个物品 SID读 h_B,也能直接看上下文
  1. 不是瓶颈:SID 的位置仍能直接看到原始上下文,所以推理信息不一定全压在这 3 个位置里,论文也明说不做这个保证。

两个用户是示意。训练时前缀里还有一个视角标记(探索 / 评估 / 归因),推理时只接 3 个潜在 token。全程是普通的因果掩码。 出处: 论文 §3.1、§3.3(前缀 [P;H;⟨v⟩;L],Stage I/II 在潜在 token 之后复现教师推理,Stage III 换成下一个物品的 SID;标准因果掩码,不做严格的注意力瓶颈)

教师推理:三个视角,长度随难度调整

教师模型是 Qwen3-235B-A22B-Instruct-2507,从三个视角为每个样本写推理:

  • 探索:只给用户画像和历史,让教师推测用户可能的消费意图,输出推理和意图列表。
  • 评估:额外告诉教师用户真实交互的物品,让它判断这个物品和用户证据的匹配程度,输出推理和 1–5 分。
  • 归因:告诉教师这个物品是正样本,让它解释是哪些历史信号导致了这次交互。

评估和归因视角用到了真实物品,但这个信息只给教师,不进学生模型的输入,所以不会泄露答案。提示词还要求教师先判断证据的复杂程度:信号明确的样本快速收敛,信号冲突的样本做多维比较。这样生成的推理平均长度降到原来的 65%(把不做自适应时的平均长度记为 100),在最长的一成样本上,两种推理的语义相似度约 0.92。

三阶段对齐和后训练

学生模型从 Qwen3.5-0.8B 初始化,先做推荐领域预训练,让 SID 和物品文字描述能互相生成:

其中 是物品 的三层 SID, 是它的文字描述。之后分三个阶段训练潜在 token:

  • 阶段一:输入是“画像、历史、视角标记、3 个潜在 token”,目标是复现一个视角的教师推理。
  • 阶段二:用上该用户全部可用的视角。每个视角单独成一条训练样本:输入里放对应的视角标记,目标是这个视角的推理。损失先在每条推理内部按 token 数取平均,再在该用户的各视角之间取平均,避免长推理在损失里占更大比重。
  • 阶段三:输入变成“画像、历史、请求上下文、3 个潜在 token”,视角标记从这一步起就不再放进输入;目标从推理文本换成下一个物品的 SID。线上用的也是这种不带视角标记的输入。

后训练先做推荐微调,按用户活跃度排课程:先用高活跃用户的样本训练,再依次换成中活跃、低活跃用户的样本;然后把“接潜在 token 再预测 SID”和“不接潜在 token 直接预测 SID”两种样本按 1:1 混合训练,保证两种模式都能用。

实验

主结果

这组实验比较 OneLatent 和三类基线:基于物品 ID 的序列推荐(GRU4Rec、BERT4Rec、HSTU),基于 SID 的生成式推荐(TIGER、OneRec),以及基于 OneReason 的推理增强模型。数据有两份:快手本地生活 7 天的工业日志(测试集 20,393 条),以及快手公开的 LLM-Rec 基准(测试集 10,000 条)。命中率报两列:SID@64 看 beam search 生成的前 64 个 Semantic ID 里有没有目标物品的 SID;ID@64 先把生成的 SID 解码回物品 ID,再看前 64 个里有没有目标物品。两列口径不同,数值不能跨列比较,下面只在同一列内比较各方法。基于物品 ID 的基线不生成 Semantic ID,所以只有 ID 列。下表摘自论文 Table 2,NoThink 和 Think 是同一个检查点的直接作答和先推理模式,括号里是训练所用的推理数据:

方法公开 SID@64公开 ID@64工业 SID@64工业 ID@64
TIGER0.00780.01560.14320.0859
OneRec0.00820.01770.14680.0900
OneReason0.00810.02720.16580.4941
OneReason-CoT NoThink(原 CoT)0.01040.03340.18230.4936
OneReason-CoT NoThink(评估视角)0.02130.06230.19620.5065
OneReason-CoT Think(原 CoT)0.00890.03050.16970.4759
OneReason-CoT Think(三视角合并)0.00910.03030.15050.4567
OneLatent(三视角合并)0.02390.07420.19930.5088

OneLatent 在所有指标上都是最高。但看提升来源要分开看两组对比。和 Think 模式比,工业 SID@64 高 17.44%;而且同样用三视角数据训练,Think 模式只有 0.1505,OneLatent 是 0.1993,说明同一份推理数据,走 OneLatent 的完整训练流程比让模型逐字写出推理再作答更准。作者的解释是显式推理里的小错会一路传到最终推荐;但两边的训练流程整体不同,这组对比本身拆不出差距是不是来自“写不写出来”。和每一列最强的非 OneLatent 结果比,工业 SID@64 只高 1.58%,ID@64 只高 0.45%;公开数据上分别高 12.21% 和 19.10%。工业数据上的最强对照是用评估视角推理训练、直接作答的模型,它已经拿到了大部分收益。

在 9B 主干上,OneLatent 的 SID@64 是 0.2008,比同尺寸最好的非潜在推理结果 0.1857 高 8.13%(论文 Table 3)。

推理效率

这组实验检验潜在 token 的推理开销。作者在 872 条测试样本上比较三种推理方式(论文 Table 7):

方法总耗时(秒)QPS
直接预测(不推理)3.17274.56
显式推理55.5915.68
OneLatent3.17274.29

OneLatent 的吞吐是显式推理的 17.49 倍,和直接预测几乎相同,因为每个请求只多处理 3 个固定 token,不需要逐个解码推理文字。论文结论部分写的是“10 倍以上”,和正文的 17.49 倍不一致,以表中数字为准。

教师推理的质量和作用

这组实验检验三视角推理是否比原有推理更好。作者请 GPT-5.5 从事实性、证据使用、因果逻辑等九个维度,给每种推理各 100 条样本打 1–5 分。三个新视角都在 4 分以上,评估视角最高(4.33),而 OneReason 的原推理只有 3.14,说明新推理的质量确实更高(论文 Table 4)。质量高也带来了推荐效果:用不同推理数据训练 OneLatent,公开数据上的 SID@64 从原推理的 0.0092 升到三视角合并后的 0.0239,只用评估视角单独训练也有 0.0233(论文 Table 5)。作者的解读是评估视角单独就很强,但各视角的强弱随数据集和指标变化,三者是互补的;单视角模型和合并模型是分别训练的,这组数字拆不出合并后的收益各来自哪个视角。

潜在 token 的数量从 1 加到 3 时,三层 SID 的命中率都在上升,加到 4 或 5 个不再稳定提升,所以最终用 3 个。

为了看潜在 token 里存了什么,作者把画像、视角标记和 3 个潜在 token 输入训练好的模型,故意去掉交互历史,让它生成推理文字,再和教师推理比较语义相似度,三个视角的余弦相似度在 0.79 到 0.80 之间(论文 Table 8)。作者自己说明,画像仍然可见,这个相似度只能说明有关联,不能证明推理信息都存在潜在 token 里。

上线方式和 A/B 测试

线上推理架构(论文 Figure 3)。看中间的异步链路:用户行为触发刷新,调度器按用户价值排优先级并限制总 QPS,OneLatent 异步生成候选并写入缓存;在线请求只读缓存,不同步调用模型。
线上推理架构(论文 Figure 3)。看中间的异步链路:用户行为触发刷新,调度器按用户价值排优先级并限制总 QPS,OneLatent 异步生成候选并写入缓存;在线请求只读缓存,不同步调用模型。

即便没有推理文字,对每个请求同步调用这个模型仍然超出延迟和吞吐预算。所以 OneLatent 作为一路独立召回部署:用户有新行为时触发异步推理,按用户价值和行为强度决定刷新优先级,生成的候选写入 Redis,在线请求从缓存取候选,和原有召回结果一起进入精排竞争。A/B 测试在快手本地生活广告的一个子场景进行,实验组和对照组各占 5% 流量,时间是 2026 年 9 月 3 日到 10 日。实验组曝光量提升 2.566%,广告消耗提升 5.157%,这两项是直接观测值;收入没有直接观测,平台的全局后验估计器估计它提升了 9.6%,论文没有说明这个估计器怎么算。

我认为它的局限

论文没有单独的局限章节,作者在正文里承认两点:潜在 token 不是严格的信息瓶颈,推理信息可能分散在整个模型里;Table 6 的提升来自完整的训练流程,不能单独归因于潜在 token。

另外两点需要注意。第一,工业数据上 OneLatent 比最强的非 OneLatent 方法只高 1.58%,比用同一份合并数据训练的直接作答模型高 7.67%,论文没有报告多次运行的方差,这个差距是否稳定无法判断。第二,线上采用异步缓存,候选是在用户上次行为之后生成的,A/B 的收益里有多少来自潜在推理、有多少来自新增一路召回,论文没有拆开。

一个推荐或搜索团队可以怎么试

  1. 先补齐对照组。在已有的 LLM 推荐模型上,同时评估同一检查点的直接作答和先推理两种模式,再加一个“用教师推理训练、但直接作答”的模型。本文工业数据上,大部分提升在最后这个对照里已经出现,只和显式推理比会高估潜在 token 的作用。
  2. 把教师推理当训练数据,而不是线上输出。用大模型离线写探索、评估、归因三种推理,真实物品只给教师看,不进学生模型的输入。可以先只做评估视角:公开数据上它单独就有 0.0233,三视角合并是 0.0239。
  3. 再加潜在 token。在词表里加 3 个所有样本共用的特殊 token,先训练模型在它们之后复现推理文本,再换成直接预测下一个物品的 SID;后训练时把接潜在 token 和不接潜在 token 的样本按 1:1 混合,两种模式都保留。
  4. 上线先做一路异步召回:用户有新行为时触发刷新,结果写缓存,在线请求只读缓存,和原有召回一起进精排。A/B 里多设一组“同样新增一路召回、但不接潜在 token”的对照,才能拆开新增召回和潜在推理各自的贡献。
  5. 离线对比多跑几次。工业数据上相对最强对照只高 1.58%,这个量级需要重复运行、看方差才能确认。

总结评价

维度评价
问题重要性中高。LLM 推荐模型想用推理,又付不起逐字解码推理文本的成本,这是上线时的真实障碍
方法创新性中。用 3 个固定 token 代替推理文本,思路简单;新意主要在三视角、按难度调长度的教师推理和三阶段对齐流程
实验证据中。有工业和公开两份数据、0.8B 和 9B 两个尺寸,效率对比清楚;但相对最强对照只高 1.58%,没有方差,线上收入是估计值
工程成本中。模型侧只多 3 个 token,推理吞吐和直接预测基本相同;但需要大教师模型离线生成推理数据,线上要有异步刷新和缓存链路
是否值得尝试值得,先试“教师推理当训练数据、直接作答”这一步,它拿到了大部分收益;潜在 token 是之后的小幅增量

读完这篇,你觉得

点一下即可,无需登录;再点一次撤回。只统计匿名次数,不记录你是谁。

讨论

欢迎补充实验细节、复现经验或不同看法。需 GitHub 登录。

正在加载讨论…