1:论文背景

标题:基于生成式推荐模型与偏好对齐的召回排序统一框架

作者团队:快手

研究内容:将原来的召回->粗排->精排,替换成了端到端的生成式推荐。在模型的构建上,引入了多层聚类MoEDPO等的方法

附上一个很好的源自知乎的技术报告解读:https://zhuanlan.zhihu.com/p/1919784812291526799

2:论文动机

  • 不足1:图(b)展示了传统的集联推荐架构,包括召回(recall)、粗排(pre-ranking)和精排(ranking)三个阶段。每个阶段独立运作,前一阶段的性能上限限制了后续阶段的性能,从而限制了整个系统的性能

  • 不足2:传统的生成式模型即使应用,大多数也仅在推荐系统中作为召回阶段的选择器,其推荐准确性尚未达到多阶段排序系统的水平

  • 图(a)是 OneRec 提出的端到端生成架构,它打破了分阶段设计的限制,直接使用一个 encoder-decoder 模型,输入用户行为序列后,一次性生成最终推荐视频列表。

3:方法

3.1:短视频向量编码

系统将每个视频v_i描述为一个多模态嵌入向量e_i,该向量整合了视频的标题、封面图、标签等内容特征,过去的生成式推荐方法通常会采用 RQ-VAE(Residual Quantized Variational Autoencoder)将嵌入向量e_i编码成语义 token。然而,这种方式存在“沙漏效应”:由于 token 分布严重不均,部分 token 被过度使用,而大多数 token 几乎从不出现,限制了模型表达能力,也容易导致训练不稳定。

3.1.1:方法描述

作者采用了分层残差量化机制,设定了多层的\{C^1,C^2,......C^L\}(每一层的codebook可以理解为聚类中心集合),每一层codebook对前一层的表征残差进行聚类,第一层输入就是多模态嵌入向量本身。每个嵌入向量通过多层 K-Means 编码,逐步生成一组离散语义 token

  • r^1_i = e_i,从C^1选择最近的中心点c_{s_i^1}^1,得出s_i^1与r_i^2

  • 通过r_i^2,从C^2选择最近的中心点c_{s_i^2}^2,得出s_i^2与r_i^3

  • 不断循环

  • 最终一个多模态嵌入向量e_i被表示为一个token序列(s_i^1,s_i^2......s_i^L)

3.1.2:Balanced K-Means 训练方法:

每层codebook通过Balanced K-Means来训练聚类中心,以第一层为例,算法的输入是:视频集合\mathcal{V},和聚类数量K,作者将\mathcal{V}平均划分为K个子集,每个子集大小是w=|\mathcal{V}|/K

  • 初始化阶段:随机选择K个向量作为初始中心点,即C_l=\{c_1^l,......c_K^l\}

  • 聚类迭代过程:

    • 初始化一个未分配的视频集合U

    • 然后对每一个 clusterk做以下步骤:

      • 计算U中所有视频到当前中心点c_K^l的距离

      • 按距离从近到远排序

      • 选择前w个最接近的视频分配给当前 cluster

      • 用这w个视频的平均值更新中心点c_K^l

      • 最后把这w个视频从U中移除

  • 终止条件:当所有 cluster 的分配都不再发生变化时(也就是“收敛”了),循环结束

与传统 K-Means 不同,Balanced K-Means 会强制让每个 cluster 拿到相同数量的视频,这保证了所有 token 都能被均匀使用

3.2:生成会话列表

模型输入用户行为序列,输出5-10个优质推荐视频

输入token序列集合:H_u=(s_1^1,s_1^2,......s_1^l),(s_2^1,s_2^2,......s_2^l),......(s_n^1,s_n^2,......s_n^l)

输出token序列集合:S=(s_1^1,s_1^2,......s_1^l),(s_2^1,s_2^2,......s_2^l),......(s_m^1,s_m^2,......s_m^l)

3.2.1:端到端模型解读

  • 编码器

    • 将每个视频v_i代表的多模态嵌入向量e_i通过3.1中的方法,L层聚类处理后,变为长度为L的离散token,即(s_i^1,s_i^2......s_i^L)

    • 用户的历史行为序列(多个视频)分别处理后,拼接成一个 长token 序列,每个视频用SEP分隔,作为 Encoder 的输入:

H_u=(s_1^1,s_1^2,......s_1^l),(s_2^1,s_2^2,......s_2^l),......(s_n^1,s_n^2,......s_n^l)

  • 使用transformer架构对H_u编码得到一个用户兴趣表示序列H

