一、OneRec-V1
为了解决大量资源消耗在通信和存储而非模型计算,GPU 利用率远低于大语言模型;各阶段目标分散,模型结构差异导致建模不一致;级联架构阻碍了 Scaling Law、强化学习对齐等先进技术的应用的问题,快手团队提出了OneRec框架,将推荐系统重新定义为端到端的生成式任务,模型根据用户上下文直接“生成”推荐序列,而非从候选集中“挑选”物品。
1.语义ID(Semantic ID)的设计
阶段一:协同感知的多模态表示学习
通过视觉语言模型处理每个视频的多模态信息,生成1280个Token向量,再用QFormer模块将这些向量压缩为4个可学习的查询向量。再引入物品对对比学习拉进这些物品对的表示,使Semantic ID能够同时编码内容语义和行为模式。为了防止退化,还加入标题生成的辅助任务,确保表示保留内容理解能力。
物品对对比学习(从用户行为中提取高协同相似度的物品对,如同一用户正向点击的物品)
阶段二:RQ-Kmeans层次化量化
将协同感知的多模态表示,采用残差量化K-means(RQ-Kmeans)将连续表示离散化为Semantic ID,不用与端到端训练的RQ-VAE,RQ-Kmeans直接在残差上应用K-means聚类构建码本。
经过三层量化,每个视频m获得由粗到细的语义标识符序列{sm1,sm2,sm3},这将成为生成式推荐模型的输出目标。
2.模型架构设计
2.1.Encoder
四个通路的设计:
2.1.1.用户静态特征通路(User Static Pathway)
用户ID、年龄、性别等基础画像信息,经过两层密集变换后得到。
2.1.2.短期行为通路(Short-term Pathway)
处理用户最近20次交互。
2.1.3.正反馈行为通路(Positive-feedback Pathway)
处理用户256次高参与度交互,特征构成与短期通路类似。
2.1.4.超长期历史通路(Lifelong Pathway)
OneRec采用分层压缩策略:首先通过分层K-means聚类对历史序列进行压缩,选择最接近中心的代表物品;然后使用QFormer模块,通过128个可学习查询向量对压缩后的 2000 长度序列进行交叉注意力处理,最终得到紧凑表示。
将上述4个通路拼接完整的上下文序列,通过Encoder处理,最终Encoder输出提供全面的用户上下文表示。
2.2.Decoder
解码器负责基于上下文表示生成目标物品。对于每个目标物品 m,解码器输入由起始 Token[BOS]和该物品的语义 ID 序列组成。每层解码器包含三个关键组件:
因果自注意力(Causal SelfAttn)捕获已生成 Token 间的依赖,交叉注意力(CrossAttn)让解码器关注编码器的上下文,混合专家前馈网络(MoE FFN)采用 top-k 路由策略,在增强模型容量的同时保持计算效率。
3.奖励系统设计
利用预训练模型过程中,它含有传统模型的局限性,导致性能被束缚,为了突破这个束缚,OneRec采用奖励系统设计,主要有三个层次构成:
3.1.用户偏好对齐
传统方法将多个目标(点击率CTR、点赞率LTR、观看时长VTR等)预测值融合成一个分数,缺乏精准性和个性化,且容易导致目标间优化冲突。
OneRec提出使用神经网络学习个性化的P-Score(Preference Score)。基于SIM(Search-based Interest Model)架构,为每个目标构建独立值,每个独立值使用对应的标签计算,二元交叉熵损失作为辅助。各个值的隐状态联通用户和物品表示被输入最终MLP层,输出P-Score。
通过调整权重,可以让P-Score偏向各个目标,最终在所有目标上都实现 AUC 提升。这种方法能够接收具体用户信息,为该用户动态调整偏好分数,而不会影响其他用户体验。
3.2.生成格式规范化
引入格式奖励,应对推理时生成的无法映射到实际物品ID的非法序列(挤压效应)。具体而言,从生成样本中随机选择部分进行合法性强化学习,对合法样本设置优势为 1,对非法样本直接丢弃以避免挤压效应。
3.3.工业场景对齐
OneRec 的端到端特性使得只需将优化目标融入奖励系统,通过强化学习进行针对性优化。当病毒内容占比超过最优比例 时,对其 P-Score 奖励进行降权。
4.ECPO算法
ECPO(Early Clipped GRPO)算法进行偏好对齐,对于用户u ,使用旧策略模型生成 G 个物品,每个物品通过 P-Score 模型获得奖励r_i 。ECPO 相比原始 GRPO 的关键改进在于:对负优势样本的策略比率进行预先裁剪。在 GRPO 中,负优势样本的策略比率可以任意大,容易导致梯度爆炸;ECPO 通过引入δ参数限制负优势样本的最大比率,在保持训练稳定性的同时允许负优势发挥作用。
5.缺点
5.1.Encoder-Decoder架构存在严重的计算资源分配失衡
绝大部分计算被消耗在上下文编码上,而真正产生梯度的目标 Token 解码占比极低
5.2.基于奖励模型的强化学习面临采样效率低和reward hacking的风险
随着 OneRec 大规模部署后真实用户反馈变得可观测,这些瓶颈催生了 OneRec-V2 的诞生。
二、OneRec-V2
主要从架构和算法两个维度进行了系统性优化:架构上提出Lazy Decoder-Only架构解决计算效率问题,算法上引入基于真实用户反馈的强化学习突破奖励模型的局限性。
1.Lazy Decoder-Only架构
将计算资源集中到真正对损失贡献梯度的目标物品Token上。这一架构包含两个核心组件:
Onerec Lazy Decoder-Only模型结构图
1.1.Context Processor设计
Context Processor将异构的用户特征统一转换为适合Decoder用的键值对(把OneRec-V1中Encoder中的那部分摘出来了),成功提升架构效率。这些键值对对于同一上下文在整个前向传播过程中保持不变,因此可以被多个解码器层共享,而无需在每一层重新计算。实验表明,即使采用极致的共享策略(L_{kv} = 1, S_{kv} = 1),模型性能也不会受到明显影响。
1.2.Lazy Decoder Block设计
与传统Decoder-Only架构将所有输入拼接成一个长序列进行自注意力处理不同,Lazy Decoder-Only架构不将上下文信息作为序列的一部分,而是将其视为静态的条件信息,仅通过交叉注意力访问。这里“Lazy(惰性)”的含义是:只在目标 Token 位置计算损失,而不对整个序列的每个位置都计算下一 Token 预测损失。
在训练时,目标物品的前两个Semantic ID加上一个[BOS]Token组成输入序列(仅3个Token),这个紧凑的序列通过Lazy Decoder Block处理:
- Lazy Cross-Attention:让解码器隐藏状态关注Context Processor提供的键值对。Lazy:(1)无键值投影,直接使用预先计算好的键值对;(2)分组查询注意力(GQA),多个查询头共享同一组键值头,极大降低内存占用。
- Causal Self-Attention:在目标物品的Semantic ID Token之间进行自回归建模。
- Feed-Forward Network:对注意力输出进行非线性变换,在更深层可用MoE替代。
通过上述两种设计,Lazy Decoder-Only 架构实现了接近 100% 的计算资源集中在目标 Token 上。换言之,Lazy Decoder-Only 架构在保持相近的模型性能的前提下,将计算开销降低了94%,训练资源节约了90%。
1.3. Scaling Law验证
Lazy Decoder-Only 架构展现出优秀的可扩展性。OneRec-V2 成功将模型规模从 0.1B 扩展到 8B 参数,并观察到清晰的 Scaling Law:模型损失L随参数量N的增长呈现幂律衰减。
通过引入 MoE,一个总参数 4B 但每次仅激活 0.5B 的稀疏模型,收敛损失为 3.22,优于 2B 密集模型(损失 3.23),而计算开销与 0.5B 密集模型相当。这为在计算预算受限的情况下提升模型性能提供了有效途径。
2.用户反馈强化学习
在短视频推荐场景中,每个视频的播放时长是最密集的反馈信号,且与最重要的在线指标(如 App Stay Time 和 7 日留存 LT7)高度相关。然而,原始播放时长存在固有偏差:长视频天然倾向于累积更长的播放时长,无论用户兴趣如何。为解决这一偏差,OneRec-V2 提出了时长感知奖励塑形(Duration-Aware Reward Shaping),具体步骤如下。
2.1.对数分桶
采用对数策略将历史视频划分到不同桶中。
2.2.分桶内百分位计算
对于目标视频i,计算其播放时长Pi在对应时长桶内用户历史分布中的百分位排名。(也就是说比较之前看过的视频中,当前视频看的时长百分比)。
2.3.优势值分配
选择排名前25%的视频作为正样本,明确负反馈(如“不喜欢”)的视频作为负样本,其他样本过滤。
这种策略有效过滤出高质量正样本,同时纳入直接负反馈信号,生成更准确的用户偏好信号。
3.GBPO算法
OneRec-V2 发现传统的裁剪方法(如 PPO、GRPO、ECPO)无法完全解决梯度不稳定问题。问题的根源在于:对于策略比率为 1 的样本(如来自传统推荐管线的曝光样本),传统方法认为这些样本是稳定的而不进行裁剪,但实际上负样本仍可能导致梯度爆炸。
OneRec-V2 提出GBPO(Gradient-Bounded Policy Optimization),用 BCE 损失的稳定梯度来界定 RL 梯度:GBPO 相比传统裁剪方法有两个优势:(1)完整样本利用,保留所有样本的梯度,鼓励模型进行更多样化的探索;(2)有界梯度稳定化,用 BCE 损失的梯度界定 RL 梯度,增强训练稳定性。