OneRec-V1和V2的架构演进
一、OneRec-V1为了解决大量资源消耗在通信和存储而非模型计算GPU 利用率远低于大语言模型各阶段目标分散模型结构差异导致建模不一致级联架构阻碍了 Scaling Law、强化学习对齐等先进技术的应用的问题快手团队提出了OneRec框架将推荐系统重新定义为端到端的生成式任务模型根据用户上下文直接“生成”推荐序列而非从候选集中“挑选”物品。1.语义IDSemantic ID的设计阶段一协同感知的多模态表示学习通过视觉语言模型处理每个视频的多模态信息生成1280个Token向量再用QFormer模块将这些向量压缩为4个可学习的查询向量。再引入物品对对比学习拉进这些物品对的表示使Semantic ID能够同时编码内容语义和行为模式。为了防止退化还加入标题生成的辅助任务确保表示保留内容理解能力。物品对对比学习从用户行为中提取高协同相似度的物品对如同一用户正向点击的物品阶段二RQ-Kmeans层次化量化将协同感知的多模态表示采用残差量化K-meansRQ-Kmeans将连续表示离散化为Semantic ID不用与端到端训练的RQ-VAERQ-Kmeans直接在残差上应用K-means聚类构建码本。经过三层量化每个视频m获得由粗到细的语义标识符序列{sm1sm2sm3}这将成为生成式推荐模型的输出目标。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 PathwayOneRec采用分层压缩策略首先通过分层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-ScorePreference Score。基于SIMSearch-based Interest Model架构为每个目标构建独立值每个独立值使用对应的标签计算二元交叉熵损失作为辅助。各个值的隐状态联通用户和物品表示被输入最终MLP层输出P-Score。通过调整权重可以让P-Score偏向各个目标最终在所有目标上都实现 AUC 提升。这种方法能够接收具体用户信息为该用户动态调整偏好分数而不会影响其他用户体验。3.2.生成格式规范化引入格式奖励应对推理时生成的无法映射到实际物品ID的非法序列挤压效应。具体而言从生成样本中随机选择部分进行合法性强化学习对合法样本设置优势为 1对非法样本直接丢弃以避免挤压效应。3.3.工业场景对齐OneRec 的端到端特性使得只需将优化目标融入奖励系统通过强化学习进行针对性优化。当病毒内容占比超过最优比例 时对其 P-Score 奖励进行降权。4.ECPO算法ECPOEarly 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提供的键值对。Lazy1无键值投影直接使用预先计算好的键值对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 提出GBPOGradient-Bounded Policy Optimization用 BCE 损失的稳定梯度来界定 RL 梯度GBPO 相比传统裁剪方法有两个优势(1)完整样本利用保留所有样本的梯度鼓励模型进行更多样化的探索(2)有界梯度稳定化用 BCE 损失的梯度界定 RL 梯度增强训练稳定性。

相关新闻

C语言开发工具选型指南:VS、CLion、VSCode与Dev C++深度横评

C语言开发工具选型指南:VS、CLion、VSCode与Dev C++深度横评

1. 项目概述:为什么C语言开发者需要一个清晰的工具选型指南?干了这么多年C语言开发,从学生时代的Turbo C到后来在工业级项目里摸爬滚打,我最大的感触之一就是:工具选对了,事半功倍;工具选错了&a…

2026/10/18 12:52:16 阅读更多 →
如何5分钟搞定全格式文档处理:AnythingLLM智能解析终极指南

如何5分钟搞定全格式文档处理:AnythingLLM智能解析终极指南

如何5分钟搞定全格式文档处理:AnythingLLM智能解析终极指南 【免费下载链接】anything-llm Stop renting your intelligence. Own it with AnythingLLM. Everything you need for a powerful local-first agent experience 项目地址: https://gitcode.com/GitHub…

2026/10/18 12:52:45 阅读更多 →
UE5 GAS技能升级降级:基于GameplayEffect与Tag计数的完整实现方案

UE5 GAS技能升级降级:基于GameplayEffect与Tag计数的完整实现方案

1. 项目概述与核心价值在UE5里做RPG,技能系统绝对是重头戏。玩家辛辛苦苦攒了经验值,点开技能面板,面对琳琅满目的技能树,最期待的就是那个“升级”按钮按下去的瞬间——无论是火球术伤害10%,还是治疗术冷却时间缩短2秒…

2026/10/18 10:29:29 阅读更多 →

最新新闻

用A4纸拼出广告牌:低成本大幅面打印的完整工作流与创意实践

用A4纸拼出广告牌:低成本大幅面打印的完整工作流与创意实践

最近路过街头时看到一台摆在路边的打印机,身边围了一圈人,正一张接一张地往外吐A4纸,旁边贴了半面墙的成品。凑近一看才发现,那根本不是一张普通的"打印演示",而是在现场打印一整个广告牌——用最普通的A4纸…

2026/10/19 20:56:16 阅读更多 →
极小函数依赖集求解算法:拆、删、消三步与手算例题

极小函数依赖集求解算法:拆、删、消三步与手算例题

函数依赖的极小化,大概是数据库原理课里最让人“背得下定义却下不了笔”的考点了。提到极小函数依赖集,多数人都能背出三条:右部单属性、没有冗余依赖、没有冗余属性。可真给你一张函数依赖集F,让你求Fmin,很多人第一步…

2026/10/19 20:55:12 阅读更多 →
数据可视化全流程实操:Python+Seaborn从选图到避坑

数据可视化全流程实操:Python+Seaborn从选图到避坑

某高校的数据能力提升营走到第7天,主题就是数据可视化。这个营我们内部一直叫它“疏锦行”,名字听着文艺,实际任务却很务实:一周时间,从数据采集一路练到统计建模,而第7天这一天,不带任何新模型…

2026/10/19 20:55:12 阅读更多 →
线性回归从手写梯度下降到sklearn实战:原理、特征工程与过拟合避坑

线性回归从手写梯度下降到sklearn实战:原理、特征工程与过拟合避坑

如果你只会调包,那线性回归等于没学会作为数据分析或者机器学习入门的第一课,线性回归几乎是所有人都会遇到的第一个模型。我见过太多人上来就from sklearn.linear_model import LinearRegression,然后fit、predict、打印个 R 就算完事。真要…

2026/10/19 20:55:12 阅读更多 →
达梦数据库大小写敏感机制详解:从原理到实践避坑

达梦数据库大小写敏感机制详解:从原理到实践避坑

1. 项目概述:达梦大小写敏感到底是个什么事做数据库开发或者运维的朋友,只要是第一次接触达梦数据库,十有八九会遇到一个让人摸不着头脑的现象:明明建表时写的是 "USER_INFO",去查询的时候写 "user_inf…

2026/10/19 20:52:07 阅读更多 →
C++ std::bind实战:占位符、引用陷阱与lambda取舍

C++ std::bind实战:占位符、引用陷阱与lambda取舍

1. 我为什么又回头研究bind:代码里最不起眼的粘连剂搞C时间一长,你会发现真正让代码"绕起来"的往往不是那些宏大设计,而是一堆不起眼的小工具。std::bind就是其中之一。最近接手的某调度模块里,回调参数七零八落&#x…

2026/10/19 20:52:07 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →