Jiahong 的个人博客

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

RS——HLLM

HLLM : Hierarchical Large Language Model

  • 参考链接:
    • HLLM: Enhancing Sequential Recommendations via Hierarchical Large Language Models for Item and User Modeling, 202409, ByteDance

整体说明

  • 大语言模型(LLMs)在推荐系统的应用中,有三个关键问题尚未得到充分探讨:
    • 第一 :LLMs 预训练权重通常被认为蕴含了世界知识,但其实际价值未得到验证;
    • 第二 :针对推荐任务进行微调的必要性;
    • 第三 :LLMs 在推荐系统中是否能展现出与其他领域相同的可扩展性优势(scalability benefits)
      • 理解:也就是 LLM 在 推荐系统中的 Scaling Law 需要探索(问题:Meta-GRs 已经探索过了吧)
  • 论文提出了分层大语言模型(Hierarchical Large Language Model,HLLM)架构来增强序列推荐系统
  • 论文的方法采用双层模型:
    • 第一层的 Item LLM 从 item 的详细文本描述中提取丰富的特征,输入是 item 的文本特征,输出是 item 的 Embedding
    • 第二层的 User LLM 利用这些特征,基于用户的历史交互预测其未来兴趣,输入和输出都是 item 的 Embedding
  • 一些其他细节:
    • 论文的方法有效利用了开源 LLMs 的预训练能力,进一步的微调显著提升了性能
    • HLLM 展现出优秀的可扩展性,在最大配置下,item 特征提取和用户兴趣建模中均使用了 7B 参数
    • HLLM 具有高效的训练和服务效率,使其在实际应用中具有实用性
  • 离线+在线实验+开源
    • 离线:在两个大规模数据集(PixelRec 和 Amazon Reviews)上的评估显示,HLLM 显著优于传统的 ID-based Model
    • 在线A/B测试中,HLLM 表现出显著的增益
    • 特别地:代码已开源:https://github.com/bytedance/HLLM

一些讨论

  • 推荐算法问题是:通过理解用户兴趣来预测其在各种 item 上的未来行为,有效推荐的关键在于准确建模 item 和用户特征
  • 目前推荐系统的主流方法:
    • 主流方法主要基于 ID:将 item 和用户转换为 ID 并创建相应的 Embedding 表进行编码
    • 序列建模方法:可捕捉多样且随时间变化的用户兴趣,并在序列推荐中取得了显著成功
    • 以上方法通常以 Embedding 参数为主,模型规模相对较小,导致两大缺陷:
      • 缺陷一 :对 ID 特征的依赖性强,在冷启动场景中表现不佳;
      • 缺陷二 :以及较浅的神经网络难以建模复杂多样的用户兴趣
  • 将 LLMs 整合到推荐系统中探索可分为三类 :
    • (1) 利用 LLMs 为推荐系统提供精炼或补充信息,例如用户行为摘要和 item 信息扩展;
    • (2) 将推荐系统数据转化为对话形式以适应 LLMs ;
    • (3) 修改 LLMs 以处理超越文本输入输出的推荐任务,包括将ID特征输入 LLMs,以及直接用 LLMs 替代现有模型并优化 CTR 等目标
  • 将 LLMs 与推荐系统整合仍面临复杂性和有效性方面的显著挑战:
    • 复杂性(效率低)方面 :将用户行为历史作为文本输入 LLMs 会导致输入序列非常长,导致LLMs 需要更长的序列来表示相同时间跨度的用户行为
      • LLMs 中自注意力模块的复杂度随序列长度呈二次方增长;
      • 推荐单个 item 需要生成多个文本 token(RQ-VAE的方法),导致多次前向传播,效率较低
    • 有效性方面 :现有基于LLM的方法相比传统方法的性能提升并不显著 ,这引发了对 LLMs 潜力是否被充分挖掘的疑问
  • 此外,一些关键问题仍未得到充分探讨:
    • 第一:LLMs 预训练权重通常被认为蕴含了世界知识,但其实际价值未得到验证
    • 第二:针对推荐任务进行微调的必要性存疑
    • 第三:LLMs 的 Scaling Law 在其他领域已被证明,但在推荐系统中的表现仍需验证
      • 注:尽管一些研究在推荐领域验证了 Scaling Law [Shin 等, 2023; Zhai 等, 2024],但这些模型的参数量远小于 LLMs。参数量超过10亿的模型在推荐领域是否具有良好的可扩展性仍是一个开放问题
  • 为解决这些挑战,论文提出了分层大语言模型(HLLM)架构
    • 先使用 Item LLM 提取 item 特征:在每个 item 的文本描述末尾添加一个特殊 token [ITEM],并将增强后的描述输入 Item LLM ,将特殊 token 对应的输出作为 item 特征
    • 再使用 User LLM 建模用户兴趣并预测未来行为:User LLM 的输入是 Item LLM 输出的 item 特征,通过将长文本描述转换为简洁的 Embedding,行为序列的长度被缩减至与 ID-based Model 相当,显著降低了计算复杂度
  • 验证效率 :论文还验证了 HLLM 在训练效率上的优势,仅需少量训练数据即可超越 ID-based Model
  • 预训练的价值探讨 :通过大量实验,论文探讨了预训练的价值
    • HLLM 未以标准 LLMs 的文本交互方式使用(Item LLM 被设计为特征提取器;User LLM 的输入输出均为 item Embedding),但预训练权重对两类 LLM 均有益 ,这表明 LLMs 中蕴含的世界知识确实对推荐任务有价值
  • 针对推荐目标进行微调的必要性 :实验表明这种微调对超越传统方法至关重要
  • 可扩展性验证 :(离线验证)参数量达 7B 的模型仍能随规模扩大持续提升性能
  • 论文的主要贡献总结如下:
    • 提出了分层LLM(HLLM)框架用于序列推荐(实现优秀的训练和推理效率,拿到离线+在线收益)
    • HLLM 有效将 LLM 预训练阶段编码的世界知识迁移至推荐模型,涵盖 item 特征提取和用户兴趣建模,并证明针对推荐目标的特定任务微调仍是必要的
    • HLLM 展现出优秀的可扩展性,性能随数据量和模型参数增加持续提升

相关工作(直译)

传统推荐系统

  • 传统推荐系统主要依赖基于ID的 Embedding,主要有以下迭代方向
    • 特征交叉
      • DeepFM通过FM建模低阶特征交互,通过DNN建模高阶特征交互
      • DCN通过显式特征交叉建模更高阶交互
    • 用户行为建模
      • DIN和DIEN引入注意力机制捕捉用户多样化兴趣
      • SASRec[Kang and McAuley, 2018]将自注意力机制应用于序列推荐
      • CLUE[Shin 等, 2023]和HSTU[Zhai 等, 2024]表明参数量在数亿内的模型遵循扩展定律
  • 一些工作还将内容特征(content features)引入推荐模型,展现出一定的泛化优势[Baltescu 等, 2022; Li 等, 2023b; Cheng 等, 2024]

基于语言模型的推荐

  • LLMs 在推荐系统中应用的探索可分为三类:
    • 首先,LLMs 被用于总结或补充用户或 item 信息[Zhang 等, 2024a; Ren 等, 2024; Xi 等, 2023]
      • RLMRec[Ren 等, 2024]开发了一种由LLM支持的 user/item 画像范式,并通过跨视图对齐框架将 LLMs 的语义空间与协作关系信号的表示空间对齐
      • LLMs 还被用于生成冷启动 item 的增强训练信号[Wang 等, 2024]
    • 其次,一些工作将推荐领域数据适配为对话格式[Bao 等, 2023; Friedman 等, 2023; Zhang 等, 2023; Yang 等, 2023]
      • 部分方法将推荐任务视为一种特殊的指令跟随任务 ,将用户历史行为以文本形式输入 LLM 以预测后续行为[Zhang 等, 2023]
    • 最后,还有一些工作对 LLMs 进行适配以处理超越文本形式的推荐任务
      • LLaRA[Liao 等, 2024]提出了一种混合提示方法,将基于ID的 item Embedding 与文本 item 特征结合
      • LEARN[Li 等, 2023a]利用预训练 LLMs 提取 item 特征
  • 其他方面,LLMs 还被适配为多分类或回归任务用于评分预测[Kang 等, 2023]
  • 然而,以上这些方法相比传统推荐模型的改进有限

HLLM 方法介绍

问题定义

  • 论文将序列推荐任务定义为:给定用户 \( u \in \mathcal{U} \) 及其 按时间顺序排列的历史交互序列 \( U = \{I_1, I_2, \ldots, I_n\} \),预测 next item \( I_{n+1} \)
    • 其中 \( n \) 为序列长度
    • 每个 item \( I \)(\( I \in \mathcal{I} \))包含对应的 ID 和文本信息(如标题、标签等),但论文方法仅使用文本信息

分层大语言模型架构

  • 现有方法的性能问题 :许多 LLM-based 推荐模型将用户历史行为扁平化为纯文本输入,导致输入序列过长,这种设计会带来巨大计算负担(因为 LLM 中自注意力模块的复杂度与序列长度呈平方关系)
  • 为减轻用户序列建模的负担 ,论文采用分层建模方法,称为分层大语言模型(HLLM) ,将 item 建模与用户建模解耦,如图1所示
    • 首先通过 Item LLM 提取 item 特征,将复杂文本描述压缩为 Embedding 表示;
    • 随后基于这些特征通过 User LLM 建模用户画像
    • 此外,为确保与预训练LLM的兼容性并提升可扩展性,论文仅引入最小结构调整,并设计简单高效的训练目标
Item LLM:
  • Item LLM 用于提取 item 特征,其输入为 item 的文本描述,输出为 Embedding 表示
  • LLM在文本理解方面表现出色,但其应用多限于文本生成场景,鲜少作为特征提取器。受前人工作[5, 21]启发,论文在 item 文本描述末尾添加特殊 token \(\lceil \text{ITEM} \rceil\) 以提取特征
  • 如图1所示,对于 item \( I \),首先将其文本属性拼接为句子 \( T \),并在开头添加固定提示词。通过 LLM 分词器处理后,额外在末尾添加特殊 token \(\lceil \text{ITEM} \rceil\),因此 Item LLM 的输入 token 序列可表示为 \(\{t_1, t_2, \ldots, t_m, \lceil \text{ITEM} \rceil\}\),其中 \( m \) 为文本 token 长度。最后一层对应 \(\lceil \text{ITEM} \rceil\) token 的隐藏状态即为 item Embedding
User LLM
  • User LLM用于建模用户兴趣
  • 原始用户历史序列 \( U = \{I_1, I_2, \ldots, I_n\} \) 可通过 Item LLM 转换为特征序列 \(\{E_1, E_2, \ldots, E_n\}\),其中 \( E_i \) 表示 \( I_i \) 的 item Embedding。User LLM 以该特征序列为输入,基于历史交互预测 next item 的 Embedding
  • 如图1所示,User LLM 对 \( E_i \) 的 输出为 \( E’_{i+1} \) ,期望其为 \( I_{i+1} \) 的 Embedding
  • 与传统 LLM 的 “text-in and text-out” 格式不同,此处 User LLM 的输入和输出均为 item Embedding。因此,论文舍弃预训练 LLM 的词 Embedding 层 ,但保留其余预训练权重。实验表明,这些预训练权重对推理用户兴趣非常有效
    • 问题:模型的 Embedding 都变了,不会出现问题吗?

面向推荐目标的训练

  • 现有 LLM 均基于通用自然语料库预训练,虽具备丰富的世界知识和强大推理能力,但其能力与推荐系统的需求仍存在显著差距。遵循其他工作的最佳实践[Zhou 等, 2024; Touvron 等, 2023],论文在预训练 LLM 基础上进行监督微调
  • 推荐系统可分为生成式和判别式两类,HLLM 架构对两者均适用,仅需调整训练目标即可。以下分别介绍两类任务的训练目标
生成式推荐
  • Meta-GRs 提出了成功的生成式推荐方案,涵盖检索和排序。论文的方法与其主要差异在于:模型架构升级为带预训练权重的大语言模型,输入特征从 ID 改为 LLM 的文本特征。这些差异对训练和服务策略影响较小,因此论文基本遵循 Meta-GRs 的方法
  • 生成式推荐的训练目标采用 next item 预测,即根据用户历史 item Embedding 生成 next item 的 Embedding。具体采用 InfoNCE 损失[Oord 等, 2018]。对于 User LLM 输出序列中的每个预测 \( E’_i \),正样本为 \( E_i \),负样本从数据集中随机采样(排除当前用户序列)。损失函数如下:
    $$
    \mathcal{L}_{gen} = -\sum_{j=1}^{b} \sum_{i=2}^{n} \log \frac{e^{s(E’_{j,i}, E_{j,i})} }{e^{s(E’_{j,i}, E_{j,i})} + \sum_{k}^{N} e^{s(E’_{j,i}, E_{j,i,k})} }
    $$
    • \( s \) 为带可学习温度参数的相似度函数
    • \( E_{j,i} \) 表示第 \( j \) 个用户历史交互中第 \( i \) 个 item 的 Item LLM Embedding
    • \( E’_{j,i} \) 表示 User LLM 为第 \( j \) 个用户预测的第 \( i \) 个 item Embedding
    • \( N \) 为负样本数量,\( E_{j,i,k} \) 表示 \( E’_{j,i} \) 的第 \( k \) 个负样本 Embedding
    • \( b \) 为批次内用户总数
    • \( n \) 为用户历史交互长度
判别式推荐
  • 由于判别式推荐模型在工业中仍占主导地位,论文亦提出 HLLM 在判别式模型下的应用方案
  • 判别式模型的优化目标是:给定用户序列 \( U \) 和目标 item \( I_{tgt} \),判断用户是否对目标 item 感兴趣(如点击、喜欢、购买等)
  • 如图2所示,判别式推荐有两种 User LLM 变体,Item LLM 保持不变
    • 早期融合(Early fusion) :将目标 item 的 Embedding \( E_{tgt} \) 追加到用户历史序列末尾,通过 User LLM 生成高阶交叉特征,最后将该特征输入预测头生成最终 logits
    • 晚期融合(Late fusion) :则先通过 User LLM 提取与目标 item 无关的用户特征(类似 Item LLM 的特征提取方式),在用户序列末尾添加特殊 token \(\lfloor \text{USER} \rfloor\) 以提取用户表示,再将用户 Embedding 与目标 item Embedding 一同输入预测头生成 logits
  • 对比来看:
    • 早期融合因深度融合用户兴趣与目标 item ,效果更优但难以同时应用于多候选 item;
    • 晚期融合因不同候选共享同一用户特征 ,效率更高但效果通常略低
  • 判别式推荐的训练目标通常为分类任务(如预测用户是否点击等)。以二分类为例,训练损失如下:
    $$
    \mathcal{L}_{cls} = -\left( y \cdot \log(x) + (1 - y) \cdot \log(1 - x) \right)
    $$
    • 其中 \( y \) 为样本标签,\( x \) 为预测 logit
  • 实验表明,next item 预测亦可作为判别式模型的辅助损失以进一步提升性能。因此,最终损失为:
    $$
    \mathcal{L}_{dis} = \lambda \mathcal{L}_{gen} + \mathcal{L}_{cls}
    $$
    • 其中 \( \lambda \) 控制辅助损失权重

实验设计及结论

  • 论文的实验主要回答以下研究问题:
    • RQ1 :LLM 的通用预训练和针对推荐目标的微调是否能提升最终的推荐性能?
    • RQ2 :HLLM 是否具有良好的可扩展性?
    • RQ3 :与其他模型相比,HLLM 的优势是否显著?
    • RQ4 :HLLM 的训练和服务效率与 ID-based Model 相比如何?

数据集与评估设置

  • 在离线实验中,论文在两个大规模数据集上评估 HLLM:PixelRec(包含三个子集:200K、1M和8M)[5]和Amazon Book Reviews(Books)[13]。与先前工作[5,19]一致,论文采用相同的数据预处理和评估协议以确保公平比较。表1和图5展示了预处理后数据集的详细分析
  • 论文使用留一法(leave-one-out approach)将数据划分为训练集、验证集和测试集,性能指标采用Recall@K(R@K)和NDCG@K(N@K)。所有开源数据集仅用于离线实验的训练和评估

基线模型与训练设置

  • 基线模型包括两种基于 ID 的序列推荐模型 SASRec[15] 和 HSTU[19],它们均面向工业应用并自称(boast)具有 SOTA 性能
  • 离线实验采用生成式推荐以与其他方法保持一致,而在在线A/B测试中采用判别式推荐以更好地与在线系统对齐(注意,关于数据集:Experiments demonstrated that most conclusions drawn from the academic dataset still hold true on large-scale industrial benchmarks.)
    • 在 HLLM-1B 中,论文使用 TinyLlama-1.1B[19] 作为 Item LLM 和 User LLM 的模型;
    • 在 HLLM-7B 中,则采用 Baichuan2-7B[2]
    • 由于资源限制,HLLM 在 PixelRec 和 Amazon Reviews 上仅训练 5 轮,而其他模型分别训练 50 轮和 200 轮
    • 学习率设为 1e-4
    • 每个 item 的文本长度截断为最多256
    • 在PixelRec上,遵循PixelNet[5],论文使用批量大小为512,最大序列长度为10,正负样本比例为1:5632
    • 在Books上,批量大小为128,最大序列长度为50,负样本数量为512
  • 为公平比较,论文还实现了 SASRec-1B(将其网络结构替换为TinyLlama-1.1B)和 HSTU-1B(隐藏层大小和层数与 TinyLlama-1.1B 相同,但因移除了传统 FFN,参数量仅为 462M)

预训练与微调(RQ1)

  • 从 表2 可以明显看出,预训练权重对 HLLM 有益,包括 item 特征提取和用户兴趣建模两方面
  • 表3 显示性能与预训练 token 数量呈正相关,表明预训练权重的质量对推荐任务也有影响
    • 然而,在对话数据上进行 SFT 可能带来轻微的负面影响 ,这可能是因为世界知识主要在预训练阶段获得,而 SFT 主要提升指令跟随能力,对推荐任务帮助有限[19]
    • 理解:这里的 +chat 是指使用 chat 版本作为基座 ,再在 推荐系统上进行 SFT
  • 表4 的消融实验表明,微调 Item LLM 和 User LLM 对超越 ID-based Model 至关重要
    • 若冻结 Item LLM 仅微调 User LLM,并使用 TinyLlama-1.1B 最后一层所有 token 输出的均值作为 item 特征,性能极差,表明训练用于预测 next token 的 LLM 并不适合直接作为特征提取器(理解:Item LLM 中输入文本内容变成了 item 的描述了,确实可能效果不好; User LLM 中则词表都变了,不微调效果会更差)
    • 类似地,若使用在 Pixel200K 上微调的 Item LLM 并冻结预训练的 User LLM,性能仍然极低

模型扩展(RQ2)

  • 表5 和 表6 展示了模型参数量增加的实验结果。可以看出,Item LLM 和 User LLM 的参数增长均能持续提升性能。最终,在 Amazon Books 上将 Item LLM 和 User LLM 的参数量从 10亿 扩展到 70亿,如 表7 所示,进一步提升了性能,证明 HLLM 具有出色的可扩展性
  • 为探索数据量的可扩展性,论文从 Pixel8M 中采样了不同规模的数据进行训练,范围从 0.1M 到 8M。图3 显示,HLLM 在不同数据量下均表现出显著的可扩展性。随着数据量增加,性能显著提升,且在当前数据规模下未观察到性能瓶颈
  • 论文还针对工业推荐数据集进行了更全面的扩展实验,详细结果见附录

HLLM 与最先进模型的对比(RQ3)

  • 表7 比较了 HLLM 与当前最先进模型的性能,包括 ID-based Model (如SASRec[15]和HSTU[24])以及基于文本的模型 LEARN[17]。在所有数据集和指标上,HLLM 均显著优于其他模型。在相同实验设置下,HLLM-1B 在 Pixel8M 上平均提升22.93%,在 Books 上平均提升108.68%。而 ID-based Model 在 Pixel8M 上最大仅提升5.37%,在 Books 上最大提升64.96%
  • 重点 :当 ID-based Model 增加负样本数量和批量大小时,性能提升相对有限(如 HSTU-large 在 R@200 上仅提升 0.76,而 HLLM-1B 在相同设置下提升 2.44)。进一步增加模型参数后,HLLM-7B相比基线实现了169.58%的显著提升
  • 表7 还显示,即使 ID-based Model 完全收敛,增加参数带来的增益也较小。例如,在Pixel8M上,SASRec-1B和HSTU-1B的性能提升有限;而在Books上,SASRec-1B的所有指标甚至下降。相比之下,HLLM 从1B扩展到7B仍能持续提升推荐任务性能,凸显了 HLLM 架构的优越性

训练与服务效率(RQ4)

  • HLLM 展现出比 ID-based Model 更高的训练数据效率。如图3所示,HLLM 仅需 1/6 到 1/4 的数据量即可达到与基于 ID 方法相当的性能
  • 先前实验表明,完全微调整个 HLLM 能显著提升性能,但推理时需要实时编码所有 item,效率较低。得益于 HLLM 中 item 与用户编码的解耦,我们可以通过预缓存 item Embedding 降低计算复杂度
  • 为验证 item 缓存的可行性,论文在 Pixel8M 数据集上预训练 HLLM (序列长度截断为 10 以避免数据泄露,覆盖 300万 用户),随后冻结 Item LLM 并仅在 Pixel8M 上微调 User LLM。表8 结果显示,尽管冻结 Item LLM 会导致部分指标下降,但性能仍超越 ID-based Model,证明 item 缓存是有效的
  • 考虑到工业场景中用户行为数量远多于 item 数量,HLLM 的训练和服务成本可与 ID-based Model 相当。值得注意的是,论文的预训练数据不到 Pixel8M 的一半,且部分 item 未出现在预训练数据中,但仍取得了可观的性能。工业数据实验表明,随着预训练数据量增加,item 缓存与完全微调之间的差距会显著缩小

在线A/B测试

  • 除离线实验外,HLLM 还成功应用于实际工业场景。为简化流程、提升灵活性并与在线系统更好对齐,论文采用 HLLM-1B,使用判别式推荐的“后期融合”变体进行优化。训练过程分为以下三个阶段:
    • 阶段I :端到端训练所有 HLLM 参数(包括 Item LLM 和 User LLM),采用判别式损失。用户历史序列长度截断为 150 以加速训练
    • 阶段II :使用 阶段I 训练的 Item LLM 编码并存储推荐系统中所有 item 的 Embedding,随后仅训练 User LLM(从存储中检索所需 item Embedding)。此阶段仅训练 User LLM,显著降低训练需求,并将用户序列长度从 150 扩展到 1000,进一步提升 User LLM 的效果
    • 阶段III :在前两阶段大量数据训练后,HLLM 模型参数不再更新。论文提取所有用户的特征,与 Item LLM Embedding 及其他现有特征结合,输入在线推荐模型进行训练
  • 在服务阶段(如图4所示),item Embedding 在创建时即被提取,用户 Embedding 仅针对前一天活跃的用户每日更新一次。item 与用户的 Embedding 存储后供在线模型训练和服务使用。此方案下,在线推荐系统的推理时间几乎不变
  • 最终,论文在排序任务的在线A/B测试中验证 HLLM,关键指标显著提升0.705%

附录A:学术数据集上的更多实验

