Jiahong 的个人博客

凡事预则立,不预则废


  • Home

  • Tags

  • Archives

  • Navigation

  • Search

NLP——EcomGPT-CT

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:EcomGPT-CT: Continual Pre-training of E-commerce Large Language Models with Semi-structured Data, arXiv 202312, THU, Alibaba

Paper Summary

  • 整体内容总结:
    • 本论文对 LLM 的领域特定 CPT 进行了广泛研究,重点关注电子商务领域
    • 本文实验表明,通过结合通用语料和领域特定语料进行有针对性的 CPT,可以有效地将 LLM 适配到特定领域
    • CPT 在不牺牲模型在广泛 NLP 应用中能力的前提下,提升了模型在电子商务任务上的性能
    • 论文设计的数据混合策略被证明在增强模型从不同数据源吸收和整合知识的能力方面是有效的,从而在领域特定任务上实现了性能提升
  • 背景:
    • LLM 在大量语料上预训练后,已在各种 NLP 任务中展现出卓越性能,但将这些模型应用于特定领域仍面临重大挑战
    • 例如缺乏领域知识、利用领域知识的能力有限,以及对领域特定数据格式的适应性不足
  • 本文方案介绍:
    • 考虑到从头训练 LLM 的极高成本和特定领域标注数据的稀缺性,本研究以电商领域为例,专注于 LLM 的领域特定持续预训练(domain-specific continual pre-training)
    • 论文探索了使用未标注的通用语料和电商语料对 LLM 进行持续预训练(CPT)的影响
    • 论文设计了一种混合不同数据源的策略,以更好地利用电商半结构化数据
    • 论文构建了多个任务来评估 LLM 在电商领域的少样本上下文学习(ICL)能力及其在指令微调后的零样本性能
  • 实验结果表明,电商 LLM 的 CPT 以及论文设计的数据混合策略均具有显著效果

Introduction and Discussion

  • LLM 通过预训练数十亿文本标记,能够掌握广泛的世界知识和人类语言规则(2023)。因此,LLM 在各类 NLP 任务中表现优异(2020; 2022; 2023b)
  • 然而,现有的 LLM 并不完美,将其应用于特定领域仍存在重大挑战:
    • (1)LLM 缺乏必要的领域特定知识,或难以利用相关知识解决实际任务(2023a;2023)
    • (2)LLM 难以适应特定领域的独特文本格式或数据分布,因此无法满足领域应用的需求(2023a;2023b)
  • 考虑到:
    • 训练 LLM 需要大量硬件资源和长时间训练,从头预训练一个领域特定的 LLM 在实际中并不可行
    • 特定领域的标注数据通常稀缺且成本高昂,而未标注数据则更为丰富且易于获取
  • 因此:本研究以电商领域为例,探索通过 CPT 使 LLM 适应特定领域的方法
  • 已有充分证据表明,特定领域的 CPT 能够显著提升掩码语言模型(MLM,例如 BERT(2019)、RoBERTa(2019))在相应领域下游任务中的表现(2020; 2020;2022;)
  • 在 LLM 时代,受限于数据和计算资源:
    • 大多数领域适应研究通过指令微调或提示工程实现(2023;)
    • 仅有少数研究尝试通过 CPT 将领域知识注入模型(2023a; 2023),且缺乏从实际应用角度对 LLM 领域特定 CPT 的深入分析
  • 论文工作内容如下:
    • 基于 BLOOM(2022)等一系列多语言自回归模型,构建了电商领域的 EcomGPT-CT 模型
    • 探索了在难以获取完整原始预训练数据的情况下,使用通用和电商未标注语料对 LLM 进行 CPT 的影响
      • 论文关注模型在解决实际电商任务中的表现,并分析训练过程中的性能变化
    • 提出了一种混合不同数据源的策略,以有效利用电商领域丰富的半结构化数据,从而提升预训练数据的规模和多样性

Related Work

Large Language Models

  • 近年来,LLM 领域发展迅速,当前主流的 LLM 主要基于 Transformer 模块,并在海量文本数据上预训练
  • 自 GPT-2(2019)和 T5(2020)证明各种 NLP 任务可以统一为文本生成范式后,主流 LLM 均采用仅解码器的自回归架构
  • 近期,遵循 scaling law(2020),不同参数规模的 LLM 被构建并发布,包括 GPT-3(2020)、Chinchilla(2022)、BLOOM(2022)、PaLM(2022)、Llama(2023)、Baichuan(2023a)
  • 受LLM卓越性能的激励,研究者致力于构建领域适应的 LLM 以解决特定领域任务,比如:
    • 生物医学领域的 Med-PaLM(2023)和 ChatDoctor(2023)
    • 数学领域的 Minerva(2022)
    • 金融领域的 BloombergGPT(2023)和 FinGPT(2023b)
    • 以及法律领域的 ChatLaw(2023)

Continual Pre-training

  • CPT 是指:在通用预训练和下游任务微调两个阶段之间增加的额外预训练阶段
    • CPT 采用与通用预训练相同的训练目标 ,但通常使用特定领域或任务的未标注语料 ,旨在实现领域适应或任务适应
  • 对于 BERT(2019)和 RoBERTa(2019)等掩码语言模型预训练模型,领域自适应或任务自适应的 CPT 能够引导模型与相应领域或任务的数据分布对齐,从而有效提升模型在相关下游任务中的表现(2020;2022)
  • 对于当前主流的自回归 LLM ,关于 CPT 过程的研究(2023)或 CPT 在构建领域特定 LLM 中的应用(2023a)仍然有限
    • 目前缺乏对** CPT 如何影响 LLM 解决领域特定任务效果的详细分析,也缺乏关于如何提升 LLM CPT 效果策略**的研究

Domain-specific Continual Pre-training

Training Task

  • CPT (Continual Pre-training)无缝连接了通用预训练(General Pre-training)和SFT阶段,从而提升模型在特定领域或任务中的性能,如图 1 所示
  • CPT 采用与通用预训练相同的目标函数,但专注于特定领域或任务的未标注语料
  • 论文中,论文使用仅包含解码器的 Transformer 模型(Decoder-only Transformer Models),这是当前主流LLM 的架构。预训练的目标是下一词预测任务(Next Token Prediction)或自回归语言建模(Auto-regressive Language Modeling):
    $$
    \max_{\theta}\sum_{i=1}^{N}\log P(y_{i}|y_{ < i};\theta),
    $$
    • 其中,\(\theta\) 是模型参数,\(y\) 是训练文本序列

Dataset Construction

  • 论文通过 CPT 提升 LLM 在电子商务(E-commerce)领域的性能
  • 论文整理了大量的电子商务数据,用于向 LLM 注入领域特定知识,并帮助模型适应电子商务领域独特的文本格式
  • 为了保留 LLM 的世界知识和泛化能力,论文还将通用文本数据纳入训练数据集中
  • 电子商务语料(E-commerce Corpora) :论文从亚马逊(Amazon)和淘宝(Taobao)收集了大量产品的标题、属性、描述和评论
    • 此外,还利用了淘宝“逛逛”频道的文章 ,这些文章介绍了产品特性、分享了用户体验并展示了品牌故事
  • 通用语料(General Corpora) :为了构建通用语料,论文从 WuDaoCorpora (2021) 和 RefinedWeb (2023) 中采样文本
    • 这两个数据集分别包含从网页中收集的 72B 中文 Characters 和 600B 英文 Tokens
  • 数据预处理(Data Pre-processing) :为了确保预训练数据的质量,论文实现了一个全面的流水线
    • 包含数据重构、过滤和去重过程
    • 对于半结构化产品数据,论文首先按产品 ID 将标题、属性、描述和评论分组
  • 表1 展示了处理后的电子商务和通用数据集的统计信息,论文观察到,收集的数据集中不同数据源的 Token 数量存在显著差异
    • 经过过滤和处理的电子商务数据包含约 20B Tokens,不到通用领域网页数据 Token 数量的 5%
    • 在通用数据中,中文数据的数量远少于英文数据
  • 考虑到领域特定 CPT 的目标是提升模型在解决领域特定任务时的性能,同时不损害其泛化能力,因此在训练样本中保持通用数据和领域特定数据的 Token 数量平衡至关重要
    • 但由于硬件限制,论文无法对不同类型数据的比例进行详细实验
    • 经过初步探索,论文将通用数据与领域特定数据的 Token 数量比例设定为 2:1 ,并将通用数据中的中英文数据比例设定为 1:1

Dataset Mixing Strategy

  • 通常,用于LLM 预训练的数据来自网页上的长文本,例如 CommonCrawl 和 Wikipedia
  • 但在某些特定领域(包括电子商务领域),大量文本数据以半结构化格式存储在表格或数据库中
    • 这些半结构化文本数据在形式上与常规文本数据存在显著差异
  • 尽管如此,作者相信将这些数据适当地纳入 CPT 中,可以进一步提升LLM 的领域特定性能
  • 为了有效地将这些丰富的半结构化数据转化为模型训练所需的文本序列,论文设计了一种跨不同数据源的数据集混合策略。论文的数据混合策略包含以下步骤:
    • 1)节点构造 :从不同数据源收集半结构化数据,每个数据源代表一组节点,每个节点对应一个数据条目(即一行或一个对象)
    • 2)边构造 :在跨两个数据源相关联的节点之间建立边,构建表示数据关系的异构图(Heterogeneous Graph)
      • 在论文的实验中,所有数据均与电子商务产品相关,因此论文使用产品 ID 作为唯一标识符,连接与同一产品相关的所有节点
    • 3)簇选择并移除 :基于预定义的簇大小范围,迭代地从图中选择连通的簇,并遵循尽可能覆盖更多数据源的规则
      • 选择簇后,从图中移除所有对应节点以避免冗余
    • 4)簇内节点拼接 :在每个选定的簇内随机排列所有节点,提取每个节点中的可用文本,并将它们拼接成一个训练样本
  • 图2 展示了一个示例:
    • 作者认为,这种数据混合策略建立了来自不同数据源文本之间的联系
    • 与从每个数据源独立采样文本的策略相比,论文的策略增强了单个样本中文本的多样性,从而更有效地训练 LLM
  • 问题:论文的数据混合策略有经过实验验证吗?
    • 后面实验部分有实验,证明了这种做法是有效的

Training Setup

  • 作者选择 BLOOM(2022)作为 EcomGPT-CT 的骨干模型(backbone),原因如下:
    • (1) BLOOM 是一个支持中英文的多语言预训练模型;
    • (2) BLOOM 未经过任何Post-training,这确保了在 CPT 后评估我们基准测试性能变化的可靠性
  • 作者分别在参数规模为 3B 和 7.1B 的 BLOOM 模型上进行了实验
  • 受限于硬件配额,论文的每项实验均在 2-4 块 NVIDIA Tesla A100 80GB GPU 上完成,这为计算资源有限的应用场景提供了有价值的参考(有趣的表达)
  • 论文采用了 Huggingface 的 Transformers(2019)和 DeepSpeed(2020)框架
    • Transformers 提供了模型实现和基础的训练流程
    • DeepSpeed 则通过 ZeRO 优化器(2020)对训练状态(如模型参数、梯度和优化器状态)进行分片,从而优化 GPU 内存消耗
    • 论文使用了 ZeRO stage 2 并启用了 offload 功能,这意味着优化器状态和梯度会被分片,且训练状态可以在主机和设备之间交换
  • 训练过程采用 bfloat16 混合精度(2019)进行,以提高训练效率并避免数值下溢或溢出问题
  • 实验中使用的超参数如表2 所示(部分超参数是基于 BLOOM 原始预训练设置而确定的)
  • 超参数分析:小模型使用更大的学习率

Experiments

Evaluation Benchmarks

  • 为了从解决实际问题的角度评估基础 LLM 在电子商务领域的性能,论文基于 EcomInstruct(2023a)构建了两个基准,如表3 所示:
    • (1) EcomICL :论文选择了 9 项任务,涵盖文本分类(text classification, CLS)、文本生成(text generation, GEN)和信息抽取(information extraction, IE)等多种类型
      • 每个数据实例被处理为标准格式,并提供多个相同格式的示例作为演示,以评估 LLM 的少样本上下文学习(Few-shot ICL)性能
    • (2) EcomSFT :论文使用 EcomInstruct 的训练数据对基础 LLM 进行 SFT(然后进一步评估)
      • 选择了 8 项任务进行评估,包括 4 项训练集内任务和 4 项训练集外任务,旨在评估 SFT 后模型的指令遵循性能
  • 为了评估基础 LLM 在 CPT 后是否仍能解决通用自然语言处理(NLP)任务,论文分别从中文和英文 NLP 基准中选择了 3 项任务
    • 以 Few-shot ICL(GeneralICL)的形式进行评估
    • 对于每项任务,论文在实验中随机选取最多 1000 个数据实例
  • 对于自回归 LLM ,每项任务都被视为文本生成任务。因此,我们可以使用文本生成的自动评估指标来评估模型在不同任务上的性能
    • 根据先前的工作(2022;2022),论文使用 ROUGE-L(2004)作为评估指标
    • 对于分类任务,论文报告准确率指标;
    • 对于两项 IE 任务,论文还使用了精确率、召回率和 F1 值指标

补充:论文相关的评估指标汇总

  • 表3 列出了所有评估指标
  • AVE :属性-值提取(Attribute-Value Extraction,AVE) :从商品信息中提取属性和对应的值,如商品“颜色:红色”
  • NED :命名实体检测(Named Entity Detection,NED) :识别文本中的特定实体,如品牌名、商品名等
  • ENT :实体类型分类(Entity Typing,ENT) :对文本中的实体进行分类,如“苹果”是水果还是品牌
  • PDC :产品分类(Product Classification,PDC) :将商品归类到预定义的类别中,如“手机”属于“电子产品”
  • TAM :标题-属性匹配(Title-Attribute Matching,TAM) :判断商品标题是否与其属性描述一致
  • TIG :标题生成(Title Generation,TIG) :根据商品信息生成简洁且吸引人的标题(问题:如何评估简洁和吸引人?)
  • DEG :描述生成(Description Generation,DEG) :基于商品属性生成详细的描述文本
  • DES :描述摘要(Description Summarization,DES) :将商品的长描述压缩成简短的摘要
  • STG :短标题生成(Short Title Generation,STG) :生成更简短的标题(问题:用于移动端展示?)
  • NER :命名实体识别(Named Entity Recognition,NER) :识别并分类文本中的命名实体,如人名、地名等
    • 注:NER = NED + 实体分类,部分文献中也会混用两者,但实际上强调 NED 时,是不用对实体进行分类的
    • 输入句子 :"马云在杭州创立了阿里巴巴。"
    • NED输出 :[马云] 在 [杭州] 创立了 [阿里巴巴]
    • NER输出 :[马云]PER 在 [杭州]LOC 创立了 [阿里巴巴]ORG
  • ITD :意图理解(Intent Understanding,ITD) :分析用户查询的意图,如“购买”或“咨询”
  • ADM :地址匹配(Address Matching,ADM) :验证或匹配用户输入的地址信息
  • AGNews :主题分类(Topic Classification) :将新闻文本分类到预定义的主题类别
  • SQUAD v2 :阅读理解(Machine Reading Comprehension,MRC) :阅读理解任务,根据文章回答问题
  • SNLI :自然语言推理(Natural Language Inference) :判断两个句子之间的逻辑关系(蕴含、矛盾或中立)
  • TNews :主题分类(Topic Classification) :中文新闻文本的主题分类任务
  • CMRC2018 :阅读理解(Machine Reading Comprehension,MRC) :中文阅读理解任务,根据文章回答问题
  • OCNLI :自然语言推理(Natural Language Inference) :中文自然语言推理任务,判断句子间的关系

Results on Domain-specific Tasks

  • 表4 展示了 BLOOM-3B 和 BLOOM-3B-7B 模型在不同 CPT 设置下对多种电子商务 Few-shot ICL(EcomICL)任务的评估结果
  • Few-shot ICL 评估直接反映了 LLM 在无需额外微调的情况下解决领域特定任务的能力。实验结果表明:
    • (1) 从训练数据的角度来看:
      • 使用电子商务数据进行 CPT 有效提升了 3B 和 7B 模型在部分电子商务任务上的 ICL 性能
      • 仅使用通用数据训练模型会导致几乎所有任务的性能显著下降
      • 混合领域特定数据和通用数据进行训练能带来更一致的性能提升
      • 这些结果说明:在 CPT 中同时纳入领域特定语料和通用语料是必要的
        • 因为领域特定数据有助于模型适应领域特定知识和数据格式 ,而通用数据则帮助模型避免遗忘世界知识并保持泛化能力
    • (2) 从数据混合的角度来看:
      • 论文设计的将不同来源数据整合到同一上下文中的策略(表4 中不带 Separate 的行),在大多数任务上实现了更大的性能提升或更小的性能下降,优于从不同数据源独立采样的结果(表4 中带 Separate 的行)
      • 在属性-值抽取(Attribute-Value Extraction, AVE)和标题生成(Title Generation, TIG)任务中观察到显著改进
      • 这表明论文的数据混合策略在建立不同数据源之间的关联以及将电子商务数据中的领域特定知识注入模型方面是有效的
    • (3) 领域特定 CPT 对模型性能的影响因任务类型而异
      • 对于 高度依赖领域知识 或 数据格式与通用文本差异较大 的任务, CPT 显著提升了模型在这些任务上的性能
        • 高度依赖领域知识的任务:例如产品分类(Product Classification, PDC)和标题生成(Title Generation, TIG)
        • 数据格式与通用文本差异较大的任务:例如描述摘要(Description Summary, DES)和短标题生成(Short Title Generation, STG)
      • 对于需要一定领域知识但形式与通用 NLP 任务差异较小的任务,领域特定 CPT 仅带来边际性能提升
        • 需要一定领域知识但形式与通用 NLP 任务差异较小的任务:例如属性-值抽取(Attribute-Value Extraction, AVE)和命名实体检测(Named Entity Detection,NED)
      • 对于缺乏领域特异性 或本身难以通过 Few-shot ICL 解决的任务, CPT 未能带来有效收益
        • 缺乏领域特异性的任务:例如实体分类(Entity Typing,ENT)
        • 本身难以通过 Few-shot ICL 解决的任务:例如标题-属性匹配(Title-Attribute Matching,TAM)
CPT 对 SFT 的影响如何?
  • 论文还对采用不同配置训练的模型进行了 SFT(注:SFT 时使用相同的 EcomInstruct 训练数据集)
    • 随后,论文评估了 SFT 后模型在各项任务上的性能
    • 指令微调后的模型可以更方便地用于解决实际场景中的 NLP 问题
    • 因此,相关基准上的实验结果间接反映了 CPT 对 LLM 领域特定性能的影响
  • 表5 展示了进行了 SFT的相关实验结果,从中论文观察到以下现象:
    • (1) 使用领域特定数据进行 CPT 有效提升了模型在大多数基准上的性能 ,而将通用预训练数据与领域特定数据结合进一步增强了模型性能(与 Few-shot ICL 评估结果类似)
      • 在 CPT 过程中,论文设计的数据混合策略 ,在提升模型 SFT 后的性能方面比从不同来源独立采样领域特定数据更有效
    • (2) CPT 对 SFT 后领域性能的影响因任务类型而异
      • 与 EcomICL 的发现类似, CPT 为需要领域知识 或 涉及特定数据格式的任务带来了显著增益,而对其他任务的增益较小
        • 例如标题生成(Title Generation, TIG)、产品分类(Product Classification, PDC)、意图检测(Intent Detection, ITD)
    • (3) CPT 对训练集内(held-in)和训练集外(held-out)任务均表现出整体性能提升,其中训练集外任务的提升更为明显
      • 这一结果符合直觉,因为 SFT 直接训练了模型解决某些特定任务的能力,从而减轻了 CPT 的影响
      • 在此过程中,训练集内(held-in)任务的相关数据被包含在训练集中,使得这些任务更容易受到 SFT 的影响

Results on General Tasks

  • 除了领域特定基准外,论文还评估了 LLM 在几项中英文通用 NLP 任务上的 Few-shot ICL 性能
  • 表6 提供了关于 CPT 对 LLM 通用能力影响的 insight
  • 实验结果表明:
    • 从解决实际问题的角度来看,使用通用数据和领域特定数据混合 CPT 模型对模型解决主题分类(Topic Classification)、机器阅读理解(Machine Reading Comprehension)、自然语言推理(Natural Language Inference)等经典 NLP 任务的 Few-shot ICL 能力影响较小
      • AGNews :主题分类(Topic Classification)
      • SQUAD v2 :阅读理解(Machine Reading Comprehension,MRC)
      • SNLI :自然语言推理(Natural Language Inference)
      • TNews :主题分类(Topic Classification)
      • CMRC2018 :阅读理解(Machine Reading Comprehension,MRC)
      • OCNLI :自然语言推理(Natural Language Inference)
    • 然而,由于论文的领域特定数据主要是中文,仅使用领域特定数据进行 CPT 会导致模型在中文基准上的性能下降
      • 这验证了在领域特定预训练中纳入通用数据以保持模型通用 NLP 能力的重要性
    • 需要注意的是,在本实验中,论文并未评估模型的复杂推理或知识保留能力,因此无法得出领域特定预训练是否会损害模型这些能力的结论

Performance Variation during Training

  • 论文还评估了 CPT 过程中多个模型检查点在领域特定和通用 ICL 基准上的性能,以分析 LLM 在训练过程中的性能变化。图 3(a) 和 3(b) 展示了部分代表性任务上各模型检查点的性能
  • 从 EcomICL 中四项任务的性能变化中观察到三种不同的趋势:
    • (1) 在某些任务(例如产品分类(PDC))中,模型的性能稳步提升
    • (2) 在另一些任务(例如描述生成(DEG))中,模型性能保持相对稳定
    • (3) 在某些任务(例如属性-值抽取(AVE)和描述摘要(DES))中,模型的性能最初提升,但在达到转折点后不再显著变化
  • 对于 GeneralICL 中的四项典型任务
    • 可以明显看出模型的性能在训练过程中波动
    • 然而,在观察到的时间范围内,指标并未显著偏离 CPT 前的初始值
    • 这一结果进一步强调,选择合适的数据进行 CPT 可以有效保持模型的通用 NLP 能力

NLP——EfficientCPT(FinPythia)

注:本文包含 AI 辅助创作

  • 参考链接:
    • 原始论文:(FinPythia)Efficient Continual Pre-training for Building Domain Specific Large Language Models, ACL 2024, Amazon

Paper Summary


Conclusion

  • 在论文中,论文证明了领域自适应持续预训练(Continual Pre-training, CPT)在开发领域特定 LLM 中的有效性
    • CPT 可以用于在现有开放领域 LLM 的基础上开发领域专用 LLM
    • 领域自适应持续预训练提高了 LLM 在金融任务上的性能,并以更低的成本使 LLM 能够获取领域知识
  • 论文提出了高效的领域自适应持续预训练方法 ETS-DACP 和 ETA-DACP,以增强持续预训练
    • 通过在训练数据筛选过程中更具选择性,论文的方法改进了持续预训练,仅使用普通持续预训练 10% 的数据(成本)就取得了更好的结果
  • 基于熵的任务无关数据选择策略与任务感知策略表现相当
    • 这一发现可用于在缺乏任务数据时进行持续预训练的数据选择
    • 论文还观察到在开放领域标准任务上的性能没有下降,表明领域持续预训练不会损害开放领域能力
  • 论文的研究将领域持续预训练作为从头构建领域特定 LLM 的有力替代方案
    • 通过更智能的数据选择,我们可以以较低成本超越普通持续预训练
    • 与普遍认为“更多数据更好”的观点相反,论文的结果表明数据质量同样重要
    • 尽管领域持续预训练在小语言模型文献中已有广泛研究,但考虑到 LLM 的规模和成本,论文提供了独特的见解
  • 论文介绍了通过金融领域自适应持续预训练开发的 FinPythia-6.9B
    • 持续预训练的 FinPythia 在金融任务上相较于原始基础模型展现了持续的性能提升
  • 论文进一步探索了简单但高效的数据选择策略用于持续预训练
  • 论文的数据选择策略仅使用 10% 的语料库规模和成本,即可超越普通持续预训练的性能 ,且不会降低开放领域标准任务(standard tasks)的表现
  • 本研究为构建领域专用 LLM 提供了一种经济高效(cost-effectively)的替代方案

Introduction and Discussion

  • LLM 展现出对自然语言的深刻理解,并在多种任务上提升了性能
  • 开放的网页数据有助于创建具备广泛能力的通用 LLM,但通用 LLM 并非“专家”
    • 例如,虽然 LLM 可以撰写优秀的新闻文章,但在撰写专业的法律文件时可能力不从心
  • 为创建领域专用的 LLM,需要基于领域数据进行训练。构建领域专用 LLM 的方法分为两类:
    • 从头训练领域专用 LLM
    • 基于现有 LLM 使用领域数据进行持续预训练
  • 大多数研究者采用第一种方法,例如医学领域的 Med-PaLM 系列模型(2022,2023)和金融领域的 BloombergGPT(2023b)
  • 尽管领域自适应持续预训练是一种更经济的替代方案,但相关研究较少
    • PMC-LLaMA(2023a)是通过对 LLaMA(2023)进行医学论文持续预训练得到的医学 LLM
  • 持续预训练还可用于在动态环境中更新 LLM 的最新知识
  • 本研究探讨以下问题:
    • 1)领域自适应持续预训练是否有助于构建领域专用 LLM?
    • 2)能否采用数据选择策略实现更高效的领域自适应持续预训练?
    • 3)领域自适应持续预训练是否会损害 LLM 的开放领域能力?
  • 论文以金融领域为背景,通过基于 Pythia(2023)构建的持续预训练模型 FinPythia 来回答这些问题
    • 针对第一个问题(回答肯定),论文报告了在规模仅为 Pythia 训练数据 8% 的领域数据上进行持续预训练后,金融基准测试(2023a)的性能提升。定性分析中,论文观察到 FinPythia 掌握了最新的金融领域知识
    • 针对第二个问题(回答肯定),论文提出了两种简单的数据选择技术:
      • 任务感知(task-aware)的 Efficient Task-Similar Domain-Adaptive Continual Pre-training(ETS-DACP)
      • 任务感知的 Efficient Task-Agnostic Domain-Adaptive Continual Pretraining(ETA-DACP)
      • 这些方法仅使用 10% 的选定领域数据(即 Pythia 训练语料库的 0.8%),即可超越普通领域自适应持续预训练的性能
        • 论文使用三种指标进行数据选择:相似性、困惑度和token 类型熵(token type entropy)
        • 相似性需要任务数据作为种子数据;
        • 困惑度和 token 类型熵 两种指标是任务无关的度量
    • 针对第三个问题(回答肯定),论文在四个开放领域标准任务上进行了基准测试,发现持续预训练的 LLM 在适应领域的同时保留了其通用能力
  • 本研究的主要贡献如下:
    • 论文整理了一个包含 240 亿(24B)token 的大规模金融语料库 ,数据来源于金融数据集
    • 实验证明,通过持续预训练构建领域专用 LLM 是一种经济高效的替代方案,扩展了小型语言模型(LM)的研究发现(2020;2023b)
    • 论文提出了两种高效领域自适应持续预训练方法 ,通过数据选择策略以更低的成本超越普通持续预训练的基线性能

Methodology

  • 本节介绍用于持续预训练的金融语料库整理、背景概念以及论文提出的任务感知领域自适应持续预训练方法

Financial Corpus Curation

  • 在评估数据来源时,论文考虑了三个维度:公开可用性、许可协议和规模
  • 金融语料库的数据来源包括金融新闻 CommonCrawl 和 SEC 文件
  • 金融新闻 CommonCrawl 是通过从公开的 CommonCrawl 数据中筛选金融新闻得到的
  • 论文遵循 Pythia (2023)的去重流程(de-duplication procedure),移除重复的训练数据
  • 结合这两个来源,论文创建了一个包含 239 亿 token(165 亿单词)的数据集,详细内容见附录 G

Background

  • 领域自适应持续预训练(Domain-adaptive Continual Pre-training,DACP)
    • 传统方法 :领域专用 LLM 通常通过从头训练并使用大量领域数据构建
      • 这种方法有两个缺点:成本高昂且需要大量领域数据,这在数据较少的领域(如金融)中难以实现
    • DACP :在通用 LLM 的基础上 ,使用大规模领域特定未标注数据进行持续预训练
    • DACP 已证明能够使 LM 更好地适应领域内分布(2020;2022),并使 LLM 能够获取新知识(2022b),而无需从头训练
  • 任务自适应持续预训练(Task-Adaptive Continual Pre-training,TACP)
    • 任务自适应持续预训练(TACP)指通过持续预训练提升特定任务的性能
    • TACP 已在小型 LM(如 BERT)中进行了研究,通过使用任务的标注和未标注数据预训练 LM(2020;2019),显示出对任务性能的提升
    • TACP 使用预训练损失目标(如掩码语言建模(MLM)损失)来适应下游任务 ,而无需使用任务标签
    • 尽管任务数据通常有限 ,但 TACP 对小型 LM(如 BERT)具有显著效果
    • 论文在四个金融评估任务上对 TACP 进行了基准测试,通过使用任务的未标注数据持续预训练 LLM(不涉及任何任务标签)
  • 理解:
    • TACP 更侧重任务,一般来说数据量更小,数据必须是任务相关的
    • DACP 更侧重领域,一般来说数据量更大,数据可以是与任务无关的
    • 两者都是无标签的数据,且 DACP 中的数据 包含了 TACP 的数据

Towards an Efficient Domain-adaptive Continual Pre-training

  • TACP 的主要局限在于其仅使用未标注任务数据训练 ,导致模型过于任务特定化
  • DACP 虽然使用更大的语料库,但成本高昂
  • 为平衡这些局限,论文提出了两种方法:
    • Efficient Task-Similar Domain-Adaptive Continual Pre-training(ETS-DACP) :通过强调任务重要性来构建面向一组任务的 LLM
    • Efficient Task-Agnostic Domain-Adaptive Continual Pretraining(ETA-DACP) :从领域语料库中选择信息量最高的样本
    • ETA-DACP 更通用,不面向专门的任务

Efficient Task-Similar Domain-Adaptive Continual Pre-training(ETS-DACP)

  • ETS-DACP 通过选择与任务数据更接近的部分领域数据(图1 中的蓝色区域)来构建最优集合 \(\mathcal{D}^*\)
  • 微调 LLM 需要大量指令,而创建这些指令成本高昂
  • ETS-DACP 直接利用有限的未标注任务数据,从更大的预训练领域语料库中采样相似样本
  • 先前研究表明,在与目标领域/任务高度对齐的 token 上进行无监督训练可以提升性能(2020;2019)
  • 论文假设在未标注任务数据上持续预训练 LLM 可以通过使模型适应任务分布来提升目标任务的性能
  • 论文使用任务数据和领域语料库样本 Embedding 之间的相似性进行数据选择
    • 通过计算文档 Embedding 与任务数据 Embedding 之间的余弦相似性(使用 Spacy 模型(2017)),量化文档级任务相似性
    • 这种方法能够经济高效地衡量任务特定信息与金融语料库的对齐程度,从而实现更有针对性的预训练

Efficient Task-Agnostic Domain-Adaptive Continual Pretraining(ETA-DACP)

  • 在缺乏任务数据的情况下,论文进一步探索了任务无关的数据选择方法
  • 该方法还克服了 ETS-DACP 的局限,即避免模型过于任务特定化
  • 作者认为从预训练领域数据中选择子集时,新颖性和多样性是两个重要维度
  • 新颖性 :指 LLM 之前未见的信息
    • 论文基于 LLM 记录的困惑度来衡量文档的新颖性
    • 困惑度较高的文档在原始训练语料库中代表性较低,因此更可能包含模型的新知识,这些样本也被视为更难学习(2009),因此在持续预训练中具有较高价值
    • 降低困惑度计算成本 :直接使用 LLM 计算困惑度成本较高,因为推理需要约 25% 的训练算力
      • 为降低成本,论文使用 Pythia-70m 作为替代模型计算文档困惑度
    • 初步实验显示,Pythia-1B 和 Pythia-70m 的困惑度相关性高达 0.97,证明小模型可以作为可靠的替代品 ,实现高效的采样
  • 多样性 :捕获领域语料库中 token 类型分布的多样性
    • 多样性已被证明是语言模型课程学习中的有效特征(2016;2017)
    • 论文使用词性(part-of-speech,POS)标注获取 token 类型
    • 由于熵是衡量多样性的最佳指标之一(2009),论文使用 POS 标签的熵(2016)作为多样性度量
      • 注意:是词性(POS)标签的熵,不是 Token 的熵

Data Sampling Strategy

  • 论文提出了 ETS-DACP 和 ETA-DACP,通过主动选择相关样本来优化持续预训练的数据。数据选择有两种方式:
    • 硬采样 :根据指标百分位数对领域语料库中的样本进行排序,选择前 \(k\) 个样本以满足预训练的预算 token 数量
    • 软采样 :在此情况下,论文根据距离指标为样本分配软权重(以概率采样)
      • 以相似性指标为例,假设一个样本的相似性得分为 0.9,将其归一化后作为选择该样本的概率
      • 这种方法允许持续预训练看到图1 中蓝色区域之外的非任务样本,增加预训练数据的多样性
  • 论文使用以下三个维度选择样本:
    • 与任务数据的相似性(ETS-DACP)
    • 困惑度作为新颖性的代理(ETA-DACP-ppl)
    • token 类型熵度量的多样性(ETA-DACP-ent)
  • 为将指标值转换为采样概率 ,论文提出了一种基于分位数范围的方法
    • 首先计算每个指标的 0-100 分位数,然后将每个文档的概率设为其所在分位数
    • 这种方法有效地归一化了论文的指标,并允许聚合不同类型的指标
  • 表1 总结了论文提出的所有方法以及传统领域适应 LLM 的方法及其需求
  • ETS-DACP-com 是另一种版本的 ETS-DACP,通过将相似性、困惑度 和 熵 的平均值用于排名

Experimental Setup

Evaluation tasks

  • 金融领域任务(Finance Domain Task) :为了评估领域自适应持续预训练的效果,论文在金融任务上对模型进行了测试
    • 论文采用 FLARE 框架 (2023a) 来评估模型性能
    • FLARE 扩展了lm-evaluation-harness 的评估框架,加入了多种金融任务
    • 论文遵循其指令提示、数据划分和指标计算方法,以便进行对比
    • 论文选用了以下 4 个任务(2023b; 2023a):
      • 金融短语库(Financial Phrase Bank, FPB) :FPB 是一项针对金融新闻的情感分类任务 (2014),情感标签反映投资者对新闻的看法(正面/中性/负面)
      • FiQA 情感分析(FiQA SA) :基于金融新闻和标题的细粒度情感分类任务 (2018)
      • 头条分类(Headline) :判断金融实体相关的头条是否包含特定信息的二分类任务 (Sinha and Khandait, 2020)。每条新闻关联 9 个标签,例如“是否涉及价格”“价格上涨”“价格下跌”“价格稳定”“历史价格”和“资产”等
      • 命名实体识别(NER) :基于美国证券交易委员会(SEC)报告中信用风险评估部分的金融命名实体抽取任务,标注类别包括人名(PER)、地点(LOC)、组织(ORG)和其他(MISC)
  • 通用领域任务 :为了评估领域训练对非领域能力的影响,论文在以下通用任务上进行了测试
    • ARC (2018):衡量模型在首次任务演示后预测输出网格的能力
    • MMLU (2020):测试模型在 57 项任务上的知识水平,包括基础数学、历史和法律等
    • TruthfulQA (2021):评估模型在 38 个类别的 817 个问题上的问答能力
    • HellaSwag (2019):测试模型根据事件描述生成相关后续句子的常识能力

Baselines

Training Setup and Infrastructure

  • 论文选择了 Pythia (2023) 中的 1B 和 6.9B 参数模型作为基准预训练 LLM
    • 注:Pythia 提供了从 70M 到 12B 参数不等的多种模型规模
  • 持续预训练的配置 Derived from Pythia 的训练设置 (2023)
    • 为 FinPythia-6.9B 设置学习率为 \(1.2 \times 10^{-5}\)
    • 为 FinPythia-1B 设置学习率为 \(3 \times 10^{-5}\)(这是原始训练计划中的最小学习率)
      • 理解:小模型的学习率大一些,理论上更容易找到最优解,所以学习率可以大一些
    • 论文使用较小的学习率以缓解灾难性遗忘问题,并在训练过程中保持恒定
    • 论文采用 bf16 精度而非 Pythia 使用的 fp16,并将原始批量大小减半至 512
  • 持续预训练任务在单台 AWS P4d.24xlarge 实例上运行
  • 由于模型规模适中,论文仅通过 DeepSpeed ZeRO Stage 2 (2020) 启用数据并行,并开启激活检查点功能
  • 在 24B token 上,FinPythia-6.9B 完成预训练需要 18 天,而 FinPythia-1B 需要 3 天

Results and Analysis

Domain-adaptive Continual Pre-training,DACP

  • 为了评估金融领域任务的表现,论文将 FinPythia 与 Pythia 以及其他类似规模的开源模型进行了对比,包括 OPT-7B (2022)、BLOOM-7B (2022) 和 GPT-J-6B (Wang and Komatsuzaki, 2021)
  • 虽然论文报告了开源模型的结果,但主要结论来自 Pythia 和 FinPythia 之间的对比,因为它们的差异反映了领域自适应持续预训练的效果
  • 所有模型均在 5-shot 设置下进行评估,每个测试实例的示例均从任务的训练数据集中随机采样(遵循 FLARE (2023a) 的基准设置)
  • 结果如表2 所示
    • FinPythia-6.9B 和 FinPythia-1B 在除 FiQA SA 任务外的所有金融任务上均优于其对应的 Pythia 模型
      • 问题: FiQA SA 任务也是金融领域的(情感分析)任务,持续预训练后怎么效果还降低了?
    • DACP 将 1B 模型的平均任务性能提升了 2.8%,6.9B 模型提升了 8.3%
      • 这些结果直接证明了 DACP 对提升领域任务性能的有效性
    • 此外,Pythia-6.9B 的表现优于 OPT-7B、BLOOM-7B 和 GPT-J-6B
    • 与 BloombergGPT 的对比请参见 附录A

Efficient Domain-adaptive Continual Pre-training

  • FLARE 使用 5-shot 上下文性能评估整个训练数据,即每个测试样本在评估时会看到不同的训练样本
    • 这使得模型之间的比较更加困难,因为每个测试样本在推理过程中会看到完全不同的训练示例
    • 在现实场景中,标注数据有限,没有大量的训练数据
    • 由于训练数据集中随机选择的高方差性,作者观察到较大的标准差
  • 为了克服这种随机性并确保模型之间的公平比较,论文为每个任务从训练数据集中预留了 50 个标注样本池 ,称为“shot pool”(示例池)
    • 对于剩余的训练样本,论文移除其标签并将其用作无标签任务数据 ,用于基于任务数据的数据选择策略
    • 这种配置的采用是因为论文无法直接获取无标签任务数据
    • 通过这种设置,论文还模拟了标注数据稀缺的约束条件
    • 尽管这种方法生成了无标签任务数据,但其规模仍然较小,仅包含来自四个任务的 24万 个 token
  • 论文使用每种 Efficient DACP 方法选择了 10% 的语料库子集(注:详情见表1)
  • TACP 和 Efficient DACP 方法均运行一个 epoch,并使用与 DACP 相同的预训练配置以确保公平比较
  • 由于计算预算限制,论文使用 Pythia-1B 运行这些实验
  • 每个任务的结果通过 10 次随机种子的运行均值报告(10次随机种子,666!)
  • 评估结果如 表3 所示
    • TACP 相比原始 Pythia-1B 显示出显著的性能提升
    • 在 DACP、TACP 和 Efficient DACP 所有方法中,ETS-DACP 表现最佳 ,平均任务性能最高
      • 注:相同数量 token 下,DACP 结果比 Efficient DACP 差
    • 结果说明:无标签任务数据上进行任务自适应和领域持续预训练 LLM 的有效性
      • 这与小语言模型中的结果一致 (2020)
  • 我们可以观察到以下几点:
    • ETS-DACP(使用 10% 数据)优于 DACP(使用 100% 数据);
    • ETS-DACP 在所有三种对比方法中表现最佳 ,与结合三种度量的 ETS-DACP-com 相当;
    • ETA-DACP-ent 未使用任何任务数据(仅使用 10% 语料库训练)表现接近第二 ,明显优于普通 DACP;
    • 硬采样的 Efficient DACP 方法优于软采样方法
    • 补充观察:按照 PPL 采样的数据效果甚至低于原始 Pythia-1B ,应该是这些数据会导致模型分布偏移到模型未知的区域
  • 这些结果清楚地表明:并非所有数据对持续预训练都同等重要;
    • Efficient DACP 方法使用的所有数据(10%)都是 DACP 数据的子集
    • 由于 DACP(100%)的性能低于 ETS-DACP 或 ETA-DACP-ent,加入不相关数据和低熵数据会损害性能
      • 注:硬采样和软采样结果之间的差异进一步支持了这一观察
    • 不同任务间表现不完全相同,但可以确定的是加入不相关数据和低熵数据会损害性能(PPL 采样的数据效果不好)
    • 核心结论:领域持续预训练的数据应精心筛选
  • 需要注意的是,10% 的领域数据(2.39B token)仅占基础 Pythia 训练数据(3000 亿 token)的不到 1%
    • 结论:在持续预训练的数据筛选过程中选择性更强,可以以较低成本显著提升领域性能
    • 这些结果证明了在领域和任务(子领域)上进行持续预训练的有效性
  • 一个自然的问题是:LLM 是否会因为专注于狭窄领域而丧失其通用性? 即LLM 是否会因成为专家而牺牲通用性?
    • 论文通过测量持续预训练的 LLM 变体在 Pythia 评估的非领域任务上的性能来回答这个问题
    • 表4 展示了四个非金融标准任务的表现,论文没有观察到这四个非领域任务的性能有显著变化
      • 理解:实际上还是有微弱降低的,且 ppl 采样方式可提升通用任务的效果
      • 注:结合整体来看,ETS-DACP-com 效果是最好的,通用任务和领域任务效果均不错

Ablation on Percentage of Pre-training Data Selected

  • 论文在图2 中展示了预训练数据比例的消融实验
  • 论文发现:
    • ETS-DACP 和 ETA-DACP-ent 方法在 5% 的预训练数据时平均 F1 分数接近 59%,并在使用 10% 的预训练数据后开始下降
      • 这表明,添加信息量较少的样本会降低性能 ,因为 LLM 会学习不那么有用的示例,从而调整其分布
    • 对于 DACP,论文观察到性能持续提升
    • 困惑度选择的数据(ETA-DACP-perplexity)在 1% 时表现出高于 DACP 的性能,之后显著下降,在 5% 时达到最低性能,随后恢复
      • 通过进一步调查 1%-5% 预训练数据区域中基于困惑度选择的样本,论文发现其中包含大量缺乏自然语言文本的长表格
      • 这种分布变化可能是基于困惑度的数据选择性能下降的原因
  • 数据选择指标的比较(Comparison of Data Selection Metrics)
    • 从表1 和图2 的结果中可以看出
      • 基于任务相似性的选择效果最佳 :训练数据与任务数据的相似性对(预)训练最有益
      • 熵是第二优但有效的任务无关领域预训练数据选择技术
    • 最高熵样本基于命名实体分布选择,这些样本会包含更多领域特定实体(如名称),而低熵样本的实体类型较少
      • 论文的假设是,这些样本让 LLM 接触到更多领域知识,而低熵样本的信息量较少
    • 困惑度表现出一个有趣的现象:初始 1% 的高困惑度样本有益,但之后无益
      • 高困惑度样本对模型来说更新颖,但新颖性可能来自分布外或低质量样本
      • 在困惑度前 1% 的样本中,论文观察到高质量的金融文章,而在 1% 到 5% 的范围内,论文发现了包含长表格的样本,这些样本可能对基础模型的训练来说是噪声
    • 困惑度更易受数据噪声的影响 ,而熵度量则避免了这些噪声样本
  • 由于大多数大型数据集可能包含噪声样本 ,基于困惑度的数据选择不是一个好方法
  • 困惑度与其他两种度量(相似性 0.21,熵 0.14)之间的相关性较低 ,其他两种度量避免了选择噪声样本
  • 鉴于论文通常希望领域 LLM 在未见任务上表现良好,将预训练适应于任务无关框架更为合适
  • 核心结论:基于论文的实验,熵度量在任务无关性和下游任务性能上均表现优异

