《OneRec: Unifying Retrieve and Rank with Generative Recommender and Preference Alignment》
近年来,基于生成式检索(generative retrieval-based)的推荐系统已成为一种极具前景的范式,它通过自回归的方式(autoregressive manner )直接生成 candidates 视频。然而,大多数现代推荐系统采用 retrieve-and-rank 策略,生成式模型(generative model )仅在检索阶段充当 selector。本文提出 OneRec,用 a unified generative model 替代 cascaded learning framework。据我们所知,这是首个在真实场景中的端到端生成式模型(end-to-end generative model), 该模型显著超越当前复杂的且设计精良的推荐系统。具体而言,OneRec 包含:
1):一个 encoder-decoder 结构,它对用户历史行为序列进行编码,并逐步解码用户可能感兴趣的视频。我们采用 sparse Mixture-of-Experts (MoE) 架构,在不按比例增加计算量(FLOPs )的前提下提升模型容量(model capacity)。
2):一个 session-wise generation 方法。与传统的 next-item prediction 不同,我们提出 session-wise generation。相比 point-by-point generation(其中, point-by-point generation 依赖人工设计规则来组合 generated results ),我们的方法更简洁、且上下文连贯性更强。
3):结合 Direct Preference Optimization (DPO) 的 Iterative Preference Alignment 模块,用于提升 generated results 的质量。与自然语言处理(NLP )中的 DPO 不同,推荐系统通常仅能在每个 user’s browsing request 时只有一次机会来展示结果,无法同时获取正负样本。为解决这一限制,我们设计一个 reward model 来模拟用户反馈,并根据推荐系统 online learning 的特性来定制化采样策略。大量实验表明,少量 DPO 样本即可对齐 user interest preferences ,显著提升 generated results 的质量。
在
NLP任务中,可以让模型同时生成多个结果,然后让人类标注员同时对这多个结果进行打分排序(如,result A > result B > result C)。因此,reward model能够同时获得正样本和负样本。但是在推荐系统中,无法同时给用户展示多组不同的
recommendation list。这会干扰用户体验。因此只能展示一个结果。用户要么对这个结果满意(有正反馈)、要么不满意(没有正反馈)。
我们已在日活跃用户数亿级的短视频推荐平台 Kuaishou 的核心场景部署 OneRec ,实现了 1.6% 的观看时长(watch-time )的提升,这是一项显著的改进。
为平衡效率(efficiency)与效果(effectiveness),大多数现代推荐系统采用级联排序策略(cascade ranking strategy )。如 Figure 1(b) 所示,典型的级联排序系统(cascade ranking system)采用三阶段 pipeline :recall、pre-ranking、以及 ranking。每个阶段负责从 received items 中筛选出 top-k items,并将结果传递至下一阶段,从而共同平衡 system response time 与 sorting accuracy 之间的权衡。