文本输入长度与Item LLM的丰富性

  • 默认情况下,论文输入所有类型的文本信息,长度为256。此处论文对文本长度和丰富性进行消融实验。表9 显示,文本内容对最终性能有显著影响。更丰富的文本内容和更长的文本长度使得 Item LLM 能够提取更详细的 item 特征,更好地区分 item,并更有效地帮助 User LLM 建模用户兴趣

Item LLM特征提取方法

  • 为了使训练在 next token prediction 任务上的 LLM 具备特征提取能力,论文在文本输入末尾添加了一个特殊 token [ITEM]。另一种可行的特征提取方法是取 LLM 最后一层隐藏状态的平均值来表示整个句子的特征
  • 表10 展示了这两种方法的对比结果。可以看出,使用 [ITEM] token 比均值池化效果更好
    • 问题:这个原因是什么呢?理论上两者都能捕捉到句子的整体信息
    • 理解:猜测是自回归模型带来的 next token 含义对未来动作意图的信息优势

User LLM的序列长度

  • 表11探讨了 User LLM 输入序列长度对 HLLM 推荐性能的影响。与其他序列推荐模型类似,HLLM 也能从扩展输入序列长度中受益
  • 尽管表中显示随着序列长度的增加性能提升有限,但论文推测这可能是因为学术数据集中用户序列长度普遍较短,如图5所示。如 附录B 所示,在真实工业场景中,用户行为序列通常非常长,扩展序列长度可以让 HLLM 实现稳定的性能提升

与ID特征的兼容性

  • 在前文中,论文主要基于 item 的文本描述建模 item 和用户特征。然而,当前大多数推荐系统仍依赖 ID 特征,不仅包括 item ID,还包括行为、时间戳和 item 类别等 ID 形式的特征。此处论文提出一种将 HLLM 与 ID 特征结合的兼容方案,并证明互补的 ID 特征与 item 描述结合能为 HLLM 带来显著提升,进一步凸显其在工业环境中的应用价值
  • 论文选择原始 item ID 和时间戳作为 ID 特征进行验证
    • item ID 通过 Embedding 查找表转换为 ID Embedding
    • 行为的时间戳首先拆分为具体的年、月、日、时、分和秒组件,其 Embedding 表示如算法1所示(见附录)
    • 在输入 User LLM 之前,论文将 ID 特征与 Item LLM 提取的 Embedding 进行求和池化
  • 训练时的预测目标仍然是 Item LLM 提取的 item Embedding,实验结果如 表12 所示
  • 实验结论:
    • 引入 item ID 实际上会导致性能轻微下降 ,可能是因为 item ID 未能提供超出文本描述之外的增量信息,而文本描述已全面覆盖 item 特征并被 Item LLM 充分提取
    • 然而,引入时间戳带来的提升非常显著 ,因为时间戳是对文本描述的补充。这也表明论文的方法能够兼容ID特征
      • 理解:这里时间戳能拿到收益相当于加入了对 token 加入了绝对位置编码信息,比如 8 月份买裙子和 12 月份买裙子的动作是不等价的

附录B:工业数据集上 HLLM 的扩展实验

  • 论文在大型工业数据集上进行了更广泛的实验,以评估 HLLM 的可扩展性
  • 抖音拥有海量用户和推荐候选 item,以及丰富的用户行为记录。论文从过去 3 年的日志中构建了一个包含 3000万 样本的数据集。每个样本仅包括用户的历史点击序列、目标 item 以及一个表示是否点击的标签。论文在判别式推荐系统中验证 HLLM 的有效性,使用 AUC 作为评估指标,并从两个方面验证可扩展性:User LLM 的序列长度,以及 Item LLM 和 User LLM 的参数规模

User LLM的序列长度

  • 工业数据集中用户行为序列的长度如图5所示。表13 展示了用户序列长度的影响,随着序列长度的增加,HLLM 的性能稳步提升。这表明 HLLM 在建模长序列用户方面具有巨大潜力

Item LLM和User LLM的参数规模

  • 表14展示了工业场景中 HLLM 参数规模的影响。对于 Item LLM 和 User LLM,AUC 均随着参数数量的增加而持续提升
  • 问题:有超过线上现在的 CTR 模型吗?

附录-算法1:timestamp processing 的伪代码

  • Algorithm 1: Pseudo code of timestamp processing in a PyTorch-like style:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    class TSEmbedding(nn.Module):
    def__init__(self, time_num=6, time_dim=512, user_dim=2048):
    super().__init__()
    # 控制时间精度,例如4表示到小时,6表示到秒
    self.time_num = time_num
    self.time_embeddings = nn.ModuleList(nn.Embedding(x, time_dim) for x in [2100, 13, 32, 24, 60, 60])
    # 从time_dim投影到user_dim
    self.merge_time = MLP(time_dim * time_num, user_dim)

    def split_time(self, timestamps: List) -> List:
    # 将时间戳拆分为具体组件(年月日等)
    # (seq) -> (seq, 6)
    split_time = []
    for time in timestamps:
    dt = datetime.datetime.fromtimestamp(time)
    split_time.append((dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second))
    return split_time

    def forward(self, timestamps: List) -> torch.tensor:
    # 输入:时间戳列表,格式为(bs, seq)
    # (bs, seq) -> (bs, seq, 6)
    time_seq = torch.tensor([self.split_time(x) for x in timestamps])
    # (bs, seq, 6) -> [(bs, seq, time_dim)] * time_num
    time_emb = [self.time_embeddings[i](time_seq[..., i]) for i in range(self.time_num)]
    # [(bs, seq, time_dim)] * time_num -> (bs, seq, time_dim * time_num)
    time_emb = torch.cat(time_emb, dim=-1)
    # (bs, seq, time_dim * time_num) -> (bs, seq, user_dim)
    time_emb = self.merge_time(time_emb)
    return time_emb

RS——RARE

RARE: Real-time Ad REtrieval framework

  • 参考链接:
    • (RARE)Real-time Ad retrieval via LLM-generative Commercial Intention for Sponsored Search Advertising, 202504, Tencent
      • 相关博客:腾讯搜索广告生成式召回

整体思路

  • 现有的 LLM-based 的召回(retrieval,一些地方也称为检索)方法通过生成 numeric 或 content-based DocIDs 来检索 docs/ads
    • 问题 :1)DocIDs 与文档之间的 one-to-few 映射关系;2)耗时的内容提取过程
    • 两个问题共同导致语义效率低下,限制了其在大规模语料库中的扩展性
    • 注:在本文的写作中,会使用 文档(docs)或者 广告(ads)替代检索目标,而不是普通推荐系统中的 item
  • 论文提出了一种实时广告召回(Real-time Ad REtrieval,RARE)框架,该框架利用 LLM 生成的文本作为中间语义表示,直接从 Query 中实时召回广告
    • 论文将这些中间语义表示称为商业意图 ,Commercial Intentions (CIs),本质上就是 LLM 输出的剪短的文本
    • CIs 是由注入商业知识的定制化(Customized)LLM 生成的(有领域相关性)
    • 每个 CI 对应多个广告,从而形成一个轻量级且可扩展的 CIs 集合
  • 离线和在线实验验证了 RARE
    • 离线:在 4 个主要场景上超过 10 个基线
    • 在线 :Consumption+5.04%, GMV+6.37%, CTR+1.28%,Shallow Conversions+5.29%

一些讨论

  • 传统召回 :广告系统分召回和排序两个模块,其中召回召回模型常常采用两阶段流程,1)从 Query 中提取关键词;2)利用这些关键词获取广告
    • 问题 :现有的两阶段召回方法放大了用户 Query 与人工选择关键词之间的差异,导致大量漏检问题(missed retrieval issues)
    • 解决方案 :query-ad 单阶段(直接从Query 到 广告)方法通过直接召回广告解决了漏检问题,但由于推理能力和领域知识的限制,仍难以深入理解商业意图(Commercial Intentions)
  • LLM-based 的召回 :大多数 LLM-based 的召回方法(Lin等,2025)首先通过训练模型将文档与其标识符(DocIDs)关联,构建文档索引。在召回阶段,模型处理 Query 并生成相应的 DocIDs(Li等,2023a)
    • DSI(Tay等,2022)使用 numeric IDs 表示文档,建立用户 Query 与 numeric IDs 之间的连接;
    • LTRGR(Li等,2023b)则提取文档内容(如标题和正文)表示文档,实现从用户 Query 到文档的检索
  • 使用复杂的 DocIDs 存在以下缺陷 :
    • 第一,由于 DocIDs 与候选之间的 one-to-few 映射关系,推理效率较低(Wang等,2023b),难以在大规模场景中实现实时生成;
    • 第二,仅用复杂 DocIDs 表示文档或广告无法充分发挥 LLM 在商业意图挖掘和高级文本生成方面的能力,从而阻碍了对广告商意图的有效探索;
    • 第三,其泛化能力较差。当新候选出现时,通常需要重新训练模型或更新 FM-index (Ferragina and Manzini, 2000) 以适应其 DocIDs,难以及时更新或删除候选
  • 关键问题提出 :由于广告召回需要实时获取与用户商业意图匹配的大规模广告集合,现有语义效率低下的 DocIDs 在实际任务中既不实用也不适用。因此,利用 LLM 强大的语义能力设计更有效的语义标记索引,并开发更全面的端到端架构,已成为一项关键挑战
  • 论文开发了一种名为 RARE 的实时LLM生成广告召回框架。该框架利用 LLM 生成的商业意图(CIs)作为中间语义表示,直接连接 Query 与广告,而非依赖人工选择的关键词或复杂文档标识符,具体方法为:
    • 离线为广告生成 CIs,构建索引 :RARE 首先使用注入知识的LLM(离线)为语料库中的广告生成 CIs ,随后筛选出一组有限但全面的 CIs,并构建一个动态索引 ,将这些 CIs 以 one-to-many 的关系映射到对应的广告
      • 理解:相对之前的区别是:为候选广告生成 CIs 而不是 DocIDs
    • 在线为 Query 生成 CIs,实时召回 :接收到 Query 时,RARE 利用定制化 LLM(在线)实时生成 CIs,并从预构建的索引中召回对应的广告
  • 关键创新 :在于利用定制化 LLM 生成的 CIs 作为中间语义 DocIDs,链接 Query 与广告
    • 定制化 LLM 通过对基础 LLM 进行知识注入(knowledge injection)和格式微调(format fine-tuning)开发而成
      • 知识注入可融入领域特定信息以增强广告领域的专业性;
      • 格式微调则确保LLM仅输出 CIs 并提升解码效率
    • CIs 定义为关键词的聚合,由定制化LLM基于广告相关材料生成。与现有精心设计的 DocIDs 相比,CIs 充分利用了LLM的文本生成能力。CIs 与广告之间的 one-to-many 对应关系使得解码过程极为高效
      • 问题:为什么 one-to-many 能带来高效的解码?
      • 回答:这里是跟 one-to-few 而言的(TIGER 中就属于 one-to-few),他们要实时生成隐空间语义 ID,且多个语义 ID 才对应一个实际的广告,但 one-to-many 相当于生成的 CI 可直接检索很多个广告(离线会构建索引:让一个 CI 对应很多广告)
    • 对于新广告 ,RARE 可通过 constrained beam search 生成 CIs,无需重新训练模型
    • 传统 query-keyword-ads 范式中的关键词竞价可能引发 index manipulation 问题。与关键词不同,CIs 由具备世界知识和商业专业知识的LLM生成,能够更好地挖掘广告和 Query 背后的商业意图
  • 论文的主要贡献如下:
    • (1)提出了一种名为 RARE 的新型端到端生成召回框架,实现实时召回
      • 注:文章中说是首个在百万级数据库上实现实时召回的 LLM 生成架构研究,但忽略了 TIGER?
    • (2)提出了一种知识注入与格式微调方法,使基础LLM能够挖掘广告商和用户的深层商业意图,并以 CIs 形式表达
    • (3)实现了在线部署 LLM-based 的召回服务
    • (4)离线+在线实验