Related Work

  • 领域特定大语言模型(Domain-specific LLMs) :
    • 尽管大多数发布的 LLM 是通用模型,领域特定的 LLM 已成为有价值的对应物
      • MedPaLM 在医学语料库上训练,在医学基准测试中取得了 SOTA 结果 (2022, 2023)
      • Bloomberg 则从头开始在金融语料库上开发了金融 LLM (2023b)
    • 持续预训练提供了一种替代从头开始构建领域特定 LLM 的方法
      • Wu 等 (2023a) 通过在医学论文上持续预训练 LLaMA (2023) 构建了医学 LLM
  • 语言模型的持续预训练(Continual Pre-training of LMs)
    • 在无标签数据上持续预训练 LM 已被证明对任务性能有益 (2020; 2020)
      • Aharoni and Goldberg (2020) 指出,在相似领域上持续预训练有助于任务性能
      • 最接近论文工作的是 Data Selection for Language Models via Importance Resampling, NeurIPS 2023, Stanford
        • 他们基于与目标任务数据分布的相关性,通过重要性采样方案选择数据
    • 以上这些工作仅使用任务数据,论文还提出了一种任务无关的方法 ETA-DACP,因为任务相似性并不总是可行
    • 其他方法如 DAS (2023) 不预先选择数据,而是在训练过程中动态进行重要性采样,这使得其成本是普通预训练的 3 倍
      • 此外,DAS 使用两个模型副本之间的对比学习,增加了内存需求
    • 与所有这些在小语言模型(如 BERT/RoBERTa)上进行实验的方法不同,据论文所知,论文是第一个探索 LLM 持续预训练数据选择的工作
  • 数据选择(Data Selection)
    • 持续预训练的数据选择在选择最有价值的训练样本中起着关键作用
    • 各种独立于特定领域或任务的语言特征已被证明对数据选择和学习课程有益 (2017; 2016)
    • 在 LLM 的背景下,对于如何筛选预训练数据,尤其是持续预训练数据的理解仍然有限
    • 据论文所知,论文是第一个在 LLM 持续预训练背景下尝试数据选择的工作

Limitations

  • 巨大的计算需求(Huge Computational Requirements) :论文使用 AWS 上的 p4d.24xlarge 实例运行实验,成本非常高(每天 800-1000 美元)
    • 因此,运行这些实验非常昂贵,很少有研究人员有资源进行此类实验
    • 然而,由于论文的方法正是通过降低预训练成本来解决这一问题,作者相信论文的工作将有助于 LLM 的民主化,尽管成本仍然较高
  • 领域泛化(Domain Generalization) :论文的结果和实验完全基于金融领域
    • 这些结果可能无法推广到其他领域
    • 由于预训练实验的高昂成本,论文无法将其扩展到其他领域
  • 模型泛化(Model Generalization) :论文的数据选择方法已在 Pythia-1B 模型上测试,但可能无法推广到更大规模的模型
    • 在 7B 等更大模型上展示论文讨论的四种数据选择策略变体的计算成本过高
    • 然而,表2 中显示在 7B 模型上持续预训练的效果(+8.27%)远高于 1B 模型(+2.82%),这一结果令人鼓舞
  • 与从头训练领域 LLM 的对比(Comparison with training a Domain LLM from scratch) :
    • 尽管论文提出了一种比从头训练领域 LLM 更便宜的替代方案,但目前尚不清楚这两种策略中哪一种更适合创建领域 LLM:从头训练领域 LLM 还是持续预训练

附录A BloombergGPT 性能基准测试(Benchmark BloombergGPT’s Performance)

  • 注:BloombergGPT 是一个用于金融的大型语言模型,是彭博社(Bloomberg)和约翰霍普金斯大学联合开发的
  • 由于 BloombergGPT 使用内部数据分割进行评估,且报告指标的计算细节可能不一致,因此无法直接将其结果与论文的结果进行比较
  • 为了充分评估持续预训练的效果,论文基于 FLARE 框架对 BloombergGPT 进行基准测试
    • 具体包括评估 OPT-66B 和 GPT-NeoX-20B 在 FLARE 中的性能,并与Wu等人(2023b)报告的结果进行对比
    • 这种严格的基准测试确保了评估的公平性和全面性,为论文的持续预训练方法与从头训练的金融 LLM 的效果比较提供了有价值的见解
  • 表5展示了对比结果
    • GPT-NeoX 在两种评估框架下的平均任务性能相似,但在单个任务上的表现存在差异
      • 例如,FLARE 评估的 FiQA SA 任务的 F1 分数比 BloombergGPT 的评估结果高出 46%,而 Headline 和 NER 任务的 F1 分数则较低
    • OPT-66B 在 FLARE 上的所有4个任务结果均低于 BloombergGPT 的评估结果,平均任务性能低了20%
      • 这些结果表明,BloombergGPT 的评估结果相较于 FLARE 可能存在高估。除非 BloombergGPT 在 FLARE 上进行基准测试或其评估配置公开,否则这一比较仍无法定论

附录B Intuition behind Domain Task Performance and Data Selection

  • 本节论文将问题形式化,并从数学角度解释为何基于相似性的方法效果最佳
  • 问题形式化 :给定一个未标注的领域预训练语料库 \(\mathcal{U}\)(图1中的绿色区域),接下来分为两种场景:是否存在未标注的任务语料库
    • 第一种场景是存在任务语料库(单个或多个任务)\(\mathcal{T}\)(图1中的红色区域)
    • 通常,任务语料库是领域语料库的子集,即 \(\mathcal{T} \subset \mathcal{U}\),且 \(|\mathcal{U}| \gg |\mathcal{T}|\)
    • 数据选择的目标是从 \(\mathcal{U}\) 中选择一个子集 \(\mathcal{D}\),以最有助于预训练 LLM 模型
    • 论文假设所选领域语料库子集远大于任务语料库,即 \(|\mathcal{D}| \gg |\mathcal{T}|\)
    • 数据选择问题可以形式化为选择最优子集 \(\mathcal{D}^* \subset \mathcal{U}\):
      $$
      \mathcal{D}^* = \mathop{argmin}_{\mathcal{D} \subset \mathcal{U} } \mathbb{E}_{x \in \mathcal{T} }[\mathcal{L}_t(y|f(\theta^*;x))]
      $$
      • \(f(\theta;\cdot)\) 是参数为 \(\theta\) 的 LLM
      • \(y\) 是任务输出,\(x\) 是目标任务数据 \(\mathcal{T}\) 的输入
      • \(\mathcal{L}_t\) 是目标任务损失或指标
      • \(\theta^*\) 通过预训练任务计算:
        $$
        \theta^* = \operatorname*{argmin}_{\theta} \mathbb{E}_{x_u \in \mathcal{D} }[\mathcal{L}_{\text{pre-train} }(f(\theta;x_u))]
        $$
        • \(\mathcal{L}_{\text{pre-train} }\) 是预训练损失
        • \(x_u\) 是 \(\mathcal{D}\) 中的未标注样本
  • 论文的领域自适应持续预训练可以从无监督领域自适应(2016)的角度理解
    • 源数据是大型无监督领域语料库,目标数据是目标任务数据
    • 通过预训练,论文无法直接控制与任务训练数据的对齐;论文的思路是通过在预训练中与领域对齐,使LLM与任务对齐
    • 这一直觉得到了LLM预训练在开放领域任务上提升性能的证据支持
  • 论文使用(2016;2010)的泛化界,因为论文的问题与无监督领域自适应类似
    • 给定假设空间为 \(\mathcal{H}_p\),其中 \(f \in \mathcal{H}_p\);
    • 在源数据 \(\mathcal{D}\) 和任务数据 \(\mathcal{T}\) 上的泛化误差分别为 \(\epsilon_{\mathcal{D} }\) 和 \(\epsilon_{\mathcal{T} }\)
    • 泛化界可以表示为:
      $$
      \epsilon_{\mathcal{T} }(f) \leq \epsilon_{\mathcal{D} }(f) + \frac{1}{2} d_{\mathcal{H}_p \Delta \mathcal{H}_p}(\mathcal{D}, \mathcal{T}) + \mathcal{C}
      $$
      • 其中,\(d_{\mathcal{H}_p \Delta \mathcal{H}_p}\) 是 \(\mathcal{D}\) 和 \(\mathcal{T}\) 之间的分布差异距离,由(Ganin等,2016)界定:
        $$
        d_{\mathcal{H}_p \Delta \mathcal{H}_p}(\mathcal{D}, \mathcal{T}) \leq 2 \sup_{\alpha(h) \in \mathcal{H}_d} [\alpha(h) - 1]
        $$
        • \(\alpha(h)\) 是最优领域分类器
        • \(\mathcal{H}_d\) 是领域分类器的假设空间
  • Zhao等(2017)证明,当领域分类器具有随机预测(达到最高熵状态)时,差异距离 \(d_{\mathcal{H}_p \Delta \mathcal{H}_p}(\mathcal{D}, \mathcal{T})\) 最小
  • 作者认为,当两个领域样本的表示最相似时,领域分类器无法区分两个数据集的分布,从而实现这一状态。
  • 基于这一直觉,我们可以使用与任务数据集 \(\mathcal{T}\) 表示最相似的样本选择策略
  • 论文使用 Embedding 相似性作为数据集相似性的代理,因为在大型语料库中获取最优表示具有挑战性且不切实际

附录C Qualitative Evaluation

  • 表6 展示了 Pythia-6.9B 和 FinPythia-6.9B 生成的定性示例
  • 通过观察发现,FinPythia-6.9B 在回答金融相关问题时能够生成更相关且详细的响应
    • 例如,在第一个示例中,Pythia 对金融领域术语“SPAC”一无所知并开始产生幻觉,而 FinPythia 给出了 SPAC 的正确定义
    • 其他三个示例也表现出相同的趋势
  • 这些结果表明,持续预训练帮助 FinPythia-6.9B 获得了 Pythia 所缺乏的领域知识

附录D Train and Test Loss of Continual Pre-training Methods

  • 为了监控预训练过程,论文从金融语料库中随机抽取 0.1% 作为金融测试数据集,并在 Pile 测试数据集上评估模型
    • 理解:相当于 金融数据集 + Pile 数据集(开放领域)同时做测试
    • 注:Pile 数据集是一个用于大语言模型训练的多样性大规模文本语料库,由 22 个不同的高质量子集构成,包括现有的和新构建的,许多来自学术或专业来源。这些子集包括 Common Crawl、Wikipedia、OpenWebText、ArXiv、PubMed 等(Pile 数据集总计规模大小有825GB 英文文本)
  • 图3 展示了 FinPythia-6.9B 的损失轨迹(图中的训练损失通过 50 个优化步骤的移动平均平滑处理)
    • 论文观察到,在持续预训练的早期阶段,金融测试(Fin test)损失急剧下降,随后逐渐趋于饱和,这与从头训练的损失轨迹类似(2023b;)
    • 损失日志表明,领域自适应持续预训练成功地将 Pythia 适配到金融领域,同时 Pile 测试(Pile test)损失仅有轻微增加
  • 图5 展示了论文的高效 DACP 方法在金融领域损失(Fin Test)和开放领域损失(Pile Loss)上的表现
    • ETS-DACP-com(硬采样)的 Fin Test 损失最低
      • 因为它结合了任务知识以及金融语料库中高熵/高困惑度的样本(这种选择差异如 图4 所示)
    • 软采样方法的所有 Fin Test 损失相似
      • 因为论文对整个金融语料库空间进行采样,使模型能够看到语料库的完整空间(图1中的绿点),类似于图4(b)
    • 硬采样的 ETS-DACP 上 Fin Test 损失和 Pile Test 损失较高
      • 因为它局限于任务分布(图4(a)中的蓝色区域),而任务无关方法则覆盖了更广泛的金融语料库分布(图4(b))
    • ETA-DACP-ent 和 ETA-DACP-ppl 的损失曲线相似
      • 因为它们都从整个金融语料库中采样
    • ETS-DACP-com 的损失高于这两者但低于 ETS-DACP
      • 因为它是三种采样技术的混合
  • ETS-DACP 在开放领域 Pile Loss 上的损失最高
    • 然而,论文并未观察到 ETS-DACP 在开放领域任务上的性能显著下降(注:其实是降低了的,-2.85% 不算太低了吧)
  • ETA-DACP-ent 和 ETA-DACP-ppl 的损失高度相关(各个测试集上表现都差不多),而 ETA-DACP-ppl 在论文的任务上表现始终明显较差
    • 这说明:实际任务性能与损失曲线之间相关性较低(损失函数不能作为衡量实际任务性能的唯一指标),使用未标注数据的验证/测试损失作为任务性能的代理(proxy)并不理想(至少在该领域中如此)
      • 这与(Liu等,2023)关于任务性能与预训练损失低相关性的观察一致

附录E 困惑度、相似性与多样性(Perplexity, Similarity, and Diversity)

  • 本节论文深入分析金融语料库中困惑度、相似性和多样性的分布。论文发现,这三个指标均呈现高度偏态分布。具体而言,如图7顶部所示,相似性指标呈现双峰模式,可能是由于金融语料库中存在两个不同的数据源
  • 图6 展示了三个指标的 Spearman 秩相关性
    • 三个指标的相关性较低,表明通过这三个指标排序选择的数据子集重叠度不高
    • 这启发论文创建 ETS-DACP-com 方法,将三个指标结合起来以平衡不同维度
  • 图8 展示了硬采样下各高效 DACP 方法所选子集的三个指标分位数分布

附录F ETS-DACP-com vs ETS-DACP

  • ETS-DACP-com 有效平衡了领域特定 LLM 和任务特定 LLM 的构建
    • 为证明其有效性,论文使用相似性、知识新颖性和多样性的平均分位数作为采样权重,通过加权采样选择 10% 和 20% 的金融语料库(无放回)构建训练数据
  • 图8 展示了金融语料库各子集的平均样本分位数
  • 作者认为,对三个指标的分位数取简单平均可以在三个维度之间实现良好平衡——每个子集的三个维度平均分位数处于相近范围
  • 相比之下,ETS-DACP 的子集表现出更高的困惑度和较低或中等的熵,表明未标注任务数据包含新知识但多样性较低
  • 对于 ETA-DACP-ppl 和 ETA-DACP-ent,样本在其他两个维度上分布均匀