尽管在实践中具有效率优势,但现有方法通常将每个 ranker 视为独立的模块,每个孤立阶段的效果构成后续排序阶段的性能上限,从而限制了整个排序系统(overall ranking system)的表现。尽管已有多种尝试通过实现 rankers 之间的交互来提升整体推荐性能,但它们仍维持传统的级联排序范式(cascade ranking paradigm)。近年来,基于生成式检索的推荐系统(generative retrieval-based recommendation systems: GRs )兴起,成为一种极具前景的范式;它通过自回归的序列生成方式(autoregressive sequence generation manner )来直接生成 candidate item 的 id。通过使用 quantized semantic IDs (该 ID 编码了 item 语义)对 items 进行索引(《Autoregressive image generation using residual quantization》),recommenders 能够利用 items 中丰富的语义信息。GRs 的生成式特性(generative nature )使其适合通过 beam search decoding 直接选择 candidate items,并产生更多样化的推荐结果。然而,当前的 generative models 仅在检索阶段充当 selectors ,其 recommendation accuracy 尚未达到设计精良的 multiple cascade rankers 的水平。
为解决上述挑战,我们提出一种用于单阶段推荐(single-stage recommendation)的统一端到端生成框架 OneRec 。
首先,我们设计一个 encoder-decoder 架构。受大型语言模型训练中观察到的 scaling laws 启发,我们发现 scaling 推荐模型的容量同样能持续提升性能。因此,我们基于混合专家(MoE)结构来 scale up 模型参数,显著提升模型对 user interests 的表达能力。
其次,与传统的 point-by-point prediction of the next item 不同,我们提出 session-wise list generation 方法,考虑每个 session 中 items 的相关内容和顺序。point-by-point generation 方法需要人工设计策略以确保 generated results 的连贯性(coherence )和多样性(diversity),而 session-wise learning process 通过馈入偏好数据(preferred data),使模型能够自主学习最优会话结构(optimal session structure)。
最后,我们探索利用 direct preference optimization: DPO (《Direct preference optimization: Your language model is secretly a reward model》)进行偏好学习(preference learning),进一步提升 generated results 的质量。在构建 preference pairs 时,我们受 hard negative sampling (《On the theories behind hard negative sampling for recommendation》)的启发,从 beam search results 中生成 self-hard rejected samples ,而非 random sampling。我们提出 Iterative Preference Alignment: IPA 策略,根据 pre-trained reward model 提供的 scores ,从而对 sampled responses 进行排序,识别 best-chosen samples 和 worst-rejected samples。
我们在大规模工业数据集上的实验证明了所提方法的优越性,并通过一系列消融实验详细验证了每个模块的有效性。本文的主要贡献总结如下:
为克服 cascade ranking 的局限性,我们提出 single-stage generative recommendation 框架 OneRec。据我们所知,这是首个能够通过 unified generation model 处理 item recommendations 的工业解决方案之一,显著超越传统的 multi-stage ranking pipeline。
我们强调模型容量、以及通过 session-wise generation 方式捕获 target items 的上下文信息的必要性,这使得 predictions 更准确,并提升 generated items 的多样性。
我们提出一种基于 personalized reward model 的新型 self-hard negative samples selection 策略。通过 direct preference optimization,增强 OneRec 在更广泛 user preference 上的泛化能力。大量离线实验和 online A/B testing 验证了其有效性和效率。
由于模型无法输出具体的
predicted ctr/cvr值,因此,模型无法应用于广告系统。因为广告系统需要计算eCPM和eGMV。其中:eCPM = bid x pCtr、eGMV = bid x pCtr x pCvr。
Generative Recommendation:近年来,随着生成式模型(generative models)的显著发展,生成式推荐(generative recommendation)受到越来越多的关注。传统的 embedding-based 的检索方法,主要依赖双塔模型(two-tower model)计算每个 candidate item 的 ranking score,并利用高效的最大内积搜索(MIPS )或近似最近邻(ANN )等 search system 来检索 top-k relevant items 。与传统的 embedding-based 的检索方法不同,生成式检索(Generative Retrieval: GR )(《Recent advances in generative information retrieval》)方法把从数据库中检索 relevant documents 的问题表述为序列生成任务(sequence generation task),这通过逐次生成 relevant document tokens 来实现。document tokens 可以是 document titles 、document IDs 或 pre-trained semantic IDs (《Transformer memory as a differentiable search index》)。
GENRE (《Autoregressive entity retrieval》)首次采用 Transformer 架构进行 entity retrieval ,基于 conditioned context 以自回归方式(autoregressive fashion )生成 entity names 。
DSI (《Transformer memory as a differentiable search index》)首次提出为 documents 分配 structured semantic IDs 的概念,并训练 encoder-decoder models 用于 generative document retrieval 。
遵循这一范式, TIGER (《Recommender systems with generative retrieval》)提出 generative item retrieval models 框架从而用于推荐系统。
除 generation 框架外,items 的 index 方式也受到越来越多的关注。近期研究聚焦于 semantic indexing 技术,旨在基于内容信息对 items 进行 index。具体而言:
TIGER(《Recommender systems with generative retrieval》)和 LC-Rec (《Adapting large language models by integrating collaborative semantics for recommendation》)将 residual quantization ( RQ-VAE )应用于 textual embeddings (这些 textual embeddings 从 item titles and descriptions 提取而来),以实现 tokenization。
Recforest (《Recommender forest for efficient retrieval》)对 item textual embeddings 进行 hierarchical k-means clustering ,将 cluster indexes 作为 tokens。
此外,EAGER(《EAGER: Two-Stream Generative Recommender with Behavior-Semantic Collaboration》)等近期研究探索将语义信息(semantic information )和协同信息(collaborative information )整合到 tokenization 过程中。
Preference Alignment of Language Models:在大型语言模型(Large Language Models: LLMs)的 post-training 阶段,基于人类反馈的强化学习(Reinforcement Learning from Human Feedback: RLHF)是一种主流方法;RLHF 通过由reward models (reward model 代表人类反馈)引导的强化学习技术,使 LLMs 与人类价值观(human values)对齐。
然而,RLHF 存在不稳定性和低效性问题。Direct Preference Optimization: DPO (《Direct preference optimization: Your language model is secretly a reward model》)应运而生,它以闭式形式(closed form )推导最优策略,并支持利用preference data 直接优化。此外,已有多种变体被提出以进一步改进原始 DPO 。例如:
IPO(《A general theoretical paradigm to understand learning from human preferences》)通过一个 general objective 规避了 DPO 中的两个 approximations 。
cDPO(《Direct preference optimization: Your language model is secretly a reward model》)通过引入超参数 noisy labels 的影响。
rDPO (《Provably Robust DPO: Aligning Language Models with Noisy Feedback》)设计了 original Binary Cross Entropy loss 的无偏估计。
其他变体如 CPO(《Contrastive preference optimization: Pushing the boundaries of llm performance in machine translation》)、simDPO (《Provably Robust DPO: Aligning Language Models with Noisy Feedback》)也在不同方面对 DPO 进行了增强或扩展。
然而,与传统 NLP 场景不同(在 NLP 场景中,preference data 通过人工来显式地标注),推荐系统中的 preference learning 面临独特挑战,即 user-item interaction 数据的稀疏性。这一挑战导致 DPO 在推荐系统中的应用尚未得到充分探索。与 S-DPO (侧重于整合 user preference data 中的多个负样本从而用于 LM-based recommenders )不同,我们训练 reward model ,并基于 reward model 的分数为不同用户选择 personalized preference data 。
本节详细介绍 OneRec ,一种通过 single-stage retrieval manner 来生成 target items 的端到端框架。
首先,我们介绍 industrial applications 中 single-stage generative recommendation pipeline 的 feature engineering 。
然后,我们正式定义 session-wise generative tasks,并展示所提出的 OneRec 模型的架构。
最后,我们详细阐述模型结合 personalized reward model 进行 self-hard negative sampling 的能力,并说明如何通过 direct preference optimization 来迭代地提升模型性能。
OneRec 的整体框架如 Figure 2 所示。

