OneRec: 快手端到端生成式推荐系统——用一个模型替代整条推荐链路
论文: OneRec Technical Report
链接: https://arxiv.org/abs/2506.13695
机构: 快手(Kuaishou)
时间: 2025年6月(arXiv),2026年持续迭代部署
1. 问题背景
过去十年,工业推荐系统普遍采用”召回→粗排→精排→重排”的多级级联架构。这种架构虽然在工程上久经验证,但存在三个根本性的局限:
计算碎片化(Fragmented Compute):以快手为例,线上推理阶段超过 50% 的资源消耗在通信和存储而非高精度计算上。Ranking 模型在旗舰 GPU 上的训练/推理 MFU(Model FLOPs Utilization)仅为 4.6% 和 11.2%,远低于 LLM 社区 ~40% 的水平。高 QPS(>400k)和低延迟(<500ms)的约束进一步限制了模型规模。
优化目标冲突(Objective Collision):快手系统内部有数百个优化目标(用户、创作者、平台生态),这些目标分散在不同阶段进行干预,逐渐侵蚀系统一致性。即使建模相同目标,不同阶段模型的结构和规模差异也会引发跨阶段冲突——下游精排的天花板可能被上游召回的质量所限制。
与 AI 前沿技术脱节(Lag Behind AI Evolution):Scaling Law、RLHF 等在 LLM 领域已被充分验证的技术,在级联推荐架构中难以有效应用。架构上的结构性错位使推荐系统与主流 AI 演进之间的差距持续扩大。
OneRec 的核心思路是:用一个端到端的生成式模型替换整条级联链路,同时实现 Scaling Law 的验证和强化学习的有效落地。
2. 方法概述
OneRec 采用 Encoder-Decoder 架构,将推荐问题转化为序列生成任务。整体流程为:Tokenizer 将视频转化为语义 ID → Encoder 压缩多尺度用户行为序列 → Decoder 自回归生成目标 item 的语义 ID → Reward System 通过强化学习对齐用户偏好。
2.1 Tokenizer:融合协同信号的语义 ID 生成
快手的 item 空间达到十亿级别且持续增长,直接生成原子 ID 在计算和架构上都不可行。OneRec 采用 RQ-Kmeans 将视频编码为从粗到细的分层语义 ID。
与 TIGER 等仅使用内容特征生成语义 ID 的方法不同,OneRec 显式融合了协同信号。具体过程分两步:
Step 1: 协同感知的多模态表示对齐。对每个视频提取多模态输入(标题、标签、ASR、OCR、封面图、采样帧),通过 miniCPM-V-8B 生成 1280 个 token 向量,再用 QFormer 压缩到 4 个 token。然后通过 item-to-item 对比学习损失对齐协同相似的 item 对表示:
\[\mathcal{L}_{I2I} = -\frac{1}{|\mathcal{B}|}\sum_{(i,j)\in\mathcal{B}} \log \frac{\exp(\text{sim}(\tilde{\mathbf{M}}_i, \tilde{\mathbf{M}}_j)/\tau)}{\sum_{(i',j')\in\mathcal{B}} \exp(\text{sim}(\tilde{\mathbf{M}}_i, \tilde{\mathbf{M}}_{j'})/\tau)}\]同时用 caption generation loss 防止语义遗忘。
Step 2: RQ-Kmeans 量化。在对齐后的表示上逐层进行 K-means 聚类,每层量化残差:
\[\mathcal{C}^{(l)} = \text{K-means}(\mathcal{R}^{(l)}, N_t), \quad s^l_i = \arg\min_k \|\mathcal{R}^{(l)}_i - \mathbf{c}^{(l)}_k\|, \quad \mathcal{R}^{(l+1)}_i = \mathcal{R}^{(l)}_i - \mathbf{c}^{(l)}_{s^l_i}\]迭代 $L_t = 3$ 层后,每个视频被编码为 3 个从粗到细的语义标识符。实验表明 RQ-Kmeans 在重建损失上比 RQ-VAE 降低 25.18%,且码本利用率达到 100%。
2.2 Encoder:多尺度用户行为压缩
Encoder 设计了四条专门的嵌入通路,各捕获不同尺度的用户行为模式:
| 通路 | 序列长度 | 捕获信息 |
|---|---|---|
| User Static | 1 | 用户 ID、年龄、性别等静态画像 |
| Short-term | 20 | 最近 20 次交互的即时偏好 |
| Positive-feedback | 256 | 高参与度交互的中期兴趣 |
| Lifelong | 2000(原始可达 10 万) | 通过层次聚类压缩的长期偏好 |
| 其中 Lifelong 通路最有特色:对用户的超长交互历史先做层次化 K-means 聚类压缩(动态设置聚类数为 $\lfloor\sqrt[3]{ | D | }\rfloor$),选取每个簇心最近的 item 作为代表,然后用 QFormer(128 个 learnable query tokens,2 层 cross-attention)将 2000 长的压缩序列进一步压缩为 128 个 token。 |
四条通路的输出拼接后加上位置编码,送入 $L_{\text{enc}}$ 层标准 Transformer Encoder。
2.3 Decoder:基于 MoE 的自回归生成
对每个目标视频 $m$,Decoder 输入为 BOS token 加上该视频的语义 ID 序列。每层 Decoder 依次执行:因果自注意力 → 与 Encoder 输出做 Cross-Attention → MoE FFN:
\[\mathbf{d}^{(i+1)}_m = \mathbf{d}^{(i)}_m + \text{CausalSelfAttn}(\mathbf{d}^{(i)}_m)\] \[\mathbf{d}^{(i+1)}_m = \mathbf{d}^{(i+1)}_m + \text{CrossAttn}(\mathbf{d}^{(i+1)}_m, \mathbf{Z}_{\text{enc}}, \mathbf{Z}_{\text{enc}})\] \[\mathbf{d}^{(i+1)}_m = \mathbf{d}^{(i+1)}_m + \text{MoE}(\text{RMSNorm}(\mathbf{d}^{(i+1)}_m))\]MoE 层采用 top-$k$ 路由策略和 loss-free 负载均衡(参考 DeepSeek-V3),在扩展模型容量的同时控制实际计算量。训练损失为标准的 next-token prediction 交叉熵。
OneRec 系列包含 4 个规模的模型,从 15M 到 2.6B 参数:
| 模型 | 层数 | 隐藏维度 | 专家数(总/活跃) |
|---|---|---|---|
| OneRec-0.015B (Dense) | 4 | 128 | N/A |
| OneRec-0.121B (Dense) | 8 | 1024 | N/A |
| OneRec-0.935B (MoE) | 8 | 1024 | 24/2 |
| OneRec-2.633B (MoE) | 24 | 1024 | 24/4 |
2.4 Reward System:强化学习对齐
OneRec 的 RL 框架包含三个层次的奖励:
偏好奖励(P-Score):不再手动加权融合 CTR、播放时长等多目标预测值,而是训练一个基于 SIM 架构的神经网络来学习个性化的综合融合得分。多个 tower 各自学习特定目标(ctr、lvtr、ltr 等),hidden states 汇总后由最终 MLP 输出统一的 P-Score。
格式奖励(Format Reward):RL 训练中会出现”挤压效应”——对负优势样本的概率压缩导致合法 token 被挤到与非法 token 相当的概率水平,合法率降至 50% 以下。OneRec 通过格式奖励解决:对合法样本设置优势为 1,非法样本直接丢弃。
工业场景奖励(SIR):例如对搬运/剪辑类低质内容,当其曝光超过阈值 $f$ 时,通过 $r’_i = \alpha r_i$($\alpha < 1$)压低其 P-Score 奖励。
策略优化采用 ECPO(Early Clipped GRPO)——在 GRPO 基础上对负优势样本的策略比率做了预裁剪,避免梯度爆炸:
\[\pi_{\theta_{old}}^{\prime}(o_i|u) = \max\left(\frac{\text{sg}(\pi_\theta(o_i|u))}{1+\epsilon+\delta}, \pi_{\theta_{old}}(o_i|u)\right)\]3. 实验
3.1 Scaling Law 验证
OneRec 在推荐系统中验证了 Scaling Law 的存在:从 0.015B 到 2.633B,更大的模型在训练过程中持续取得更低的 loss。特征工程(Feature Scaling)带来 P-Score +28.88% 的提升;码本从 8K 扩到 32K 带来 P-Score +4.75%;推理 Pass@K 从 8 到 512 带来 P-Score +376.10%。
3.2 强化学习消融
| 维度 | 最佳设置 | 关键发现 |
|---|---|---|
| 采样效率 | Pass@32 时 RL 提升最显著 | RL 大幅提升 top-ranked item 的准确率 |
| 搜索空间 | Group Size ≈ 4× 推理数量 | 512 → 2048 收益递减 |
| 搜索策略 | Beam Search | 由于语义 ID 的前缀树结构,Beam Search 显著优于 Top-k/Top-p |
| 参考模型 | On-policy(当前策略) | 离线奖励提升显著,但存在轻微 reward hacking |
3.3 线上 A/B 测试
在快手和快手极速版两大核心场景(DAU 4 亿),5% 流量实验,OneRec + RM Selection 的结果:
| 场景 | App Stay Time | Watch Time | 点赞 | 关注 | 评论 | 转发 |
|---|---|---|---|---|---|---|
| 快手 | +0.54% | +1.98% | +2.43% | +3.24% | +5.27% | +5.90% |
| 快手极速版 | +1.24% | +3.28% | +1.49% | +2.28% | +3.20% | +3.48% |
在本地生活业务中,GMV +21.01%、订单量 +17.89%、买家数 +18.58%,已全量接管 100% QPS。
3.4 效率
- 训练 MFU:23.7%(较原始 Ranking 模型提升 5.2×)
- 推理 MFU:28.8%(提升 2.6×)
- OPEX 仅为传统级联链路的 10.6%
- 当前承载快手约 25% 的总 QPS
4. 总结与思考
OneRec 是目前公开的最完整的端到端生成式推荐系统工业落地报告,有几个值得深入思考的点:
范式转变的勇气。快手选择了最激进的路线——不是在级联链路中”加一个生成式模块”,而是直接用一个模型替换整条链路。这需要的不仅是技术能力,更是组织层面的决策魄力。10.6% 的 OPEX 这个数字尤其惊人,说明级联架构的”通信和存储税”比我们想象的更重。
推荐系统的 Scaling Law。OneRec 验证了推荐系统在特定边界内遵循 Scaling Law,这是一个重要发现。但论文也坦承”约 10B 样本后收益递减显著”——这暗示推荐系统的 Scaling 特性与 LLM 有本质差异,可能受限于行为数据本身的信息密度。
RL 在推荐中的突破。传统级联架构下 RL 难以发挥作用,但在端到端框架下,RL 成为关键驱动力。P-Score 替代手动权重融合、ECPO 解决训练稳定性、Format Reward 解决合法率——这套 RL 工程实践对其他团队很有参考价值。
局限性。论文坦率地指出了三个不足:推理阶段 Scaling 不明显(缺乏推理/reasoning 能力)、尚未与 LLM/VLM 深度融合、奖励系统设计仍较初级。这些也正是 V2 版本(OneRec-V2, arXiv:2508.20900)尝试解决的方向——V2 切换到了 Lazy Decoder-Only 架构,模型扩展到 8B 参数,训练资源降低 90%。
总体而言,OneRec 代表了推荐系统从”级联流水线”向”端到端生成”范式转换的标志性工作,与字节的 TokenMixer-Large(Scaling 路线)、美团的 MTGR/MBGR(生成式排序/重排路线)、阿里的 AgenticRS(Agent 路线)形成了有趣的技术路线对比。