附录G Financial Dataset Curation

  • 常见的金融语料库包括SEC文件(2018)、电话会议记录(2019)、分析师报告、金融推文(2022)、金融新闻(2018)等
  • 论文使用来自Financial News CommonCrawl和SEC文件的金融新闻和文件构建金融领域语料库,具体步骤如下:
  • Financial News CommonCrawl [13.2B词,83.5%]
    • 论文通过预处理 AWS S3 上公开的 2016年 至 2022年 News CommonCrawl 数据转储,构建英文金融新闻数据集
    • 为从大量新闻数据中识别金融新闻文章,论文采用两种过滤机制:域名过滤和 URL 关键词过滤
    • 首先,论文建立了一个全面的金融新闻网站域名组合,例如 CNBC,保留这些来源的新闻文章,它们构成了金融语料库的主要部分
    • 其次,为从一般新闻媒体中捕获金融文章,论文观察到许多媒体为商业、经济或金融新闻设置了专门板块或子域名(例如Fox Business)。论文采用基于关键词的方法有效识别这些金融文章
    • 过滤过程确保选择适合金融领域持续预训练的语料库
  • SEC文件 [3.3B words,16.5%] :
    • 美国上市公司需定期提交财务报表
    • 美国证券交易委员会(SEC)通过电子数据收集、分析和检索(Electronic Data Gathering, Analysis, and Retrieval,EDGAR)系统公开这些文件
    • 论文纳入了 1993年 至 2022年 的 10K 文件,并使用 Loukas等人(2021)的包进行解析和预处理
    • 此外,论文删除了少于 20 words 的报告部分以提升语料库质量
  • 用于过滤金融新闻的域名列表(List of Domains used to Filter Financial News) :
    • 论文使用以下关键词识别子域名和 URL:economy、market、finance、money、wealth、invest、business、industry

RS——COBRA

Cascaded Organized Bi-Represented generAtive retrieval, COBR

  • 参考链接:
    • (COBRA)Sparse Meets Dense: Unified Generative Recommendations with Cascaded Sparse-Dense Representations, 202503, Baidu

整体思路

  • 现有召回方案的问题 :生成模型能够直接从用户交互序列中预测 item ID,但现有方法难以达到 sequential Dense 召回技术的建模精度(原因是量化、序列建模等阶段的分离导致严重的信息损失),整合生成式与 Dense 召回方法仍是一个关键挑战
  • 论文提出一种生成式召回方法COBRA(Cascaded Organized Bi-Represented generAtive retrieval):
    • 核心亮点 :通过级联过程(Cascading Process)创新性地整合 Sparse 语义 ID 与 Dense 向量,提升召回准确性和多样性
    • 具体思路 :交替生成 Sparse 语义 ID 与 Dense 向量这两种表示,先生成 Sparse ID ,再将其作为条件辅助生成 Dense 向量(Sparse ID 是 Dense 向量的生成条件)
      • 训练时 :端到端训练实现了 Dense Representation 的动态优化,同时捕捉 user-item 交互中的语义信息与协同信号
      • 推理时 :COBRA 采用 Coarse-to-Fine的策略,首先生成 Sparse ID,再通过生成模型将其细化为 Dense 向量
    • 论文还提出了 BeamFusion 方法,结合 Beam Search 与最近邻分数(Nearest Neighbor Scores)以提升推理灵活性与推荐多样性
  • 实验 :离线+在线实验

一些讨论

  • 序列推荐(Sequential Recommendation)方法,利用用户交互的时序特性提升推荐性能。SASRec 和 BERT4Rec 等模型证明了序列模型在捕捉用户行为模式上的有效性
  • 生成模型可直接基于用户行为序列预测目标 item(与传统序列推荐方法不同)
    • 生成模型能处理复杂的 user-item 交互,并具备推理和小样本学习(few-shot learning)等新兴能力,显著提升推荐准确性与多样性
    • TIGER 是生成式推荐领域的开创性工作。如图1(左下)所示,TIGER利用残差量化变分自 Encoder (RQ-VAE)将 item 内容特征编码为分层语义 ID,使模型能在语义相似 item 间共享知识和 Embedding(不是独立的 item Embedding)
    • 除 TIGER 外,其他方法也探索了生成模型与推荐系统的融合
      • LC-Rec 通过一系列对齐任务将语义与协同信息结合;
      • ColaRec 从预训练推荐模型中获得(deriving)生成式标识符,整合协同过滤信号与内容信息;
      • IDGenRec 利用大语言模型生成独特、简洁且语义丰富的文本标识符,在零样本(zero-shot)场景中展现出强大潜力
  • 现有生成式推荐方法的挑战 :(相比序列 Dense 召回方法的挑战)
    • 问题 :序列 Dense 召回方法依赖每个 item 的 Dense 嵌入,具有高准确性和鲁棒性,但需要大量存储和计算资源;生成式方法高效,却常难以建模细粒度相似性
      • 理解:细粒度相似性指的是一些 item 的统计信息相似,但是 ID 完全不想关?
    • 解决思路 :为有效结合两种召回范式的优势,论文提出 COBRA(协同生成式与 Dense 召回的框架),图1(右)展示了 COBRA 中级联 Sparse-Dense Representation 的结构
      • 该方法通过交替生成 Sparse ID 与 Dense 向量的级联生成式召回框架,缓解了基于 ID 方法固有的信息损失
    • 具体实现 :COBRA 的输入是由用户交互历史中 item 的 Sparse ID 和 Dense 向量组成的级联表示(Cascaded Representations)序列
      • 训练时,Dense Representation 通过端到端的对比学习目标进行学习
        • 先生成 Sparse ID 再生成 Dense Representation ,降低了 Dense Representation 的学习难度并促进两种表示间的相互学习
      • 推理时,COBRA 采用 Coarse-to-Fine 生成过程:
        • 先生成 Sparse ID 以捕获 item 的高层类别特征 ,随后将该 ID 追加至输入序列并反馈至模型中以预测捕捉细粒度细节的 Dense 向量 ,从而实现更精准的个性化推荐
      • 此外,为确保灵活推理,论文引入 BeamFusion 采样技术,结合 Beam Search 与最近邻分数,确保召回 item 的多样性可控
        • 与仅依赖 Sparse ID 的 TIGER 不同,COBRA 同时利用了 Sparse 与 Dense Representation 的优势
  • 论文的主要贡献如下:
    • 提出 COBRA 框架 :交替生成 Sparse 语义 ID 与 Dense 向量,将 Dense Representation 融入 ID 序列,补充了基于 ID 方法的信息损失;以 Sparse ID 为条件生成 Dense 向量,降低了 Dense Representation 的学习难度
    • 端到端训练的可学习 Dense Representation :COBRA 利用原始 item 数据作为输入,通过端到端训练生成 Dense Representation。不同于静态嵌入,COBRA 的 Dense 向量是动态学习的,能捕捉语义信息与细粒度细节
    • Coarse-to-Fine 生成过程 :推理时,COBRA 先生成 Sparse ID,再将其反馈至模型生成优化的 Dense Representation,提升向量的细粒度。此外,论文提出 BeamFusion 以实现灵活多样的推荐
    • 实验 :离线+在线

相关工作(直译)

  • 序列 Dense 推荐 :序列 Dense 推荐系统利用用户交互序列学习用户与 item 的 Dense Representation [8, 15, 21],捕捉长期偏好与短期动态[25, 51, 22, 10]
    • 早期模型如 GRU4Rec[14]使用循环神经网络(RNN)[49]捕捉用户行为的时间依赖性
    • Caser[39]将序列视为“图像”,应用卷积神经网络(CNN)[36]提取空间特征
    • Transformer 相关模型如 SASRec[18]和 BERT4Rec[37]显著推动了该领域发展,这些模型采用自注意力机制捕捉复杂用户行为,其中 SASRec 专注于自回归任务,BERT4Rec侧重双向上下文建模
    • PinnerFormer[30]和 FDSA[52]等更先进的模型通过利用 Transformer 进行长期行为建模与特征整合,进一步提升了用户表示
    • ZESRec[8]、UniSRec[15]和 RecFormer[21]等近期工作通过融合文本特征和对比学习技术,强调了跨领域可迁移性,RecFormer 尤其通过双向 Transformer 统一了语言理解与序列推荐
  • 生成式推荐 :生成模型在各领域的普及推动了推荐系统从判别式向生成式模型的范式转变[17, 44, 26, 27, 42, 46]。生成模型直接生成 item 标识符而非计算每个 item 的排序分数[11, 34, 38, 54]
    • P5[11]将多种推荐任务转化为自然语言序列,通过独特训练目标和提示为推荐补全提供通用框架
    • TIGER[33]首创将生成式召回应用于推荐,利用残差量化自 Encoder 创建语义丰富的索引标识符,随后由基于Transformer的模型从用户历史中生成 item 标识符
    • LC-Rec[53]通过额外对齐任务将语义标识符与协同过滤技术结合以增强效果
    • IDGenRec[38]将生成式系统与大语言模型结合,生成独特且语义 Dense 的文本标识符,在零样本场景中表现优异
    • SEATER[34]通过平衡的k叉树结构索引保持语义一致性,并结合对比与多任务学习优化
    • ColaRec[45]对齐基于内容的语义空间与协同交互空间以提升推荐效果
    • 以上现有的生成式方法仍面临挑战,例如:
      • 基于离散 ID 的方法:可能缺乏细粒度细节并存在信息损失 ,限制其准确捕捉用户偏好的能力[48]
      • 依赖自然语言的方法:可能难以将语言表达与推荐任务需求对齐 ,导致性能欠佳[25]
    • 为解决以上这些问题,LIGER[48]提出结合生成式与 Dense 召回优势的混合模型,同时生成 Sparse ID 与 Dense Representation ,将其视为同一对象粒度的互补表示
      • 该混合方法在一定程度上缩小了生成式与 Dense 召回间的差距;
      • 但 LIGER 的 ID 与 Dense Representation 共享相同粒度,且 Dense Representation 是预训练且固定的。因此,如何更灵活地结合生成式与 Dense 召回仍是待探索的开放问题

COBRA框架方法

  • 本节介绍 COBRA(Cascaded Organized Bi-Represented generAtive Retrieval)框架,该框架通过级联 Sparse-Dense Representation 和 Coarse-to-Fine 生成过程提升推荐性能。图2展示了 COBRA 的整体框架

Sparse-Dense Representation

Sparse 表示
  • COBRA 使用残差量化变分自 Encoder (RQ-VAE)生成 Sparse ID,灵感来源于 TIGER[33]的方法。对于每个 item ,提取其属性生成文本描述,将其嵌入 Dense 向量空间并量化生成 Sparse ID。这些 ID 捕捉 item 的类别本质,为后续处理奠定基础
  • 注:为简洁起见 ,后续方法描述假设 Sparse ID 仅包含单层,但该方法可轻松扩展至多层场景
Dense Representation
  • 端到端可训练的 *Dense Encoder * :用于对 item 文本内容进行编码(可捕捉细粒度的属性信息)
    • 每个 item 的属性被展平为文本句子,前缀为 [CLS] token,并输入基于 Bidirectional Transformer 的文本 Encoder Encoder
    • Dense Representation \(\mathbf{v}_{t}\) 从 [CLS] token 对应的输出中提取,捕捉 item 文本内容的细粒度细节
  • 如图2下半部分所示,论文加入位置 Embedding 和类型 Embedding 以建模序列中 token 的位置和上下文。这些 Embeddings 以加法方式与 token Embedding 结合,增强模型区分不同 token 及其在序列中位置的能力
    • 注:文中未指明类型(type) Embedding是什么
Cascaded Representation
  • 思路 :Cascaded Representation(级联表示)将 Sparse ID 和 Dense 向量整合到统一的生成模型中
  • 具体方案 :对于每个 item,论文将其 Sparse ID \( ID_{t}\) 和 Dense 向量 \(\mathbf{v}_{t}\) 组合为级联表示 \(( ID_{t},\mathbf{v}_{t})\)
    • 该方法结合两种表示的优势,提供更全面的 item 表征:Sparse ID 通过离散约束提供稳定的类别基础,而 Dense 向量保持连续特征分辨率,确保模型同时捕捉高层语义和细粒度细节

序列建模(Sequential Modeling)

概率分解(Probabilistic Decomposition)
  • 思路 :目标 item 的概率分布建模分为两个阶段,利用 Sparse 和 Dense Representation 的互补优势
  • 具体方案 :COBRA 不直接基于历史交互序列 \(S_{1:t}\) 预测 next item \(s_{t+1}\),而是分别预测 Sparse ID \( ID_{t+1}\) 和 Dense 向量 \(\mathbf{v}_{t+1}\):
    $$P( ID_{t+1},\mathbf{v}_{t+1}|S_{1:t})=P( ID_{t+1}|S_{1:t})P(\mathbf{v}_{t+1}| ID_{t+1},S_{1:t})$$
    • \(P( ID_{t+1}|S_{1:t})\) 表示基于历史序列 \(S_{1:t}\) 生成 Sparse ID \( ID_{t+1}\)的概率,捕捉下一个 item 的类别本质;
    • \(P(\mathbf{v}_{t+1}| ID_{t+1},S_{1:t})\) 表示在给定 Sparse ID \( ID_{t+1}\) 和历史序列 \(S_{1:t}\) 下生成 Dense 向量 \(\mathbf{v}_{t+1}\) 的概率,捕捉下一个 item 的细粒度细节
    • 这种分解使 COBRA 能够同时利用 Sparse ID 提供的类别信息和 Dense 向量捕捉的细粒度细节
    • 注:论文中未明确,但根据上下文信息可以推测 \(s_{t}\) 的定义为 \(s_{t} = ( ID_{t},\mathbf{v}_{t})\)