本节从 feature engineering 角度介绍 single-stage generative recommendation pipeline 的构建。对于用户侧特征,OneRec 以用户的 positive historical behavior sequences likes 、关注 follows 、分享 shares)过的视频,OneRec 的输出是 a list of videos,由一个 session session 中的视频数量( "session" 的详细定义见下一章节)。
对于每个视频 multi-modal embeddings embeddings 与 real user-item behaviour distribution 对齐(《QARM: Quantitative Alignment Multi-Modal Recommendation at Kuaishou》)。
multi-modal embeddings是如何得到的?根据论文 QARM,它是文本pre-trained embedding、音频pre-trained embedding、以及视频pre-trained embedding的拼接。
基于 pretrain multi-modal representation ,现有的生成式推荐框架(《MMGRec: Multimodal Generative Recommendation with Transformer Model》、《Recommender systems with generative retrieval》)使用 RQ-VAE (《Soundstream: An end-to-end neural audio codec》)将 embedding 编码为 semantic tokens 。
RQ-VAE的编码思想与本论文的multi-level balanced quantitative mechanism基本上相同,区别在于codebook构建上不同。对于RQ-VAE:解码器通过将所有
codebook tokens对应的向量相加即可重建原始向量:
codebook是通过训练来学习到的。RQ-VAE的训练数据集为:。对于样本 ,学习目标为最小化 : 其中:
为 reconstruction loss。
为 codebook loss。其中sg()表示stop-gradient操作,表示的梯度禁止回传;这使得这个 loss仅仅更新,让 尽可能靠近残差 。
为 commit loss。这里的梯度禁止回传,使得这个 loss仅仅更新残差,让残差 尽可能靠近 。
为超参数。
但是这里有个问题:
,这个 argmin函数是不可微的,这使得反向传播中出现梯度中断。为此,RQ-VAE中采用了直通估计器(Straight-Through Estimator: STE)来解决这种离散操作不可微的问题。STE的核心思想是:
前向传播:通过
argmin函数(不可微的)选出。 反向传播:用一个可微的函数(这里是恒等映射
)来近似这个不可微的操作。在 RQ-VAE中,反向传播期间,梯度流向了,其中 。
沙漏现象指的是:在
RQ-VAE中,中间level的tokens的分布变得非常不均匀:某些tokens被频繁使用、某些tokens被很少使用。这会导致如下问题:
表达效率低下:如果某些
tokens被很少使用,那么它们对应的codebook向量就得不到充分的训练,浪费了模型容量。模型性能下降:模型在预测这些低频
tokens时会遇到困难。沙漏现象的原因:
数据分布的特性:在推荐系统中,视频的
embeddings分布并非均匀的。它们往往形成一些大而宽的聚类(如,“娱乐”、“体育”)、以及小而密的聚类(如,特定的游戏)。
first-level量化:first-level codebook负责捕获最宏观的语义信息。由于聚类数量少(宏观类别少),first-level codebook能够被相对均匀地使用。
middle-level的困境:经过first-level量化之后,残差数据的分布变得非常复杂和分散。它需要捕获每个宏观类别内部的大量细分信息。然后,middle-level codebook的容量是固定的。它难以同时很好地覆盖到所有宏观类别内部的细分结构。 导致的结果是:
middle-level codebook只有少数几个热门的code vector被频繁地用于补偿各种宏观类别下常见的残差,而大部分code vector很少被使用到。这造成了middle-level codebook的利用率极低。
tail-level量化:到了最后一个level,任务变得相对单纯:它只需要修复前面levels量化后剩余的、非常细微的残差。这些细微的残差的分布相对均匀,因为tail-level codebook又能够被均匀地使用。
然而,这种方法存在不足,由于 code distribution 不平衡,会出现 “沙漏现象” (hourglass phenomenon)(《Breaking the Hourglass Phenomenon of Residual Quantization: Enhancing the Upper Bound of Generative Retrieval》)。我们应用多级平衡量化机制(multi-level balanced quantitative mechanism),通过 residual K-Means quantization algorithm (《QARM: Quantitative Alignment Multi-Modal Recommendation at Kuaishou》)对
在 first level (initial residual )定义为
在每个 level 中,我们有一个 codebook codebook 大小。通过计算:
生成最接近 centroid node embedding 的索引 next level
因此,相应的 codebook tokens 通过 hierarchical indexing 来生成:
其中:sematic ID 的 total layers。
为构建 balanced codebook Algorithm 1 中详细描述的 Balanced K-means 进行 itemset partitioning 。给定 total video set clusters ,每个 cluster 恰好包含 centroid )基于欧氏距离(Euclidean distance )依次分配其最近的 mean vectors 重新校准质心。当 cluster assignments 达到收敛时,满足终止条件。
收敛条件为:在连续的两轮迭代之间,所有数据点归属的
cluster不再发生变化,则收敛。下面的算法在每一轮迭代都会更新所有的质心。每轮迭代过程为:
首先将所有视频设置为
unassigned。然后轮流更新每个质心:对质心
,将距离它最近的 个未分配的视频分配给它。
注意:由于有
个 codebook。下面的算法并不是同时生成 个 codebook,而是从依次迭代:
首先生成
,数据集为 , 为 item语料库的总数。然后基于
来计算残差 。 然后生成
,数据集为 。 ...。