H=encoder(H_u)

  • 解码器

    • 同样是transformer架构,前馈神经网络变为了MOE层

    • 训练阶段,使用真实的推荐 session(优质序列),将每个视频编码为L个 token,(s_1^1,s_1^2,......s_1^l),并在每个视频前添加起始标记BOS分隔

    • 优质序列特点:

      • 用户在一个会话中实际观看的短视频数量大于或等于5个

      • 用户观看会话的总持续时间超过一定阈值

      • 用户表现出互动行为,例如喜欢、收集或分享视频

    • 使用Next Token Prediction Loss训练模型,最小化生成 token 序列(每个视频)与真实推荐 token 序列之间的差异:

3.2.2:强化学习偏好对齐训练

  • 构建一个奖励模型(Reward Model, RM),让其学会自动评估一个推荐 session 的“质量”,然后利用这个 RM 来对模型生成的多个候选推荐进行打分,从中选出“好”的(chosen)和“不好”的(rejected),形成偏好对比对

  • 采用DPO,通过 pairwise ranking 的方式直接优化生成策略

3.2.2.1:奖励模型训练

  • 输入:用户u与会话 session S=v_1,v_2,......v_m

  • 对于 session 中的每个视频v_i,模型会融合用户向量生成一个目标感知向量:

e_i=v_i\odot u

  • 经过融合后的所有视频表示构成一个向量集合h=e_1,e_2,......e_m

  • 通过注意力机制建模构成信息表征h_f:

  • 设计了多个预测任务,分别关注用户的不同偏好行为,通过不同的 MLP 模块来分别预测这些偏好行为

  • 观看时间:session watch time (swt)

  • 观看概率:view probability (vtr)

  • 关注概率: follow probability (wtr) 

  • 喜欢概率:like probability (ltr)

  • 通过简单的二元交叉熵损失训练奖励模型:

3.2.2.2:迭代偏好对齐

  • 给定当前时间步的 OneRec 模型M_t,为每个用户u生成N个不同的推荐 session 候选,使用的是 Beam Search 采样:

  • 通过奖励模型从这N个候选序列中选出得分最高的S_u^w和得分最低的S_u^l构成一个偏好对比对:

  • 使用的是 DPO(Direct Preference Optimization)损失函数,它通过比较两个推荐结果的相对概率,来实现模型偏好上的优化:

  1. 输入:Beam Search 采样生成的序列数N,奖励模型RM, OneRec 模型M_t,DPO更新概率r_{DPO},epoch总数,每个epoch的样本集合

  2. 每一轮训练中,模型会遍历样本集合 N_{sample},对于每一个样本,根据预设概率r_{DPO}决定是否DPO微调:

    1. 决定微调:

  1. 不决定微调:

4:实验

4.1:离线实验

参数名

参数值

学习率

2*10^-4

DPO更新概率r_{DPO}

0.01

Beam Search 采样生成的序列数N

100

每个嵌入向量表征得到的token序列长度

3

每层codebook聚类中心数

8192

专家数

24

每次激活的专家数

2

每次生成的推荐序列长度

5

用户历史行为序列长度

256

  • 离线的实验指标

  • 基线方法:包括 SASRec、BERT4Rec、FDSA 和 TIGER 等逐点方法,以及 DPO 及其变体(如 IPO、cDPO、rDPO、CPO、simPO 和 S-DPO)

  • 观看时间:session watch time (swt)

  • 观看概率:view probability (vtr)

  • 关注概率: follow probability (wtr) 

  • 喜欢概率:like probability (ltr)

  • DPO更新概率r_{DPO}的消融实验

  • r_{DPO}加一倍,GPU资源也加一倍,但是0.01的r_{DPO}已经达到了最好效果的95%

  • 所以作者离线实验选择r_{DPO}为0.01

  • 不同模型参数的消融实验

  • 0.05B->0.1B->0.2B->0.5B->1B,分别提升了14.45%,5.09%,5.70%,5.69%

  • 目的:分析 OneRec 在不同层的预测分布,以验证偏好对齐策略的效果

  • 对每个层的语义 ID(共8192个) 的 softmax 输出进行可视化,标记出具有最高奖励值的项目的语义 ID

  • OneRec+IPA 在预测分布上显示出显著的置信度变化,表明偏好对齐策略有效地促使基础模型生成更符合用户偏好的结果

  • 第一层的预测分布显示出更高的不确定性(熵为 6.00),而后续层的分布逐渐集中(第二层平均熵为 3.71,第三层熵为 0.048),这归因于自回归解码机制,后续层受益于累积的上下文信息,从而约束了决策空间

4.2:线上ab实验

  • 1%流量测试

  • 评估指标:观看时间,平均观看时长