统一生成模型的序列建模(Sequential Modeling with a Unified Generative Model)
  • 使用基于 Transformer 架构的统一生成模型做序列建模,有效捕捉 user-item 交互中的序列依赖关系:
    • Transformer 接收级联表示的输入序列,每个 item 由其 Sparse ID 和 Dense 向量表示
  • Sparse ID 嵌入 :Sparse ID \( ID_{t}\)通过嵌入层转换为 Dense 向量空间:\(\boldsymbol{e}_{t}=\textbf{Embed}( ID_{t})\)。该 Embedding \(\boldsymbol{e}_{t}\) 与 Dense 向量 \(\mathbf{v}_{t}\) 拼接形成模型在每一步的输入:
    $$\mathbf{h}_{t}=[\boldsymbol{e}_{t};\mathbf{v}_{t}]$$
  • Transformer建模 :论文的Transformer Decoder 模型包含多层,每层具有自注意力机制和前馈网络
    • 如图2上半部分所示, Decoder 的输入序列由级联表示组成
    • 为增强序列和上下文信息建模,这些表示加入了 item 位置和类型 Embedding
    • 为简洁起见,后续数学公式聚焦于级联序列表示,省略位置和类型嵌入的显式 token
    • Decoder 处理这一增强的输入,生成用于预测后续 Sparse ID 和 Dense 向量的上下文表示
  • Sparse ID 预测 :给定历史交互序列\(S_{1:t}\),为预测 Sparse ID \( ID_{t+1}\),Transformer的输入序列为:
    $$S_{1:t}=[\mathbf{h}_{1},\mathbf{h}_{2},\ldots,\mathbf{h}_{t}]=[\boldsymbol{e}_{1},\mathbf{v}_{1},\boldsymbol{e}_{2},\mathbf{v}_{2},\ldots,\boldsymbol{e}_{t},\mathbf{v}_{t}]$$
    • 其中每个 \(\mathbf{h}_{i}\) 是第 \(i\) 个 item 的 Sparse ID 嵌入和 Dense 向量的拼接
    • Transformer 处理该序列生成上下文表示,随后用于预测下一个 Sparse ID 和 Dense 向量。Transformer Decoder 处理序列 \(S_{1:t}\),生成向量序列\(\mathbf{y}_{t}=\textbf{TransformerDecoder}(S_{1:t})\)。Sparse ID 预测的logits通过下式得到:
      $$\mathbf{z}_{t+1}=\textbf{SparseHead}(\mathbf{y}_{t})$$
      • 其中 \(\mathbf{z}_{t+1}\) 表示预测 Sparse ID \( ID_{t+1}\) 的logits
  • Dense 向量预测 :为预测 Dense 向量\(\mathbf{v}_{t+1}\),Transformer的输入序列为:
    $$\tilde{S}_{1:t}=[S_{1:t},\boldsymbol{e}_{t+1}]=[\boldsymbol{e}_{1},\mathbf{v}_{1},\boldsymbol{e}_{2},\mathbf{v}_{2},\ldots,\boldsymbol{e}_{t},\mathbf{v}_{t},\boldsymbol{e}_{t+1}]$$
    • Transformer Decoder 处理\(\tilde{S}_{1:t}\),输出预测的 Dense 向量:
      $$\hat{\mathbf{v} }_{t+1}=\textbf{TransformerDecoder}(\tilde{S}_{1:t})$$

端到端训练(End-to-End Training)

  • 在 COBRA 中,端到端训练过程旨在联合优化 Sparse 和 Dense Representation 预测。训练过程由组合损失函数控制,该函数结合了 Sparse ID 预测损失和 Dense 向量预测损
  • Sparse ID 预测损失 \(\mathcal{L}_{\textrm{Sparse} }\) 确保模型能够基于历史序列 \(S_{1:t}\) 熟练预测下一个 Sparse ID:
    $$\mathcal{L}_{\textrm{Sparse} }=-\sum_{t=1}^{T-1}\log\left(\frac{\exp(\mathbf{z}_{t+1}^{ ID_{t+1} })}{\sum_{j=1}^{C}\exp(\mathbf{z}_{t+1}^{j})}\right)$$
    • \(T\) 是历史序列的长度
    • \( ID_{t+1}\) 是时间步 \(t+1\) 交互 item 对应的 Sparse ID
    • \(\mathbf{z}_{t+1}^{ ID_{t+1} }\) 表示 Transformer Decoder 在时间步 \(t+1\) 生成的真实 Sparse ID \( ID_{t+1}\)的预测 logit
    • \(C\) 表示所有 Sparse ID 的集合
    • 注:Sparse ID 预测损失本质是个交叉熵损失函数
  • Dense 向量预测损失 \(\mathcal{L}_{\textrm{Dense} }\) 聚焦于优化 Dense 向量,使其能够区分相似和不相似的 item,损失定义为:
    $$\mathcal{L}_{\textrm{Dense} }=-\sum_{t=1}^{T-1}\log\frac{\exp(\cos(\hat{\mathbf{v} }_{t+1}\cdot\mathbf{v}_{t+1}))}{\sum_{item_{j}\in\textrm{Batch} }\exp(\cos(\hat{\mathbf{v} }_{t+1},\mathbf{v}_{item_{j} }))}$$
    • \(\hat{\mathbf{v} }_{t}\) 是预测的 Dense 向量
    • \(\mathbf{v}_{t}\) 是正样本的真实 Dense 向量
    • \(\mathbf{v}_{j}\) 表示批次内 item 的 Dense 向量
    • \(\cos(\hat{\mathbf{v} }_{t+1}\cdot\mathbf{v}_{t+1})\) 表示预测和真实 Dense 向量之间的余弦相似度,较高的余弦相似度表明向量在方向上更相似,这对于准确的 Dense 向量预测是理想的
    • Dense 向量由端到端可训练的 Encoder Encoder生成,该 Encoder 在训练过程中优化,确保 Dense 向量动态调整并适应推荐任务的特定需求
    • 注:Dense 向量预测损失本质是个 InfoNCE
  • 总体损失函数为:
    $$\mathcal{L}=\mathcal{L}_{\textrm{Sparse} }+\mathcal{L}_{\textrm{Dense} }$$
  • 双目标损失函数实现了平衡的优化过程,模型在 Sparse ID 的引导下动态优化 Dense 向量。这种端到端训练方法同时捕捉高层语义和特征级信息,联合优化 Sparse 和 Dense Representation 以获得卓越性能
  • 问题:图2中的 上层 Bidirectional Transformer 和 (Casual) Transformer Decoder 是同时训练的吗?
    • 看起来是的,这也是论文所说的端到端训练

Coarse-to-Fine Generation

  • 在推理阶段,COBRA 实现 Coarse-to-Fine 生成过程,依次生成 Sparse ID 并级联优化 Dense 向量(如图3所示)
  • COBRA 中的 Coarse-to-Fine 生成过程旨在捕捉 user-item 交互的类别本质和细粒度细节。该过程包含两个主要阶段:
  • Sparse ID 生成 :给定用户序列 \(S_{1:T}\),论文利用 Transformer Decoder 建模的 ID 概率分布 \(\hat{\textit{ ID } }_{T+1}\sim P(t_{T+1}|S_{1:T})\),并采用 Beam Search 算法得到前 \(M\) 个 ID:
    $$\{\hat{\textsf{ ID } }^{k}_{T+1}\}_{k=1}^{M}=\textrm{BeamSearch}(\textbf{TransformerDecoder}(\textrm{S}_{1:T}),M)$$
    • \(k\in\{1,2,\ldots,M\}\)
    • 每个生成的 ID 关联一个 Beam 分数 \(\phi_{\hat{\textsf{ ID } }^{k}_{T+1} }\)
  • Dense 向量精细化(Dense Vector Refinement) :每个生成的 Sparse ID \(\hat{\textsf{ ID } }^{k}_{T+1}\) 随后转换为嵌入并追加到先前的级联序列嵌入 \(\textrm{S}_{1:T}\) 中,然后生成对应的 Dense 向量 \(\mathbf{\hat{v}}^{k}_{T+1}\):
    $$\mathbf{\hat{v}}^{k}_{T+1}=\textbf{TransformerDecoder}(\{\textrm{S}_{1:T},\textbf{Embed}(\hat{\textsf{ ID } }^{k}_{T+1})\})$$
  • ANN 搜索候选 item :对每一个 Sparse ID \(\hat{\textsf{ ID } }^{k}_{T+1}\),论文使用近似最近邻(ANN)搜索检索前 \(N\) 个候选 item :
    $$\mathcal{A}_{k}=\textrm{ANN}(\hat{\textsf{ ID } }^{k}_{T+1},C(\hat{\textsf{ ID } }^{k}_{T+1}),N)$$
    • \(C(\hat{\textsf{ ID } }^{k}_{T+1})\) 是与 Sparse ID \(\hat{\textsf{ ID } }^{k}_{T+1}\) 关联的候选 item 集合
    • \(N\) 表示要召回的 top item 数量
    • 理解:这里的 ANN 搜索是为 Beam Search 生成的每一个 \(k\),即 Sparse ID \(\hat{\textsf{ ID } }^{k}_{T+1}\) 都生成一个候选集合 \(\mathbf{\hat{v}}^{k}_{T+1}\)
    • 注:这里原论文未给出 ANN 的具体方法(是否与 Dense 向量 \(\mathbf{\hat{v}}^{k}_{T+1}\) 有关还未知)
  • BeamFusion 机制合并结果 :为实现精度和多样性的平衡,论文为每个 Sparse ID 对应的 item 设计全局可比分数。该分数能反映不同 Sparse ID 之间的差异以及同一 Sparse ID 下 item 间的细粒度差异。为此,论文提出 BeamFusion 机制:
    $$\Phi^{(\mathbf{\hat{v}}^{k}_{T+1},\hat{\textsf{ ID } }^{k}_{T+1},\mathbf{a})}=\textrm{Softmax}(\tau\phi_{\hat{\textsf{ ID } }^{k}_{T+1} })\times\textrm{Softmax}(\psi\cos(\mathbf{\hat{v}}^{k}_{T+1},\mathbf{a}))$$
    • \(\mathbf{a}\) 表示候选 item(理解:文章未明确说明,但通过上下文可推测:\(\mathbf{a} \in \mathcal{A}_{k}\))
    • \(\tau\) 和 \(\psi\) 是系数
    • \(\phi_{\hat{\textsf{ ID } }^{k}_{T+1} }\)表示 Beam Search 过程中获得的 Beam 分数
  • 最后,基于 BeamFusion 分数对所有候选 item 排序 ,并选择前 \(K\) 个 item 作为最终推荐:
    $$\mathcal{R}=\textrm{TopK}\left(\bigcup_{k=1}^{M}\mathcal{A}_{k},\Phi,K\right)$$
    • \(\mathcal{R}\) 表示最终推荐集合
    • TopK 表示选择具有最高 BeamFusion 分数的前 \(K\) 个 item 的操作

相关实验(离线+在线)

  • 数据:公开数据集 + 工业数据集
  • 指标:重点关注 COBRA 在提升推荐准确性和多样性方面的能力
  • 实验方式:离线 + 在线

公开数据集实验

数据集与评估指标
  • 采用 Amazon 产品评论数据集[13,29](注:该数据集是推荐任务的经典基准)
  • 该数据集包含从 1996年5月 至 2014年9月 收集的产品评论及相关元数据。论文选取了三个特定子集:”Beauty”、”Sports and Outdoors”和”Toys and Games”
  • 对于每个子集,论文利用标题、价格、类别和描述等属性构建 item 嵌入。为确保数据质量,论文应用了5-core过滤处理,剔除了交互次数少于5次的 item 和用户。数据集统计信息详见表1
  • 为评估推荐准确性和排序质量,论文采用 Recall@K(准确性)和 NDCG@K(排序质量)指标,其中 \(K=5\) 和 \(K=10\)
基线方法
  • 为全面评估 COBRA 的性能,论文将其与以下 SOTA 推荐方法进行比较(这些方法代表了多种推荐技术,包括序列 Dense 推荐和生成式推荐):
    • P5[11]:将推荐任务转化为自然语言序列
    • Caser[39]:使用卷积层捕捉序列模式
    • HGN[28]:通过分层门控网络建模用户长短期兴趣
    • GRU4Rec[14]:利用门控循环单元建模用户行为
    • SASRec[18]:基于 Transformer 的模型,用于捕捉长期依赖关系
    • FDSA[52]:自注意力模型,用于 item 特征转移
    • BERT4Rec[37]:结合双向自注意力与掩码目标函数
    • S³-Rec[55]:通过对比学习提升推荐效果
    • TIGER[33] :使用 RQ-VAE 编码 item 内容特征,并利用 Transformer 进行生成式召回
实现细节
  • 论文采用与 TIGER 类似的语义 ID 生成方法,但与其配置不同,论文使用 3 层语义 ID 结构,每层对应 Codebook 大小为32
  • 这些语义 ID 通过 T5 模型生成
    • 理解:这里原文表达有误,应该是需要从 item 文本描述中提取 Embedding,再进入 RQ-VAE 编码为离散 Code(也就是语义 ID),TIGER 中也使用了 Sentence-T5 作为第一步的文本编码器的
  • COBRA 采用轻量级架构实现,包含 1 层 Encoder 和 2 层 Decoder
结果
  • 如表2所示,COBRA 在各项指标上均超越所有基线模型

工业规模实验(Industrial-scale Experiments)

数据集与评估指标
  • 在百度工业数据集上进行实验,该数据集源自百度广告平台的用户交互日志,涵盖列表页、双栏和短视频等多种推荐场景
  • 数据集包含500万用户和200万广告,全面反映了真实世界的用户行为和广告内容
  • 广告和广告主通过标题、行业标签、品牌和活动文本等属性表示,这些属性被处理并编码为两层 Sparse ID 和 Dense 向量,捕捉粗粒度和细粒度语义信息。这种双重表示使 COBRA 能够有效建模用户偏好和 item 特征
  • 数据集分为两部分: \(D_{\text{train} }\) 和 \(D_{\text{test} }\)
    • 训练集 \(D_{\text{train} }\) 包含前60天的用户交互日志,覆盖该期间的推荐内容交互
    • 测试集 \(D_{\text{test} }\) 构建自 \(D_{\text{train} }\) 之后一天的日志,作为评估模型性能的基准
    • 离线评估采用 Recall@K 指标,测试 \(K \in \{50,100,200,500,800\}\),该指标衡量模型在不同阈值下准确召回推荐内容的能力
基线方法
  • 论文将 COBRA 与其变体进行比较:
    • COBRA w/o ID :移除 Sparse ID,仅依赖 Dense 向量。该变体类似于 RecFormer[21],使用轻量级 Transformer 进行序列建模
    • COBRA w/o Dense :移除 Dense 向量,仅使用 Sparse ID。由于 ID 的粗粒度特性,该变体采用类似 TIGER[33]的生成式召回方法,利用语义 ID 进行召回
    • COBRA w/o BeamFusion :移除 BeamFusion 模块,使用 top-1 Sparse ID 和最近邻召回获取 top-\(k\) 结果
实现细节
  • COBRA 基于 Transformer 架构实现
  • Encoder 将广告文本处理为序列,随后由 Sparse ID 头部预测2层语义 ID,配置为 \(32 \times 32\)
  • 变体 COBRA w/o Dense 采用 3 层语义 ID ( \(256 \times 256 \times 256\) ),以更细粒度地建模广告
结果
  • 如表3所示,COBRA 在所有评估指标上均优于其变体
  • 值得注意的是,在较小的 \(K\) 值时,缺少 Dense 或 Sparse 表示会导致更明显的性能下降,这凸显了级联表示对于实现粒度和精度的重要性。相反,随着召回规模 \(K\) 的增加,BeamFusion 的性能优势愈发明显,证明了其在工业召回系统中的有效性
  • 结果进一步凸显了特定组件的贡献:
    • 移除 Sparse ID(COBRA w/o ID)导致召回率下降 26.7%至41.5%,表明语义分类的关键作用
    • 移除 3 层语义 ID(COBRA w/o Dense)导致性能下降 30.3%至48.3%,说明细粒度建模的重要性
    • 移除 BeamFusion 导致召回率下降 27.5%至36.1%,强调了其在 Sparse ID 内部和 Sparse ID 之间的信息整合的重要性

进一步分析