相关工作(直译)

  • 广告召回 :传统广告召回(Zhao和Liu,2024;Wang等,2023c)通常遵循 query-keyword-ads 架构,即 Query 召回关键词,再通过关键词拉取广告。该方法包括基于词(word-based)和基于语义(semantic-based)的方法
    • Word-based Methods(Ramos等,2003;Robertson等,2009)解析用户 Query 获取关键词,并使用倒排索引召回候选广告;
    • Semantic-based Methods(Ramos等,2003;Yates等,2021)则利用双编码器在共享语义空间中获取 Query 和关键词的嵌入,实现基于语义相似性的召回
    • 这些方法依赖人工选择关键词,导致大量漏检问题。相比之下,Generative LLM 召回方法(Sun等,2024;Lin等,2024;Tang等,2023b)使用 DocIDs 表示广告,LLM 在接收 Query 时直接生成候选广告对应的 DocID
  • Generative LLMs Retriever :生成式召回利用 LLM 的生成能力构建端到端召回模型
    • 部分方法(如DSI(Tay等,2022)、NCI(Wang等,2022)、TIGER(Rajput等,2024)以文档ID为生成目标 ,实现 Query 对文档/广告的召回。这些方法利用LLM学习文档/广告与其ID的对应关系,直接生成相关文档/广告的 ID 以完成召回
    • 其他方法(如SEAL(Bevilacqua等,2022)和LTRGR(Li等,2023b)则以文档内容为中介实现文档召回,通过FM索引生成文档中出现的片段,辅助 Query 到文档的召回。MINDER(Li等,2023)采用伪 Query 和文档内容进行召回,但显著增加了索引量,不适用于候选集较大的场景
  • 语义 DocIDs :LLM生成召回通常使用 DocIDs 执行 Query 到文档的召回任务
    • 现有 DocIDs 主要包括 numeric IDs 和文档内容。例如,TIGER中的 numeric IDs 表示为离散语义标记的元组;LTRGR中的文档内容则由文档内预定义序列组成。然而,这些方法使用的语义标记为类ID特征,解码效率较低 ,因为每个DocID仅对应少量候选。对于新候选文档或广告,需重新训练模型或重建FM索引以获取其 DocIDs,难以及时更新或删除广告

RARE 方法整体介绍

  • 如图1所示,论文提出了一种新颖的端到端生成式召回架构,专为在线召回设计,命名为实时广告召回(RARE)
  • RARE 有效缩短了链路结构,使广告能够突破关键词竞价的限制,帮助广告主获取更精准的流量
    • 问题:如何理解“突破关键词竞价的限制”?
  • 图2给出了 RARE 与传统召回方法的一个对比:

端到端生成式架构

  • 当接收到用户 Query 时,RARE 首先生成对应的具有特定语义的文本,即商业意图(CIs),随后利用这些 CIs 召回最终的广告
  • CIs 到广告的索引构建过程以及召回流程如下:
    • 索引构建(Indexing) :RARE 首先生成整个广告库的 CIs 并确定商业意图集合,随后构建 CIs 到广告的倒排索引
      • 对于后续新增的广告,基于当前商业意图集合进行约束推理 ,确保每个新候选广告能够准确更新至索引中
      • 值得注意的是,CIs 是由定制化 LLM 生成的具有特定语义的文本,用于挖掘广告的商业意图。具体实现细节将在 3.3节 讨论
    • 召回流程(Retrieval) :基于离线缓存和在线推理,为 Query 实时生成 CIs
      • 高频 Query 的 CIs 会被存储在缓存中,当 Query 到达时,RARE 首先检查当前 Query 是否匹配缓存条目
        • 若匹配,则直接使用对应的 CIs 获取广告;
        • 否则,RARE 会使用定制化 LLM 结合 constrained beam search 进行实时推理(具体实现细节将在原文 3.4节 介绍)

定制化 LLM

  • 为了挖掘广告和用户 Query 背后的深层意图,论文通过知识注入和格式微调两个阶段对基础 LLM 进行定制化
  • 阶段1:知识注入 :此阶段旨在将广告领域的专业知识注入基础 LLM 中,使其能够理解广告和用户 Query 的商业意图。知识数据包括 Query 意图挖掘、广告意图挖掘以及广告词购买等任务。知识注入过程可形式化表示为:
    $$
    \theta^{\prime}=h(\theta,K),
    $$
    • 函数 \( h \) 以 LLM 模型参数 \( \theta \) 和广告知识数据 \( K \) 为输入 ,输出更新后的模型参数 \( \theta^{\prime} \)
    • 新参数 \( \theta^{\prime} \) 用于生成预测结果,即:
      $$
      y=P(y|x;\theta^{\prime}).
      $$
  • 阶段2:格式微调 :在具备商业知识的 LLM 基础上,此阶段专注于优化生成 CIs 的格式并提升其多样性。格式微调的训练数据来自真实线上数据,并进行了必要的格式调整。格式微调的生成损失如下:
    $$
    L(\theta)=\frac{1}{N}\sum_{i=1}^{N}\sum_{t=1}^{T_{i} }logp(y_{i,t}|y_{i<t},x_{i};\theta),
    $$
    • 微调数据集为 \( D=(x_{i},y_{i})_{i=1}^{N} \),\( x_{i} \) 为输入序列,\( y_{i} \) 为目标输出序列
    • 概率 \( p(\cdot) \) 是由参数为 \( \theta \) 的模型基于 \( x_{i} \) 和已生成词 \( y_{i < t} \) 预测的概率
    • 问题:\(x_i\) 是历史序列吗?\(y_i\) 和 \(x_i\) 都是广告吗?
  • 定制化LLM显著增强了其理解和提取广告与用户 Query 意图的能力。它将广告压缩并总结至商业意图空间、聚类相似的广告,从而减少同质化召回,提升在线和离线的召回性能

索引构建

  • 论文使用定制化 LLM 生成广告的商业意图(CIs),随后构建 CIs 到广告的倒排索引
  • 商业意图(CIs) :CIs 是由定制化 LLM 生成的简短文本 ,用于描述用户或广告的商业意图。给定包含广告信息(如标题、描述等)的提示,定制化 LLM 会生成对应的 CIs。例如,对于广告标题“新款智能手机限时优惠”,生成的 CIs 可能包括“智能手机促销”、“限时折扣”和“电子产品优惠”
  • 动态索引 :CIs 与广告之间是 one-to-many 的关系 ,即一个 CI 可能对应多个广告。论文基于这种关系构建动态索引,支持高效召回。对于新增广告 ,RARE 通过约束推理生成其 CIs,无需重新训练模型或更新索引结构

高效推理

  • 高效推理对于从数百万候选集中实时召回至关重要,因为搜索广告对召回时间有严格要求
  • constrained beam search :本工作采用 constrained beam search 算法生成商业意图(CIs),确保模型输出限定在预定义的 CIs 集合内
    • 论文开发了基于 CUDA 的 constrained beam search 实现,并将其与 LLM 推理过程集成,支持并行生成 Beam size 的 CIs,从而提升解码效率
    • 此外,在 constrained beam search 框架中引入了截断功能,允许丢弃低分单标记以提升模型输出的准确性。具体约束过程如 图3 所示(新的广告加入时,为其生成对应的 CIs,然后将其加入到这些 CIs 的检索列表中,注意,从图1中看还可以加入新的 CIs)
  • 缓存技术 :搜索系统呈现显著的长尾效应 ,其中 5% 的 Query 占据了总 Query 请求的 60%
    • 为了提升推理效率,论文对这些高频 Query 进行离线推理和存储 ,当用户提交 Query 时,系统首先检查离线缓存
      • 若命中,则立即返回结果;
      • 否则,由推理服务处理请求
  • 离线处理对时间要求较低,因此论文使用 13B 规模的 LLM 处理这些 Query。在线推理有严格的时延要求(通常在毫秒级完成),因此使用 1B 规模的小模型
    • 通过缓存数百万头部 Query 的离线结果,论文能够减少 70% 的在线机器消耗,不仅降低推理时间,还提升了头部 Query CIs 的质量

相关实验和讨论

Experiment Setup

  • 训练数据集 :为了使基础LLM具备商业知识,论文使用了商业知识和合成数据。原始数据来自真实在线日志,通过开源LLM执行 Query 意图挖掘和广告意图挖掘等任务生成最终合成数据。格式微调主要涉及 Query 和广告的商业意图(CIs),这些数据来自真实在线交互,并按固定规则组合。详情参见附录A的表4
  • 评估数据集 :为了评估模型效果,论文从真实场景中收集了一天内头部 Query 及其对应点击广告的数据。清洗后,得到5,000条 Query 和150,000条广告作为基准数据,每条 Query 最多包含 1,000 个候选广告
  • 基线方法 :论文将 RARE 与 10 种竞争基线方法进行比较,涵盖四大类别,包括基于关键词的 BM25、基于语义的 BERT、基于生成的 T5 以及 LLM-based 的 Qwen 等
    • BM25 :将 Query 分割为词项并计算相关性得分,最终累加得到文本相似度结果
    • BERT-small :使用 4 层 Transformer 网络,隐藏层大小为 768,参数约 52.14M
    • BERT-base :使用 12 层 Transformer 网络,隐藏层大小为 768,共 12 个头,参数约 110M
    • SimBert-v2-R :结合生成与召回能力的模型,用于计算句子向量
    • T5 :基于生成的强基线,通过大量在线点击 Query 和关键词微调
    • DSI :使用语义ID进行召回的典型方法
    • Qwen-1.8B 和 Hunyuan-2B :参数规模与 RARE 相近的模型,通过格式微调确保仅生成 CIs
  • 评估指标 :
    • 广告覆盖率(ACR, Ad Coverage Rate) :在广告检索中,ACR表示覆盖率,即召回广告的请求占总请求的比例。如公式5所示,AdPV表示召回广告的请求数量,PV表示总请求数量
      $$ ACR = AdPV / PV \tag{5} $$
    • 命中率(HR@K, Hit Ratio) :如公式6所示,GT表示候选广告的真实集合,Hits@K表示在检索结果的前K个候选中属于真实集合的相关广告数量
      $$ HR@K = \frac{Hits@K}{|GT|} \tag{6} $$
    • 平均精度均值(MAP, Mean Average Precision) :是所有查询的平均精度(AP)的均值,如公式7所示
      $$ MAP = \frac{\sum_{q \in Q} AP_q}{|Q|} \tag{7} $$
    • 平均精度(AP, Average Precision) :如公式8所示
      $$ AP_q = \frac{1}{|\Omega_q|} \sum_{i \in \Omega_q} \frac{\sum_{j \in \Omega_q} h(p_{qj} < p_{qi}) + 1}{p_{qi} } \tag{8} $$
      • \(\Omega_q\) 表示 ground-truth results
      • \(p_{qj}\) 表示广告 \(ad_j\) 在生成列表中的位置
      • \(p_{qj} < p_{qi}\) 表示广告 \(ad_j\) 在列表中排在广告 \(ad_i\) 之前
      • 理解:对 ground-truth results 中的任意一个位置 \(p_{qi}\),希望出现在它前面的广告中,包含在 ground-truth results 中的数量越多越好;
        • 举例1:最完美的情况是所有 ground-truth results 都排在最前面,则该值为 1
        • 举例2:最极端的情况,如果有些 ground-truth results 的广告排在了最后,则该值非常小
  • 实现细节
    • 使用 Hunyuan 作为主干模型,参数包括 1B-Dense-SFT 和 13B-Dense-SFT
    • 离线缓存使用13B模型,Beam Search 大小为 256,温度系数为 0.8,最大输出长度为 6
    • 在线推理使用1B模型,Beam Search 大小为 50,温度系数为 0.7,最大输出长度为 4,确保延迟在 60ms 内
    • 新广告的 CIs 每小时更新索引 ,整个 CIs 集合每月更新一次 ,并定期注入新商业知识

实验结果

离线评估
  • 表1展示了 RARE 与 10 种基线方法在工业评估数据集上的对比结果。RARE 在 HR@500 和 MAP 上表现优异,同时保持高 ACR,表明其能够理解用户搜索意图并优化广告投放。其 ACR 超过90%,HR@500的高值验证了其召回高商业价值广告的能力
消融研究
  • 论文通过两种消融研究分析各组件贡献:
  • 表3展示了 RARE 在不同设置下的广告召回结果:
    • w/o. KI(无知识注入):召回率仅为 59.51%,显著低于 RARE 的95.05%
    • w/o. CBS(无 constrained beam search ):平均 CIs 数量仅为 4.84,显著低于 RARE 的 74.49
    • w/o. CBS & KI :HR@500、MAP 和 ACR 均为最低
  • 注:附录C 的表5通过案例定性分析了各组件的作用
在线A/B测试
  • 论文将 RARE 应用于腾讯三个在线召回场景(每日请求数十亿):
    • 微信搜索(WTS) :消费提升5.04%,GMV提升6.37%,CTR提升1.28%,浅层转化提升5.29%,深层转化显著提升24.77%
    • 需求方平台(DSP)和QQ浏览器搜索(QBS) :也观察到显著收益(表2),图5进一步展示了 RARE 在八大行业的有效性
在线推理支持
  • 图4显示了实时在线推理中不同输出长度的时间消耗。CIs 平均词数为3,确保满足安全阈值。论文开发了专用GPU集群(数百台L40),量化模型至FP8精度,每台L40支持约30 QPS,缓存命中率达65%,显著降低了计算成本

附录A 微调数据

  • 本节主要介绍微调数据的细节。定制化 LLM 的微调包括两个阶段:知识注入和格式微调
  • 知识注入阶段的微调数据主要包括 Query 意图挖掘、广告意图挖掘和广告词购买。我们将包含广告和用户信息的提示输入开源LLM(如ChatGPT),获取包含丰富推理过程与指导信息的输出,随后将这些数据作为知识注入Hunyuan模型,在微调阶段注入大量数据(规模达数十万或数百万)可能导致LLM丢失通用知识与推理能力,因此本阶段仅针对每项任务精选2,000条实例。表4详细展示了这两个阶段的微调数据

附录B 相关工作

  • 束搜索(Beam Search) :作为一种启发式搜索的解码策略, Beam Search 已被广泛应用于多项研究。例如,DSI使用 Beam Search 生成排序后的候选文档列表,TIGER通过 Beam Search 一次性生成多个候选商品ID。早在数年前,seq2seq 与 constrained Beam Search 的结合已在实体链接和文档检索任务中实现了效果与效率的双赢。例如GENRE[3]将 constrained Beam Search 应用于文档检索任务并达到SOTA性能
  • Query-关键词-广告架构(Query-kwds-ads Architecture) :传统 Query -关键词-广告方法存在两大缺陷:
    • (1) 关键词由广告主手动选择,质量参差不齐,可能导致匹配范围过宽或过窄,造成流量匹配效率低下;
    • (2) 广告主常购买大量关键词,导致关键词反转后的广告检索效率受损,给系统带来沉重负担
    • 相比之下,商业意图(CIs)由注入领域知识的LLM生成,能更精准体现广告主意图并与相关流量匹配,既带来经济效益,也保障系统长期健康运行
  • 基于编码器的LLM检索器(Encoder-based LLMs Retriever) :基于编码器的检索器利用LLM的语义能力获取文本嵌入[9]。例如:
    • cpt-text[21]通过对比学习从头训练GPT-3[5],生成高质量文本嵌入;
    • GTR[22]基于 T5 模型[23]微调获得文本向量表示;
    • NoteLLM[26]则通过新增训练任务和修改 LLM 结构实现文本-图像嵌入

附录C 定性分析

  • 表5 通过实例直观分析了 RARE 各组件的作用
  • 观察 表5 可知:
    • (1) 零样本 LLM 缺乏对提示的推理过程,仅依赖对 Query 的表层理解,导致大量低质案例;
    • (2) 知识注入阶段教会 LLM 如何推理,使其能分步分析 Query 、提供商业意图并判断相关性,但多样性不足;
    • (3) 格式微调阶段指导模型遵循规则的同时生成更多样化结果,由于训练数据多来自线上,商业意图较丰富,但自由生成过程限制了意图数量;
    • (4) 引入受限解码(constrained decoding)能在保证相关性和多样性的同时显著增加商业意图数量

RS——LUM

LUM: large user model

  • 参考链接:
    • (LUM)Unlocking Scaling Law in Industrial Recommendation Systems with a Three-step Paradigm based Large User Model, 202502, Alibaba

整体思路

  • LLM :自回归大型语言模型(LLMs)的成功主要归功于其可扩展性,通常被称为“扩展规律”(Scaling Law)
  • LLM for RS :目前大量工作的思路是将推荐系统(RecSys)任务重新表述为生成问题来适应 LLMs
    • 这种端到端生成推荐(End-to-End Generative Recommendation,E2E-GR)方法往往优先考虑理想化目标(idealized goals)
    • 牺牲了传统基于深度学习的推荐模型(DLRMs)在特征、架构和实践方面提供的实际优势
    • 这种理想化目标与实际需求之间的差距引入了一些挑战和限制,阻碍了工业推荐系统中扩展规律的应用
  • 论文方案 :论文提出了一种大型用户模型(large user model,LUM),通过一个三步范式(three-step paradigm)解决这些限制
    • 做到满足工业环境的严格要求
    • 合理复用历史 DLRMs 的特征工程
    • 释放 Scaling Law 在推荐系统上的潜力
  • 离线+在线实验
    • 离线:实验表名,LUM 在性能上优于 SOTA 的 DLRMs 和 E2E-GR 方法,此外,LUM 展现出卓越的可扩展性,当模型参数扩展到70亿时,性能持续提升

关于 LUM 提出的背景和一些讨论

  • LLMs 显示出 Scaling Law,推荐系统(RecSys)领域也在积极探索利用类似 Scaling Law 的潜力
  • 早期研究指出,工业中广泛使用的传统基于深度学习的推荐模型(DLRMs)并未展现出与LLMs相同水平的可扩展性(Liu 等, 2020)。这种差异可以归因于生成模型与判别模型之间的根本区别
    • 生成模型需要更大的容量来有效捕捉数据的复杂联合概率分布 \(p(x,y)\)
    • 判别模型(如传统的 DLRMs)则专注于建模更简单的条件概率 \(p(y|x)\)
    • 因此,增加计算资源对判别模型的性能提升效果较弱(Chen 等, 2018; Li 等, 2020; Chen 等, 2021)
  • 一些研究尝试 将推荐系统中召回和排序任务重新表述为生成任务 ,以模仿生成模型,具体来说,这是通过将用户行为序列(User Behavior Sequences,UBS)作为语料库,并以端到端的方式在“next-item prediction”任务上训练 Transformer 架构来实现的(Chen 等, 2018; Li 等, 2020)
  • 端到端生成推荐方法(E2E-GRs)往往过度强调理想化目标,从而忽视了 DLRMs 在特征、架构和实践中的固有优势。这种建模范式中理想化目标与实际实现之间的差距,随后引发了一系列挑战和限制
    • (1) 生成训练与判别应用之间的不一致性:尽管 E2E-GRs 擅长捕捉数据中的复杂模式和分布,但在应用于特定判别任务(如点击率预测,其中校准能力和排序能力至关重要)时,往往表现出局限性(Wang 等, 2020)
      • 这种差异源于生成模型对数据生成过程的固有关注,而非精确的预测结果
      • 尽管生成模型擅长捕捉数据的固有分布,但它们可能无法始终满足判别应用的严格要求,这些应用需要高水平的准确性和特异性(Li 等, 2020; Chen 等, 2021; Chen 等, 2021)
    • (2) 效率挑战:在工业环境中,连续流式训练对高效率的需求,以及在线实时推理对低延迟的严格要求,为 E2E-GRs 的直接实施带来了重大挑战
      • 即使部署可行,这些效率限制仍会阻碍这些端到端模型的可扩展性(后文第5.4节会继续讨论)
    • (3) 缺乏灵活性: E2E-GRs 在适应业务需求的动态变化方面表现出明显的局限性,具体而言,整合新型行为数据(如退款行为或与新场景相关的行为)是一 item重大挑战
      • E2E-GRs 的固有结构要求,对输入模式的任何修改(包括新增元素)都会触发对整个模型重新训练的需求。这种刚性不仅增加了新特征整合的复杂性,还对系统的适应性施加了重大限制
      • 在工业环境中,快速灵活地响应变化条件通常至关重要,而从头开始重新训练模型既耗时又耗费资源,从而降低了 E2E-GRs 的实用性
    • (4) 有限的兼容性: E2E-GRs 使用原始 UBS 和 Transformer 架构构建。这种方法固有地限制了它们与现有工业知识(如显式特征工程和 DLRMs 的参数继承)的兼容性
      • 这些 E2E-GRs 在开发阶段与工业环境中的实际部署之间往往存在显著的性能差距(第5.3节)。这种差距在在线模型经过多年甚至数十年优化的应用中尤为明显。这一差异凸显了需要更强大的整合策略,以弥合理论进展与实际应用之间的差距
  • 论文重新思考了一个关键问题:如何在工业环境中有效利用生成模型来解锁 Scaling Law?
    • 这一问题促使论文重新审视使用 LLMs 的常见范式(图1),具体而言,传统 LLM 的范式是:
      • LLMs 首先在大量数据上以生成方式进行训练,使其能够吸收广泛的知识
      • 终端用户(End-users)随后通过多样化的 prompts 与这些模型交互,提出问题(可以同时做多个领域的知识问答)
      • 终端用户使用 LLM 的返回做决策(注:原文中称该决策为informed decision,可以直接翻译为有见识/学问的决策)
    • LLMs的这种 multi-step, generative-to-discriminative 特性为在实际应用中利用生成模型提供了基础框架
    • 基于这一见解,论文提出了一种用于工业用途的大型用户模型(LUM)的三步训练范式。这些步骤如下(见图1):
      • Step 1:知识构建 引入 LUM,通过生成学习进行预训练(基于 Transformer 架构)。该模型捕捉用户兴趣和物品之间的协作关系,从而构建一个全面的知识库
      • Step 2:知识查询 在此阶段,LUM 通过预定义的与用户特定信息相关的问题进行查询,提取 relevant insights
        • 直观上,这一过程可以基本概念化为一种“prompt engineering”,专门设计用于引出广泛的知识
      • Step 3:知识利用 LUM 在 Step 2 中获得的输出作为补充特征 ,被整合到传统的 DLRMs 中,以增强其预测准确性和决策能力
  • 总体而言,我们可以从三步范式中获益:
    • (1) 在 Step 1 中,LUM 的生成学习能够探索扩展规律,这对提升模型性能至关重要
    • (2) 论文范式的解耦设计消除了连续流式训练或服务的限制(进使用 prompt engineering 提取知识了)
      • 这种分离便于为 LUM 实施缓存策略,从而缓解效率限制
    • (3) Step 3 确保 DLRMs 能够满足实时学习、灵活性和兼容性的要求
      • 这是通过将先前学习的 LUM 与 DLRMs 整合来实现的,从而增强了它们对动态环境的适应性,并确保与现有系统的无缝集成
  • 另一个挑战是如何有效地将 Step 1 中学习到的数据联合分布 \(p(x,y)\) 迁移到下游判别任务中
    • 理想情况下,LUM 中封装的用户知识应与目标判别任务具有显著相关性
    • 为了实现这一点,论文为 UBS 引入了一种新颖的 token 化策略,其中每个物品被扩展为两个不同的 token :** condition token 和物品 token **(图2和第4.1.1节)
    • 随后,论文将 UBS 的自回归学习过程从“next-item prediction”重新定义为“next-condition-item prediction”。通过这一重新表述,我们可以在 Step 2 过程中通过指定各种条件,将相关知识从 LUM 无缝 trigger 到判别任务中
  • 最终结果说明:
    • 离线+在线实验
    • LUM 展现出与 LLMs 相似的 Scaling Law(PS:能够成功扩展到70亿参数,同时保持一致的性能提升)

相关工作(直译)

基于深度学习的推荐模型

  • 传统的 DLRMs 通常采用深度神经网络,可以大致分为两大类:
  • (1) Retrieval-Oriented Models :这些模型主要专注于为用户召回最相关的物品。它们通常采用双塔架构,如EDB(Bernard 等, 2018),或序列模型,如SASRec(Krizhevsky 等, 2013)、BERT4Rec(Zhang 等, 2019)和GRU4Rec(B),以有效捕捉用户与物品之间的相关性
  • (2) CTR(Click-Through Rate)预估模型 :这类模型旨在预测点击率。许多模型采用嵌入+多层感知机(MLP)架构。一些工作(如DeepFM(Chen 等, 2019)和xDeepFM(Wang 等, 2019a))旨在构建更复杂的交互信号,而其他工作(包括DIN(Yang 等, 2019)、DIEN(Xu 等, 2019)、SIM(Song 等, 2020a)和 TWIN(Choi 等, 2019))则探索了 UBS 的重要性。尽管这些方法在推荐系统中取得了显著改进,但它们通常无法随着计算资源的增加而扩展,并且未能充分利用大型基础模型的进展

生成推荐模型

  • 为了研究扩展规律,一些研究尝试类 LLM 架构,并通过端到端方式在 next-item prediction 任务上构建自回归 Transformer(Cheng 等, 2019; Wang 等, 2020b)
  • 然而,如前文所述,这些方法往往做出强烈且理想化的假设(strong and idealized),忽视了传统 DLRMs 在特征、架构和实践中的优势。这导致这些模型在应用于工业环境时出现一系列问题和限制
  • 论文提出了一种基于 LUM 的三步范式来解决这些限制。值得注意的是,也有工作尝试通过端到端(E2E)或多步训练利用 LLMs 中的开放世界知识构建基于内容的推荐模型(Chen 等, 2019; Chen 等, 2021b; Zhang 等, 2019; Xue 等, 2019)。然而,这些研究超出了论文当前研究的范围。论文的重点是开发一种可扩展的模型,捕捉协同过滤信号而非内容信号
  • 吐槽一下:这篇论文的引用咋都是22年以前的?

推荐系统基础只是

传统深度推荐模型(DLRMs)

  • 在推荐系统(RecSys)中,主要任务分为两类:召回和排序。论文以搜索场景为例进行讨论,但所提出的方法同样适用于其他工业应用场景
  • 问题定义:给定用户 \(u \in \mathcal{U}\) 、物品 \(i \in \mathcal{I}\) 和搜索词 \(s \in \mathcal{S}\)
    • 召回任务 :该任务的目标是从候选池中筛选出与用户 \(u\) 在查询 \(s\) 下的偏好相匹配的物品子集
      • 传统召回任务通常采用双塔架构,包括 user-query 塔 \(UEnc\) 和物品塔 \(IEnc\)(这些塔可以由任何合适的神经网络结构(如多层感知机MLP)组成)
      • user-query 塔将用户 \(u\) 和搜索词 \(s\) 编码为统一嵌入向量 \(\boldsymbol{e}_{us}^{\prime} = UEnc(us)\)
      • 物品塔则为物品 \(i\) 生成嵌入向量 \(\boldsymbol{e}_{i}^{\prime} = IEnc(i)\)
      • 最后,通过对比学习技术优化这两个塔的表示
    • 排序任务 :排序任务的目标是预测用户 \(u\) 在特定查询 \(s\) 下点击物品 \(i\) 的概率
      • 其数学形式为:
        $$\hat{y} = f(u,i,s)$$
        • \(\hat{y}\) 表示预测的 CTR
        • \(f\) 为 Embedding+MLP 架构

基于“next-item prediction”的端到端生成推荐(E2E-GRs)

  • 在 E2E-GRs 中,给定用户 \(u\) 的用户行为序列(UBS) \(B_u = \{i_1, i_2, …, i_L\}\)(其中 \(L\) 为序列长度),“next-item prediction”框架假设物品 \(i_k\) 出现的概率依赖于其之前的物品 \(\{i_1, i_2, …, i_{k-1}\}\)。因此,整个 UBS 的似然可以表示为:
    $$ p(i_1, i_2, …, i_L) = \prod_{j=1}^{L} p(i_j | i_1, i_2, …, i_{j-1}) $$
    • E2E-GRs 的自回归学习目标是优化分布 \(p_{\theta}(i_1, i_2, …, i_L)\),这一方法通常被称为“next-item prediction”

LUM 方法整体介绍

Step 1:通过预训练 LUM 构建知识

Tokenization
  • 论文将 UBS 的自回归建模从 “next-item prediction” 转变为 “next-condition-item prediction” 范式
  • 序列 \(B_u\) 中的任意 item \(i\) 被分解为两个不同的 token:condition token 和 item token
  • UBS 可以表示为交替 token 的序列:\(\{c_1, i_1, c_2, i_2, …, c_L, i_L\}\),其中 \(c_k\) 表示与 item \(i_k\) 相关联的 condition token(如图2所示)
  • 举例 :用户的行为可能涉及多个场景(如推荐和搜索场景)中的 item 交互。此时,condition token \(c_i\) 可以定义为场景 token,从而捕捉 item \(i\) 所处的特定环境。这种方法有助于细致理解用户在不同场景中的偏好和行为
  • 论文方法与 HSTU 等方法引入了额外的动作 token 的形式不同
    • HSTU 中,任意 item被扩展为 <item, action>,其中动作 \(a_k\) 与前面的(preceding) item \(i_k\) 相关联,而非后面的(subsequent) item(如图2所示)
    • HSTU 的策略无法基于不同条件预测 next item,也难以捕捉用户在不同方面的偏好
LUM 整体架构
  • LUM 的整体框架如图3(a)所示,采用分层结构,包含一个 Token Encoder 和一个 User Encoder
  • Token Encoder :LUM 的输入 token 具有异质性,主要分为两类:condition token \(c\) 和 item token \(i\)
    • 单个 token 可能携带多种属性特征(例如 item token 的ID、统计和内容特征)
    • Token Encoder 旨在将这些异质输入统一为 token 嵌入
    • 具体过程是先将每个 token 的特征或嵌入拼接,再通过投影层将其整合到共同的表示空间中。数学上,这一转换可表示为:
      $$
      e^t = \text{proj}(\text{concat}(f_1^t; f_2^t; f_3^t; …)), \quad t \in \{i, c\}
      $$
      • \(f_k^t\) 表示 item token \(i\) 或 condition token \(c\) 的特征,其中\(t \in \{i, c\}\)
        • 注意:一个 token 只能是 item token \(i\) 或 condition token \(c\) 中的一种,不能同时属于两种 token
      • \(e^t\) 为生成的 token 嵌入
      • \(\text{proj}\) 表示线性投影层
  • User Encoder :User Encoder 用于捕捉用户偏好和 item间的协同信息
    • 输入 token 序列 \(\{c_1, i_1, c_2, i_2, …, c_L, i_L\}\) 通过 Token Encoder 表示为 \(\{e_1^c, e_1^i, e_2^c, e_2^i, …, e_L^c, e_L^i\}\)
    • 如图3(a)所示,User Encoder 使用传统的自回归 Transformer 架构处理这些嵌入,最终输出为 \(o_k^c\),封装了输入序列的整合信息
Next-condition-item Prediction
  • “next-condition-item prediction”关注在给定特定条件下预测 next item
    • 注:这种方法仅对 condition token 的输出应用自回归损失以推断 next item。因此,next-condition-item prediction 的自回归似然可表示为:
      $$
      p(c_1, i_1, c_2, i_2, …, c_L, i_L) = \prod_{l=1}^L p(i_l | c_1, i_1, c_2, i_2, …, i_{l-1}, c_l)
      $$
  • 为优化工业应用中的 \(p_\theta(c_1, i_1, c_2, i_2, …, c_L, i_L)\),本研究采用了 InfoNCE 损失函数并引入了 packing 策略
  • InfoNCE 损失 :在工业应用中,item的词汇量可能达到数十亿,直接计算所有 item的生成概率是不现实的。为解决这一问题,本研究使用InfoNCE损失预测next-condition item。其数学表达式为:
    $$
    \text{Loss} = -\sum_{l=1}^L \log \left( \frac{\exp(\text{sim}(o_{l-1}^c, e_l^i))}{\exp(\text{sim}(o_{l-1}^c, e_l^i)) + \sum_{k=1}^K \exp(\text{sim}(o_{l-1}^c, e_k^i))} \right)
    $$
    • \(\text{sim}\) 为相似度函数
    • \(o_{l-1}^c\) 是自回归序列中 token \(e_{t-1}^c\) 对应的 Transformer 输出
    • 对于任意 item \(i\),同一批次中的其他 item作为负样本,\(K\) 为负样本数量,\(e_k^i\) 为第 \(k\) 个负 item 的嵌入
    • 注意:应用 InfoNCE 损失以后,不需要面对过大的词汇表了,仅关注 \(K\) 个负样本就行
  • packing 策略 :在实际应用中,用户行为序列的长度差异显著,大多数序列长度远小于预设的最大长度。若单独处理每个序列,计算效率较低。受GPT系列打包策略的启发,本研究将多个 UBS 合并为单一序列,以充分利用序列长度

Step 2:基于给定条件查询知识

  • 在 Step 1 中,论文构建了联合概率分布 \(p(c_1, i_1, c_2, i_2, …, c_L, i_L)\),Step 2 是从这一分布中提取相关知识
  • 原文4.1.1节的分词方法支持在不同条件下查询知识,给定查询条件 \(c_q\),可以计算条件概率 \(p(i_q | c_1, i_1, c_2, i_2, …, c_L, i_L, c_q)\),以确定用户对 item \(i_q\) 的兴趣(如图3(b)所示)
  • 这种触发条件知识的方法在生成模型与判别任务之间架起了桥梁,从而提升了工业应用的效果。以下是不同 condition token 的应用示例:
    • 示例1 :若 condition token 为场景(scenario) token,模型可推断用户在不同场景中的兴趣
    • 示例2 :若 condition token 为搜索场景中的 query token,模型可基于不同搜索查询推断用户兴趣
    • 示例3 :若 condition token 为类别(category) token,模型可判断用户在不同类别中的兴趣
  • LUM 允许在 \(\{f_1^c; f_2^c; f_3^c; …\}\) 加入额外条件特征来同时考虑多种条件
    • 即加入 Token Encoder 的输入中,从而编码上指定条件信息
    • 实验表明,整合多样条件能显著提升性能(见原文5.3节)
    • 本质上,这一过程可视为一种“prompt engineering”,旨在激发广泛的知识
  • 分组查询以提升效率 : 由于单个用户可能涉及多个查询(均基于同一 UBS),单独处理这些查询会导致效率低下
    • 在实际场景中,用户数量可能达到数十亿, <user, query> 对的数量会急剧增加
    • 为解决这一问题,本研究引入了分组查询策略以提升计算效率
    • 如图4所示,所有查询被拼接为单一序列,表示为 \(p(i_{q_1}, i_{q_2}, … | c_1, i_1, c_2, i_2, …, c_L, i_L, c_{q_1}, c_{q_2}, …)\)
    • 为确保推理过程准确且高效,采用掩码机制防止不同查询条件 \(c_{q_j}\) 间的注意力交互。这种方法使得不同查询的公共前缀 \(\{c_1, i_1, c_2, i_2, …, c_L, i_L\}\) 仅需计算一次,同时支持在不同条件下查询 item \(i_{q_j}\)
    • 实验表明,分组查询策略可将推理速度提升78%(见5.3节)

Step 3:DLRM中的利用知识

  • 在 Step 2 完成后,论文获得了一组 \(N\) 个 next-condition item \(\{i_{q_1}, i_{q_2}, …, i_{q_N}\}\),其对应输出为 \(o_{q_n}^i\)
    • 注:每个 item \(i \in I\) 通过 Token Encoder(4.1.2节)生成嵌入 \(e_i^i\),在经过 User Encoder 最终生成 \(o_{i}^i\)
    • 问题: \(o_{i}^i\) 是没有损失函数的,为什么可以直接使用?是不是应该使用 \(o_{i}^c\) 才合理?
  • 为增强现有DLRM,本研究提出两种策略(如图3(c)所示):
    • 直接特征融合 :将输出 \(o_{q_n}^i\) 和目标 item \(i\) 的嵌入 \(e_i^i\) 作为固定附加特征整合到 DLRM 中
    • 通过相似度匹配兴趣 :计算目标 item \(i\) 与用户兴趣的相似度 \(\text{sim}(o_{q_n}^i, e_i^i)\)(如公式2所示),以量化目标 item 与上下文的匹配程度
  • 形式上,对于召回任务,双塔模型可重构为:
    $$
    e_{us}^r = \text{UEnc}(us, \{o_{q_1}^i, o_{q_2}^i, …, o_{q_N}^i\}), \quad e_i^r = \text{IEnc}(i, e_i^i)
    $$
  • 对于排序任务,排序模型可表示为:
    $$
    \hat{y} = f(u, i, s, \{o_{q_n}^i, \text{sim}(o_{q_n}^i, e_i^i) | n=1, …, N\}, e_i^i)
    $$
  • 这一框架有效整合了上下文信息和 item嵌入,提升了推荐系统中召回和排序的性能

讨论

  • 基于 LUM 的三步范式解决了原文第1节提到的四个限制:
    • 解决限制1(生成训练与判别应用之间的不一致性) :通过生成到判别的设计,Step 1 构建联合分布 \(p(c_1, i_1, c_2, i_2, …, c_L, i_L)\),Step 2 通过“next-condition-item prediction”触发相关知识,Step 3 进行判别学习以满足应用需求
    • 解决限制2(效率挑战) : Step 3 的模型训练和服务天然支持工业应用的高效需求,且 Step 1 和 Step 2 的计算成本较低,因其结果可预计算和存储
    • 解决限制3(缺乏灵活性) :业务需求的动态变化可通过 Step 3 灵活处理,同时这些需求可统一为 condition token,支持 LUM 的持续训练以适应新需求
    • 解决限制4(有限的兼容性) : Step 3 的DLRM主干可设置为在线模型,便于利用现有工业知识,并持续受益于DLRM技术的进步

Experiments

Experiment Setup

  • 数据集 :本研究使用了三个公共数据集和一个工业数据集来评估所提出的 LUM 方法的性能。公共数据集包括两个基准数据集:MovieLens(包含1M和20M两个子集)和 Amazon Books[23, 25]。工业数据集来自淘宝电商平台。这些数据集的统计信息如表1所示

  • 基线模型 :为了全面评估 LUM 的性能,论文将其与多种最先进的模型进行比较

    • 对于传统的召回模型,论文使用基于双塔架构的 EDB[9]
    • 对于传统的排序模型,论文考虑了 DIN[26]、DIEN[25]、SIM[16]和 TWIN[3]
    • 此外,论文还比较了 LUM 与端到端生成推荐方法(E2E-GRs),特别是 HSTU[23]
    • 论文还纳入了传统的序列推荐模型 SASRec[10]作为基线,该模型采用 Transformer 架构建模用户行为序列(UBS)
  • 训练细节 :为了确保公平比较,论文遵循以下训练配置

    • 默认情况下,论文为 Transformer 风格的模型(包括 LUM、HSTU 和 SASRec)保持相似的配置,以确保模型规模可比,其他 DLRMs 的配置根据其原始论文的建议设置
    • 所有模型均使用相同的特征集从头开始训练
    • 公共数据集的序列长度设置为 256,工业数据集的序列长度设置为 4096
    • 对于 LUM,在公共数据集的排序任务中,Step 3 的 DLRM 主干配置为 SIM;在召回任务中配置为 EDB(一种双塔结构)
    • 工业数据集的主干设置为当前生产环境中部署的在线模型(理解:使用当前线上部署模型去推理工业数据集)

推荐任务性能

  • 公共数据集上的性能 :论文首先在公共数据集上评估 LUM 的性能,性能指标为 AUC
    • 结果如 表2 所示。从结果可以看出,LUM 在所有数据集上均实现了显著提升,这表明基于三步范式的 LUM 能够有效捕捉广泛的用户兴趣并提升 DLRMs 的预测准确性
    • 注:Note 0.001 absolute AUC gain is regarded as significant for the ranking task
  • 工业环境中的性能 :本节论文比较 LUM 与 DLRMs 和 E2E-GRs 在工业环境中的性能
    • 基线使用论文应用中的在线模型,排序任务采用 Embedding+MLP 架构,召回任务采用双塔架构
    • 排序任务评估指标是 AUC,召回任务评估指标是 Recall@K(R@K)
    • 对于 LUM,Step 3 的DLRM主干也设置为在线模型
    • 论文还纳入了传统最先进的 DLRMs(SASRec[10] 和 DIN[26])和 E2E-GR(HSTU[23])作为基线进行比较
    • 所有模型使用相同的特征集,序列长度设置为4096,并从头开始训练
    • 结果如表3所示。LUM 相对于最佳基线实现了显著提升,AUC 提高了 +0.0176,R@10 提高了 +0.0133,R@50 提高了 +0.0134。这些提升主要归功于论文提出的生成-判别设计范式

有效性评估

  • 本节论文探讨基于三步范式的 LUM 的优势
  • 对多种 DLRMs 的影响 :由于论文的范式采用解耦设计,LUM 可以在 Step 3 中与任何 DLRM 集成。为了评估 LUM 的有效性,论文比较了原始 DLRMs(记为Base)和增强后的 DLRMs(记为Base+ LUM)在排序任务上的性能
    • 结果如 表4 所示。结果表明,在 LUM 的辅助下,所有方法的性能均显著提升,提升幅度从 +0.0053 到 +0.0176 不等。这些发现凸显了 LUM 在提升多种 DLRMs 预测准确性方面的通用性和有效性
  • 工业应用中 warming up 设置的影响 :在工业应用中,在线模型通常包含复杂的特征工程,并每天在数十亿数据上持续训练
    • 现有的 E2E-GRs 往往忽略这些在线模型的知识,这对其性能提出了挑战,尤其是在在线模型已开发数年甚至数十年的应用中
    • LUM 具有出色的兼容性,可以在 warming up 设置下训练。本节论文通过实现 LUM 的多个版本,并与 E2E-GR(HSTU)和DLRM(在线模型)进行比较,探讨这种兼容性的影响。性能指标为工业数据集上的 AUC
    • 结果如表5所示(“scratch”表示使用相同特征集从头训练的模型,“feature”表示使用复杂特征工程,“param”表示从持续训练的在线模型初始化参数)
    • 从表5可以得出以下结论:
      • (1) 与 LUM 相比,warming up 设置下的模型(包括 LUM(feature)、 LUM(param)和 LUM(feature+param))在AUC上实现了显著提升,幅度从+0.0106到+0.028。这表明利用在线模型的现有知识具有重要价值
      • (2) 尽管HSTU在scratch设置下优于DLRM,但与DLRM(param+feature)相比仍存在较大性能差距(0.7334 vs. 0.7777)。这凸显了与在线模型兼容的重要性。E2E-GRs 的有限兼容性可能阻碍其在真实应用中的实际部署
  • 提出的分词策略的影响 :论文评估了提出的分词策略的有效性
    • 论文开发了 LUM(w/o condition token),并在 表5 中给出AUC
    • 结果显示,与 LUM(w/o condition token)相比,LUM 通过给定条件更好地理解 UBS,从而实现了更好的性能
    • 论文还评估了使用多条件(如场景条件和搜索词条件)的效果,记为 LUM(multi-conditions)
    • 从 表5 可以看出,添加更多条件可以进一步提升性能
  • 知识利用的影响 :论文评估了 Step 3 中知识利用的不同策略
    • 结果如表5所示。“direct feature”和“interest matching”分别对应原文第4.3节中详细描述的知识利用策略
    • LUM(direct feature)和 LUM(direct feature + interest matching)均显著优于DLRM,证明了所提策略的有效性
  • 打包和分组查询的影响 :打包和分组查询旨在加速 Step 1 和 Step 2 的处理
    • 表6展示了这些策略在工业环境中的效率提升,Step 1 和 Step 2 的处理速度分别提高了82%和78%

效率评估

  • 训练效率(Training Efficiency) :图5(a)展示了不同模型在工业环境中一天数据的训练时间成本
    • 对于 E2E-GR,论文遵循HSTU[23]的优化方法,从展示级训练到用户级
    • 对于DLRM,论文使用应用中的在线模型作为基线
    • 对于 LUM,DLRM主干也设置为在线模型
    • 由于 LUM 的 Step 1 和 Step 2 可以预处理(4.4节),因此在 Step 3 训练下游模型时不计入其时间成本
    • 序列长度设置为4096,LUM 和 E2E-GR 的模型规模从0.5亿到140亿参数不等
    • 所有模型在128个GPU上训练
    • 最高时间成本设置为24小时,因为实际中的持续训练要求模型在此时间内处理每日数据
    • LUM 的训练时间成本与DLRM相近,并且由于其解耦的三步范式,对模型规模不敏感,这一特性在工业环境中解锁了训练时的扩展潜力
    • 相比之下,E2E-GR 比 LUM 慢12倍到98倍
    • 所有 E2E-GR 模型(不同规模)均未满足在24小时内完成训练的要求
    • 为了匹配 LUM 的吞吐量,E2E-GR 需要12倍到98倍的GPU;为了满足24小时要求,需要2倍到18倍的GPU
  • Serving 效率(Serving Efficiency) :图5(b)和(c)展示了不同模型在线服务时的延迟
    • 对于 E2E-GR,论文遵循 HSTU 的 M-FALCON 实现[23]
    • DLRM 设置为在线模型,同时也是 LUM 的主干排序模型
    • LUM 的 Step 3 需要评估 Serving 延迟(Step 1 和 Step 2 可以预计算(第4.4节)
    • 在图5(b)中,序列长度设置为4096,LUM 和 E2E-GR 的模型规模从 0.5亿 到 140亿 参数不等
    • 延迟约束设置为小于30毫秒(ms),在论文的案例中,排序候选数量约为100
    • 总体而言,LUM 的延迟与模型规模无关,使得我们可以扩展 LUM 而不违反延迟约束。相反,即使对于小型模型(0.5亿参数),E2E-GR 也无法提供及时响应(小于30 ms)
    • 为了进一步研究,论文尝试减少 E2E-GR 的序列长度以满足延迟约束(图5(c))。遗憾的是,在使用140亿参数模型时,满足延迟约束(<30 ms)的最大序列长度仅为64,远低于典型设置(在论文的案例中缩小了64倍)
    • 这些结果表明,尽管 E2E-GR 在离线性能上可能表现出扩展性,但由于延迟约束,大规模模型在工业环境中的实际应用受到严重限制。相比之下,LUM 的解耦架构确保了延迟性能的一致性,使其成为实时工业应用中更可行和可扩展的解决方案

LUM 的扩展性

  • 遵循 Improving language understanding by generative pretraining 和 Language models are unsupervised multitask learners 的协议,论文检验 LUM 是否遵循类似的 Scaling Law,论文重点评估模型参数和序列长度的扩展性
    • 对于模型参数,为了评估模型参数的影响,论文保持序列长度为4096,训练模型规模从1900万到70亿参数不等
    • 对于序列长度,为了评估序列长度的影响,论文在固定参数规模为3亿的情况下,训练序列长度从256到8192不等的模型
    • 结果如图6所示,论文观察到明显的幂律扩展趋势,与之前的研究一致[17, 18, 23]。幂律扩展规律可以表示为:
      $$
      R_{P} = 0.0068 \cdot \log(P) + 0.1741 \\
      R_{L} = 0.0147 \cdot \log(L) + 0.2326
      $$
      • \(R_{P}\) 和 \(R_{L}\) 分别表示不同模型规模和序列长度下的 R@10 指标,\(P\) 表示模型规模,\(L\) 表示序列长度
    • 这些结果证实了 LUM 的强大扩展性,表明增加模型规模和序列长度可以持续提升模型性能。这一发现凸显了 LUM 在扩展时实现更高性能的潜力,使其成为大规模工业应用的有前景的方法

在线结果

  • 为了评估 LUM 在工业环境中的有效性,论文将其部署在中国最大的电商平台淘宝的搜索广告系统中
  • 如原文第4.4节所述,评估过程包括以下关键步骤:
    • (1) 离线阶段,论文首先预训练 LUM,并在各种条件下 pre-triggered 必要的知识
    • (2) 存储 LUM 在 Step 2 生成的响应,以便在线服务时直接使用。这种预计算有助于满足实时工业应用中的严格延迟约束
    • (3) 最后,论文进行了在线A/B实验测试 LUM 在排序任务中的表现。关键性能指标 CTR(点击率)和 RPM(每千次展示收入)分别显著提升了 2.9% 和 1.2%,这些发现凸显了 LUM 的实际效益,证明了其在大规模电商平台中提升用户参与度和业务成果的能力

RS——WCE-YouTube推荐论文

本文主要介绍WCE

原始论文:[Youtube] Deep Neural Networks for YouTube Recommendations (Youtube 2016)


WCE

  • Weighted Cross Entropy,加权交叉熵,也叫做Weighted LR,Weighted Logistic Regression
  • 用于解决回归问题
    • 主要是存在大量负样本(值为0)的回归问题
    • 比如视频浏览时长问题(点击率就比较低)
  • 训练时使用损失函数:
    $$
    loss = \sum_i w_i y_ilog(p_i) + (1-y_i)log(1-p_i)
    $$
    • 其中 \(p_i = \frac{1}{1+e^{-\theta^{T}\boldsymbol{x}}}\)
    • \(w_i\) = 回归值(如观看时长)
    • \(y_i\) = 是否为正值(即是否点击,未点击表示观看时长为0,视为负样本)
    • 对任意样本,我们真实想要的预估目标是一个视频被点击且观看的概率 \(pred = wp\)
  • serving时使用下面的定义来表示回归值:
    $$
    pred = e^{\theta^{T}\boldsymbol{x}}
    $$
    • 对于原始的CE损失函数,有 \(Odds = \frac{p}{1-p} = e^{\theta^{T}\boldsymbol{x}}\) (补充:Odds表示样本为正的概率除以样本为负的概率, \(log(Odds) = \theta^{T}\boldsymbol{x}\) )就是logit
    • 当前损失函数下,正负样本的比例(或权重)发生了变化,实际上 \(Odds = \frac{p}{1-p} = e^{\theta^{T}\boldsymbol{x}}\) 表示的值不再是原始样本中正负样本的比例,而是带权重的比例,详情看后续的证明
  • 可以证明上面的方法会造成预估值有偏

WCE改进

  • 改进后的损失函数
    $$
    loss = \sum_i w_i y_ilog(p_i) +\log(1-p_i)
    $$
  • 改进前方案是有偏的,修改为上面的损失函数后, \(pred = Odds = e^{\theta^{T}\boldsymbol{x}}\) 是无偏的
  • 证明:
    • 假设在原始的CE损失函数下,正负样本的比例为A:B,此时有 \(p = \frac{A}{A+B}\) 【这里只是假设训练时遇到特征值完全相同的多个样本(有正有负),模型在遇到serving时遇到同一个特征值样本时,应该预估样本为正的概率为多少?】
      • 原始CE下,样本为正的概率就是正样本数/总样本数
    • 那么在上述加权的损失函数下,相当于正负样本的比例为 \(wA:B+A\),此时有 \(p’ = \frac{wA}{wA+B+A}\)
      • 因为权重被修改了,可以证明样本不变,增加权重等价于权重不变,增加样本(重复采样)
      • \(wA:B+A\) 的原因是因为正样本被加了 \(w\) 倍的权重,而负样本则被增加了A个(原始的CE函数中正样本不会累加 \(log(1-p)\) 作为损失,但改进后的WCE会
    • 我们真实想要的预估值是: \(pred = wp = w * \frac{A}{A+B}\)
      • 可以表述为样本为正的概率乘以样本为正时的值(用户点击视频的概率*用户点击视频后观看的概率)
    • 经推导有:
      $$
      pred = e^{\theta^{T}\boldsymbol{x}} = \frac{p’}{1-p’} = \frac{\frac{wA}{wA+B+A}}{1-\frac{wA}{wA+B+A}} = w * \frac{A}{A+B} = wp
      $$
      • 注意,我们需要的是 \(pred = wp\) 而不是 \(pred = wp’\)
        • 因为 \(p’\) 是被我们修改权重后得到的模型输出(均值)
      • 真实serving时,模型的输出值 \(p’\) 是不用的,只使用 \(pred = e^{\theta^{T}\boldsymbol{x}}\) 就可以了
      • 其他:
        • 对于原始CE,有:
          $$
          pred = e^{\theta^{T}\boldsymbol{x}} = \frac{p}{1-p} = \frac{\frac{A}{A+B}}{1-\frac{A}{A+B}} = \frac{A}{B} = \frac{p}{1-p}
          $$
        • 对于YouTube的WCE,有:
          $$
          pred = e^{\theta^{T}\boldsymbol{x}} = \frac{p’’}{1-p’’} = \frac{\frac{wA}{wA+B}}{1-\frac{wA}{wA+B}} = w * \frac{A}{B} \approx w * \frac{A}{A+B} = wp
          $$
          • 约等于符号成立的前提是正样本占比特别少 ,此时 \(\frac{A}{B} \approx \frac{A}{A+B}\)
          • 也就是说,在正样本占比特别少时,使用YouTube的WCE也是没问题的,但是为了保证无偏,建议使用改进后的WCE

扩展问题

  • 在面对回归问题是,WCE相对MSE真的有提升吗?

其他

  • WCE也可以用于分类问题中,目的是让模型更关注某些特殊样本

其他参考链接

  • 揭开YouTube深度推荐系统模型Serving之谜

RS——推荐系统相关笔记


Side Info一般指什么?

  • 主要是指商品信息,比如:
    • 商品的各种属性信息,如品类、价格、品牌等
    • 历史统计信息,如历史曝光、点击、订单数等
  • 为什么叫做Side Info:在用户行为序列中,除了主要商品列表外,每个商品还会下挂一些相关的信息,这些信息就称为 Side Info

RS——从CG到NDCG评估指标


整体说明

  • CG(Cumulative Gain,累计增益),DCG(Discounted Cumulative Gain,折损累计增益)和NDCG(Normalized Discounted Cumulative Gain,归一化折损累计增益)是信息检索和推荐系统中常用的评估指标,用于衡量排序结果的质量

CG(Cumulative Gain,累计增益)

  • 定义 :单纯对前\( k \)个结果的相关性分数求和,不考虑位置的影响
  • 公式 :
    $$
    CG@k = \sum_{i=1}^k rel_i
    $$
    • \( rel_i \):第\( i \)个结果的相关性分数(如:0不相关,1相关,2非常相关等)
    • \( rel_i \)的准确性尤为重要,通常使用:
      • 人工标注相关性
      • 线上用户真实行为数据(比如点击为1,长时间观看为2,购买/下单为3,跳过为0)
      • 注:特殊场景下也会使用模型预测值
  • 局限性 :未考虑排序顺序对用户体验的影响(例如,相关结果排在后面对用户价值更低)

DCG(Discounted Cumulative Gain,折损累计增益)

  • 定义 :在CG基础上引入位置折损 ,排名越靠后的结果对总增益的贡献越小
  • 公式(常用版本) :
    $$
    DCG@k = \sum_{i=1}^k \frac{rel_i}{\log_2(i+1)}
    $$
    • 折损因子 :\( \log_2(i+1) \) 会随着位置\( i \)增大而降低当前结果的贡献
  • 变体(更强调相关性) :
    $$
    DCG@k = \sum_{i=1}^k \frac{2^{rel_i} - 1}{\log_2(i+1)}
    $$
    • 适用于相关性分数差异较大的场景(如0/1/3/5分级)

NDCG(Normalized DCG,归一化折损累计增益)

  • 定义 :将DCG除以理想排序下的DCG(IDCG) ,得到归一化分数(0~1之间)
  • 公式 :
    $$
    NDCG@k = \frac{DCG@k}{IDCG@k}
    $$
    • \( IDCG@k \):将前\( k \)个结果按相关性从高到低排序后计算的DCG(即理论最大值)
  • 特点 :
    • 值越接近1,排序越接近理想状态
    • 解决了不同查询间DCG无法直接比较的问题(因为不同查询的IDCG可能不同)

使用场景与示例

  • 适用领域 :
    • 搜索引擎结果排序
    • 推荐系统(如电影、商品推荐)
    • 问答系统答案排序
  • 示例 :
    • 查询结果的相关性分数:[3, 2, 3, 0, 1](按当前排序)
    • 计算DCG@3:
      $$
      DCG@3 = \frac{3}{\log_2 2} + \frac{2}{\log_2 3} + \frac{3}{\log_2 4} \approx 3 + 1.26 + 1.5 = 5.76
      $$
    • 理想排序的相关性分数:[3, 3, 2] -> \( IDCG@3 \approx 6.43 \)
    • \( NDCG@3 = \frac{5.76}{6.43} \approx 0.90 \)

优缺点

  • 优点 :
    • 考虑相关性分级和位置因素,更贴近用户实际体验
    • NDCG提供标准化比较,适合不同查询间的评估
  • 缺点 :
    • 需要人工标注相关性分数(成本高)
    • 对相关性分数的定义敏感(如0/1/2还是0/1/3/5)

附录:推荐系统中的其他评估指标

HitRate@K

  • 通常包含 用户粒度HitRate@K 和 物品粒度HitRate@K 两种
    • 用户粒度HitRate@K,也称为二值命中率(Binary Hit Rate):
      • 对单个用户而言,只要推荐列表(TopK)中有至少一个相关物品则该样本(用户)算作为命中 (即Hit = 1),否则为不命中(即Hit=0)
      • 用户粒度HitRate@K是所有用户命中情况的平均值:
        $$ HitRate@K = \frac{兴趣出现在TopK物品的用户数量}{总用户数量} $$
    • 物品粒度HitRate@K,也称为命中次数占比(Hit Ratio)
      • 对被推荐的单个物品而言,如果是用户喜欢的则视为命中 (即Hit = 1),否则为不命中(即Hit=0)
      • 物品粒度HitRate@K是所有推荐物品命中情况的平均值
        $$ HitRate@K = \frac{总命中物品数量}{总推荐物品数量} = \frac{\sum_{i}命中用户i的物品数量}{\sum_{i}给用户i的推荐物品总数} $$

MRR

  • TLDR:MRR(Mean Reciprocal Rank)是对每个查询的相关文档在推荐列表中排名的倒数的平均值
  • 具体计算方法为:
    $$MRR=\frac{1}{|Q|}\sum_{i=1}^{|Q|}\frac{1}{rank_i}$$
    • \(|Q|\)是查询的总数
    • \(rank_i\)是第\(i\)个查询中第一个相关文档在推荐列表中的排名
    • 如果一个查询在推荐列表中没有相关文档,则该查询对MRR的贡献为\(0\)
  • MRR主要用于衡量推荐系统在返回相关结果时的排序能力,它特别关注第一个相关结果在推荐列表中的位置,能够反映出推荐系统将最相关的项目排在前面的能力
  • 举例:假设用户有3个查询,对应的推荐列表及相关文档的排名如下:
    • 查询1:推荐列表为$$D_3,D_1,D_2$$,其中\(D_1\)是相关文档,排名为\(2\),则该查询的\(\frac{1}{rank}=\frac{1}{2}\)
    • 查询2:推荐列表为$$D_2,D_4,D_1$$,相关文档\(D_2\)排名为\(1\),该查询的\(\frac{1}{rank}=1\)
    • 查询3:推荐列表为$$D_3,D_4,D_5$$,没有相关文档,该查询的\(\frac{1}{rank}=0\)
    • 那么\(MRR = \frac{(\frac{1}{2}+1+0)}{3}=\frac{1.5}{3}=0.5\)

AP & mAP

  • 参见:RS——推荐系统评估指标-mAP

RS——OneRec

OneRec:Unifying Retrieve and Rank with Generative Recommender and Preference Alignment,本文主要是对论文OneRec的翻译,其中包含了一些总结和理解

  • 参考链接:
    • OneRec: Unifying Retrieve and Rank with Generative Recommender and Preference Alignment, 202502, KuaiShou:快手周国睿团队作品

整体思路说明

  • 基于生成式检索的推荐系统介绍 :基于生成式检索(召回)的推荐系统(generative retrieval-based recommendation systems,GRs),通过自回归方式直接生成候选视频(注:论文针对短视频推荐场景,所以使用的是视频作为例子,实际上可以是任意 item),展现出巨大潜力
  • 当前问题 :然而,现代推荐系统大多采用“检索-排序”(retrieve-and-rank)策略,生成模型仅在检索阶段作为选择器发挥作用
  • 论文方案OneRec :用统一的生成模型取代传统的级联学习框架。具体而言,OneRec包含以下核心组件:
    • 1)Encoder-Decoder 结构 :编码用户历史行为序列,逐步解码用户可能感兴趣的视频。采用稀疏专家混合(MoE)技术,在不显著增加计算量的情况下扩展模型容量;
    • 2)session 式生成方法 :与传统 next-item 预测不同,提出 session-wise 生成方式,相比依赖手工规则拼接生成结果的 point-by-point 生成更优雅且上下文连贯;
    • 3)迭代偏好对齐模块 :结合直接偏好优化(Direct Preference Optimization,DPO)提升生成结果质量。与 NLP 中的DPO不同,推荐系统通常只有一次展示机会,无法同时获取正负样本。为此,论文设计奖励模型模拟用户生成行为,并根据在线学习特性定制采样策略,大量实验表明,少量DPO样本即可对齐用户兴趣偏好,显著提升生成质量
  • OneRec已在快手主场景(日活数亿的短视频推荐平台)部署 ,观看时长提升1.6% ,实现了实质性突破
  • 注:据论文所知,这是首个在真实场景中显著超越当前复杂且精心设计的推荐系统的端到端生成模型

更多相关讨论

  • 推荐系统介绍 :为了平衡效率和有效性,大多数现代推荐系统采用级联排序策略。如图1(b)所示,一个典型的级联排序系统采用三阶段流程:召回、预排序和排序。每个阶段负责从接收到的 item 中选择前k个 item,并将结果传递到下一个阶段,共同平衡系统响应时间和排序准确性之间的权衡。尽管在实践中效率较高,但现有方法通常独立对待每个排序器,每个独立阶段的有效性成为后续排序阶段的上限,从而限制了整体排序系统的性能。尽管有各种努力通过实现排序器之间的交互来提高整体推荐性能,但它们仍然保持传统的级联排序范式
  • 最近,基于生成式检索的推荐系统(GRs)[36, 45, 51]作为一种有前途的范式出现,它通过自回归序列生成方式直接生成候选 item 的标识符。通过使用对 item 语义进行编码的量化语义ID对 item 进行索引[24],推荐系统可以利用 item 内丰富的语义信息。GRs的生成特性使其适合通过 beam search 解码直接选择候选 item,并产生更多样化的推荐结果。然而,目前的生成模型仅在检索阶段充当选择器,因为其推荐准确性仍无法与精心设计的多级联排序器相媲美
  • 为了应对上述挑战,论文提出了一种用于single-stage 推荐的统一端到端生成框架OneRec
    • 首先 ,论文提出了一种 Encoder-Decoder 架构。从训练 LLM 时观察到的缩放定律中获得灵感,论文发现扩展推荐模型的容量也能持续提高性能。因此,论文基于混合专家(MoE)结构扩展模型参数,这显著提高了模型表征用户兴趣的能力
    • 其次 ,与传统的 point-by-point 预测 next-item 不同,论文提出了一种 session-wise 的列表生成方法,该方法考虑了每个 session 中 item 的相对内容和顺序。逐点生成方法需要 hand-craft 策略来确保生成结果的连贯性和多样性(coherence and diversity)。相比之下,session-wise 的学习过程使模型能够通过输入偏好数据自主学习最优的 session 结构
    • 最后 ,论文探索使用直接偏好优化(DPO)进行偏好学习 ,以进一步提高生成结果的质量。为了构建偏好对,论文从 hard negative sampling[37]中获得灵感,从 beam search 结果中创建 self-hard rejected samples(而不是随机采样)。论文提出了一种迭代偏好对齐(IPA)策略 ,根据预训练奖励模型(RM)提供的分数对采样响应进行排序,确定最佳选择和最差拒绝(best-chosen and worst-rejected)的样本
  • 论文在大规模工业数据集上的实验展示了所提方法的优越性。论文还进行了一系列消融实验,详细证明了每个模块的有效性
  • 这项工作的主要贡献总结如下:
    • OneRec框架提出 :为了克服级联排序的局限性,论文引入了 OneRec,这是一种 single-stage 生成式推荐框架。据论文所知,这是首批能够使用统一生成模型处理 item 推荐的工业解决方案之一,显著超越了传统的 multi-stage 排序流程
    • session-wise 的生成方式 :论文通过 session-wise 的生成方式强调了模型容量和目标 item 上下文信息的必要性,这使得预测更加准确,并提高了生成 item 的多样性
    • 迭代偏好对齐(IPA)策略 :论文提出了一种基于个性化奖励模型的新型 self-hard negative samples 选择策略。通过直接偏好优化,论文增强了 OneRec 在更广泛用户偏好范围内的泛化能力
    • 大量的离线实验和在线A/B测试证明了它们的有效性和效率

相关工作(直译,保留引用)

生成式推荐

  • 近年来,随着生成模型的显著进展,生成式推荐受到越来越多的关注
    • 传统基于嵌入的检索方法主要依赖双塔模型计算候选项排序分数,并利用高效的MIPS或ANN(Krizhevsky et al., 2015; Chen et al., 2016)搜索系统检索Top-K相关项
    • 生成式检索(GR)(Chen et al., 2016)将数据库相关文档检索问题转化为序列生成任务,按序生成文档标记(如标题、ID或预训练语义ID)。GENRE(Wang et al., 2019)首次采用Transformer架构进行实体检索,基于上下文自回归生成实体名称。DSI(Chen et al., 2016)提出为文档分配结构化语义ID的概念,并训练 Encoder-Decoder 模型实现生成式文档检索。TIGER(Wang et al., 2019)将该范式扩展至推荐系统,提出生成式 item 检索模型
  • 除生成框架外,item 索引方法也备受关注。近期研究聚焦于语义索引技术(Li et al., 2017; Wang et al., 2019),旨在基于内容信息索引 item。例如,TIGER(Wang et al., 2019)和LC-Rec(Wang et al., 2019)对 item 标题和描述的文本嵌入应用残差量化(RQ-VAE)进行标记化;Recforest(Li et al., 2017)则通过层次化K均值聚类获取簇索引作为标记。EAGER(Wang et al., 2019)等研究进一步探索将语义与协同信息共同融入标记化过程

语言模型的偏好对齐

  • 在大语言模型(LLMs)的 post-training 阶段(Zhang et al., 2018),基于人类反馈的强化学习(Reinforcement Learning from Human Feedback,RLHF)(Liu et al., 2017; Wang et al., 2019)是主流方法,其通过奖励模型表征人类反馈,指导模型对齐人类价值观
  • RLHF 存在不稳定和低效问题。直接偏好优化(DPO)(Rafailov et al., 2024)通过闭式解推导最优策略,直接利用偏好数据优化模型。此外,多种改进方法被提出:
    • IPO(Azar et al., 2024)绕过DPO的两步近似,提出通用目标;
    • cDPO(Rafailov et al., 2024)引入超参数ε缓解噪声标签影响;
    • rDPO(Chowdhury et al., 2024)设计原始二元交叉熵损失的无偏估计
    • CPO(Xu et al., 2024)、simDPO(Meng et al., 2024)等变体也从不同角度优化DPO
  • 与NLP中人类显式标注偏好数据不同,推荐系统的偏好学习面临 user-item 交互数据稀疏的独特挑战,相关研究仍处于探索阶段。不同于S-DPO(Chen et al., 2024)为基于语言的推荐器整合多负例数据,论文训练奖励模型并基于其分数为用户定制个性化偏好数据

OneRec框架整体方法

  • 整体框架如下:

一些基本定义

  • 用户特征 :输入为用户正向历史行为序列 \(\mathbf{\mathcal{H}}_u=\{\boldsymbol{v}^h_1,\boldsymbol{v}^h_2,…,\boldsymbol{v}^h_n\}\),其中 \(\boldsymbol{v}\) 表示用户实际观看或交互(likes/follows/shares,点赞/关注/分享)的视频,\(n\)为序列长度
  • 输出 :视频列表构成的 session \(\mathcal{S}=\{\boldsymbol{v}_1,\boldsymbol{v}_2,…,\boldsymbol{v}_m\}\),\(m\) 为 session 内视频数
  • 视频信息 :每个视频 \(\boldsymbol{v}_i\) 通过多模态嵌入 \(\boldsymbol{e}_i\in\mathbb{R}^d\) 描述,其分布与真实 user-item 行为对齐。基于预训练多模态表示,现有生成推荐框架[25,36]使用RQ-VAE[49]将嵌入编码为语义标记。但该方法因 code 分布不平衡(hourglass phenomenon,“沙漏现象”[23],表现为第二层编码过于集中)存在缺陷。论文采用多层级平衡量化机制(multi-level balanced quantitative mechanism),通过残差K-Means量化算法[27]转换 \(\boldsymbol{e}_i\):
    • 第一层(\(l=1\))初始残差\(r^1_i=\boldsymbol{e}_i\)
    • 每层 \(l\) 维护 codebook \(C_l=\{c^l_1,…,c^l_K\}\)(\(K\) 为 codebook 大小)
    • 通过 \(\boldsymbol{s}^l_i=\arg\min_k|r^l_i-c^l_k|^2_2\) 生成最近中心节点索引,下一层残差 \(r^{l+1}_i=r^l_i-c^l_{s^l_i}\),即通过层级索引生成对应的 codebook tokens:
      $$
      \boldsymbol{s}^1_i = \arg\min_k|r^1_i-c^1_k|^2_2, \quad \boldsymbol{r}^2_i=r^1_i-c^1_{s^1_i} \\
      \boldsymbol{s}^2_i = \arg\min_k|\boldsymbol{r}^2_i-c^2_k|^2_2, \quad \boldsymbol{r}^3_i=r^2_i-c^2_{s^2_i} \\
      \vdots \\
      \boldsymbol{s}^L_i = \arg\min_k|\boldsymbol{r}^L_i-c^L_k|^2_2
      $$
      • 其中 \(L\) 为语义ID总层数
  • 为构建平衡 codebook \(C_l=\{c^l_1,…,c^l_K\}\),采用算法1的平衡K-means进行 item 集划分。给定视频集 \(\mathcal{V}\),该算法将其划分为 \(K\) 个簇,每簇包含恰好 \(w=|\mathcal{V}|/K\) 个视频。迭代计算中,每个中心点依次分配 \(\mathbf{w}\) 个最近未分配视频(基于欧氏距离),随后用分配视频的均值向量重新校准中心点,直至簇分配收敛
  • 算法1思路:
    • 算法1中仅展示了第 \(l\) 层 codebook 的迭代过程
    • 首先随机初始化 \(K\) 个中心点
    • 内部循环 \(K\) 次,每一次中,使用最接近当前 \(c_k^l\) 的 \(w\) 个当前层的残差 \(\mathbf{r}^l\) 的均值来编码当前中心点 \(c_k^l\),同时移除已经参与均值计算的残差(确保每个中心点都刚好被K个残差)
    • 整体循环以上步骤,直到算法收敛

session-wise 的列表生成

  • 与传统仅预测 next video 的 point-wise 推荐方法不同,session-wise 的生成旨在根据用户的历史交互序列生成高价值的 session 列表,这使得推荐模型能够捕捉推荐列表中视频之间的依赖关系。具体而言,session 是指响应用户请求返回的一批短视频,通常包含5到10个视频。session 中的视频通常会综合考虑用户兴趣、连贯性和多样性等因素。论文设计了几项标准来识别高质量 session,包括:
    • 用户在一个 session 中实际观看的短视频数量大于或等于5;
    • 用户观看该 session 的总时长超过某个阈值;
    • 用户表现出互动行为,例如点赞、收藏或分享视频;
  • 这种方法确保论文的 session 模型能够从真实的用户参与模式中学习,并更准确地捕捉 session 列表中的上下文信息。因此,论文的 session 模型\(\mathcal{M}\)的目标可以形式化为:
    $$
    \mathcal{S} := \mathcal{M}(\mathcal{H}_u)
    $$
    • 模型输入 :\(\mathcal{H}_u\) 通过语义ID表示( 长度为 \(n\) ):
      $$
      \mathcal{H}_u = \{(s^1_1, s^2_1, \cdots, s^L_1), (s^1_2, s^2_2, \cdots, s^L_2), \cdots, (s^1_n, s^2_n, \cdots, s^L_n)\}
      $$
    • 模型输出 :\(\mathcal{S}\) 也通过语义ID表示( 长度为 \(m\) ):
      $$\mathcal{S} = \{(s^1_1, s^2_1, \cdots, s^L_1), (s^1_2, s^2_2, \cdots, s^L_2), \cdots, (s^1_m, s^2_m, \cdots, s^L_m)\}$$
  • 如 图2(a) 所示,与T5架构一致,论文的模型采用基于Transformer的框架,主要由两部分组成:用于建模用户历史交互的 encoder 和用于 session 列表生成的 decoder。具体来说,encoder 通过堆叠的(stacked)多头自注意力机制(multi-head self-attention,MHA)和前馈层(feed-forward layers)处理输入序列\(\mathcal{H}_u\)。论文将编码后的历史交互特征表示为\(\boldsymbol{H} = \text{Encoder}(\mathcal{H}_u)\)
  • decoder 以目标 session 的语义ID为输入,并以自回归方式生成目标。为了以合理的经济成本训练更大的模型,论文在 decoder 的前馈神经网络(feed-forward neural networks,FNNs)中采用了Transformer语言模型中常用的混合专家(MoE)架构 ,并将第\(l\)层的 FNN 替换为:
    $$
    \begin{split}
    \mathbf{H}^{l+1}_t &= \sum_{i=1}^{N_{\text{MoE} } } \left(g_{i,t} \text{FFN}_i \left(\color{red}{\mathbf{H}^l_t} \right)\right) + \color{red}{\mathbf{H}^l_t}, \\
    g_{i,t} &= \begin{cases}
    \mathcal{S}_{i,t}, & \mathcal{S}_{i,t} \in \text{TopK}(\{\mathcal{S}_{j,t}|1 \leq j \leq N\}, K_{\text{MoE} }), \\
    0, & \text{otherwise},
    \end{cases} \\
    \mathcal{S}_{i,t} &= \text{Softmax}_i \left({\mathbf{H}^{l}}^{\color{red}{T}}_t e^l_i \right),
    \end{split}
    $$
    • 其中,\(N_{\text{MoE} }\)表示专家总数,\(\text{FFN}_i(\cdot)\)是第\(i\)个专家的 FNN,\(g_{i,t}\)表示第\(i\)个专家的门控值。门控值\(g_{i,t}\)是稀疏的,即只有\(K_{\text{MoE} }\)个门控值为非零。这种稀疏性确保了MoE层的计算效率,每个 token 仅被分配到\(K_{\text{MoE} }\)个专家中进行计算
      • 问题:和常规的MoE一样,由于先做了 softmax 再取的 TopK 系数,所有系数和小于1,这里不需要保证系数和为1吗?
      • 回答:不需要,因为在每一个Transformer层中,FNN的结果和上一层的隐向量叠加后,都有LayerNorm存在(将每个token的隐向量分别归一化为均值为0,方差为1的向量),所以隐向量的值不会越来越小,在DeepSeek V3版本的公式中,会考虑在选择了TopK FNN后,再进行一次归一化(虽然不是softmax)
    • 注意 :\({\mathbf{H}^{l}}^{\color{red}{T}}_t e^l_i\) 中的 \(\color{red}{T}\) 是矩阵转置的含义
    • 修正 :这里的公式中表达有误,红色的 \(\mathbf{H}^l_t\) 在进入下一个 MoE(FNN)时,是需要整体经过 Self-Attention 编码的,即在更新前加一句 \(\color{blue}{\mathbf{H}^l_{1:T} = \text{Self-Att}(\mathbf{H}^l_{1:T}) + \mathbf{H}^l_{1:T}}\),详情见DeepSeekMoE的技术报告第2节(P4):DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models
  • 在训练过程中,论文在编码(codes)的开头添加起始标记\(\boldsymbol{s}_{\text{[BOS]} }\)来构建 decoder 输入:
    $$
    \begin{split}
    \bar{\boldsymbol{\mathcal{S}} } &= \{\boldsymbol{s}_{\text{[BOS]} }, \boldsymbol{s}^1_1, \boldsymbol{s}^2_1, \cdots, \boldsymbol{s}^L_1, \boldsymbol{s}_{\text{[BOS]} }, \boldsymbol{s}^1_2, \boldsymbol{s}^2_2, \cdots, \boldsymbol{s}^L_2, \cdots, \boldsymbol{s}_{\text{[BOS]} }, \boldsymbol{s}^1_m, \boldsymbol{s}^2_m, \cdots, \boldsymbol{s}^L_m\}
    \end{split}
    $$
  • 论文使用交叉熵损失对目标 session 的语义ID进行 next token 预测。NTP(Next Token Prediction)损失\(\mathcal{L}_{\text{NTP} }\)定义为:
    $$
    \mathcal{L}_{\text{NTP} } = -\sum_{i=1}^m \sum_{j=1}^L \log P(\boldsymbol{s}^{j+1}_i \mid \left[\boldsymbol{s}_{\text{[BOS]} }, \boldsymbol{s}^1_1, \boldsymbol{s}^2_1, \cdots, \boldsymbol{s}^L_1, \cdots, \boldsymbol{s}_{\text{[BOS]} }, \boldsymbol{s}^1_i, \cdots, \boldsymbol{s}^j_i\right]; \Theta).
    $$
  • 在对 session 列表生成任务进行一定量的训练后,论文得到 seed 模型\(\mathcal{M}_t\)

基于奖励模型的迭代偏好对齐

  • 上一小节总结 :上一小节中定义的高质量 session 提供了有价值的训练数据,使模型能够了解什么构成一个好的 session,从而确保生成视频的质量
  • 本节内容 :在此基础上,论文旨在通过直接偏好优化(DPO)进一步提升模型的能力。在传统的 NLP 场景中,偏好数据是由人类明确标注的。然而,由于 user-item 交互数据的稀疏性,推荐系统中的偏好学习面临着独特的挑战,这就需要一个奖励模型(RM)。因此,论文引入了一个 session-wise 的奖励模型
  • 其他内容 :此外,论文通过提出一种迭代直接偏好优化方法来改进传统的DPO,使模型能够自我提升,这将在后续章节中进行描述
奖励模型训练
  • 论文用 \(R(\mathbf{u}, \mathcal{S})\) 表示奖励模型,它为不同的用户选择偏好数据。这里,输出 \(r\) 表示用户 \(\mathbf{u}\)(通常由用户行为表示)对 session \(\mathcal{S} = \{\mathbf{v}_1, \mathbf{v}_2, …, \mathbf{v}_m\}\) 的偏好所对应的奖励。为了使奖励模型具备对 session 进行排序的能力,论文首先提取 session \(\mathcal{S}\) 中每个 item \(\mathbf{v}_i\) 的目标感知表示 \(\mathbf{e}_i = \mathbf{v}_i \odot \mathbf{u}\),其中 \(\odot\) 表示目标感知操作(例如针对用户行为的目标注意力)。这样论文就得到了 session \(\mathcal{S}\) 的目标感知表示 \(\mathbf{h} = \{\mathbf{e}_1, \mathbf{e}_2, \cdots, \mathbf{e}_m\}\)。然后,session 中的 item 通过自注意力层相互作用,以融合不同 item 之间的必要信息:
    $$\mathbf{h}_f = \text{SelfAttention}(\mathbf{hW}_{\mathcal{s}}^Q, \mathbf{hW}_{\mathcal{s}}^K, \mathbf{hW}_{\mathcal{s}}^V)$$
    • 问题:\(\mathbf{W}_{\mathcal{s}}^Q\) 中的下标 \(\mathcal{s}\) 是表达什么?为不同的 Session 做了不同的 Attention 权重吗?或是在强调这里是 Session 粒度的 Attention?
  • 接下来,论文利用不同的塔对多目标奖励进行预测,并且使用丰富的推荐数据对奖励模型进行预训练:
    $$\begin{aligned}
    \hat{r}^{swt} = \text{Tower}^{swt}(\text{Sum}(\mathbf{h}_f)), &\hat{r}^{vtr} = \text{Tower}^{vtr}(\text{Sum}(\mathbf{h}_f)), \\
    \hat{r}^{wtr} = \text{Tower}^{wtr}(\text{Sum}(\mathbf{h}_f)), &\hat{r}^{ltr} = \text{Tower}^{ltr}(\text{Sum}(\mathbf{h}_f)), \\
    \text{where } \quad \text{Tower}(\cdot) &= \text{Sigmoid}(MLP(\cdot))
    \end{aligned}$$
    • 问题:swt,wtr,vtr,ltr等分别表示什么?
    • 回答:论文计算不同目标指标的平均奖励,包括 session 观看时间(session watch time,swt) 、观看概率(view probability,vtr)、关注概率(follow probability,wtr)和点赞概率(like probability,ltr),swt和vtr是观看时间指标 ,而wtr和ltr是交互指标
  • 在得到每个 session 的所有估计奖励 \(\hat{r}^{swt}, …\) 和真实标签 \(y^{swt}, …\) 之后,论文直接最小化二元交叉熵损失来训练奖励模型。损失函数 \(\mathcal{L}_{RM}\) 定义如下:
    $$\mathcal{L}_{RM} = -\sum_{swt, …}^{xtr} (y^{xtr} \log(\hat{r}^{xtr}) + (1 - y^{xtr})\log(1 - \hat{r}^{xtr}))$$
迭代偏好对齐(Iterative Preference Alignment,IPA)
  • 基于预训练的奖励模型 \(R(\mathbf{u}, \mathcal{S})\) 和当前的OneRec模型 \(\mathcal{M}_t\),论文通过 beam search 为每个用户生成 \(N\) 个不同的响应:
    $$\mathcal{S}_u^n \sim \mathcal{M}_t(\mathcal{H}_u) \quad \text{for all } u \in \mathcal{U} \text{ and } n \in [N]$$

    • 其中,论文用 \([N]\) 表示 \(\{1, 2, …, N\}\)
  • 然后,论文基于奖励模型 \(R(\mathbf{u}, \mathcal{S})\) 为这些响应中的每一个计算奖励 \(r_u^n\):
    $$r_u^n = R(\mathbf{u}, \mathcal{S}_u^n)$$

  • 接下来,论文通过选择奖励值最高的获胜响应 \((\mathcal{S}_u^w, \mathcal{H}_u)\) 和奖励值最低的失败响应 \((\mathcal{S}_u^l, \mathcal{H}_u)\) 来构建偏好对 \(D_t^{pairs} = (\mathcal{S}_u^w, \mathcal{S}_u^l, \mathcal{H}_u)\)。有了这些偏好对,论文现在可以训练一个新的模型 \(\mathcal{M}_{t+1}\),它从模型 \(\mathcal{M}_t\) 初始化,并使用结合了偏好对学习的DPO损失的损失函数进行更新。每个偏好对对应的损失如下:
    $$\begin{aligned}
    \mathcal{L}_{DPO} &= \mathcal{L}_{DPO}(\mathcal{S}_u^w, \mathcal{S}_u^l | \mathcal{H}_u) \\
    &= -\log \sigma \left(\beta \log \frac{\mathcal{M}_{t+1}(\mathcal{S}_u^w | \mathcal{H}_u)}{\mathcal{M}_t(\mathcal{S}_u^w | \mathcal{H}_u)} - \beta \log \frac{\mathcal{M}_{t+1}(\mathcal{S}_u^l | \mathcal{H}_u)}{\mathcal{M}_t(\mathcal{S}_u^l | \mathcal{H}_u)}\right)
    \end{aligned}$$

    • 注:上式和DPO的损失函数基本相同,对于给定的 \(\pi_{ref}\) 和数据集 \(D\) ,DPO是在优化语言模型 \(\pi_\theta\) 以最小化loss:
      $$
      Loss_{\text{DPO}}(\pi_\theta;\pi_{ref}) = - \mathbb{E}_{(x,y_w,y_l) \sim D}\left [ \log \sigma \left( \beta\log\frac{\pi_\theta(y_w|x)}{\pi_{ref}(y_w|x)} - \beta\log\frac{\pi_\theta(y_l|x)}{\pi_{ref}(y_l|x)} \right)\right ]
      $$
  • 如算法2和图2(b)所示,整个过程涉及训练一系列模型 \(\mathcal{M}_t, …, \mathcal{M}_t\)。为了减轻 beam search 推理过程中的计算负担 ,论文仅随机采样 \(r_{DPO} = 1\%\) 的数据用于偏好对齐。对于每个后续模型 \(\mathcal{M}_{t+1}\),它从先前的模型 \(\mathcal{M}_t\) 初始化,并利用由 \(\mathcal{M}_t\) 生成的偏好数据 \(D_t^{pairs}\) 进行训练

  • 对 随机采样 \(r_{DPO} = 1\%\) 的数据用于偏好对齐 的理解:

    • DPO数据大小是固定的,总数据量一定,每轮迭代时均考虑采样部分数据用于DPO
    • 随机采样的目的是,减少每轮迭代(\(\mathcal{M}_t \rightarrow \mathcal{M}_{t+1}\) 算是一轮迭代)的计算复杂度
    • 问题:为什么不直接采样固定的比例,然后固定下来,后续每轮DPO迭代都用相同数据呢?
      • 回答:为了数据的多样性和模型泛化性,类似于随机森林中每次采样部分样本训练一样

系统部署

  • OneRec已在现实世界的工业场景中成功实现。为了平衡稳定性和性能,论文部署了 OneRec-1B 用于在线服务
  • 如图3所示,论文的部署架构由三个核心组件组成:
    • 1)训练系统,
    • 2)在线服务系统,
    • 3)DPO样本服务器
  • 种子模型训练 :该系统将收集到的交互日志作为训练数据,最初采用 next token 预测目标 \(\mathcal{L}_{NTP}\) 来训练种子模型
  • DPO偏好对齐 :在收敛后,论文添加DPO损失 \(\mathcal{L}_{DPO}\) 进行偏好对齐,利用XLA和bfloat16混合精度训练来优化计算效率和内存利用率
    • 注:XLA(Accelerated Linear Algebra)是一种专为优化线性代数计算而设计的编译器,主要用于深度学习框架(如TensorFlow、JAX等)中,以提升计算效率和资源利用率
  • 参数部署 :训练好的参数被同步到在线推理模块和DPO采样服务器,用于实时服务和基于偏好的数据选择
  • 为了提高推理效果,论文实施了两项关键优化 :
    • 量化&KV缓存 :结合float16量化的键值缓存解码机制,以减少GPU内存开销;
    • 量化&KV缓存 :以及 beam size 为 128 的 beam search 配置,以平衡生成质量和延迟
    • MoE架构 :得益于MoE架构,在推理过程中只有13% 的参数被激活