与仅预测 next video 的 point-wise recommendation 方法不同,session-wise generation 旨在基于用户的历史 interaction sequences 来生成 a list of high-value sessions ,使推荐模型能够捕获 the recommended list 中视频之间的依赖关系。具体而言,a session 指响应 user request 所返回的 a batch of short videos ,通常包含 5 至 10 个视频。a session 中的视频通常会考虑用户兴趣、连贯性、以及多样性等因素。我们设计了若干标准来识别高质量 sessions,包括:
用户在 session 内实际观看的短视频数量大于或等于 5。
用户观看该 session 的总时长超过特定阈值。
用户表现出互动行为,如点赞、收藏、或分享视频。
这种方法确保我们的 session-wise model 从 real user engagement patterns 中学习,并捕获 session list 中更准确的上下文信息。因此,我们的 session-wise model objective 可形式化为:
其中:
semantic IDs 来表达:
semantic IDs :
如 Figure 2(a) 所示,与 T5 架构一致,我们的模型采用 Transformer-based 的框架,包含两个主要组件:
一个 encoder,用于建模用户历史交互。
一个 decoder ,用于 session list generation 。

具体而言,encoder 利用堆叠的 multi-head self-attention layers 和 feed-forward layers 处理 input sequence encoded historical interaction features 表示为
decoder 以 target session 的 semantic IDs 为输入,以自回归方式生成 target 。为了在合理的经济成本下运行更大的模型,对于 decoder 中的前馈神经网络(feed-forward neural networks: FNNs),我们采用 Transformer-based 的语言模型中常用的 MoE 架构,并将第 FNN 替换为:
其中:
experts 总数;Topk 选择的 experts 数量。
expert FFN ;expert 的门控值(gate value)。门控值 MoE layer 内的计算效率,每个 token 仅分配给 experts 进行计算。
读者猜测:
为待学习的权重,用于生成 。
为什么仅在
decoder中使用MoE,而不在encoder中使用MoE?读者猜测有几个原因:
任务难度不同:
decoder的generation任务要比encoder的understand任务更难更复杂,因此需要更大的模型容量。计算效率不同:
encoder只需要执行一次,因此用dense模型就可以;而decoder需要执行多次,因此要用MoE来降低计算量。架构的契合程度:
MoE的不同experts聚焦于不同的专业,在generation任务中可能会生成多样化的结果;相比之下,encoder的任务相对专一,对expert的专业化需求没那么强烈。
在训练过程中,我们在 decoder 的每组 code 的开头添加一个 start token decoder inputs 为:
我们利用 cross-entropy loss 对 target session 的 sematic IDs 进行 next-token prediction: NTP 。NTP loss
在 session-wise list generation 任务上经过一定量的训练后,我们得到种子模型(seed model)
Session-wise List Generation 章节中定义的高质量 sessions 提供了有价值的训练数据,使模型能够学习优质 session 的构成,从而确保 generated videos 的质量。在此基础上,我们旨在通过直接偏好优化(Direct Preference Optimization: DPO)进一步提升模型能力。在传统自然语言处理(NLP)场景中,preference data 通过人工显式地标注。然而,推荐系统中的 preference learning 由于 user-item interaction data 的稀疏性而面临独特的挑战,这就需要奖励模型(reward model: RM)的支持。因此,首先我们介绍 a session-wise reward model 。接下来,将描述我们如何通过提出 iterative direct preference optimization 来改进传统的 DPO,使模型能够 self-improvement。
在推荐系统中,能否通过人工显式标注来获得
preference data?答案是否定的。因为推荐系统的preference data是个性化的。标注员的preference data只能代表这个标注员的偏好,无法代表每个用户的偏好。
Reward Model Training:我们用 preference data 的奖励模型。其中,输出 user behavior 来表示)对 session preference 所对应的奖励。为使奖励模型具备 rank session 的能力,我们首先提取 session item target-aware representation target-aware operation(如 target attention toward user behavior )。由此,我们得到 session target-aware representation
为 user representation sequence,从用户历史行为中抽取而来;为 item的 item representation。注意,这里的
不是逐元素乘法而是 target-attention。
然后,session 内的 items 通过 self-attention layers 相互作用,融合不同 items 间的必要信息:
其中:
这里有两个序列:
一个是用户历史序列
,可以用 item embedding sequence来代表。另一个是
target session序列。首先利用
target item对进行 target-attention,得到;然后聚合所有 target-attention结果得到。
接下来,我们利用不同的 tower 对 multi-target reward 进行预测,奖励模型通过大量推荐数据进行预训练:
这里的
Sum()表示sum池化。因为target-attention得到了个 representation,导致也包含了 个 representation。
得到每个 session 的所有 estimated rewards binary cross-entropy loss 来训练奖励模型。损失函数
奖励模型的本质是:给定用户历史行为序列(即,
),预测 target session的奖励。 针对
multi-target reward,论文采用这些奖励的均值作为final reward。
Iterative Preference Alignment: IPA:基于 pre-trained Reward Model OneRec beam search 为每个用户生成 responses :
然后,我们基于 Reward Model response 的奖励
接下来,我们通过选择奖励值最高的 winner response loser response preference pairs preference pairs ,我们可以训练一个新模型 DPO loss (《Direct preference optimization: Your language model is secretly a reward model》)的损失函数进行更新,以从 preference pairs 中学习。每个 preference pair 对应的损失如下:
如 Figure 2(b) 和 Algorithm 2 所示,整体流程涉及训练一系列模型 beam search inference 过程中的计算负担,我们仅随机采样 1% 的数据用于 preference alignment (preference data
DPO的目标是:让新模型相比于旧模型 :提高正样本 的相对概率、降低负样本 的相对概率。
对数概率比
刻画了模型对于样本 的偏好提升程度。如果比值 (意味着对数大于零),则新模型认为 更可能发生。 控制偏好提升的强度, 越大则偏好越强。 括号中的第一项:刻画了模型对于正样本
的偏好提升程度;括号中的第二项:刻画了模型对于负样本 的偏好下降程度(因为有个负号)。 这里其实不需要奖励模型,只需要给出
preference pairs即可。 第一项和第二项的差代表了偏好差值。我们希望正样本的提升大于负样本的提升(甚至希望负样本下降)。差值越大,说明新模型越能区分好坏样本。
为 sigmoid函数,将这个偏好差值映射到(0, 1)区间。差值越大,则sigmoid越接近1。最后,采用负的对数损失,这是标准的二分类交叉熵损失函数。
在
OneRec中,DPO被用于迭代偏好对齐(IPA),其特殊性在于:
自生成偏好对:正负样本来自同一模型在不同
beam search路径下的生成结果。奖励模型用于评分,选出最佳和最差样本作为偏好对。这解决了推荐系统中“无法同时获得正负样本”的问题。在线迭代优化:每轮使用当前模型生成样本 -> 评分 -> 构建偏好对 -> 更新模型。实现持续自我提升的闭环。
为什么仅采用
1%数据用于DPO?主要有以下原因:
计算效率:
DPO训练需要生成多个候选响应(beam search),这在高并发、大规模推荐系统中计算成本很高。仅对1%的用户进行DPO采样,可以在不明显增加推理负担的情况下进行偏好对齐。实验结果显示
1%已足够:论文中通过消融实验发现,当DPO采样比例从1%提升到5%时,性能提升非常有限。这意味着在推荐系统中,少量高质量的偏好样本就足以有效对齐模型,而不需要大规模采样。在线系统的稳定性:在工业级系统中,保持系统稳定性和响应速度至关重要。使用
1%的DPO采样可以在不影响整体服务性能的情况下,持续优化模型。资源与效果平衡:实验表明,
1%的采样比例可以实现约95%的最佳性能,而所需计算资源仅为更高采样比例的20%。这是一种效率与效果的折中策略,适合在工业环境中部署。此外,论文采用的是在线
DPO采样。
维度 离线 DPO 采样 在线 DPO 采样 数据时效性 滞后,无法反映最新兴趣 实时,捕捉即时反馈 模型迭代 需要重新训练,周期长 持续在线微调,快速迭代 系统耦合 解耦,易于实验 与在线服务紧密集成 计算负担 批量处理,资源可控 需实时响应,资源要求高 适用场景 实验研究、基线对比 工业部署、在线优化

OneRec 已成功应用于真实的工业场景。在平衡稳定性和性能的前提下,我们部署 OneRec-1B 用于 online services。如 Figure 3 所示,我们的 deployment 架构包含三个核心组件:training system 、online serving system 、DPO sample server。
系统将收集到的 interaction 日志作为训练数据,最初采用 next token prediction objective seed model 。
seed model 收敛后,添加 DPO loss preference alignment ,并利用 XLA 和 bfloat16 mixed-precision training 来优化计算效率和内存利用率。
DPO的数据是在线收集的;但是添加DPO loss进行preference alignment这一步是在离线(offline)训练系统中进行的,但它依赖于在线(online)实时采集的样本数据。但是,一旦模型离线训练好之后,立即推送到线上,从而进行下一轮DPO数据收集和基于DPO loss的模型更新迭代。
你可以将
XLA理解为一个“深度学习模型的编译器”。它的工作流程与传统编译器类似:
输入:接收由
TensorFlow/JAX定义的计算图(通常是动态的、由多个算子组成)。编译优化:在运行前,
XLA会执行一系列高级优化:
算子融合:将多个细粒度操作(如:矩阵乘 + 激活函数 + 偏置添加)合并为一个融合的“超级”算子。这能显著减少:
内核启动开销:
GPU上每次启动一个计算核心都有成本,融合后总次数大大减少。中间结果的内存读写:融合算子内部的中间结果留在高速缓存或寄存器中,无需写回和重新读取全局内存。
内存布局优化:重新组织张量在内存中的存储方式,以匹配硬件(如
GPU)的最佳访问模式,从而提高内存带宽利用率。常量折叠:将计算图中在编译时就能确定结果的子图计算出来,用常量替代。
死代码消除:移除对最终输出无影响的冗余计算。
目标代码生成:为特定的硬件后端(如
NVIDIA GPU、Google TPU)生成高度优化的、原生级别的机器代码。输出与执行:执行编译后的高效代码,而非原始的、逐个算子解释执行的路径。
trained parameters 同步到 online inference 模块和 DPO sampling server,用于 real-time serving 和 preference-based data selection。

为提升推理性能,我们实施了两项关键优化:
结合 float16 quantization 的 key-value cache decoding 机制,以减少 GPU 内存开销。
beam size = 128 的 beam search configuration ,以平衡 generation 质量和延迟。
此外,得益于 MoE 架构,inference 过程中仅激活 13% 的参数。
本节首先在离线环境中将 OneRec 与 point-wise 方法、以及多种 DPO 变体进行比较。然后,通过对所提出模块的消融实验来验证OneRec 的有效性。最后,在 Kuaishou 部署 OneRec 并进行 online A/B test ,进一步验证其性能。
数据集是什么样子?论文没有讲。
实现细节:
我们的模型使用 Adam optimizer 训练,初始学习率为
采用 NVIDIA A800 GPU 从而用于 OneRec optimization 。
训练过程中,DPO sample ratio 1% ,通过 beam search 为每个用户生成 responses 。
semantic identifier clustering 过程中,每个 codebook layer 采用 clusters ,codebook layers 数量设置为
即,每个
item由三个code组成:,每个 code取值范围是。
Mixture-of-Experts 架构包含 experts,每次前向传播通过 top-k 选择激活 experts。
session modeling 中,考虑 target session items ,并采用
baseline 方法:我们采用以下具有代表性的推荐模型、DPO 及其变体作为对比基线:
baseline 模型包括:
SASRec:采用单向 Transformer 架构,捕获 user-item interactions 中的序列依赖关系(sequential dependencies ),用于 next-item prediction。
BERT4Rec:利用双向 Transformer 和 masked language modeling ,通过序列重构(sequence reconstruction )来学习 contextual item representations 。
FDSA:实现 dual self-attention pathways ,在异构推荐场景中联合建模 item-level transitions 和 feature-level transformation 。
TIGER:利用 hierarchical semantic identifiers 和 generative retrieval 技术,通过 auto-regressive sequence generation 来实现 sequential recommendation 。
对于 OneRec 方法,我们考虑如下的变体:
DPO:通过 implicit reward modeling ,从人类反馈数据中推导 a closed-form reward function,从而形式化 preference optimization。(《Direct preference optimization: Your language model is secretly a reward model》)
IPO:提出理论基础扎实的 preference optimization framework,规避 standard DPO 中固有的 approximations。(《A general theoretical paradigm to understand learning from human preferences》)
cDPO:引入 robustness-aware 的变体,包含 label flipping rate 超参数 noisy preference annotations。(《A note on dpo with noisy preferences and relationship to ipo》)
rDPO:利用 importance sampling 来设计 unbiased loss estimator,从而减少 preference optimization 中的方差(variance)。(《Provably Robust DPO: Aligning Language Models with Noisy Feedback》)
CPO:通过联合训练 sequence likelihood rewards 和 supervised fine-tuning objectives,将 contrastive learning 与 preference optimization 统一起来。(《Contrastive preference optimization: Pushing the boundaries of llm performance in machine translation》)
simPO :采用 sequence-level reward margins 进行 preference optimization,通过 normalized probability averaging 来消除对 reference model 的依赖。(《SimPO: Simple Preference Optimization with a Reference-Free Reward》)
S-DPO :通过 hard negative sampling 和 multi-item contrastive learning,使 DPO 适应推荐系统,提升 ranking accuracy。(《On Softmax Direct Preference Optimization for Recommendation》)
评估指标:我们使用多个关键指标来评估模型性能。每个指标用于评估模型输出的不同方面,每次迭代均在随机采样的测试集上进行评估。为估计每个特定 user-session pair 的各种交互的概率,我们采用 pre-trained reward model 来评估 recommended sessions 的价值。我们计算不同 target metrics 的平均奖励,包括 session watch time: swt、view probability: vtr、follow probability: wtr 和 like probability: ltr。其中,swt 和 vtr 属于 watching-time 指标,wtr 和 ltr 属于 interaction 指标。
Table 1 展示了 OneRec 与各种基线的综合对比。对于 watching-time 指标,我们主要关注 session watch time: swt;对于 interaction 指标,主要关注 like probability: ltr。实验结果揭示了三个关键发现:
首先,所提 session-wise generation 方法显著优于传统的 dot-product-based 的方法、以及 TIGER 等 point-wise generation 方法。OneRec-1B 相比 TIGER-1B ,maximum swt 提升了 1.78% ,maximum ltr 提升了 3.36%。这证明了 session-wise modeling 在维持 recommendations 的上下文连贯性(contextual coherence )方面的优势,而 point-wise 方法难以平衡 generated outputs 的连贯性(coherence)和多样性(diversity)。
其次,少量比例的 DPO training 能带来显著收益。仅使用 1% 的 DPO training ratio(OneRec-1B+IPA 相比基础模型 OneRec-1B ,maximum swt 提升 4.04%,maximum ltr 提升 5.43%。这表明 limited DPO training 即可有效地使模型与 desired generation patterns 进行对齐。
第三,所提 IPA 策略优于现有的多种 DPO 变体。如 Table 1 所示,IPA 的性能优于其他 DPO implementations。值得注意的是,部分 DPO baselines 的性能甚至低于未进行偏好对齐的 OneRec-1B 模型,这表明:利用 self-generated outputs 的 iterative mining 来进行 preference selection ,比其他方法更有效。
基础模型(
Base OneRec-1B):仅使用session-wise generation训练(NTP loss),未使用DPO。
OneRec-1B+DPO:在基础模型上使用标准DPO进行一次微调(使用1%的DPO数据)。
OneRec-1B+IPA:使用迭代偏好对齐(IPA),即多次迭代进行DPO微调,每次迭代使用当前模型生成样本并选择偏好对。

DPO Sample Ratio 消融实验:为探究 DPO training 中样本比例 controlled conditions 下将 DPO sample ratio 从 1% 调整至 5% 。如 Figure 4 所示:消融结果表明,增加 sample ratio 在多个 evaluation targets 上仅带来微小的性能提升。
值得注意的是,超过 1% 的 baseline 后,尽管计算开销增加,但性能提升并不显著。此外,DPO sample server inference 过程中, sample ratio 与 GPU 资源利用率呈线性关系:5% 的sample ratio 所需 GPU 资源是 1% baseline 的 5 倍。这种 scaling 特性明确了计算效率与模型性能之间的权衡。因此,在平衡计算效率和性能后,我们采用 1% 的 DPO sample ratio 进行训练,该 sample ratio 能达到观测到的最大性能的 95% ,而仅需 higher sample ratio 所需计算资源的 20% 。

Model Scaling 消融实验:我们评估了 OneRec 在模型规模 scale up 时的性能表现。如 Figure 6 所示,将 OneRec 从 0.05B 参数扩展至 1B 参数,性能持续提升,展现出一致的的 scaling 特性。具体而言:
与 OneRec-0.05B 相比,OneRec-0.1B 的 maximum accuracy 显著提升 14.45% 。
进一步扩展至 0.2B 、0.5B 和 1B 参数时,accuracy 分别额外提升 5.09% 、5.70% 和 5.69%。
Layer 1 accuracy指的是模型在Semantic ID第一层上的预测准确率。即,预测到target item的第一个code的准确率。由于有3层code,这里给出了Layer 1/2/3 accuracy。可以看到,
Layer越大,accuracy。因为:这里的“accuracy”指的是给定前面所有层都预测正确的条件下,该层预测正确的条件概率。由于:选择空间逐层缩小、不确定性逐层降低、预测任务逐层变简单,所以条件准确率的数值会逐层升高,但这绝不意味着Higher Layer预测比Lower Layer更重要或更难。

如 Figure 5 所示,我们展示了不同 layer 中 8192 codes 的 predicted probability distributions,其中红色星号表示 highest reward value 的 item 的 semantic ID。
与 OneRec baseline 相比,OneRec+IPA 在 prediction distributions 上表现出显著的 confidence shift,表明所提出的 preference alignment 策略有效地促使 base model 产生更好的 generation patterns。
此外,我们观察到 first layer 的 probability distribution 的发散程度更高(entropy = 6.00),而后续层的分布逐渐集中(第二层的 average entropy = 3.71,第三层的 average entropy = 0.048 )。这种 hierarchical uncertainty reduction 可归因于 autoregressive decoding 机制:initial layer 的 predictions 继承了 preceding decoding steps 的高不确定性;而后续层得益于 accumulated context ,其中 accumulated context 约束了决策空间。
第一层预测是从所有可能
ID中选,不确定性最高;第二层在第一层确定的簇内细化,选择范围小;第三层进一步缩小范围。所以层数越高,选择空间越小,准确率自然上升。类似于category的逐层细化。

为评估 OneRec 的 online 性能,我们在快手主页的 video recommendation 场景中进行严格的 online A/B tests,将 OneRec 与当前的 multi-stage recommender system 在 1% 的主流量上进行对比。我们使用 Total Watch Time(用户观看视频的总时长)和 Average View Duration(用户在推荐系统返回的 session 中,每个视频的平均观看时间)作为评估指标。
Online evaluation 显示,OneRec 的 total watch time 提升 1.68% ,average view duration 提升 6.56% ,表明 OneRec 取得了更优的推荐效果,并为平台带来了可观的收益增长。

本文提出一种用于 single-stage generative recommendation 的工业级解决方案。该方案的核心贡献包括三个方面:
首先,通过应用 MoE 架构,在高计算效率下有效 scale up 模型参数,为大规模工业推荐提供了可扩展的蓝图。
其次,我们发现以 session-wise generation 方式建模 the contextual information of target items 的必要性,证明 contextual sequence modeling 比孤立的 point-wise manner 更能捕获 user preference dynamics。
此外,我们提出 Iterative Preference Alignment: IPA 策略,提升 OneRec 在 diverse user preference patterns 上的泛化能力。
大量离线实验和 online A/B testing 验证了 OneRec 的有效性和效率。此外,在线结果分析表明,除 user watch time 外,我们的模型在点赞(likes)等交互指标(interactive indicators )上仍有改进空间。未来研究中,我们旨在增强端到端生成式推荐(generative recommendation )的 multi-objective modeling 能力,以提供更优的用户体验。