表示学习分析
  • 为评估 COBRA 模型的表示学习能力,论文构建了广告 Dense 嵌入的相似度矩阵,如图4所示
  • 图4相关结论:
    • 图4a:COBRA 模型展现出显著的 ID 内凝聚性(intra-ID cohesion) 和 ID 间分离性(inter-ID separation) ,表明其 Dense 嵌入能够有效捕捉 item 细节特征,同时保持类别内的语义一致性
    • 图4b:无 Sparse ID 的模型变体显示出较弱的类别分离性,凸显了 Sparse ID 在保持语义结构中的重要性
    • 图4c:差异矩阵定量验证了 Sparse ID 对增强内聚性和分离性的作用
  • 通过 t-SNE 将广告嵌入分布可视化,进一步验证 COBRA 嵌入的效果。随机采样 10,000 个广告后,可观察到不同类别的明显聚类中心。图5显示广告按类别有效聚类,表明类别内的强内聚性。紫色、青色、浅绿色和深绿色聚类分别主要对应小说、游戏、法律服务和服装类广告,表明广告表示有效捕捉了语义信息
召回-多样性平衡
  • 在推荐系统的召回阶段,平衡准确性和多样性是一项挑战,为分析 COBRA 的这种权衡,论文研究了召回-多样性曲线(recall-diversity curves)
    • 该曲线描述了在固定 \(\phi=16\) 时,Recall@2000 和多样性指标如何随 BeamFusion 机制中的系数 \(\tau\) 变化
    • 如图6所示,增加 \(\tau\) 通常会导致多样性下降
  • COBRA 在 \(\tau=0.9\) 和 \(\phi=16\) 时达到召回与多样性的最佳平衡,此时模型在保持高准确性的同时确保推荐 item 覆盖足够多样的集合
    • 多样性指标定义 :召回 item 中不同 ID 的数量,反映模型避免冗余和为用户提供更广泛选择的能力
    • 通过精细控制 \(\tau\) 和 \(\phi\),实现业务目标

在线结果

  • 论文于 2025年1月 在百度工业数据集上进行了在线A/B测试
  • 测试覆盖 10% 的用户流量 ,确保统计显著性(ensuring statistical significance)
  • 主要评估指标 :转化率(用户参与度)和用户平均收入(ARPU,经济价值)
  • 在论文策略覆盖的领域中,COBRA 实现 转化率+3.60%,ARPU+4.15%

RS——LEARN

LEARN:Llm-driven knowlEdge Adaptive RecommeNdation

  • 参考链接:
    • LEARN: Knowledge Adaptation from Large Language Model to Recommendation for Practical Industrial Application, AAAI 2025, Kuaishou
      • 相关博客:AAAI’25 | 快手LEARN:使用LLM做特征增强用于电商广告推荐

整体思路说明

  • 当前推荐系统问题 :主要依赖 ID embedding 来捕捉用户与 item 之间的潜在关联。然而,这种方法忽视了 item 文本描述中丰富的语义信息 ,导致性能欠佳和泛化能力不足
  • LLM :LLM 具备理解与推理文本内容的能力,为推荐系统的进步提供了新的可能
  • 论文提出了一种 LLM-based 知识自适应推荐框架(Llm-driven knowlEdge Adaptive RecommeNdation,LEARN):
    • 通过协同融合开放世界知识与协作知识(synergizes open-world knowledge with collaborative knowledge)来解决这一问题
    • 针对计算复杂度问题,论文采用预训练的LLM作为 item 编码器,并冻结其参数以避免灾难性遗忘(catastrophic forgetting),从而保留开放世界知识
    • 为了弥合开放世界与协作领域之间的鸿沟,论文设计了一种双塔结构(twin-tower structure),以推荐任务为监督目标,并适配实际工业应用需求
  • 通过在真实工业级大规模数据集上的实验和在线A/B测试 ,论文验证了该方法的有效性。此外,论文在六个 Amazon 评论数据集上取得了 SOTA 性能,进一步证明了LEARN的优越性

Introduction and Discussion

  • 近年来, LLM 展现出卓越的能力并快速发展,如何将其开放的领域知识和强大的逻辑推理能力引入推荐系统(RS)成为学术界和工业界关注的焦点。
  • 当前的推荐系统严重依赖独立的 ID Embedding,并侧重于基于历史交互捕捉用户与 item 的潜在关联。这种方法忽略了 item 文本描述中的语义信息,难以泛化到未见数据,导致工业冷启动场景和长尾用户推荐中的性能不佳。此外,与计算机视觉(CV)和自然语言处理(NLP)领域不同,推荐系统中基于 ID Embedding 的建模方法难以开发出适用于下游任务和子场景的预训练模型。
  • 为了改善当前推荐系统的泛化能力,已有研究尝试利用文本信息或结合LLM生成文本预测,例如用户兴趣(Ren等, 2024)、 next item 信息(Li等, 2023)和推荐理由(Zhang等, 2023b)。
  • 先前关于LLM与推荐系统结合的研究通常遵循一种统一策略,论文称之为“Rec-to-LLM”适配(adaptation)
    • 该策略将推荐领域的 user-item 交互数据(目标领域)转换为LLM开放世界领域(源领域)的文本格式,如图1所示
    • 具体而言,这些方法设计任务特定的提示(prompt),将推荐数据转化为对话形式,并采用 next token 预测损失,使输入组织和目标任务与LLM预训练阶段对齐。
  • 然而,论文的实证研究表明,“Rec-to-LLM”适配在真实工业应用中未能带来实际效益。这种低效性源于该方法的固有缺陷:
    • 计算复杂度高 :由于LLM的输入长度限制(2K至128K)和计算复杂性,在工业场景中无法负担对文本化交互数据进行推理或微调
      • 例如,在论文的短视频平台中,用户平均每周与近800个短视频交互,因此用LLM处理数月内的全局用户历史交互数据会带来巨大的计算负担。
    • 灾难性遗忘 :用推荐数据微调LLM会导致开放世界知识的灾难性遗忘(catastrophic forgetting),因为推荐系统的协作知识与LLM的开放世界知识之间存在显著领域差距。
    • 目标不对齐 :LLM的训练目标与推荐任务的不匹配进一步限制了已有方法的性能。
  • 为克服上述限制,论文提出了一种基于语言模型的知识自适应推荐方法(LEARN) ,旨在协同融合LLM的开放世界知识与推荐系统的协作知识。与“Rec-to-LLM”适配不同,论文的方法遵循“LLM-to-Rec”适配(如图1所示),将LLM作为内容提取器,并以推荐任务为训练目标。
  • LEARN框架由用户塔(User Tower)和 item 塔(Item Tower)组成,二者均包含内容提取模块(Content EXtraction,CEX)和偏好对齐模块(Preference ALignment,PAL)
    • 内容提取模块(CEX) :为降低处理大规模用户历史交互的计算开销,CEX模块采用预训练LLM作为 item 编码器而非用户偏好编码器。为避免开放世界知识的灾难性遗忘,论文在训练阶段冻结LLM参数
    • 偏好对齐模块(PAL) :为弥合开放世界与协作领域之间的鸿沟,论文设计了PAL模块,并采用推荐任务的自监督训练目标指导模型优化。LEARN生成的用户和 item 嵌入将作为在线排序模型的输入。
  • 为验证方法在工业实践中的有效性,论文从真实推荐场景中构建了大规模数据集,并通过在线A/B测试进行评估。同时,论文在六个 Amazon 评论数据集(Ni等, 2019)上进行了实验,与已有方法进行公平对比。实验结果表明,LEARN在六个数据集的三项指标中均达到最先进性能,尤其在Recall@10上平均提升13.95%
  • 论文的主要贡献如下:
    • 提出LEARN框架,高效地将LLM的开放世界知识聚合到推荐系统中。
    • 提出CEX和PAL模块,解决LLM的灾难性遗忘问题,并通过推荐任务弥合开放世界与协作领域的鸿沟。
    • 在工业级数据集和在线A/B测试中验证了方法的实用性。
    • 在六个公共数据集上取得最先进性能,Recall@10平均提升13.95%。

相关工作(直译,包含引用信息)

基于内容的推荐

  • 传统推荐系统主要基于 ID Embedding,其泛化能力有限。为此,大量研究通过深化对用户和 item 内容的理解来增强推荐系统的泛化能力
    • Wu等人(2020)为新闻推荐任务构建了大规模文本数据集MIND,推动了文本内容理解对推荐系统影响的研究
    • 随后,多项研究利用BERT模型(Devlin等, 2018)改进内容理解,例如ZESRec(Ding等, 2021)、UniRec(Hou等, 2022)和TBIN(Chen等, 2023)采用预训练BERT模型作为编码器提取 item 文本描述的内容嵌入
    • RecFormer(Li等, 2023)结合掩码语言模型损失(MLM)和对比损失,并重新设计分词器以编码 item 的文本信息
    • 除文本信息外,部分方法还尝试将视觉信息融入推荐模型,例如SimRec和MAKE(Wang等, 2023)采用CLIP(Radford等, 2021)和MoCo(He等, 2020)提取图像特征,MoRec(Yue等, 2023)和MISSRec(Wang等, 2023)则利用ResNet(He等, 2016)和ViT(Dosovitskiy等, 2020)在序列推荐中融入 item 图像内容。

基于LLM的推荐

  • 由于LLM在文本理解和常识推理上的强大能力,越来越多的研究探索如何将其整合到推荐系统中(Fan等, 2023; Lin等, 2023a)
  • 第一类方法冻结LLM参数 ,将其直接作为推荐器
    • 部分研究(Li等, 2023; Zhang等, 2023b; Yue等, 2023; Xi等, 2023)设计任务特定提示构建推荐对话,并利用ChatGPT生成候选 item ;
    • RLMRec(Ren等, 2023)则通过ChatGPT生成用户/ item 画像
  • 第二类方法在推荐领域的特定文本数据集上微调LLM
    • LlamaRec(Yue等, 2023)以 item 标题为文本数据,通过排序分数优化LLM;
    • TALLRec(Bao等, 2023b)提出两阶段微调框架,并采用LoRA(Hu等, 2021)进行少样本推荐;
    • LLARA(Liao等, 2023)将LLM提示与 ID Embedding 结合,对齐LLM与序列推荐器;
    • ReLLa(Lin等, 2023b)提出检索增强的指令微调方法,并在混合数据集上微调Vicuna(Chiang等, 2023)。
  • 上述研究均将推荐系统的 user-item 交互数据适配为LLM的文本对话格式,并利用LLM的训练损失微调模型。这些方法将数据和任务从推荐领域(目标领域)迁移到LLM领域(源领域),因此论文称之为“Rec-to-LLM”方法。

方法

模型架构

  • 给定按时间顺序排列的用户历史交互记录,交互序列根据特定时间戳分为两段:第一段是历史交互序列 \( U^{hist} \),第二段是目标序列 \( U^{tar} \)。历史交互和目标交互的长度分别记为 \( H \) 和 \( T \)。论文提出LEARN框架,旨在从历史交互中捕捉用户兴趣,并预测用户可能感兴趣的 next item。LEARN框架由用户塔(User Tower)和 item 塔(Item Tower)组成,如图2所示
  • 用户塔 :用户塔包含内容提取(Content EXtraction, CEX)模块和偏好对齐(Preference ALignment, PAL)模块,如图3所示
    • 用户塔的输入 :与用户交互的历史 item 序列。每个 item 根据图3所示的提示模板进行文本描述。提示设计非常简洁,以有效评估文本描述的信息量
    • CEX模块 :使用预训练的 LLM 和一个平均池化层处理这些 item 描述,生成内容嵌入 \( E^c \)。在训练过程中,预训练LLM的参数保持冻结状态,最终解码器层的隐藏状态作为输出嵌入,随后送入池化层,如图3(a)所示。对于整个历史交互序列 \( U^{hist} \),CEX模块将每个 item 的文本描述转换为内容嵌入 \( E^c \),形成内容嵌入序列。每个 item 由CEX模块独立处理
    • 偏好对齐(PAL)模块 :基于内容嵌入序列捕捉用户偏好,并输出用户嵌入。PAL模块首先通过内容适配器进行维度转换,随后采用12层Transformer作为主干网络,其配置与BERT-base模型(Devlin等, 2018)一致。该Transformer专门设计用于学习隐含的 item 关系并建模用户偏好。与BERT的双向注意力机制不同,论文的模块采用因果注意力机制(causal attention),仅关注过去的 item ,以符合用户偏好的时序特性。Transformer的输出嵌入通过在线投影层进一步处理,生成用户嵌入 \( E^{user} \in \mathbf{R}^{64} \),直接用于图5所示的在线电商推荐系统
  • item 塔 :item 塔处理 item 内容的文本描述,并输出适用于推荐领域的 item 嵌入 \( E^{item} \)。如图2所示,论文提出了三种 item 塔变体:
    • item 塔(a) 采用与用户塔相同的因果注意力机制。
    • item 塔(b) 采用自注意力机制(self-attention),每个 item 仅关注自身内容。尽管存在这一差异,两种变体的模型架构相同,且与用户塔共享权重。
    • item 塔(c) 直接使用内容嵌入 \( E^c \) 作为 item 嵌入 \( E^{item} \),以“Rec-to-LLM”方式指导用户偏好学习。
  • 在训练阶段,item 塔(a)将整个用户目标序列 \( U^{tar} \) 作为输入,而 item 塔(b)和 item 塔(c)独立处理单个 item。在推理阶段,所有三种变体均以单个 item 为输入,独立生成 item 嵌入。根据表5的结果,item 塔(a)因其性能优势被选为默认配置

训练目标

  • 为了弥合LLM开放世界领域的内容嵌入与推荐系统协作领域 user/item 嵌入之间的差距,论文将训练目标与在线排序模型对齐。在在线推荐系统中,排序模型计算用户嵌入与所有候选 item 嵌入之间的相似度,相似度最高的前k个 item 被视为用户可能感兴趣的内容。因此,论文采用自监督对比学习机制建模用户偏好,与在线推荐系统的目标一致。该方法最大化用户嵌入与相关 item 嵌入之间的相似度,同时最小化与无关 item 的相似度
  • 论文从用户历史序列中采样用户嵌入,从同一用户的目标序列中采样 item 嵌入,构建正样本对。同一批次中其他用户的目标 item 嵌入被采样为负样本。为充分利用用户交互并捕捉用户长期兴趣,论文采用密集全动作损失(dense all action loss)。从历史序列中采样 \( N_h \) 个用户嵌入,从目标序列中采样 \( N_t \) 个 item 嵌入,从而构建 \( N_h \times N_t \) 个正样本对以应用密集全动作损失。默认情况下,\( N_h \) 和 \( N_t \) 均设置为10