相关实验

  • 首先,论文在离线设置下将OneRec与逐点方法和几种DPO变体进行比较
  • 然后,论文对提出的模块进行了一些消融实验,以验证OneRec的有效性
  • 最后,论文将OneRec部署到线上并进行A/B测试,以进一步在快手平台上验证其性能

Experiment Setup

实现细节
  • 论文使用Adam优化器训练模型,初始学习率为 \(2×10^{-4}\)
  • 论文使用NVIDIA A800 GPU对OneRec进行优化
  • 在整个训练过程中,DPO样本比率 \(r_{DPO}\) 设置为1%,并且论文通过 beam search 为每个用户生成 \(N = 128\) 个不同的响应;
  • 语义标识符聚类过程为每个 codebook 层采用 \(K = 8192\) 个聚类,codebook 层数设置为 \(L = 3\);
  • 混合专家(Mixture-of-Experts)架构包含 \(N_{MoE} = 24\) 个专家,每次前向传递通过 top-\(k\) 选择激活 \(K_{MoE} = 2\) 个专家;
  • 对于 session 建模,论文考虑 \(m = 5\) 个目标 session item,并采用 \(n = 256\) 个历史行为作为上下文
基线方法
  • 论文采用以下具有代表性的推荐模型、DPO及其变体作为额外的比较基线,基线方法包括:
    • SASRec[22]:采用单向Transformer架构来捕获 user-item 交互中的顺序依赖关系,用于 next item 预测
    • BERT4Rec[40]:利用带有掩码语言建模的双向Transformer,通过序列重建来学习上下文 item 表示
    • FDSA[50]:实现了双自注意力路径,以在异构推荐场景中联合建模 item 级转换和特征级转换模式
    • TIGER[36]:利用分层语义标识符和生成式检索技术,通过自回归序列生成进行顺序推荐
    • DPO[35]:通过隐式奖励建模,使用从人类反馈数据中导出的封闭形式奖励函数来形式化偏好优化
    • IPO[1]:提出了一个有理论基础的偏好优化框架,绕过了标准DPO中固有的近似
    • cDPO[30]:引入了一个考虑噪声偏好注释的鲁棒性感知变体,纳入了标签翻转率参数 \(\epsilon\)
    • rDPO[5]:使用重要性采样开发了一个无偏损失估计器,以减少偏好优化中的方差
    • CPO[47]:通过联合训练序列似然奖励和监督微调目标,将对比学习与偏好优化统一起来
    • simPO[29]:通过采用序列级奖励裕度进行偏好优化,同时通过归一化概率平均消除参考模型依赖性
    • S-DPO[4]:通过硬负采样(hard negative sampling)和多 item 对比学习,使DPO适用于推荐系统,以提高排名准确性
