文章链接:https://arxiv.org/pdf/2502.18965
机构:快手
发布时间:2025.02
Copyright (c) Wang-Luning. All Rights Reserved.
OneRec系列继承了Tiger使用SID直接预测下一个物品的范式,并通过RL等优化手段使得其生成效果更好,能够更接近端到端的目标效果。
传统的级联式推荐系统中,下游模块(例如ranking)的效果上限完全取决于上游模块(例如召回)给出的结果,这就限制了整个系统的能力上限:
OneRec致力于使用端到端的模型取代传统的级联推荐系统,而不仅仅满足于TIGER那种仅用于召回阶段的生成式模型。OneRec模型是Encoder-Decoder的架构,为了scale模型参数在decoder中使用了MoE,其输入用户历史行为序列并逐步解码出用户还可能感兴趣的新视频。为了避免逐个生成下一个视频导致还需要手工设计规则来重排组合这些生成结果,其抛弃了传统的单点的next-item prediction,使用session-wise list generation来生成一个list的高质量视频,让模型自己学习最优的session结构,从而端到端地模拟整个召回-精排-重排的过程,可以直接将生成的session推送给用户。另外,还引入了DPO来进一步增强生成结果的质量,使得模型能以更高概率生成用户偏好的session。
Prelim —— RQ-KMeans
RQ-KMeans本质上和TIGER中对于RQ-VAE的codebook的KMeans初始化过程类似。但RQ-VAE依赖于模型训练,其优化目标包括重建与量化损失,实践中还是容易导致码本坍塌问题(hourglass phenomenon,大部分SID集中于少量codes,其他codes几乎不会被用到)。
因此,OneRec等工作采用RQ-KMeans来构造SID,其同样采用逐层残差结构。只不过每层的codebook是直接通过训练数据做聚类得到的,而不是通过学习得出来的。
设某个输入视频
在构建codebook时,对于第
首先指定codebook大小为
在每轮迭代中,首先初始化未分配cluster的视频集
找到
用这些点的平均值更新聚类
同时将这些点移出未分配集
将上述过程迭代直到收敛,最终得到的那
RQ-KMeans构造出的SID通常分布更均匀,具有较强的区分性,码本坍塌问题更少,整体上更适合自回归生成任务。但不同物品的SID碰撞问题相对更多。
SID的构造:
对于用户侧特征,OneRec将正样本用户历史行为序列
对于每个视频
Session-wise List Generation:
一个session的定义是用户一次请求后返回的一批视频,通常是
session-wise list generation的模型
其中,
模型本身是Encoder-Decoder结构,其中Encoder输入历史序列
Decoder用于自回归地输出target session的SID。为了扩展模型参数,其中的FFN换成了MoE结构。实验中设置每层有
在训练时,训练数据中用于学习预测的ground truth高质量session被输入decoder中,且每个视频的SID之前都添加一个特殊的
训练的loss即为在这个输入序列上做NTP Loss,也即预测生成这个session。
推理时Encoder的输入是已知的用户历史序列,Decoder的输入是一个BOS token,来自回归地生成下一个session中的一系列视频的SID。
线上实验使用的是OneRec-1B模型
DPO偏好调整:
为了进一步加强模型生成高质量session的能力,在上一步预训练模型的基础上进一步使用DPO。
在NLP中,可以使用人类标注的偏好数据。然而在推荐系统中稀疏的用户与物品交互数据带来了挑战,没办法获得那么多直接由人类交互得到的偏好数据。因此首先需要训练一个奖励模型来预测用户对于一个session的偏好程度,从而代替DPO中通过人类标注来构造偏好数据的过程,自动化地构造大量的偏好数据用于DPO训练。
也即,这里训练的奖励模型的作用只是代替人类标注生成偏好数据,然后进一步拿这些偏好数据去做DPO,并不是直接作为RL的训练目标。DPO的目标是直接微调模型使得其以更大概率生成偏好的样本,而不是以生成能拿到更高奖励的样本作为直接目标(虽然最终优化结构也在某种程度上间接地达成了这个目标)。
考虑4种指标来反映用户对于一个session的偏好程度(奖励分数):
swt:session watch time,用户观看这个session的总时长
vtr:view probability,用户观看这个session的概率
wtr:follow probability,用户关注session中视频作者的概率
ltr:like probability,用户点赞session中视频的概率
奖励模型的训练目标就是能够在给定用户和某个session时能够精准预测上述指标。奖励模型本质上类似于传统推荐中的精排模型——给定用户和候选session,输出该候选session的得分(类比于CTR等指标,只不过这里换成一些短视频相关的指标)。
设
这样就可以得到候选session中各个视频的target-aware表征
然后,通过一个自回归层来在session内部的各个视频间进行交互:
最后,将session中各个视频处理后的表征相加得到这个session的总表征向量
训练数据中的session是已知上述4个指标的ground truth真实label值的,因此可以使用BCELoss作为目标来使得奖励模型的预测结果和真实结果尽可能接近:
得到训好的奖励模型
实际的训练过程采用了Iterative Preference Alignment(IPA),把NTP预训练和DPO过程穿插进行,逐步迭代多版模型(类似于PPO那种多轮迭代)。具体而言,首先单独进行NTP预训练并在