采样策略

  • 尽管在构建工业数据集时已根据行为重要性对 item 进行了采样,但由于训练资源限制,用户序列长度仍然过长。为此,论文在训练阶段设计了两阶段采样策略:
    • 第一阶段 :从完整用户历史/目标交互中随机采样,作为用户塔的输入,确保建模用户兴趣的数据无偏。
    • 第二阶段 :构建正负样本对时,采用加权采样策略,优先选择近期交互的 item。历史/目标序列中第 \( i \) 个 item 的权重 \( \tilde{w}_i \) 计算如下:
      $$
      \tilde{w}_i = \frac{w_i}{\max(w)}, \quad \text{ Where } \quad w_i = \log(\alpha + i \cdot \frac{\beta - \alpha}{N - 1}).
      $$
      • 超参数 \( \alpha \) 和 \( \beta \) 分别设置为10和10000,\( N \) 为第一阶段采样的用户历史/目标交互长度
  • 通过这种策略,模型能够更有效地捕捉用户当前兴趣,提升推荐性能

Experiments

Experiment Setup

  • 数据集 :为了工业应用,论文从短视频应用的电商平台构建了一个大规模的实际推荐数据集。该工业数据集包含从2022年6月到2023年4月共10个月内1200万用户与3100万商品的交互记录。前9个月的交互数据作为历史数据,最后1个月的交互数据作为目标数据。论文收集了六类信息(标题、类别、品牌、价格、关键词、属性)来构成商品描述。为了公平比较,论文采用了广泛使用的Amazon Review数据集,并遵循RecFormer的设置。选取七个类别作为预训练数据,另外六个类别作为微调数据以评估论文的方法。商品描述由三类信息(标题、类别、品牌)构成。公开数据集和工业数据集的统计信息分别如表1和表2所示
  • 实现细节 :论文采用Baichuan2-7B作为 LLM 来提取商品文本描述的内容嵌入,因其在中文和英文文本理解上的强大能力。训练阶段冻结LLM的参数。所有实验默认采用AdamW优化器和余弦调度器。对于工业数据集,由于内存限制,训练批次大小设为240,用户历史交互和目标交互长度分别设为80和40,训练轮次为10。评估指标采用Top50和Top100的命中率(H@50、H@100)和召回率(R@50、R@100)。对于Amazon Review数据集,预训练阶段批次大小为1024,微调阶段为16,学习率分别为5e-5和2e-5。预训练和微调的训练轮次分别为20和200。论文遵循RecFormer的评估设置,采用留一策略进行评估,使用NDCG@10(N@10)、Recall@10(R@10)和MRR三个指标以确保公平比较。由于Amazon Review数据集的交互序列长度有限,论文在LEARN的训练阶段未采用任何采样策略

在Amazon Review数据集上的性能

  • 整体性能 :为了验证方法的有效性,论文在Amazon Review数据集上的性能如表3所示。论文将LEARN与三类方法进行比较:仅ID方法(GRU4Rec、SASRec、BERT4Rec、RecGURU)、ID-文本方法(FDSA、S³-Rec)和纯文本方法(ZESRec、UniSRec、RecFormer)。论文的方法在仅ID、ID-文本和纯文本方法中均取得了显著提升。具体而言,与 SOTA RecFormer相比,LEARN在Scientific、Instruments、Arts、Office、Games和Pet数据集上的Recall@10分别提升了10.08%、17.87%、5.39%、10.41%、29.45%和10.50%。RecFormer采用掩码语言建模(MLM)损失和两阶段微调过程,而LEARN仅通过 user-item 对比损失在单阶段微调中实现显著性能提升,进一步证明了论文框架的有效性。论文还按照RecFormer的设置进行了零样本实验(仅预训练阶段)
  • 图4结果显示,LEARN框架可以作为预训练推荐模型,在下游子场景中表现优异
  • 消融研究 :论文性能提升的核心在于推荐系统协作域与LLM开放域之间存在显著差距。通过将 user-item 交互作为对齐目标,将内容嵌入转换为用户/商品嵌入,可以有效弥合这一差距。表4展示了论文的发现。首先,论文通过平均用户交互商品的内容嵌入生成用户嵌入,并直接使用商品的内容嵌入作为商品嵌入(称为“w/o Align”)。由于LLM与推荐域之间缺乏对齐,其性能极差,验证了论文的假设。其次,论文采用LLM生成的内容嵌入作为对齐目标(ItemTower(c)),通过将推荐域转换为LLM域实现对齐(与之前工作的“Rec-to-LLM”方法一致)。实验表明,ItemTower(c)性能低于LEARN,因为推荐知识的特性未在LLM开放域中充分体现。相比之下,LEARN通过将源域投影到目标域空间,更贴合推荐分布的复杂性,从而提升性能。值得注意的是,在Amazon Review数据集中,由于留一设置,ItemTower(a)与ItemTower(b)等效

在工业数据集上的性能

  • 消融研究 :为了验证模型设计的合理性,论文在实际工业场景构建的大规模数据集上进行了消融实验。如表5所示,“w/o Align”因LLM与推荐域之间的显著差距表现最差。在对齐策略中,采用ItemTower(a)的LEARN性能最佳,其次是ItemTower(b),ItemTower(c)最差。ItemTower(a)通过序列到序列对齐更好地捕捉用户长期兴趣,而ItemTower(c)的“Rec-to-LLM”对齐性能较差,与Amazon Review数据集的结论一致。由于用户交互序列长达十个月以上,论文采用式(1)的样本加权策略,与随机采样相比,H@100和R@100分别提升了7.13%和7.18%
  • ID Embedding 与内容嵌入对比 :鉴于 ID Embedding 在语义表示和泛化上的局限性,论文探索了在大规模工业场景中替代 ID Embedding 的可行性。论文采用三种商品表示方法:可学习的 ID Embedding 、从预训练BERT和LLM提取的冻结内容嵌入。 ID Embedding 维度设为64以匹配在线系统。表6显示,基于LLM的内容嵌入相比 ID Embedding 显著提升了性能,H@100从0.0504提升至0.0751(提升49.01%);相比BERT嵌入,LEARN进一步提升了30.38%。这表明LLM嵌入因训练于大规模文本语料而蕴含更丰富的信息,为替代 ID Embedding 提供了可行方向
  • PAL模块消融研究 :考虑到LLM在文本理解和常识推理上的优势,论文尝试用预训练LLM(Baichuan2-7B)替换PAL模块中从头训练的Transformer层。为避免遗忘开放域知识,论文采用LoRA微调LLM,并调整可训练参数量。如表7所示,随着可训练参数从134M增至572M,“w/ LLM”变体性能从0.0376提升至0.0513,但仍低于LEARN(采用12层Transformer)。由于LLM的冻结参数远多于LoRA可训练参数,原始特征(基于开放域和下一词预测损失)主导了混合特征,导致其无法达到最优性能

在线A/B实验

  • 论文在拥有4亿日活跃用户(DAU)的短视频平台的排序模型上进行了在线A/B测试。自2024年1月起,论文的方法已部署在短视频信息流广告场景中
  • 带LEARN适配器的排序模型 :为了更好地将LEARN生成的用户和商品嵌入与在线排序模型对齐,论文在基线模型上引入了LEARN适配器。如图5所示,基线模型包含原始排序模型(输入为现有在线特征)。LEARN适配器模块通过融合模块(两个线性层)和MLP,将用户和商品嵌入聚合为融合嵌入(基于CVR损失)。融合嵌入与LEARN的用户/商品嵌入及现有在线特征拼接后输入排序模型
  • AUC评估 :论文在短视频应用电商平台的十亿级数据集上进行了AUC评估。采用UAUC和WUAUC指标以更准确评估每用户的排序性能。如表8所示,论文的方法优于基线模型,UAUC和WUAUC分别提升0.84和0.76个百分点。这一提升归功于LEARN框架的泛化能力,能够有效捕捉长尾用户兴趣。进一步分析显示(表9),LEARN对冷启动和长尾用户及商品的性能提升尤为显著,验证了其在稀疏交互数据上的泛化能力

结论

  • 论文探讨了如何将 LLM 与推荐系统相结合,并提出了LEARN框架以实现显著的商业效益。LEARN框架包含内容提取(CEX)和偏好对齐(PAL)模块。CEX模块利用预训练的LLM为每个项目提取内容嵌入,而PAL模块将这些嵌入从开放世界领域投影到推荐领域的用户/项目嵌入中。在工业数据集和公开的Amazon Review数据集上取得的领先性能,证明了论文的LEARN框架具有卓越的表现

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 的性能,论文将其与多种 SOTA 模型进行比较

    • 对于传统的召回模型,论文使用基于双塔架构的 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主干也设置为在线模型
    • 论文还纳入了传统 SOTA 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——MTGR

  • 参考链接:
    • MTGR:美团外卖生成式推荐Scaling Law落地实践 - 美团技术团队

整体总结性说明

  • 样本组织思路:基本思路是将样本按照用户组织,具体来说,将同一用户的天粒度样本组织为同一条样本,同时通过掩码机制保证不会出现训练时数据/特征穿越问题
  • 输入信息 Token 化(未详细说明 Token 化的方案)

    输入信息Token化:我们将样本信息拆分成一个个Token。其中对于User Profile每一个特征都表示为一个Token,对于用户行为,则将每一个具体行为对应的item ID以及多个side info的Embedding表征拼接在一起再通过非线形映射组装成一个Token。同理,对于每一个曝光,我们则将item ID、对应的side info、交叉特征、时空等Context信息拼接在一起组成一Token

  • HSTU架构使用

    采用HSTU架构统一建模多个序列:我们利用HSTU架构针对Token化的输入进行统一编码,对比原方法,我们对每一层的输入都做了额外的LayerNorm以保证深层次训练的稳定性,考虑到不同与传统的LLM,我们的数据可以分组为多种类型的Token,因此,我们将LayerNorm拓展为Group LayerNorm,针对不同类别的Token采用不同的LayerNorm参数,以实现不同语义空间下Token的对齐


美团外卖的历史Scaling路径

  • 历史Scaling路径
  • 粉色框部分是之前的 Scaling 主要模块

特征处理

  • 保留全部 DLRM 特征
    • User Profile:用户统计信息,购买次数等
    • Context:广告位,时间等
    • UBS(User Behaviour Sequence):用户历史点击、曝光序列,包含每个 item(商家) 及其 Side Info
    • Target item:待打分的商家,包含商家ID、Side Info 以及基于统计的交叉特征信息
    • 注:博客中给出了丢弃交叉特征后,性能损失 CTR_GAUC -1.25pp;CTCVR_GAUC -0.91pp
  • 按照用户压缩数据:将同一用户的天粒度样本组织为同一条样本,同时通过掩码机制(后续介绍)保证不会出现训练时数据/特征穿越问题
  • 问题:按照用户压缩样本数据后会导致模型数据分布发生变化,减少模型对活跃用户的重视程度吗?
    • 回答:不会,因为后文会提到,每个原始样本还是有一个自己的损失,总的样本损失数还是没有变化的

模型结构

  • 整体架构如下所示:
  • 输入特征 Token 化:
    • User Profile:每一个特征都表示为一个Token
      • 问题:是否都是离散特征,直接就是 Token化的?
    • UBS:对每一个行为 item,将其 item ID,以及 多个 Side Info 的 Embedding 表征拼接在一起,然后通过非线形映射映射成一个Token(理解:每个 item 输出一个离散 Token)
      • 问题:非线性映射如何将连续向量映射成 Token?使用类似 CodeBook 机制吗?
    • 每一个候选目标,将其 item ID、对应的side info、交叉特征、时空等 Context 信息拼接在一起组成 Token
    • 补充原文描述:

      我们将样本信息拆分成一个个Token。其中对于User Profile每一个特征都表示为一个Token,对于用户行为,则将每一个具体行为对应的item ID以及多个side info的Embedding表征拼接在一起再通过非线形映射组装成一个Token。同理,对于每一个曝光,我们则将item ID、对应的side info、交叉特征、时空等Context信息拼接在一起组成一Token

  • 使用HSTU架构,并做以下改进
    • 使用 GroupLayerNorm 层替换原始 HSTU 中的 Norm 层(Group的含义是针对不同类别的 Token 采用不同的 LayerNorm 参数)
    • 在每一层输入时增加 GroupLayerNorm(注:增加 GroupLayerNorm 可提升0.17pp~0.18pp 的GAUC)
  • 混合动态掩码机制(注:使用掩码机制可提升 0.12pp~0.16pp 的GAUC):
    • 历史静态特征:包括 User Profile + 用户历史行为序列(User History Sequence),完全互相可见
    • 当日实时行为序列(Real-Time Sequence):使用 Casual Mask 机制
    • 目标 item(Targets):按照用户压缩组织样本后,这里会有多个 item,一方面要求 item 看不到发生于自己之前的当日实时行为序列,同时看不到自己之前的 Target item 信息(Casual Mask)
    • 掩码机制的详细示意图如下(注:其中示意图的括号有点歪,按照颜色来区分更准确):

      实时行为/曝光样本按照时间近至远进行排列:最近发生的曝光样本可以看到全部的实时行为,但较早发生的曝光样本只能看到部分实时行为
      对于Target 1,因为它出现的时间较晚,因此它可以看到全部的User Profile & Sequence以及Real-Time Sequence;对于Target 2,有一部分Real-Time Sequence出现在其之前,因此它只能看到部分Real-Time Sequence

  • HSTU 最终输出的利用:
    • 任务建模:实际上使用的是 HSTU 编码后的 embedding 信息直接进行 多任务训练(CTR,CVR等)
    • 注意:多个 targets 可以同时建模(一个样本包含多个 Target item 头,每个头都对应之前的一个曝光样本)每个头又会被分为多个任务

附录:生成式体现在哪里?

  • 唯一体现生成式的地方是 Token 化特征后,Item 训练有 Casual Mask 的机制,变相在当日实时 Item 和 Target Item 上都实现了类似 Next Item Prediction 的感觉了
  • Casual Mask 部分的序列不长(同一天内同一个用户的曝光数不会特别多),更像是一个 Prefix LM 架构
  • 实际上生成式的体现很弱,甚至像是没有,但是确实拿到了 Scaling Law 的效果

附录:Scaling Law效果如何?

  • Scaling Law实验结果
  • 实际上效果有点微弱,虽然随着模型增大,效果一直在涨,但涨幅非常有限

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——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 生成索引的系统相比具有优势。通过在三个数据集上的实验,论文证明了该模型能够实现 SOTA 检索性能,同时能够泛化到新的未见过的 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——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——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测试证明了它们的有效性和效率

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\);
  • MoE 架构包含 \(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的有效性和效率
  • 在线实验 :此外,论文对在线结果的分析表明,除了用户观看时间外,论文的模型在点赞等交互指标方面存在局限性
  • 未来规划 :在未来的研究中,论文旨在增强端到端生成式推荐在多目标建模方面的能力,以提供更好的用户体验

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

生成式推荐

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

语言模型的偏好对齐

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

附录: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 测试收益披露
1…567…63
Joe Zhou

Joe Zhou

Stay Hungry. Stay Foolish.

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