评估指标
  • 论文使用几个关键指标来评估模型的性能。每个指标在评估模型输出的不同方面都有独特的作用,并且论文在每次迭代中对随机采样的测试用例集进行评估。为了估计每个特定 user-session 对的各种交互的概率,论文使用预训练的奖励模型来评估推荐 session 的价值。论文计算不同目标指标的平均奖励,包括 session 指标:
    • 观看时间(session watch time,swt)
    • 观看概率(view probability,vtr)
    • 关注概率(follow probability,wtr)
    • 点赞概率(like probability,ltr)
    • swt和vtr是观看时间指标 ,而wtr和ltr是交互指标

离线性能

  • 表1展示了OneRec与各种基线之间的全面比较。对于观看时间指标,论文主要关注 session 观看时间(swt),在交互指标中关注点赞概率(ltr)。论文的结果揭示了三个关键发现:
    • 首先,所提出的 session-wise 的生成方法显著优于传统的基于点积的方法和像TIGER这样的逐点生成方法。与 TIGER-1B 相比,OneRec-1B在最大swt上提高了1.78%,在最大ltr上提高了3.36%。这证明了 session-wise 的建模在保持推荐之间的上下文连贯性方面的优势,而逐点方法在生成输出中难以平衡连贯性和多样性
    • 其次,少量的DPO训练就能带来显著的提升。仅使用1% 的DPO训练比率(\(r_{DPO}\)),OneRec-1B + IPA在最大swt上比基础的 OneRec-1B 提高了4.04%,在最大ltr上提高了5.43%。这表明有限的DPO训练可以有效地使模型与期望的生成模式保持一致
    • 第三,所提出的IPA策略优于各种现有的DPO变体。如表1所示,IPA比其他DPO实现具有更优的性能。值得注意的是,一些DPO基线甚至比未进行偏好对齐的 OneRec-1B 模型表现更差,这表明通过迭代挖掘自生成输出来进行偏好选择比其他方法更有效
  • 从表1可以观察到一些补充结论:
    • DPO其实是一个不错的基线,且效果基本上优于其他DPO变体(包括IPO、cDPO、rDPO和CPO等),只有simPO和s-DPO在某些指标上能超过DPO
    • 实验评估是离线的,基于奖励模型的,评估准确性取决于奖励模型

Ablation Study

DPO样本比率消融
  • 为了研究DPO训练中样本比率 \(r_{DPO}\) 的影响,论文将DPO样本比率从 1% 变化到 5%
  • 如图4所示,消融结果表明,增加样本比率在多个评估目标上带来的性能提升微乎其微
    • 效果 :尽管计算成本增加,但性能提升不显著(超过1% 基线)
    • 算力 :在DPO样本服务器推理期间,样本比率与GPU资源利用率之间存在线性关系:5% 的样本比率比1% 的基线需要多5倍的GPU资源。这种缩放特性在计算效率和模型性能之间建立了明确的权衡
  • 因此,在平衡计算效率和性能的最佳权衡后,论文在训练中应用 1% 的DPO样本比率,它在仅需要更高样本比率所需计算资源的 20% 的情况下,实现了观察到的最大性能的平均95%
模型缩放消融
  • 当模型规模增加时OneRec的性能表现(如图6所示):
    • 将OneRec从0.05B扩展到1B实现了持续的精度提升,展示了一致的缩放特性
    • 与 OneRec-0.05B 相比,OneRec-0.1B 在精度上实现了显著的最大 14.45% 的提升
    • 在扩展到0.2B、0.5B和1B时,还可以分别实现 5.09%、5.70% 和5.69% 的额外精度提升

Prediction Dynamics of OneRec

  • 如图5所示,论文展示了不同层上 8192 个 code 的预测概率分布,其中红星表示奖励值最高的 item 的语义ID
  • 与OneRec基线相比,OneRec+IPA 在预测分布上表现出显著的置信度转移,这表明论文提出的偏好对齐策略有效地鼓励基础模型产生更符合偏好的生成模式
    • 理解 :OneRec+IPA 上模型输出更自信,更集中,熵更小
  • 此外,论文观察到第一层的概率分布(熵 = 6.00)比后续层(第二层平均熵 = 3.71,第三层熵 = 0.048)具有更大的分散性,后续层的分布逐渐集中。这种分层不确定性的降低可以归因于自回归解码机制:初始层的预测继承了前序解码步骤中更高的不确定性,而后续层受益于积累的上下文信息,这些信息限制了决策空间
    • 现象 :不论开始层输入分布如何,后续层都倾向于分布更集中
    • 理解(TODO):后续层是属于第一层的残差,残差分布倾向于一致,所以后续层对应的SID都差不多?这里跟RQ-VAE中的沙漏现象是否相似?

在线A/B测试

  • 为了评估OneRec的在线性能,论文在快手主页面的视频推荐场景中进行了严格的在线A/B测试
  • 线上流量划分 :论文将OneRec的性能与当前的 multi-stage 推荐系统进行比较,使用 1% 的主要流量进行实验
  • 评估指标 :论文使用总观看时间来衡量用户观看视频的总时长,平均观看时长计算用户在推荐系统展示请求的 session 时每视频的平均观看时间
  • 结论 :在线评估表明,OneRec在总观看时间上实现了1.68% 的提升,在平均观看时长上实现了6.56% 的提升,这表明OneRec实现了更好的推荐结果,并为平台带来了可观的收益增长

OneRec总结与讨论

  • 在论文中,论文重点介绍了一种用于 single-stage 生成式推荐的工业解决方案。论文的解决方案有三个关键贡献:
    • 第一,论文通过应用MoE架构,论文以高计算效率有效地扩展了模型参数,为大规模工业推荐提供了可扩展的蓝图
    • 第二,论文发现以 session-wise 的生成方式对目标 item 的上下文信息进行建模的必要性,证明了上下文序列建模本质上比孤立的逐点方式更能捕捉用户偏好动态
    • 第三,论文提出了一种迭代偏好对齐(IPA)策略,以提高OneRec在不同用户偏好模式下的泛化能力。广泛的离线实验和在线A/B测试验证了OneRec的有效性和效率
  • 在线实验 :此外,论文对在线结果的分析表明,除了用户观看时间外,论文的模型在点赞等交互指标方面存在局限性
  • 未来规划 :在未来的研究中,论文旨在增强端到端生成式推荐在多目标建模方面的能力,以提供更好的用户体验

附录:OneRec的一些讨论

OneRec冷启动

  • 用户冷启动:新用户没有历史行为序列怎么办?OneRec的冷起不好做吧?
  • 商家冷启动:由于语义空间的存在,只要ID语义接近,理论上就能做到冷启动?

附录:OneRec Technical Report

  • 参考链接:
    • OneRec Technical Report, 20250616, Kuaishou:论文是一个技术报告,相对原始论文补充了很多细节,快40页
    • 效果&成本双突破!快手提出端到端生成式推荐系统OneRec!,快手技术公众号

OneRec Technical Report 的整体说明

  • 整体架构和 OneRec 相似,多了些细节和改进
  • 论文暂时主要简单介绍一下与原始论文相比的重点改进
    • 架构上,GPU利用率(MFU,模型浮点运算利用率)从 10% 提升至 训练23.7% 和 推理28.6% (快追上业内主流 AI 模型效能)
    • Beam Search 从之前的 128 提升至 512,说明多采样才是硬道理
    • 对模型生成的合法性给与格式奖励,可以缓解模型生成的高概率样本不符合规范的情况,这里的不符合规范指 RQ 编码后输出的 Token 空间可能是无意义的
    • 使用了 RSFT + RL 的范式做训练,原始 OneRec 论文是抽取最好和最坏的样本做 DPO
    • 提出了一种创新的 RL 方法,ECPO(Early Clipped GRPO),是对 GRPO 方法的一种改进
  • 收益披露:
    • 在快手主流量上已经承接了 25% 的QPS
    • 在各种指标上均有涨幅,其中一些指标涨幅超过 5%
    • 本地生活场景收益尤其明显(在本地生活场景已经 100% 流量推全)

      除了短视频推荐的消费场景之外,OneRec在快手本地生活服务场景同样表现惊艳:AB对比实验表明该方案推动GMV暴涨21.01%、订单量提升17.89%、购买用户数增长18.58%,其中新客获取效率更实现23.02%的显著提升

  • 题外话:未披露作者信息,是怕被挖人吧

对齐微调升级为 ECPO(Early Clipped GRPO)

  • OneRec Technical Report 中使用的是 ECPO,原始 OneRec 论文用的是 DPO
  • 具体来说,对于用户 \( u \),论文使用旧策略模型生成 \( G \) 个物品。每个物品与用户一起输入偏好奖励模型,得到 P-Score 作为奖励 \( r_i \)。优化目标如下:
    $$
    \mathcal{J}_{\text{ECPO}}(\theta) = \mathbb{E}_{u \sim P(U), \{o_i\}_{i=1}^G \sim \pi_{\theta_{old} } } \left[ \frac{1}{G} \sum_{i=1}^G \min \left( \frac{\pi_\theta(o_i|u)}{\color{red}{\pi’_{\theta_{old} }}(o_i|u)} A_i, \text{clip} \left( \frac{\pi_\theta(o_i|u)}{\color{red}{\pi’_{\theta_{old}} }(o_i|u)}, 1 - \epsilon, 1 + \epsilon \right) A_i \right) \right], \\
    A_i = \frac{r_i - \text{mean}(\{r_1, r_2, \ldots, r_G\})}{\text{std}(\{r_1, r_2, \ldots, r_G\})},\\
    \color{red}{\pi’_{\theta_{old} }(o_i|u) = \max \left( \frac{\text{sg}(\pi_\theta(o_i|u))}{1 + \epsilon + \delta}, \pi_{\theta_{old} }(o_i|u) \right), \quad \delta > 0,}
    $$
    • \(\text{sg}\) 表示停止梯度操作(stop gradient operation)
    • \(\delta\) 是一个大于 0 的超参数
  • 论文对 GRPO(Group Policy Relative Optimization)(2024) 进行了修改,使其训练过程更加稳定
    • 如图 6 所示,在原始 GRPO 中,允许负优势(negative advantages)的策略比率(\(\pi_\theta / \pi_{\theta_{old} }\))较大,这容易导致梯度爆炸
    • 因此,论文预先对具有较大比率的策略进行截断,以确保训练稳定性,同时仍允许相应的负优势生效
    • \(\delta\) 越大,可容忍的策略比率越大,意味着可容忍的梯度越大,这可以根据实际需求确定
  • 在 OneRec 中,论文将 \(\delta\) 设为 0.1,表示允许负优势的策略比率略微超过 \(1 + \epsilon\)
    • 论文移除了 KL 散度损失(KL divergence loss),因为在 OneRec 中, RL 和 SFT 是一起训练的,SFT 损失确保了模型的稳定性
补充:对 ECPO 和 GRPO 的理解
  • 当 advantage 为正时,ECPO 和 GRPO 等价(可以证明,都会在 \(1+\epsilon\) 处截断梯度)
  • 当 advantage 为负时,ECPO 和 GRPO 不同:
    • 若 \(\delta \to +\infty\),那么 ECPO 和 GRPO 依然等价
    • 否则,相当于允许 \(1+\epsilon+\delta\) 样本的梯度更新,但是样本的更新比值是基于 \(1+\epsilon+\delta\) 的,而不是 \(\frac{\pi_\theta}{\pi_{\theta_\text{old}}}\),这相当于对梯度进行了一定限制
      • 当 \(A\) 为负时,此时若 \(\frac{\pi_\theta}{\pi_{\theta_\text{old}}}\) 很大,则 \(\pi_{\theta_\text{old}}\) 很小
      • 于是有取 \(\max\) 操作后 \(\pi’_{\theta_\text{old}} = \frac{\text{sg}(\pi_\theta)}{1+\epsilon+\delta}\),从而 Clip 结果是 \(1+\epsilon\)
      • 经过 \(\min\) 的结果是 \(\frac{\pi_\theta \cdot (1+\epsilon + \delta)}{\text{sg}(\pi_{\theta})}\)
      • 即梯度权重从原始的 \(\frac{1}{\pi_{\theta_\text{old}}}\) 变成了 \(\frac{\text{sg}(\pi_{\theta})}{1+\epsilon+\delta}\)
      • 结论:不论 \(\pi_{\theta_\text{old}}\) 多小,都能稳稳控制梯度权重为 \(\frac{\text{sg}(\pi_{\theta})}{1+\epsilon+\delta}\),这个值是有限的,而 \(\frac{1}{\pi_{\theta_\text{old}}}\) 这个值可能是无限大
    • 理解1:因为 \(\frac{\pi_\theta}{\pi_{\theta_\text{old}}}\) 的值可能是无穷大,这样可以缓解梯度爆炸的问题
    • 理解2:为什么 advantage 为正时不需要过小的 \(\frac{1}{\pi_{\theta_\text{old}}}\) 限制呢?因为此时的 \(\frac{\pi_\theta}{\pi_{\theta_\text{old}}}\) 值最小也就是 0,不会造成梯度爆炸,最多造成梯度消失(其实这部分也可以关注一下)

Post-Training 中加入了 RSFT

  • 在后训练中,除了使用了 ECPO 外,还引入了 RSFT(Reject Sampling Fine-Tuning)
  • 具体来说:拒绝后 50% 的样本

简单证明了存在 Scaling Law

  • 仅仅在损失函数上证明了存在 Scaling Law

披露了更多 RM 细节

  • Reward Model 细节披露

收益细节

  • 线上 AB 测试收益披露

RS——TIGER

TIGER:全称 Transformer Index for GEnerative Recommenders,本文主要是对论文TIGER的翻译,其中包含了一些总结和理解

  • 参考链接:
    • (TIGER)Recommender Systems with Generative Retrieval, NeurIPS 2023, Google

整体思路说明

  • 现代推荐系统常常采用retrieve-and-rank策略:
    • 其中 retrieve(检索/召回) 部分:通过将 query 和候选 item 嵌入到同一统一空间中进行大规模检索(large-scale retrieval),随后通过近似最近邻搜索(Approximate Nearest Neighbor search,ANN)选择给定 query 嵌入的候选 item (论文研究重点)
    • rank(排序) 部分:负责对检索阶段输出的 item 集合进行排序(不是论文的研究重点)
  • 论文提出了一种新颖的生成式检索方法 ,该检索模型通过自回归解码目标候选 item 的标识符
    • 为每个 item 创建具有语义意义的码元组(tuple of codewords),称为“*语义 ID *”(Semantic ID,一些文章中也简称为S ID )
    • 给定用户会话中 item 的语义 ID ** ,论文训练一个基于 Transformer** 的 sequence-to-sequence 模型,以预测用户可能交互的 next item 的语义 ID
  • 实验表明,采用该范式的推荐系统在多个数据集上显著优于当前的最先进模型。此外,将语义 ID 整合到 sequence-to-sequence 模型中增强了模型的泛化能力,表现为对无交互历史 item 的检索性能提升

一些讨论

  • 现代推荐系统采用“retrieve-and-rank”策略
    • 在 retrieve(检索/召回) 阶段 :筛选出一组候选内容(要求检索阶段返回高度相关的候选内容)
    • 在 rank(排序) 阶段:通过rank 模型进行排序(仅对检索阶段输出的候选内容进行处理)
  • 构建检索模型常用的标准方法是矩阵分解或双塔架构(dual-encoder) :
    • 矩阵分解 :将 query 和候选内容嵌入到同一空间中
    • 双塔架构(dual-encoder) :即一个塔用于 query,另一个塔用于候选内容,通过内积将 query 和候选内容嵌入到同一空间
      • 双塔架构可更好地捕捉数据中的非线性特征
      • 在推理阶段 ,这些模型会使用候选塔为所有内容创建嵌入索引。对于给定的 query,通过 query 塔获取其嵌入,并采用近似最近邻(ANN)算法进行检索候选内容
    • 近年来,双塔架构还被扩展用于序列推荐(这里有许多参考文献),显式地考虑用户-内容交互的顺序
  • 论文提出了一种构建生成式检索模型的新范式,用于序列推荐
    • 与传统 query-candidate matching 方法不同,论文的方法使用端到端的生成模型直接预测候选内容的 ID
    • 论文利用 Transformer 的记忆(参数)作为推荐系统中端到端检索的索引(与Tay等人使用 Transformer 记忆进行文档检索的思路类似),并将该方法称为生成式推荐器的 Transformer 索引(TIGER)
    • 图1展示了TIGER的方法概览。TIGER的独特之处在于提出了一种称为“语义 ID ”的新颖语义内容表示方法——即从每个内容的信息中提取的 token 序列:
  • 具体来说,给定内容的文本特征 ,论文使用预训练的文本 Encoder(例如SentenceT5[27])生成密集的内容嵌入。随后,对内容的嵌入应用量化方案 ,生成一组有序的 tokens/codewords ,称为该内容的语义 ID 。最终,这些语义 ID 被用于训练 Transformer 模型完成序列推荐任务
  • 将内容表示为语义 token 序列具有诸多优势
    • 在语义数据上训练 Transformer 记忆可以实现相似内容间的知识共享 ,从而摒弃以往推荐模型中使用的原子化(atomic) 且 随机的内容 ID
    • 通过语义 token 表示内容,模型不易陷入推荐系统中固有的反馈循环 ,从而能够泛化到新添加到语料库中的内容
      • 问题:这里的反馈循环是指马太效应吗?
    • 使用 token 序列表示内容有助于缓解内容语料库规模带来的挑战;
      • 通过 token 序列可表示的内容数量是序列中每个 token 基数(cardinality)的乘积
        • 理解:这里用一个包含多个 token 的序列表示一个 item,所以不需要太多的 token 就足够了
      • 通常,内容语料库的规模可能达到数十亿,为每个内容学习唯一的嵌入会占用大量内存。虽然可以采用基于随机哈希的技术来减少内容表示空间,但论文表明,使用语义 token 表示内容是一种更具吸引力的替代方案
  • 论文的主要贡献如下:
    • 论文提出了TIGER ,一种基于生成式检索的推荐框架,为每个内容分配语义 ID,并训练检索模型预测用户可能交互的内容的语义 ID
    • 论文证明TIGER在多个数据集上的召回率和NDCG指标均优于现有的SOTA推荐系统
    • 论文发现这种生成式检索的新范式为序列推荐系统带来了两项新能力:
      • (1) 冷启动推荐 :推荐新内容和低频内容的能力,从而改善冷启动推荐;
      • (2) 推荐多样性 :通过可调参数生成多样化推荐的能力

相关工作

  • 序列推荐系统 :基于深度序列模型的推荐系统已发展为一个丰富的研究领域
    • GRU4REC[11]首次将基于GRU的RNN用于序列推荐
    • Li等人[24]提出了神经注意力会话推荐(NARM),通过注意力机制和GRU层追踪用户的长期意图
    • Zhang等人的AttRec[41]利用自注意力机制建模当前会话的用户意图,并通过度量学习确保个性化
    • Kang等人提出的SASRec[17]使用类似仅 Decoder Transformer 的自注意力机制
    • 受掩码语言建模在语言任务中的成功启发,BERT4Rec[32]和 Transformer s4Rec[6]采用掩码策略的 Transformer 模型处理序列推荐任务
    • S³-Rec[44]进一步通过四项自监督任务预训练以提升数据表示
  • 上述模型通过学习高维 item 嵌入,并在最大内积搜索(MIPS)空间中进行近似最近邻搜索(ANN)来预测 next item。相比之下,论文提出的TIGER采用生成式检索直接预测 next item 的语义 ID
  • P5[8]通过微调预训练大语言模型实现多任务推荐系统。P5依赖LLM分词器(SentencePiece[29])从随机分配的 item ID *生成 *token ,而论文则基于 item 内容信息学习语义 ID 表示。实验(表2)表明,基于语义 ID 的推荐系统性能显著优于随机编码
  • *语义 ID *相关研究:
    • Hou等人提出的 VQ-Rec[12]利用内容信息生成“编码”(类似于语义 ID)表示 item,但其重点在于构建可迁移推荐系统,并未将编码用于生成式检索。虽然他们也使用乘积量化[15]生成编码,但论文采用RQ-VAE生成语义 ID,从而获得 item 的分层表示(第4.2节)
    • Singh等人[31]的并行研究表明,分层语义 ID 可替代大规模推荐系统中排名模型的 item ID,从而提升模型泛化能力
  • 生成式检索相关研究:
    • 尽管过去已提出学习搜索索引的技术[20],生成式检索是最近发展的一种文档检索方法,其任务是从数据库中返回相关文档集。例如GENRE[5]、DSI[34]、NCI[37]和CGR[22]。更详细的相关工作见附录A
  • 据论文所知,论文是首个提出基于语义 ID **的生成式检索**推荐系统的研究

TIGER整体框架

  • 论文的框架包含两个阶段:
    • 基于内容特征的语义 ID 生成 :将 item 内容特征编码为嵌入向量,并通过量化生成语义码元组,称为 item 的语义 ID 。
    • 基于语义 ID 训练生成式推荐系统 :使用语义 ID 序列训练 Transformer 模型完成序列推荐任务

语义 ID 生成

  • 如 图2(a) 所示,先将与每个 item 相关的内容特征通过预训练的 encoder 生成语义 embedding ,然后对语义 embedding 进行量化(quantized)以生成*语义 ID *
    • 这里假设每个 item 具有关联的内容特征(如标题、描述或图像),可通过预训练的内容 Encoder生成语义 embedding \(\boldsymbol{x} \in \mathbb{R}^d\)(比如,这里用通用预训练文本 Encoder (如Sentence-T5或BERT)可将文本特征转换为语义 embedding)
    • 理解:不同物品的描述应该尽量不同,且文本内容比较丰富的场景才可以吧?
  • 语义 ID 定义为长度为 \(m\) 的码元组(a tuple of codewords),每个 codeword 来自不同的 codebook(码本)
    • 语义 ID s 可唯一表示的 item 数量为各 codebook 大小的乘积
      • 理解:比如语义序列长度是3,codebook 的大小是 \(K\),则可以编码的 item 的数量是 \(K\times K \times K\)
    • 不同生成技术赋予语义 ID 不同的语义属性,但至少需满足以下性质:*相似 item (内容特征相似或语义 embedding 接近)应具有重叠的语义 ID *
      • 比如:语义 ID 为 \((10,21,35)\) 的 item 应比 \((10,23,32)\) 更接近 \((10,21,40)\)
基于RQ-VAE的语义 ID
  • 残差量化编码器(Residual-Quantized Variational AutoEncoder,RQ-VAE)是一种多级向量量化器,通过对残差进行量化生成码元组(即语义 ID)。通过联合训练更新量化 codebook 和DNN Encoder-Decoder 参数。图3展示了通过残差量化生成语义 ID 的过程
  • RQ-VAE首先通过 Encoder \(\mathcal{E}\) 将输入 \(\boldsymbol{x}\) 编码为潜在表示 \(\boldsymbol{z} := \mathcal{E}(\boldsymbol{x})\)
    • 在第零级(\(d=0\)),初始残差定义为 \(\boldsymbol{r}_0 := \boldsymbol{z}\)
    • 每一级 \(d\) 对应一个 codebook \(\mathcal{C}_d := \{\boldsymbol{e}_k\}_{k=1}^K\),其中 \(K\) 为 codebook 大小
    • \(\boldsymbol{r}_0\) 通过映射到该级 codebook 的最近嵌入进行量化
  • 具体残差量化的逻辑为:
    • 第零级最近嵌入 \(\boldsymbol{e}_{c_0}\) 的索引 \(c_0 = \arg\min_i |\boldsymbol{r}_0 - \boldsymbol{e}_k|\) 表示第零个码
    • 下一级 \(d=1\) 的残差定义为 \(\boldsymbol{r}_1 := \boldsymbol{r}_0 - \boldsymbol{e}_{c_0}\),并通过相同过程计算第一级的码
    • 该过程递归重复 \(m\) 次,生成表示语义 ID 的 \(m\) 元组
    • 这种递归方法实现了从粗到细的输入近似,语义 ID \((c_0, \ldots, c_{m-1})\) 的量化表示为 \(\widehat{\boldsymbol{z} } := \sum_{d=0}^{m-1} \boldsymbol{e}_{c_i}\),随后通过 Decoder 重建输入 \(\boldsymbol{x}\)
  • RQ-VAE的损失函数定义为:
    $$\mathcal{L}(\boldsymbol{x}) := \mathcal{L}_{\text{recon} } + \mathcal{L}_{\text{vq} }$$
    • 其中:
      $$\mathcal{L}_{\text{recon} } := |\boldsymbol{x} - \widehat{\boldsymbol{x} }|^2\\
      \mathcal{L}_{\text{vq} } := \sum_{d=0}^{m-1} |\text{sg}[r_i] - \boldsymbol{e}_{c_i}|^2 + \beta|r_i - \text{sg}[\boldsymbol{e}_{c_i}]|^2$$
      • 这里 \(\widehat{\boldsymbol{x} }\) 为 Decoder 输出,\(\text{sg}\) 为 stop gradient 操作。该损失函数联合训练 Encoder、 Decoder 和 codebook
  • 缓解Codebook Collapse 问题 :为防止 Codebook Collapse(码本坍塌)问题(即大多数输入映射到少数 codebook 向量),论文采用基于k-means聚类的 codebook 初始化方法。具体而言,对首训练批次应用k-means算法,并将质心作为初始化
其他量化方法
  • 局部敏感哈希(Locality Sensitive Hashing,LSH):生成语义 ID 的简单替代方法是局部敏感哈希(LSH),第4.2节的消融研究表明,RQ-VAE 性能优于 LSH
  • 分层k-means聚类 :另一种方法是 分层 k-means 聚类,但其会丢失不同聚类间的语义关联[37]
  • VQ-VAE :论文还尝试了 VQ-VAE,尽管在检索候选生成中性能与RQ-VAE相近,但丢失了语义 ID 的分层特性(第4.3节讨论)
处理冲突(Handling Collisions)
  • 冲突说明 :根据语义 embedding 分布、 codebook 大小和码长度,可能发生语义冲突(即多个 item 映射到同一语义 ID)
  • 解决方案 :为消除冲突,论文在有序语义码后附加额外 token 以确保唯一性
    • 例如,若两 item 共享语义 ID \((12,24,52)\),则通过附加 token 区分,表示为 \((12,24,52,0)\) 和 \((12,24,52,1)\)
    • 注意:冲突检测和修复仅在 RQ-VAE 训练完成后进行一次
  • 因为语义 ID s 是整数的元组,所以其查表(lookup table)效率比高维 embedding高

基于语义 ID 的生成式检索

  • 论文按时间顺序为用户构造 item 序列。给定序列 \((\text{item}_1, \ldots, \text{item}_n)\),推荐系统的任务是预测 next item( \(\text{item}_{n+1}\))。论文提出一种直接预测 next item 语义 ID 的生成式方法
  • 设 \((c_{i,0}, \ldots, c_{i,m-1})\) 为 \(\text{item}_i\) 的语义 ID 序列,将 item 序列转换为 \((c_{1,0}, \ldots, c_{1,m-1}, c_{2,0}, \ldots, c_{2,m-1}, \ldots, c_{n,0}, \ldots, c_{n,m-1})\),sequence-to-sequence 模型训练目标为预测 \(\text{item}_{n+1}\) 的语义 ID \((c_{n+1,0}, \ldots, c_{n+1,m-1})\)。由于生成性质,Decoder 生成的语义 ID 可能不匹配推荐语料库中的任何 item
    • 如附录图6所示,此类事件发生概率较低,附录E进一步讨论了处理方法

Experiments

  • 数据集 :论文在来自亚马逊产品评论数据集[10]的三个公开真实世界基准上评估所提出的框架,该数据集包含从1996年5月至2014年7月的用户评论和物品元数据。具体而言,论文使用亚马逊产品评论数据集中的三个类别进行序列推荐任务:“Beauty(美容)”、“Sports and Outdoors(运动与户外)”以及““Toys and Games(玩具与游戏)”
    • 论文在附录C中讨论了数据集的统计信息和预处理方法
  • 评估指标 :论文使用Top-K召回率(Recall@K)和归一化折损累积增益(NDCG@K),其中 \(K = 5, 10\) 来评估推荐性能
  • RQ-VAE实现细节 :如第3.1节所述,RQ-VAE 用于量化物品的语义 embedding。论文使用预训练的Sentence-T5[27]模型获取数据集中每个物品的语义 embedding。具体而言,论文利用物品的内容特征(如标题、价格、品牌和类别)构建句子,然后将其输入预训练的Sentence-T5模型,得到物品的768维语义 embedding
  • RQ-VAE模型包含三个组件:一个DNN Encoder ,将输入的语义 embedding 编码为潜在表示;残差量化器 ,输出量化表示;以及一个DNN Decoder ,将量化表示解码回语义输入嵌入空间,实验设置如下:
    • Encoder 具有三个中间层,大小分别为512、256和128,使用ReLU激活函数
    • 最终的潜在表示维度为32,为了量化这一表示,进行了三级残差量化。每一级维护一个基数为256的 codebook,其中 codebook 中的每个向量维度为32。计算总损失时,论文使用 \(\beta = 0.25\)
    • RQ-VAE 模型训练了 20k 个周期,以确保 codebook 使用率高(\(\geq 80%\))
    • 论文使用 Adagrad 优化器,学习率为 0.4,批量大小为 1024
    • 训练完成后,论文使用学习到的 Encoder 和量化组件为每个物品生成一个 3 元组语义 ID 。为避免多个物品映射到相同的语义 ID,论文为共享前三个码字的物品添加一个唯一的第4个码字,例如,两个与元组(7,1,4)关联的物品分别被分配(7,1,4,0)和(7,1,4,1)(如果没有冲突,论文仍然将第4个码字分配为0)。这为推荐语料库中的每个物品生成了一个长度为4的唯一语义 ID
  • sequence-to-sequence 模型实现细节 :
    • 论文使用开源的TSX框架[28]实现基于 Transformer 的 Encoder-Decoder 架构
    • 为了使模型能够处理序列推荐任务的输入,sequence-to-sequence 模型的词汇表包含每个语义码字的 token。具体而言,词汇表包含1024(\(256 \times 4\))个 token,用于表示语料库中的物品
    • 除了物品的语义码字外,论文还向词汇表中添加了用户特定的 token。为了限制词汇表大小,论文仅为用户 ID 添加了2000个 token。论文使用哈希技巧将原始用户 ID 映射到2000个用户 ID token 之一。论文构建输入序列为用户 ID token,后跟对应用户物品交互历史的语义 ID token 序列。论文发现,在输入中添加用户 ID **可以让模型个性化检索到的物品**
      • 问题:用户 token 如何生成?
    • 论文为基于 Transformer 的 Encoder 和 Decoder 模型各使用4层,每层有6个自注意力头,维度为64
    • 所有层均使用ReLU激活函数
    • MLP和输入维度分别设置为1024和128
    • 论文使用了0.1的dropout
    • 整个模型约有1300万个参数
    • 论文在“美容”和“运动与户外”数据集上训练该模型20万步。由于“玩具与游戏”数据集较小,仅训练了10万步
    • Batch Size 为 256
    • 学习率在前1万步为0.01,之后遵循逆平方根衰减规则(decay schedule)

序列推荐性能

  • 本节中,论文将提出的生成式检索框架与以下序列推荐方法进行比较(附录B中简要描述了这些方法):GRU4Rec[11]、Caser[33]、HGN[25]、SASRec[17]、BERT4Rec[32]、FDSA[42]、S\(^3\)-Rec[44]和P5[8]
    • 所有基线方法(除P5外)均使用双 Encoder 学习高维向量空间,其中用户的过去物品交互和候选物品被编码为高维表示,并使用最大内积搜索(MIPS)检索用户可能交互的下一个候选物品
    • 论文的新型生成式检索框架直接通过 sequence-to-sequence 模型逐 token 预测物品的语义 ID
  • 推荐性能 :论文对提出的TIGER在序列推荐任务上进行了广泛分析,并与上述基线进行比较。除P5外,所有基线的结果均来自Zhou等人[44]公开可用的结果(详情见github.com/aHuiWang/CIKM2020-S3Rec)。对于P5,论文使用了作者提供的源代码。但为了公平比较,论文更新了数据预处理方法以与其他基线和论文的方法保持一致。附录D中提供了更多相关细节
  • 结果如表1所示。论文观察到,TIGER在所有三个基准上均显著优于现有基线(如表9所示,TIGER在不同数据集上的标准误差也不大(3个种子计算得到))。特别是在“美容”基准上,TIGER表现尤为突出,NDCG@5比SASRec提高了29%,Recall@5比S\(^3\)-Rec提高了17.3%。在“玩具与游戏”数据集上,TIGER的NDCG@5和NDCG@10分别提高了21%和15%

物品表示

  • 本节中,论文分析了RQ-VAE语义 ID 的几个重要特性
    • 首先进行定性分析,观察语义 ID 的层次结构
    • 接着,通过对比另一种基于哈希的量化方法,评估RQ-VAE在框架中的重要性
    • 最后,论文通过消融实验研究语义 ID 的重要性,将TIGER与使用随机 ID 表示物品的 sequence-to-sequence 模型进行比较
  • 定性分析 :
    • 论文在图4中分析了为亚马逊“美容”数据集学习的RQ-VAE语义 ID 。为了说明,论文将RQ-VAE的级别数设为3,codebook 大小分别为4、16和256,即对于物品的语义 ID \((c_1, c_2, c_3)\),有 \(0 \leq c_1 \leq 3\),\(0 \leq c_2 \leq 15\) 和 \(0 \leq c_3 \leq 255\)。在图4a中,论文使用 \(c_1\) 标注每个物品的类别,以可视化数据集中整体类别分布中 \(c_1\) 特定的类别。如图4a所示,\(c_1\) 捕捉了物品的高级类别。例如,\(c_1 = 3\) 包含大部分与“头发”相关的产品,而 \(c_1 = 1\) 的物品主要是面部、唇部和眼部的“化妆品”和“护肤”产品
    • 论文通过固定 \(c_1\) 并可视化所有可能的 \(c_2\) 值的类别分布,进一步展示RQ-VAE语义 ID 的层次结构(图4b)。论文发现第二个码字 \(c_2\) 进一步将 \(c_1\) 捕获的高级语义细化为更精细的类别。RQ-VAE学习的语义 ID 的层次结构开启了广泛的新能力,这些能力将在第4.3节讨论。与现有基于随机原子 ID 学习物品嵌入的推荐系统不同,TIGER使用语义 ID,其中语义相似的物品具有重叠的码字,这使得模型能够有效共享数据集中语义相似物品的知识
  • *哈希与RQ-VAE语义 ID * :
    • 论文通过将RQ-VAE与局部敏感哈希(LSH)[14,13,2]在语义 ID 生成上的表现进行对比,研究RQ-VAE在框架中的重要性。LSH是一种流行的哈希技术,可以轻松适应论文的设置。为了生成LSH语义 ID,论文使用 \(h\) 个随机超平面 \(\boldsymbol{w}_1, \ldots, \boldsymbol{w}_h\) 对嵌入向量 \(\boldsymbol{x}\) 进行随机投影,并计算以下二进制向量:\((1_{\boldsymbol{w}_1^\top \boldsymbol{x} > 0}, \ldots, 1_{\boldsymbol{w}_h^\top \boldsymbol{x} > 0})\)。将此向量转换为整数码 \(c_0 = \sum_{i=1}^h 2^{i-1} 1_{\boldsymbol{w}_i^\top \boldsymbol{x} > 0}\)。使用独立的随机超平面集合重复此过程 \(m\) 次,得到 \(m\) 个码字 \((c_0, c_1, \ldots, c_{m-1})\),论文称之为LSH语义 ID
    • 在表2中,论文将LSH语义 ID 与提出的RQ-VAE语义 ID 的性能进行了比较。在此实验中,对于LSH语义 ID,论文使用 \(h = 8\) 个随机超平面,并设置 \(m = 4\) 以确保与RQ-VAE的基数相当。超平面的参数从标准正态分布中随机采样,以确保超平面是球对称的。论文的结果表明,RQ-VAE始终优于LSH。这说明在给定相同的内容语义 embedding 下,通过非线性深度神经网络(DNN)架构学习语义 ID 比使用随机投影产生更好的量化效果
  • *随机 ID 与语义 ID * :论文还比较了语义 ID 在生成式检索推荐系统中的重要性。具体而言,论文将随机生成的 ID 与语义 ID 进行比较。为了生成随机 ID 基线,论文为每个物品分配 \(m\) 个随机码字。物品的长度为 \(m\) 的随机 ID 为 \((c_1, \ldots, c_m)\),其中 \(c_i\) 从 \(\{1, 2, \ldots, K\}\) 中均匀随机采样。论文为随机 ID 基线设置 \(m = 4\) 和 \(K = 255\),以使基数与RQ-VAE语义 ID 相似。表2展示了随机 ID 与RQ-VAE和LSH语义 ID 的比较。论文发现语义 ID 始终优于随机 ID 基线,突出了利用基于内容的语义信息的重要性

新能力

  • 论文描述了两种直接源自提出的生成式检索框架的新能力,即冷启动推荐和推荐多样性。论文将这些能力称为“新”能力,因为现有的序列推荐模型(参见第4.1节中的基线)无法直接满足这些实际用例。这些能力源于RQ-VAE语义 ID 与框架生成式检索方法的协同作用。论文将在以下部分讨论TIGER在这些场景中的应用
  • 冷启动推荐 :
    • 本节中,论文研究了提出框架的冷启动推荐能力。由于现实世界推荐语料库的快速变化,新物品不断被引入。由于新增物品在训练语料库中缺乏用户印象,使用随机原子 ID 表示物品的现有推荐模型无法将新物品作为潜在候选检索出来。相比之下,TIGER框架可以轻松执行冷启动推荐,因为它在预测下一个物品时利用了物品的语义信息
    • 在此分析中,论文考虑了亚马逊评论中的“美容”数据集。为了模拟新增物品,论文从训练数据分割中删除了5%的测试物品。论文将这些被删除的物品称为“未见物品”。从训练分割中删除物品确保了未见物品没有数据泄漏。如前所述,论文使用长度为4的语义 ID 表示物品,其中前3个 token 由RQ-VAE生成,第4个 token 用于确保所有已见物品具有唯一 ID 。论文在训练分割上训练RQ-VAE量化器和 sequence-to-sequence 模型。训练完成后,论文使用RQ-VAE模型为数据集中的所有物品生成语义 ID,包括物品语料库中的任何未见物品
    • 给定模型预测的语义 ID \((c_1, c_2, c_3, c_4)\),论文检索具有相同 ID 的已见物品。根据定义,模型预测的每个语义 ID 最多匹配训练数据集中的一个物品。此外,将具有相同前三个语义 token 的未见物品(即 \((c_1, c_2, c_3)\))添加到检索候选列表中。最后,在检索Top-K候选集时,论文引入了一个超参数 \(\epsilon\),它指定了框架选择的未见物品的最大比例
    • 论文在图5中将TIGER与k近邻(KNN)方法在冷启动推荐设置下的性能进行了比较。对于KNN,论文使用语义表示空间执行最近邻搜索。论文将基于KNN的基线称为Semantic_KNN。图5a显示,论文的框架在 \(\epsilon = 0.1\) 时在所有Recall@K指标上始终优于Semantic_KNN。在图5b中,论文比较了不同 \(\epsilon\) 值下论文的方法与Semantic_KNN的表现。对于所有 \(\epsilon \geq 0.1\) 的设置,论文的方法均优于基线
  • 推荐多样性 :
    • 虽然召回率和NDCG是评估推荐系统的主要指标,但预测的多样性是另一个关键目标。多样性差的推荐系统可能对用户的长期参与产生不利影响。在此,论文讨论了如何利用生成式检索框架预测多样化的物品。论文展示了在解码过程中基于温度的采样可以有效地控制模型预测的多样性。虽然基于温度的采样可以应用于任何现有的推荐模型,但由于RQ-VAE语义 ID 的特性,TIGER允许在不同层次上进行采样。例如,采样语义 ID 的第一个 token 允许从粗粒度类别中检索物品,而采样第二个或第三个 token 则允许在类别内采样物品
    • 论文使用Entropy@K指标定量测量预测的多样性,其中熵是根据模型预测的Top-K物品的真实类别分布计算的。论文在表3中报告了不同温度值下的Entropy@K。论文观察到,在解码阶段使用温度采样可以有效增加物品真实类别的多样性。论文还在表4中进行了定性分析

消融研究

  • 论文在表5中测量了 sequence-to-sequence 模型中层数变化的影响。论文发现随着网络变大,指标略有提升
  • 论文还测量了提供用户信息的效果,结果见附录中的表8

无效 ID

  • 由于模型自回归地解码目标语义 ID 的码字,可能会预测无效 ID (即未映射到推荐数据集中任何物品的 ID)

  • 在论文的实验中,论文使用了长度为4的语义 ID,每个码字的基数为256(即每级 codebook 大小为256),这个组合可能的 ID 数量为 \(256^4\),约为4万亿。而论文考虑的数据集中的物品数量为10K-20K(见表6)。尽管有效 ID 数量仅占完整 ID 空间的一小部分,但论文观察到模型几乎总是预测有效 ID 。论文在图6中可视化了TIGER生成的无效 ID 比例随检索物品数量 \(K\) 的变化。对于Top-10预测,三个数据集的无效 ID 比例在约0.1%至1.6%之间变化。为了抵消无效 ID 的影响并始终获得Top-10有效 ID,我们可以增加束大小并过滤无效 ID (注:尽管生成无效 ID,TIGER在仍优于已有序列推荐方法)

  • 前缀匹配(未来工作) :处理无效 token 的一种扩展方法是在模型生成无效 token 时进行前缀匹配。语义 ID 的前缀匹配允许检索与模型生成的 token 具有相似语义含义的物品。鉴于RQ-VAE token 的层次结构,前缀匹配可以被视为模型预测物品类别而非物品索引。这种扩展可能会进一步提高召回率/NDCG指标。论文将此类扩展留作未来工作


结论

  • 论文提出了一种新颖的范式——TIGER,通过生成式模型在推荐系统中检索候选 item。该方法的核心是一种新颖的 item 语义 ID 表示,它利用分层量化器(RQ-VAE)对内容嵌入进行编码,生成构成语义 ID 的 token。论文的框架训练出的模型无需创建索引即可直接用于服务—— Transformer 的记忆模块充当了 item 的语义索引。值得注意的是,论文的嵌入表基数不会随 item 空间的基数线性增长,这与那些需要在训练时创建大型嵌入表或为每个 item 生成索引的系统相比具有优势。通过在三个数据集上的实验,论文证明了该模型能够实现最先进的检索性能,同时能够泛化到新的未见过的 item

附录A 相关工作(续)

  • 生成式检索 :

    • 传统的文档检索通常需要训练一个双塔模型,将 query 和文档映射到同一个高维向量空间,然后通过近似最近邻搜索(ANN)或最大内积搜索(MIPS)返回与 query 最接近的文档。这种方法存在一些缺点,例如需要存储庞大的嵌入表[22, 23]。生成式检索是最近提出的一种技术,旨在通过逐词生成文档标题、名称或文档 ID 字符串来解决传统方法的部分问题
    • Cao等人[5]提出了GENRE用于实体检索,该方法基于 Transformer 架构,逐词返回 query 中引用的实体名称
    • Tay等人[34]提出了DSI用于文档检索,这是首个为每个文档分配结构化语义DocID 的系统。给定 query 时,模型自回归地逐词返回文档的DocID 。DSI的工作标志着信息检索领域向生成式检索方法的范式转变,也是 Transformer 首次成功应用于端到端检索任务。随后,
    • Lee等人[23]证明生成式文档检索在多跳场景中同样有效,即当复杂 query 无法通过单一文档直接回答时,模型可以通过链式思考生成中间 query,最终输出复杂 query 的结果
    • Wang等人[37]在Tay等人[34]基于层次化\(k\)-均值聚类的语义DocID 基础上,提出了一种新的 Decoder 架构,专门考虑了语义DocID 中的前缀
    • 在CGR[22]中,作者提出了一种结合双 Encoder 技术和生成式检索技术的方法,通过让 Encoder-Decoder 模型的 Decoder 学习独立的上下文嵌入,从而内在地存储文档信息
  • 向量量化 :

    • 向量量化是指将高维向量转换为低维码字元组的过程
    • 最直接的技术之一是层次化聚类,例如[34]中使用的方法,即在每次迭代中进一步划分子簇
    • 另一种流行的方法是向量量化编码器(VQ-VAE),由[35]提出,用于将自然图像编码为一系列码字。该技术首先通过 Encoder 降低输入向量(或图像)的维度,然后将低维向量分区,每个分区分别量化,从而生成一系列码字:每个分区对应一个码字。这些码字随后被 Decoder 用于重建原始向量(或图像)
    • RQ-VAE[40, 21]对VQ-VAE Encoder 的输出应用残差量化,以实现更低的重建误差
    • 局部敏感哈希(Locality Sensitive Hashing,LSH)[14, 13]是一种流行的聚类和近似最近邻搜索技术。论文中用于聚类的特定版本是SimHash[2],它使用随机超平面生成二进制向量作为项的哈希值。由于其计算复杂度低且可扩展[13],论文将其作为向量量化的基线方法

附录B 基线方法

  • 基线方法包括以下几个模型:
    • GRU4Rec[11]:首个基于RNN的方法,使用定制的GRU处理序列推荐任务
    • Caser[33]:使用CNN架构捕获高阶马尔可夫链,通过水平和垂直卷积操作实现序列推荐
    • HGN[25]:层次化门控网络通过新的门控架构捕捉用户的长期和短期兴趣
    • SASRec[17]:自注意力序列推荐使用因果掩码 Transformer 建模用户的序列交互
    • BERT4Rec[32]:通过双向自注意力 Transformer 解决单向架构的局限性,用于推荐任务
    • FDSA[42]:特征级深度自注意力网络将物品特征与物品嵌入一起作为 Transformer 输入序列的一部分
    • S\(^3\)-Rec[44]:序列推荐的自监督学习通过自监督任务预训练双向 Transformer 以改进序列推荐
    • P5[8]:P5是一种新方法,使用预训练的 LLM 将不同推荐任务统一到单一模型中

附录C 数据集统计

  • 论文使用Amazon产品评论数据集[10]中的三个公开基准,包含1996年5月至2014年7月的用户评论和物品元数据。针对序列推荐任务,论文选择了三个类别:“美妆”、“运动与户外”和“玩具与游戏”。表6总结了数据集的统计信息。论文按时间戳对用户的评论历史进行排序并过滤出评论少于5条的用户。遵循标准评估协议[17, 8],论文采用留一法进行评估。对于每个物品序列,最后一个物品用于测试,倒数第二个用于验证,其余用于训练。训练时,论文将用户历史中的物品数量限制为20

附录D 对P5数据预处理的修改

  • P5源代码5对Amazon数据集进行预处理,首先为每个用户创建会话,包含按时间排序的用户评论物品列表。生成会话后,原始物品 ID 被重新映射为整数 \(1, 2, 3,\cdots\)。因此,第一个会话的第一个物品 ID 为“1”,第二个未出现过的物品 ID 为“2”,以此类推。值得注意的是,此预处理方案在划分训练和测试集之前应用。这导致生成的序列数据中许多序列形式为\(a, a+1, a+2, \ldots\)。由于P5使用Sentence Piece分词器[30](参见[8]第4.1节),用户会话中的测试和训练物品可能共享子词,从而导致推理时信息泄露
  • 为解决泄露问题,论文改为为物品分配随机整数 ID,然后划分训练和评估集。P5的其余代码与论文提供的源代码保持一致。该数据集的结果在表7中以“P5”行显示。论文还从头实现了P5的一个版本,并仅针对序列推荐任务训练模型。论文的实现结果 token 为“P5-ours”。论文还在实现中验证,使用连续整数序列作为物品 ID 可以帮助论文获得与P5报告相当的或更好的指标

附录E 讨论

  • 语义 ID 长度和 codebook 大小的影响 :论文尝试调整语义 ID 长度和 codebook 大小,例如使用6个码字,每个 codebook 大小为64的 ID 。论文发现TIGER的推荐指标对这些变化具有鲁棒性。但需要注意的是,更长的 ID (即每个物品 ID 包含更多码字)会增加输入序列长度,从而增加基于 Transformer 的 sequence-to-sequence 模型的计算开销
  • 可扩展性 :为测试语义 ID 的可扩展性,论文进行了以下实验:合并三个数据集,并为所有物品生成语义 ID 。然后,论文在美妆数据集上使用这些语义 ID 进行推荐任务。将实验结果与仅基于美妆数据集生成语义 ID 的原始实验进行对比,结果如表10所示。论文发现性能仅有小幅下降
  • 推理成本 :尽管论文的模型在序列推荐任务中表现优异,但由于使用束搜索(Beam Search)进行自回归解码,其推理计算成本可能高于基于ANN的模型。论文强调,优化TIGER的计算效率并非本工作的主要目标。相反,论文的工作开辟了一个新的研究领域:基于生成式检索的推荐系统。未来工作中,论文将探索缩小模型规模或提升推理效率的其他方法
  • lookup table 的内存成本 :TIGER维护两个哈希 lookup table :物品 ID 到语义 ID 的表和语义 ID 到物品 ID 的表
    • 这两个表仅在生成后冻结一次:它们在RQ-VAE语义 ID 生成模型训练完成后生成,随后在 sequence-to-sequence Transformer 模型训练期间冻结
    • 每个语义 ID **包含4个整数** ,每个整数存储为 8 bits(1 Byte) ,总计32 bits(4 Byte整数)。每个物品用32 bits整数 ID 表示。因此,每个 lookup table 的大小约为\(64N\)位,其中\(N\)为数据集中物品数量
      • 理解:对每个 lookup table 都需要包含 <key, value> 两项,故每个 lookup table 的大小为 \( 64N = 2 \times 32N \)
  • 嵌入表的内存成本 :与传统推荐系统相比,TIGER使用的嵌入表更小。传统推荐系统为每个物品存储一个嵌入,而TIGER仅为每个语义码字存储嵌入。实验中,论文使用4个码字(每个 codebook 大小为256)表示语义 ID,共1024(256×4)个嵌入。传统推荐系统的嵌入数量为\(N\)(数据集中物品数量)。实验中,\(N\)范围为10K至20K。因此,TIGER嵌入表的内存成本为\(1024d\)(\(d\)为嵌入维度),而传统推荐系统的嵌入 lookup table 内存成本为\(Nd\)

附录:一些个人思考

  • 用户历史行为类型利用 :是否可以对 item 按照曝光、点击和下单等动作进行分类,不同的动作增加一个标签来表示?
  • 数据既有偏差 :用户之前的行为与用户之前的排序机制有关,曝光数量不多,如何缓解这种偏差?增加随机流量?
    • 理解:这其实是一个长期以来的问题,生成式检索理论上应该能缓解这个问题
  • 用户 token 生成 :目前是直接做聚类映射吗?后续是否可以考虑也对用户进行一些描述,再使用 RQ-VAE 来生成?

RS——推荐系统评估指标-mAP


整体说明

  • 在推荐系统中,mAP(Mean Average Precision)是衡量推荐结果准确性的重要指标 ,主要用于评估排序型推荐任务(如搜索、推荐列表排序)的性能
  • 综合考虑了推荐结果的相关性(Relevance)和排序质量(Ranking Quality) ,尤其适用于多类别推荐场景或需要衡量整体推荐精度的场景

AP(Average Precision,平均精度)

  • 定义 :对于单个查询(或用户),AP是其所有相关推荐结果的 Precision(精确率)的平均值 ,且仅对相关结果计算
  • 计算逻辑 :
    • 假设推荐列表中有 \( N \) 个结果,按排序从左到右依次判断每个结果是否为“相关项”(需预先定义相关性标准,如用户点击、购买等)
    • 对于每个相关项,计算其当前位置的精确率(即截至该位置,相关项在已推荐结果中的比例),并将所有相关项的精确率求平均,得到AP
  • 公式示例 :若推荐列表中有5个结果,相关性标记为 \( [1, 0, 1, 1, 0] \)(1表示相关,0表示不相关),则:
    • 第1个相关项位置:1,精确率 \( P_1 = 1/1 = 1 \)
    • 第3个相关项位置:3,精确率 \( P_3 = 2/3 \)
    • 第4个相关项位置:4,精确率 \( P_4 = 3/4 \)
    • AP = \( (1 + 2/3 + 3/4) / 3 ≈ 0.9167 \)

mAP(Mean Average Precision,平均AP)

  • 定义 :将AP指标扩展到所有查询(或用户) ,计算所有AP值的平均值,用于衡量推荐系统的整体性能
  • 公式 :
    $$
    \text{mAP} = \frac{1}{M} \sum_{i=1}^{M} \text{AP}_i
    $$
    • 其中,\( M \) 为查询(或用户)总数,\( \text{AP}_i \) 为第 \( i \) 个查询的AP值

附录:完整的mAP计算示例

  • 假设存在2个用户(查询),推荐列表及相关性如下:
  • 用户1 :推荐列表 = [A(1), B(0), C(1), D(0), E(1)]
    • 相关项位置:1、3、5
    • 各相关项精确率:
    • \( P_1 = 1/1 = 1 \)
    • \( P_3 = 2/3 ≈ 0.6667 \)
    • \( P_5 = 3/5 = 0.6 \)
    • \( \text{AP}_1 = (1 + 0.6667 + 0.6) / 3 ≈ 0.7556 \)
  • 用户2 :推荐列表 = [X(0), Y(1), Z(1)]
    • 相关项位置:2、3
    • 各相关项精确率:
      • \( P_2 = 1/2 = 0.5 \)
      • \( P_3 = 2/3 ≈ 0.6667 \)
      • \( \text{AP}_2 = (0.5 + 0.6667) / 2 ≈ 0.5833 \)
  • mAP计算 :
    $$
    \text{mAP} = \frac{0.7556 + 0.5833}{2} ≈ 0.6695
    $$

RS——推荐系统综述

  • 参考博客:
    • http://xtf615.com/2018/05/03/recommender-system-survey/
    • https://zhuanlan.zhihu.com/p/27502172

推荐系统分类(基于推荐依据分类)

[待更新]

基于内容的推荐

Content-based recommenders

  • 推荐和用户曾经喜欢的商品相似的商品
  • 主要是基于商品属性信息和用户画像信息的对比
  • 核心问题是如何刻画商品属性和用户画像以及效用的度量
  • 使用一个效用函数(utility function)来评价特定用户 \(c \in C\) 对特定项目 \(s_{c}’ \in S\) 的评分, \(UserProfit(c), ItemProfit(s)\) 分别表示用户和商品的收益函数(Profit Function)[存疑: 待更新]
    $$u(c,s) = score(UserProfit(c), ItemProfit(s))$$
    • 基于启发式的方法(Heuristic-based method):
      • 特征构建: 基于关键字提取等方法,使用TF-IDF等指标提取关键字作为特征
      • 效用的度量: 使用启发式cosine等相似性指标, 衡量商品特征和用户画像的相似性,相似性越高,效用越大
    • 基于机器学习的方法(Machine learning-based mehod):
      • 特征构建: 使用机器学习算法来构建用户和商品的维度特征,例如建模商品属于某个类别,得到商品的刻画属性
      • 效用的度量: 直接使用机器学习算法拟合效用函数
  • 对于任意的用户 \(c \in C\),我们可以通过选择商品 \(s_{c}’ \in S\) 来得到最大化的效用函数
    $$\forall c \in C, s_{c}’ = \mathop{\arg\max}_{s \in S} u(c,s)$$

基于协同过滤的推荐

Collaborative filtering recommenders

基于内存的推荐
  • 直接对User-Item矩阵进行研究
    • User-based CF: 推荐给特定用户列表中还没有发生过行为、而在相似用户列表中产生过行为的高频商品
    • Item-based CF: 推荐给特定用户列表中还没有发生过行为、并且和当前用户已经发生过行为的商品相似的商品
基于模型的推荐
损失函数+正则项(Loss Function)
神经网络+层(Neural Network)
图模型+圈(Graph Model)
基于矩阵分解的推荐
  • Traditional SVD
    • 传统的SVD分解
      $$R_{m\times n} = U_{m \times k} \Sigma_{k \times k} V_{k \times n}^T$$
    • 缺点:
      • 普通SVD分解时矩阵必须是稠密的,即每个位置都必须有值
      • 如果矩阵是稀疏的,有空值,那么需要先用均值或者其他统计学方法来填充矩阵
      • 计算复杂度高,空间消耗大
  • FunkSVD
    • 分解为两个低秩矩阵而不是三个矩阵
      $$\hat{r}_{u,i} = q_i^T p_u$$
      • \(\hat{r}_{u,i}\) 指用户对商品的评分
      • \(q_{i}\) 是商品 \(i\) 在隐空间的隐向量表示
      • \(p_{u}\) 是用户 \(u\) 在隐空间的隐向量表示
    • 不使用传统的矩阵分解方式,定一个损失函数(针对 \(\hat{r}_{u,i}\) 未缺失的地方, \(\hat{r}_{u,i}\) 缺失的地方训练时不用管),然后用梯度下降法进行参数优化
      • 优化问题(最小化损失函数)定义如下
        $$q^{\star}, p^{\star} = \min_{q, p} \sum_{(u,i) \in R_{train}} (r_{u,i} - q_i^T p_u)^2 + \lambda (||q_i||^2 + ||p_u||^2 )$$
        • 正则项是两个参数的L2正则
        • \(R_{train}\) 是评分矩阵中可观测的数据对构成的集合, 缺失值不参与训练, 缺失值是需要我们最终预测的
  • BiasSVD
    • BiasSVD是FunkSVD诸多变形版本的一个相对成功的方法
    • 带有偏执项的SVD分解
    • 基于假设:
      • 关于用户的假设: 天生存在偏好,有的喜欢给商品好评,有的喜欢给商品差评
        • 这些用户的固有属性与商品无关
      • 关于商品的假设: 天生存在优劣,有的容易被人给好评,有的容易被人给差评
        • 这些商品的固有属性与用户无关
    • 优化问题(最小化损失函数)定义
      $$
      \begin{align}
      &\hat{r}_{ui} = \mu + b_u + b_i + q_i^Tp_u \\
      &min \sum_{r_{ui} \in R_{train}} \left(r_{ui} - \hat{r}_{ui} \right)^2 + \lambda\left(b_i^2 + b_u^2 + ||q_i||^2 + ||p_u||^2\right)
      \end{align}
      $$
    • 梯度下降更新公式
      $$
      \begin{align}
      \begin{split}b_u &\leftarrow b_u &+ \gamma (e_{ui} - \lambda b_u) \\
      b_i &\leftarrow b_i &+ \gamma (e_{ui} - \lambda b_i)\\
      p_u &\leftarrow p_u &+ \gamma (e_{ui} \cdot q_i - \lambda p_u)\\
      q_i &\leftarrow q_i &+ \gamma (e_{ui} \cdot p_u - \lambda q_i)\end{split}
      \end{align}
      $$
      • \(e_{ui} = r_{ui} - \hat{r}_{ui}\)
      • \(b_{u}\) [待更新]
      • \(b_{i}\) [待更新]
      • \(u\) [待更新]
  • SVD++
    • SVD++是对BiasSVD进行改进的
    • 基于假设:
      • 除了显示的评分行为以外,用户对于商品的浏览记录或购买记录(隐式反馈)也可以从侧面反映用户的偏好。相当于引入了额外的信息源,能够解决因显示评分行为较少导致的冷启动问题
    • 优化问题定义[待更新]
  • TimeSVD++
    • 之前的模型都是静态的,这里TimeSVD++是动态的,每个时间段学习一个参数,不同时间段使用该时间段的训练数据进行学习
    • 优化问题定义[待更新]
  • BiasSVDwithU
  • NMF
    • 非负矩阵分解,Nonnegative Matrix Factorization
  • PMF
    • 概率矩阵分解,Probabilistic Matrix Factorization
  • WRMF
    • weighted regularized matrix factorization

混合的推荐

  • 基于混合的推荐,顾名思义,是对以上算法的融合
  • 淘宝上就既有基于内容的推荐也有协同过滤的推荐
  • 对模型的融合可以参考集成学习的三种集成方式ML——Ensemble-集成学习

推荐系统分类(基于推荐的最终输出形式分类)

评分预测模型

Rating prediction

  • 核心目的: 填充User-Item矩阵中的缺失值
  • 模型衡量指标: 均方根误差(RMSE, Root Mean Squard Error), 平均绝对误差(MAE, Mean Absolute Error)

排序预测模型

Ranking prediction (top-n recommendation)

  • 核心目的: 给定一个用户,推荐一个有序的商品列表
  • 模型衡量指标: Precision@K, Recall@K等

分类模型

Classification

  • 核心目的: 将候选商品分类,然后用于推荐
  • 模型衡量指标: Accuracy
1…505152…61
Joe Zhou

Joe Zhou

Stay Hungry. Stay Foolish.

608 posts
49 tags
GitHub E-Mail
© 2026 Joe Zhou
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4