鹤啸九天 自律更自由,平凡不平庸 Less is More

大模型时代的推荐系统 Recommend System in era of LLM

2024-10-06
阅读量

Notes(温馨提示):

  1. ★ 首次阅读建议浏览:导航指南, 或划到本页末尾, 或直接点击跳转, 查看全站导航图
  2. 右上角工具条搜索文章,右下角二维码关注微信公众号(鹤啸九天),底栏分享、赞赏、评论
  3. ★ 转载请注明文章来源,知识点积累起来不容易,水滴石穿,绳锯木断,谢谢理解
  4. ★ 如有疑问,邮件讨论,欢迎贡献优质资料


LLM 时代推荐系统

【2024-6-18】 新疆大学 CherryRec - 新闻推荐框架

  • CherryRec:Enhancing News Recommendation Quality via LLM-driven Framework
  • CherryRec 框架包含三个核心组件:知识感知新闻快速选择器(KnRS)、内容感知LLM评估器(CnLE)和价值感知新闻评分器(VaNS)。
  • KnRS基于用户互动历史快速筛选候选新闻,CnLE通过微调的LLM深入理解用户偏好
  • 而VaNS综合评分以形成CherryRec分数,指导最终推荐。

通过在MIND、Yahoo R6B和Adressa等基准数据集上的实验,CherryRec在推荐准确性和效率方面均优于现有方法。研究结果证明了CherryRec在实时新闻推荐领域的潜力,未来工作将探索整合多媒体内容以进一步提升推荐质量。

RS 介绍

【2024-1-20】谈谈AI落地容易的业务-搜广推

  • 推荐系统适用场景:信息过载时提供信息匹配价值

RS 技术路线

推荐系统技术路线

  • 早期搜索推荐采用竞价排名,早期的百度凤巢有一系列问题,戴文渊利用LR算法改进凤巢,和陈雨强又引入了深度学习陈雨强又在今日头条担任过架构师。
  • 另一个主线: 阿里妈妈为代表的电商广告,从盖坤 2011年提出分片线性模型MLR开始,到后面通过类似于Wide&Deep算法,构建GwEN,再到针对用户兴趣建模提出DIN,以及将Attention和GRU引入用户兴趣构建的DIEN,但是用户兴趣序列长度有限制,又引入异步机制User Interest Center并构建MIMN算法对长期行为建模。再到后期提出Search Based Interest Model(SIM),并针对用户不同的行为构建基于Session的分类的Deep Session Interset Network(DSIN),在针对特征间的交互(Co Action)构建的CAN,当然还有召回中的利用树结构构建的TDM算法,和利用图结构的二项箔算法等。

RS 常规流程

推荐系统组件

  • 两阶段模型:召回+排序
  • 工业级推荐系统用四阶段模型:召回粗排精排重排
  • 原因:整个环节上对延迟有严格的需求,通常要求端到端延迟低于100ms,因此需要构建逐级过滤的算法实现。

详见站内推荐系统专题

LLM + RS

应用综述

【2023-6-17】基于LLM的推荐系统全面综述, 将基于LLM的推荐系统分为两大范式,方法、技术和性能的洞察,分别是

  • 用于推荐的判别型LLM(DLLM4Rec)
  • 用于推荐的生成型LLM(GLLM4Rec),首次被系统地整理出来。

大型语言模型(LLMs)融入推荐系统的关键优势

  • 能提取高质量的文本特征表示,并利用其中编码的广泛外部知识 [Liu等人,2023b]

范式总结

  • (1) LLM Embeddings + RS。这种建模范式将语言模型视为特征提取器,将物品和用户的特征输入到LLM中并输出相应的嵌入。传统的RS模型可以利用知识感知嵌入进行各种推荐任务。
  • (2) LLM Tokens + RS。与前一种方法类似,根据输入的物品和用户的特征生成token。生成的令牌通过语义挖掘捕捉潜在的偏好,可以被整合到推荐系统的决策过程中。
  • (3) LLM作为RS。与(1)和(2)不同,这个范式的目标是直接将预训练的LLM转换为一个强大的推荐系统。输入序列通常包括简介描述、行为提示和任务指示。输出序列预计会提供一个合理的推荐结果。
  • img

推荐的判别式LLM生成式LLM

  • 判别式语言模型非常适合在范式(1)中嵌入
    • 判别性语言模型主要是指BERT系列的模型
  • 生成式语言模型的响应生成能力进一步支持范式(2)或(3)。
    • 相比于判别型模型,生成型模型具有更好的自然语言生成能力。
    • 因此,不像大多数基于判别模型的方法将LLMs学习到的表示与推荐领域对齐,大多数基于生成模型的工作将推荐任务翻译为自然语言任务,然后应用像在上下文中学习,提示调优,和指导调优这样的技术,来适应LLMs直接生成推荐结果。
  • img

【2023-5-20】当推荐系统遇到大模型

ChatGPT在推荐系统中的应用有不小的潜力,主要体现在以下几个方面:

  • 任务统一:所有类型的推荐任务都可以表述成文本,实现了推荐任务大统一,使用统一语言模型进行各个场景和任务上的推荐,有效解决多任务、多场景问题。
  • 小样本冷启动问题:传统推荐系统中,小样本和冷启动是一个比较常见的问题,而大模型天然具备很强的语义泛化能力小样本学习能力。
  • 基础的推荐能力验证:多篇文章已经验证了ChatGPT等模型在推荐系统中应用是可行的,即使不在下游任务finetune,也能取得不错的效果

【2023-11-17】人民大学高瓴AI学院 徐君: 当大语言模型遇见推荐系统

LLM 做推荐两个思路:

  • 将LLM当作backbone: 训练时的strategy,适应某个推荐任务。
    • 早期的BERT4Rec,训练时让模型猜测,如果少了一个item,这个item应该是什么,由模型补上这个item。
    • UniSRec,用 pre-train 和 fine-tune 流程。
    • P5,用 pre-train和promting 流程。
  • 把LLM当作推荐系统的补充
    • 把LLM当作一个embedding生成器,生成更好的user、item以及context的表达,换句话说,LLM可以辅助理解用户。
    • 用LLM生成一段文字描述来用户。然后把LLM带来的附加信息加入现有的推荐模型中去。

要点

  1. Key Tasks:Top-K Ranking of Items
    • 交互页面稳定时, 关键是选取Top-K的items,再排序
    • 三种方式
    • Point-wise ranking。假设有5个items,直接询问大模型对这5个item的打分。这种方式最大程度模拟了业界推荐模型的工作方式,因为在线侧每一个item都会询问一次大模型,所以是Point-wise的方式。
    • Pair-wise ranking。每次选取两个items去问大模型,哪个才是更适合用户的结果,哪个才是用户更喜欢的item,大模型会告诉我们一个答案。这样的话,如果我们有n个item,那么我们最多问 n*(n-1)/2次,就能得到n个item的排序。
    • List-wise ranking。这种方式是个挑战,直接询问大模型n个item的排序方式,相当于直接把大模型当成item排序结果的生成器。
  2. LLMs for Recommendation: Overall Evaluation Procedure
    • Prompt的构建包括三部分。
    • 第一部分是Task Description,指出是哪种推荐系统,比如电影推荐系统,相当于指定推荐的domain;
    • 第二部分是Demonstration Examples,告诉模型想让它做出什么样的动作;
    • 最后是New Input Query,想要问的问题。通过这个template,基于是否要in-context learning,就构造出了一个prompt。将这个prompt给到LLM,LLM就会按照它的生成方式,输出一段话,再从这段话中提取出答案。有时这个答案可能是不符合要求的,就需要一个exception处理流程。

分别在电影、书籍、音乐与新闻等domain数据上面,验证了ChatGPT等大模型的表现,并给出了相关实验结论。

大模型对推荐影响

【2023-5-12】gpt4这种大模型能力对推荐系统这个领域有什么影响?

结论:

  • 短期内,不会对推荐系统有大的影响。
  • 长期看,对推荐系统的影响体现在
    • 大模型催生新的业务场景:比如基于问答的推荐场景,当用户查询旅游攻略时,除了常规的线路规划,还可以给出基于用户偏好的酒店,餐厅推荐候选。在这类的场景下,搜索和推荐相比当前的交互,会更加融合。
    • 大模型提升生产力,导致垃圾内容泛滥:如何识别aigc 内容,降低该类内容对内容生态冲击,流量蚕食会是未来的一个新命题。
    • 大模型在用户关怀上的应用:通过内容生产能力,为用户产生不同风格化评论,对创作者进行促活,也是一个比较有潜力的应用,现在的生成模型缺乏内容理解和产出风格化的能力。
    • 大模型对内容理解能力的提升,使推荐朝端到端的方向发展:当前推荐建模依赖大量离散特征以及统计后验特征,如果未来能通过大模型的内容理解能力,直接匹配用户理解,这样端到端的新范式,会重塑推荐系统的发展线路。

推荐大模型最有可能的路线

  • 借助语言图像类大模型的内容理解能力,把对内容的理解固定在一个稳定的embedding 空间,完全替代掉推荐模型里的itemid类稀疏特征,在系统层面,真正的学到推荐“知识”,并具有大规模泛化能力,这是最令我激动和充满热情的技术路线。

作者:手套销售拉呱总

最新论文

论文

  • 【2023-1-2】Recommendation as language processing (rlp): A unified pretrain, personalized prompt & predict paradigm
    • P5将各类推荐任务通过prompt形式全都转换成统一文本,然后利用这些文本训练一个 Transformer Encoder-Decoder模型。P5利用语言模型解决推荐系统问题,由于各种推荐系统任务都能表述成文字,使得统一建模各类推荐系统任务成为了可能。
    • prompt构造方法:针对每种任务设计一个prompt模板,对于商品信息用户信息等,直接将id作为本文输入。P5在这种文本上训练,对于商品和用户id相当于都当成一个独立的词进行embedding的学习。
  • 【2023-4-4】Chat-REC: Towards Interactive and Explainable LLMs-Augmented Recommender System
    • Chat-REC将ChatGPT应用到推荐系统中,会话推荐系统, 具有交互式和可解释的能力,验证了大模型在一般推荐场景、跨域推荐、冷启动推荐等场景下都有着不错的表现。
    • Chat-REC核心:将包括用户特征、搜索词、用户和item的历史交互信息、历史对话信息等一系列信息,输入到一个Prompt Constructor中,自动生成一个prompt。这个prompt输入到ChatGPT中,让ChatGPT生成推荐结果,或者解释推荐利用。
    • 通过这种方式让推荐系统能够产生可解释的推荐结果,例如在对话过程中,可以询问对话系统推荐的原因,prompt会将推荐系统给到的结果和用户的问题输入Prompt Constructor,生成新的prompt,让ChatGPT生成对应的解答。
    • Chat_REC整体利用了ChatGPT优化原有的推荐系统,让其能够实现更丰富的用户和推荐系统的交互。
  • 【2023-5-11】A First Look at LLM-Powered Generative News Recommendation
    • 利用大模型来提升新闻推荐系统的效果。新闻推荐系统中存在很多挑战,一方面新闻标题可能不含实际内容的关键词,需要更深入的语义理解;另一方面对于用户特征缺失、冷启动等情况,推荐效果也会变差。
    • 这篇文章利用大模型进行title扩展、用户特征生成、解决冷启动等问题。
    • 构造prompt,进行3方面的数据扩充,再利用扩展出的数据进行下游新闻推荐系统模型的训练
      • 为了在新闻标题中补充更丰富的信息,设计了一个摘要prompt,根据title和新闻信息生成扩展后的title。
      • 为了补充用户特征,利用用户历史的浏览行为,生成指定的相关特征。
      • 最后,对于冷启动用户,利用用户少量的历史浏览行为,让大模型生成更多用户可能感兴趣的新闻信息。
  • 【2023-5-12】Is ChatGPT Fair for Recommendation? Evaluating Fairness in Large Language Model Recommendation
    • 研究利用大模型进行推荐时是否存在公平性问题。
    • 公平性问题:用户侧一些敏感属性的特征,可能会引起大模型产出不公平的推荐结果,因为大模型经过大规模语料进行训练,其中会存在这样的有偏信息。
    • 为了对这个问题进行实验和验证,构建了大模型推荐系统公平性的benchmark,在评估时基础做法是生成一些instruction产出推荐结果,再在instruction中插入各种敏感词对比推荐结果,判断推荐结果因为敏感词插入造成的差异大小。差异越大,说明大模型用于推荐系统存在的不公平现象越严重。
  • 【2023-4-20】Is ChatGPT a Good Recommender? A Preliminary Study
    • 通过5种类型的推荐任务评估ChatGPT在推荐系统中应用的效果。这5个任务包括:排序预测 rating prediction、序列推荐 sequential recommendation、直接推荐 direct recommendation、可解释生成 explanation generation、总结 review summarization等。解读
    • 评分预测:评分预测旨在预测用户对特定项目的评分,如上图所示,黑字部分代表任务的描述,评分预测被翻译为“How will user rate this product_title?”,灰字表示当前的输入,即要求用户评分的项目,红字表示针对输出的格式要求,在评分预测任务中,要求有“1 being lowest and 5 being highest”和“Just give me back the exact number a result”;
    • 序列推荐:序列推荐任务要求系统根据用户过去的序贯行为预测其之后的行为,如上图所示,论文为该任务设计了三种 Prompt 格式,分别是基于交互历史直接预测用户的下一个行为,从候选列表中选出可能的下一个行为以及判断指定行为成为用户下一个行为的可能性;
    • 直接推荐:直接推荐指通过利用用户评分或评论信息直接显示反馈推荐的任务,论文将这一任务的 Prompt 设计为从潜在的候选项中选择出最适合的一项;
    • 解释生成:解释生成是为用户提供解释以澄清为什么会推荐此项的推荐系统任务,具体地,如上图所示,论文要求 ChatGPT 生成一个文本解释,以阐明解释生成过程,对每个类别,可以包含如提示词或星级评分等的辅助信息;
    • 评论总结:旨在使用推荐系统自动生成用户评论摘要。通过输入用户的评论信息,Prompt 提示推荐系统总结评论的主要含义。
    • 针对这5种任务分别设计了相应的prompt,输入到ChatGPT中生成预测结果。5种任务的prompt构造例子,每个prompt都包含:任务描述、格式声明以及一些user和item交互的例子,以给ChatGPT提供few-shot信息。
    • 从推荐系统准确率相关指标来看(如hit rate等),ChatGPT在rating任务上表现比较好,但是在其他任务上表现比较差。但是如果人工评估的话,ChatGPT的结果是比较好的,这说明使用推荐系统指标评估ChatGPT也是有局限性的。同时,文中的ChatGPT并没有在推荐系统数据上进行finetune,就能达到这样的效果,也表明了ChatGPT在推荐系统中的落地是非常有潜力的。
  • 【2023-5-11】Uncovering ChatGPT’s Capabilities in Recommender Systems(2023.5.11)
    • 尝试挖掘ChatGPT在推荐系统中3类任务的能力,包括point-wisepair-wiselist-wise三类推荐系统面临的给定user推荐item的任务。
    • 针对这3类任务,文中构造了如下3类prompt。每类prompt包括任务描述、例子、当前的问题三个部分。
    • 3类任务的prompt主要差别是当前问题的组织形式: point-wise就直接问ChatGPT打分是多少,pair-wise给两个item让模型做对比,list-wise则是对item做排序
    • 整体实验结果: 主要是对比了ChatGPT和一些基础推荐方法(随机推荐、根据商品流行度推荐)的差异,初步能够证明ChatGPT是具备一定的推荐能力的,其中在list-wise类型的任务上能获得最高的性价比。
  • 【2024-7-9】综述文章: How Can Recommender Systems Benefit from Large Language Models: A Survey
维度 传统推荐系统 大语言模型
特征表示 1. user/item profile id
2. 具有协同意义的(combine/match类)id特征
1. 文本数据(语义信息)
数量级 亿级(用户)/ 千万级(候选) 十万级token
场景特点 1. 领域各异,领域知识(数据),不具备迁移性
2. 大量稀疏隐式反馈行为数据
1. 能跨领域和跨任务,通用模型,One for all
2. 语义丰富的,用户主动表达的数据
学习范式 Supervised learning Pretrain-Finetune、Prompt tuning、Instruction tuning
模型能力 1. 冷启动差,需要大量行为数据训练
2. 定制化的parameter server,能高效利用id 特征中的协同信息
1. 丰富的世界知识,冷启动友好
2. 有逻辑推理 和 规划能力
3. 可解释性强

推荐系统希望从LLM获取的能力

  • 更丰富的特征表示、丰富的语义信息、知识信息
  • 尝试模型架构(Transformer,Causal language model)
  • 借鉴学习范式(Pretrain-finetune)
  • 交互推荐 和 可解释推荐的能力

LLM参与到推荐系统的各个环节: 总结图见论文原文

  • 特征工程&表征提取: 核心思路是引入额外语义信息世界知识
    • feature engineering 特征工程
    • feature encoder 特征编码
    • LLM 扩充文本信息 + 文本encoder提供embs + 构造instruction数据 + 与 传统推荐模型 share embs,给embs间接赋予语义信息
  • 序列建模优化
    • LLM对基于早期LM模型序列建模的改进
    • 1.重构行为序列 id 特征
    • 2.基于Tranformer的结构,直接训练序列推荐模型
  • 直接推荐
    • 探究 LLM zero shot/few shot用于推荐排序的能力
  • 召回推荐
  • 打分排序: 如何利用大模型学习推荐领域信息,再用于排序
    • scoring/ranking function
  • 交互式推荐&控制
    • user interaction, and pipeline controller

提示学习与推荐

随着 prompt learning 在nlp的出色表现,也开始向cv,向多模态进行扩展,当然,也有不少研究人员用它来解决推荐系统问题。

【2022-8-29】提示学习用于推荐系统问题

论文

Chat-Rec

【2023-4-4】Chat-REC: 当推荐系统遇上 ChatGPT, 会发生什么奇妙反应解说

推荐系统已被广泛部署用于自动推断人们的偏好并提供高质量的推荐服务。然而大多数现有的推荐系统仍面临诸多缺陷,例如缺少交互性、可解释性,缺乏反馈机制,以及冷启动和跨域推荐。

本文中提出了一种用 LLMs 增强传统推荐的范式 Chat-Rec(ChatGPT Augmented Recommender System)。通过将用户画像历史交互转换为 Prompt

  • Chat-Rec 将用户与物品的历史交互、用户档案、用户查询 和对话历史 (如果有的话)作为输入,并与任何推荐系统R接口。
  • 如果任务被确定为推荐任务,该模块使用 R 来生成一个候选项目集。否则,它直接向用户输出一个响应,如对生成任务的解释或对项目细节的要求。提示器模块需要多个输入来生成一个自然语言段落,以捕捉用户的查询和推荐信息。这些输入如下:
    1. 用户与物品的历史交互,指的是用户过去与物品的互动,比如他们点击过的物品,购买过的物品,或者评价过的物品。这些信息被用来了解用户的偏好并进行个性化推荐。
    2. 用户画像,其中包含关于用户的人口统计和偏好信息。这可能包括年龄、性别、地点和兴趣。用户资料有助于系统了解用户的特点和偏好。
    3. 用户查询 Qi ,这是用户对信息或建议的具体要求。这可能包括他们感兴趣的一个具体项目或流派,或者是对某一特定类别的推荐的更一般的请求。
  • Chat-Rec 的框架。左边显示了用户和 ChatGPT 之间的对话。中间部分显示了 Chat-Rec 如何将传统的推荐系统与 ChatGPT 这样的对话式人工智能联系起来的流程图。右侧描述了该过程中的具体判断。
  • 对于一个用户query:“你能推荐一些动作片给我吗?”。
  • 确定这个query是否是一个推荐任务【ChatGPT来判断】
    • 如果是推荐任务,则使用该输入来执行“推荐动作电影”模块。但由于推荐空间是巨大的,所以该模块需要分为两个步骤:1推荐系统产生一个少量的候选得到top20的推荐结果,2然后再进行重新排序和调整【ChatGPT来重排】,以生成top5的最终输出。这种方法可以确保向用户展示一个更小、更相关的物品集,增加他们找到自己喜欢的东西的可能性。
    • 如果不是推荐任务,如用户询问“为什么会推荐你会推荐fargo电影给我”。系统将使用电影标题、历史记录交互和用户配置文件作为输入来执行对推荐模块的解释【ChatGPT来生成解释】。

由于ChatGPT的输入是自然语言文本,所以中间模块的主要目标:

  • 如何利用用户与物品的历史交互、用户档案、用户查询和对话历史 (如果有的话)等等多个输入ChatGPT来生成一个自然语言段落,以捕捉用户的查询和推荐信息。
  • User-item history interactions:用户与物品的历史交互,指的是用户过去与物品的互动,比如他们点击过的物品,购买过的物品,或者评价过的物品。
  • User profile:用户画像,其中包含关于用户的人口统计和偏好信息,如年龄、性别、地点和兴趣。
  • User query Qi:查询句子,可能是推荐任务也可能是通用任务。
  • History of dialogue Hi : 用户和chatgpt之间的所有上下文

对于topk推荐任务来说,生成的prompt例子

如何解决冷启动

大模型中拥有很多知识,利用商品文字描述就能够借助LLM的力量来帮助推荐系统缓解新项目的冷启动问题,即没有大量用户互动也可以得到embedding。

两种chatGPT难以执行推荐场景:

  • 1 让不能联网的chatGPT推荐2023最新的动作电影;
  • 2 让chatGPT推荐一个它知识储备中没有的动作电影。

因此,离线利用LLM来生成相应的embedding表征并进行缓存。从而在当chatGPT遇到新的物品推荐时,会首先计算离线商品特征和用户query特征之间的相似性,然后检索最相关商品一起输入到 ChatGPT 进行推荐。

如何解决跨域推荐?

类似的,LLM中的知识可以很方便,对不同领域的商品有认知,如电影,音乐和书籍等等,并且还能够分清楚在不同领域产品之间的关系。

因此,直接依靠chatGPT把上下文对话输入一起编码进chatGPT的输入后,就能在用户询问关于其他类型作品的建议时,实现跨域推荐,如对书籍、电视剧、播客和视频游戏进行推荐。

从top5推荐和评分预测这个俩结果上来看,似乎text-davinci-003才是最好的

  • Chat-Rec 可以有效地学习用户的偏好,它不需要训练,而是完全依赖于上下文学习,并可以有效推理出用户和产品之间之间的联系。通过 LLM 的增强,在每次对话后都可以迭代用户偏好,更新候选推荐结果。

此外,产品之间的用户偏好是相关联的,这允许更好的跨域产品推荐。Chat-Rec 为运用 ChatGPT 等对话 AI 进行多种推荐情景的应用提供了有希望的技术路线。

商品推荐

定制化商品推荐,告别传统“傻瓜”推荐算法

  • 当下国内众多电商的推荐算法都还是基于传统技术,因此也会出现“买过的东西依然推荐”的傻瓜做法,AI大模型有望彻底改变这些业态

ChatGPT有一些营销场景应用是围绕垂直领域展开,革新推荐算法逻辑,让产品卖点更精准地触达目标客户。

  • 海外生鲜电商平台Intacart的食物搜索工具,其基于ChatGPT推出了面向食物推荐的应用,与自身来自75000多零售合作商店的产品数据结合了起来,帮助客户找到购物的灵感。
  • 美国一款名为Expedia软件内置了一个聊天机器人,通过AI大模型算法为用户规划旅游。有人经历过用ChatGPT规划旅游被推荐一个不存在的海滩,能够在iOS上轻便运行的Expedia据称不会出现这个问题。Expedia会根据旅游地推荐经济实惠的酒店,建议可以打卡的景点,是大模型落地垂直旅游行业的一个代表应用案例。

InstructRec

利用LLM的用户推荐,便于将用户偏好或需求用自然语言描述来表达,因此 instruct tuning 非常适合。

该工作最重要的模块就是通用指令的设计,以全面地描述用户的偏好、意图、任务形式。

  • 偏好(Preference)。指用户偏好。其中隐式偏好用商品标题而非id,显式偏好用用户query中的明确表达(如用户评论),而不是之前的评分或点赞。
  • 意图(Intention)。指用户对某些类型的物品的需求。模糊的意图如“给我儿子的一些礼物”、具体的意图如“蓝色、便宜、iPhone13”)。
  • 任务形式(Task Form)。要做到统一的推荐系统,需要有适应各种任务的能力。
    • Pointwise。某个候选商品是否适合用户,那么直接用用户需求和商品特征来匹配。
    • Pairwise。让LLM从item pairs中选择更合适的一个即可。
    • Matching召回模块,LLM从整个商品语料库中生成候选集合。
    • Reranking排序模块,LLM从候选中重排序商品。

分为 Item LLMUser LLM,两者参数并不共享,都是可训练的并通过 next item predict 来进行优化。可以直接基于已经预训练好的(例如 llama、baichuan)来训练。

  • Item LLM 使用 item 的描述作为输入,包括 Title、Tag、Description,最后再加上一个特殊 token:[ITEM],特殊 token 对应输出的代表该 item 的 embedding;
  • User LLM 输入是用户历史交互序列,输入序列中每个 item 就来自于 Item LLM 的输出。由于输入并非文本 token,所以会去除预训练模型的 word embedding;

优化目标

推荐系统大致分为两类:生成式推荐与判别式推荐,而 HLLM 同时应用了这两种。

  • 首先,针对 Item LLM 的训练虽然论文没提及,但应该就是简单的 next token prediction 训练,针对输入的每个位置预测下一个 token,损失为交叉熵损失。
  • 其次,针对 User LLM 的训练还能用 next token prediction 吗?当然不能!因为去除了 word embedding,词表都没了,还怎么预测 next token。

那该怎么做呢?

  • 生成式推荐:
    • 实际会 User LLM 使用 InfoNCE 来作为生成损失,对于某个物品 模型输出的 是正样本,随机抽取的其他物品为负样本,不得不说将对比学习的 InfoNCE 作为预测 next token 的损失设计的很巧妙。
  • 判别式推荐:
    • 业界主要还是应用判别式推荐模型,HLLM 同样也可。

Meta HSTU

【2024-3-26】行动胜过言语: Meta落地工业界首个万亿级别参数的生成式推荐系统模型

借鉴 LLMs 思路重塑推荐系统范式,实现推荐系统的scaling。

第一次在核心产品线替换掉了近十年工业界长期使用的基于海量异构特征的深度推荐模型, 在模型规模、业务效果、性能加速等方面都相当亮眼。

有可能成为工业级推荐系统大规模scaling的开创性工作。

传统大规模推荐系统基于海量用户行为数据,构造海量高基数和异构特征进行深度模型训练。尽管模型规模已经很庞大了,但如果想进一步进行scaling,则非常困难。

受到近期大语言模型成功的启发,Meta团队重新审视了传统的推荐系统范式,数十亿用户规模的推荐系统所面临的三类主要挑战:

  • 特征缺乏显式结构:海量异构特征,如高基数ids、交叉特征、计数特征、比例特征等。
  • 需要处理数十亿级别的动态词汇表:如ID/属性等。与语言模型中的10万量级静态词汇形成了鲜明对比。
    • 这种数十亿级别的动态词汇表不断变化,给训练带来很大挑战;
    • 且线上需要以目标感知target-aware的方式给数以万计的候选集打分,推理成本巨大。
  • 计算成本是限制落地的最大瓶颈:
    • GPT-3在1-2个月的时间内使用数千个GPU进行了总计300B tokens的训练。从这个规模上来看,似乎令人望而却步,但与推荐系统用户行为的规模相比就相去甚远了。
    • 最大的互联网平台每天为数十亿用户提供服务,用户每天与数十亿条内容、图片和视频进行交互。在极端情况下,用户序列的长度可能高达10^5。
    • 因此,推荐系统每天需要处理的tokens数量甚至比语言模型在1-2个月内处理的数量还要大好几个数量级。

为了解决上述挑战,实现推荐系统的scaling,Meta提出了一种新架构 HSTU (Hierarchical Sequential Transduction Unit,层次化序列直推式单元) ,专为高基数、非平稳分布的流式推荐数据而设计。

核心贡献如下:

  • 统一的生成式推荐(GR) 第一次在核心产品线替换掉了近十年推荐工业界长期使用的分层海量特征建模范式;
    • 不是替换分层架构,而是将传统召排建模方法做了大升级,统一的模型复用到召排链路中,仍然是分层架构,只不过做了升级和技术方案统一。
  • 新的 encoder (HSTU) 通过新架构 + 算法稀疏性加速达到了模型质量超过Transformer + 实际训练侧效率比FlashAttention2 (目前最快的Transformer实现)快15.2倍 (8192长度序列);
  • 通过新的推理算法 M-FALCON 达成了推理侧700倍加速(285倍复杂模型,2.48x推理QPS);
  • 在传统测试集 MovieLens/ Amazon Reviews上,相比经典的 SASRec 提升20.3%~65.8% NDCG@10;
  • 实际中多产品界面上线,单特定ranking界面提升12.4%,如果把召排阶段提升加起来,可达到18.6%(排序12.4%,召回6.2%);
  • 通过新架构HSTU+训练算法GR,模型拥有1.5万亿个参数,模型总计算量达到了1000x级的提升,第一次达到GPT-3 175b/LLaMa-2 70b等LLM训练算力,且第一次在推荐模系统中观测到了类LLM的的scaling law。

重点强调

  • GR的效果经验性地以训练计算量的幂律方式进行scaling,跨越了三个数量级,最高可达到GPT-3/LLaMa-2规模。

核心洞察点:

  • 将“用户行为”当做一种新模态
    • 传统非结构化的图片、视频、文本是模态;
    • 结构化的画像、属性也是模态;
    • 将用户行为定义为“新模态”,就能够实现海量词表所有模态间的充分交叉,无损信息输入。这篇工作抽象出来“最妙”的点之一。
  • 在给定合适的特征空间下,能够重塑推荐系统核心召回、核心排序问题:
    • 如何将传统海量的异构特征做转换,转成生成式任务输入格式也是非常基础非常重要的步骤。
    • 本文方案也有可能成为生成式推荐系统“标配”的输入范式。
  • 新范式系统性地解决传统推荐系统中的特征冗余、计算冗余、推理冗余等关键性能瓶颈问题:
    • 节省大量的计算资源和耗时,提升整体推荐系统的效率。
    • 相比传统推荐系统分层架构给多个候选打分,新范式在多个候选集打分时能复用算力,实现1次推理同时预估所有候选items。节省下来的算力给到大模型1次更复杂的推理。整体系统耗时不一定会上涨。这也是工业界落地所亟需的。
    • 本文方案回答了困扰问题,即:大模型在推荐系统的性能问题该怎么解决:在传统工程架构下叠加大模型能力肯定无法落地,但在新架构新范式下,是有可能实现整体系统层面耗时的摊销。

实现推荐系统的scaling,解决传统推荐系统海量异构特征、海量动态词表、计算瓶颈这三个方面工业级难题。

  • 海量异构特征:通过给定适当的新特征空间, 将核心排序和检索任务转化为生成建模问题。
  • 海量动态词表:通过自回归建模、Transformers架构定制、采样优化等实现海量动态词表间高阶信息交互和提取。
  • 计算瓶颈:通过稀疏性优化、内存优化、算子融合、候选集算力复用和计算摊销来实现高吞吐、低时延。

详见:行动胜过言语: Meta落地工业界首个万亿级别参数的生成式推荐系统模型

字节 HLLM

【2024-10-6】LLM4Rec最新重磅工作:字节发布用于序列推荐的分层大模型HLLM

前几个月 Meta HSTU 点燃各大厂商对 LLM4Rec 的热情,一时间,探索推荐领域的 Scaling Law、实现推荐的 ChatGPT 时刻、取代传统推荐模型等一系列话题让人兴奋

字节前几天(2024.9.19 发布 arxiv)公开的工作 ⌜HLLM⌟(分层大语言模型)便是沿着这一方向的进一步探索,论文内也提及了 follow HSTU

传统推荐问题:

  • 推荐重要的是 建模 user、item feature,主流方法是 ID-based,将 user、item 转为 ID 并创建对应的 embedding table
  • 然而一般都是 embedding 参数很大而模型参数较小,这会导致以下问题:
    • 严重依赖 ID feature 在冷启动时表现不好
    • 模型较小难以建模复杂且多样的用户兴趣

过往 LLM 探索大致分为三种:

  • 利用 LLM 提供一些信息给推荐系统
  • 将推荐系统转变为对话驱动的形式
  • 修改 LLM 不再只是文本输入/输出,比如 直接输入 ID feature 给 LLM

LLM4Rec 挑战:

  • 相同时间 span 情况下,相比 ID-based 方法 LLM 的输入更长,复杂度更高;
  • 相对于传统方法 LLM-based 方法提升并不显著。

三个关键问题

LLM 应用到推荐有三个问题需要评估:

  • LLM 预训练权重的真正价值:模型权重蕴含着世界知识,但是如何激活这些知识,只能使用文本输入吗?这也为之后使用 feature 输入埋下伏笔;
  • 对推荐任务进行微调必要性?直接使用 pretrain 还是说要进一步微调?
  • LLM 是否可以应用在推荐系统中并呈现 scaling law

由此提出了 Hierarchical Large Language Model(HLLM)架构,训练 Item LLM(用来提取 item feature)和 User LLM (item feature 作为输入,用于预测下一个 item)

实验表明

  • 公开数据集上显著超越 ID-based 方法,并呈现了 Scaling Law 特性。
  • 在抖音落地,A/B 实验显示在重要指标上增长 0.705%。

LLM + Ranking

重排器(Reranker)作为信息检索的第二阶段,需要根据查询和文档的相关性,对候选文档做细粒度的排序。经典的重排方法一般使用交叉编码器,结合文档和查询的语义信息进行打分和排序。

现有涉及LLM的重排方法大致可以分为三类:

  • 用重排任务微调LLM
  • 使用prompt让LLM进行重排
  • 以及利用LLM做训练数据的增强

综述

【2023-12-20】LLM in Reranking——利用LLM进行重排

本文中针对前两种方法介绍一些研究。

排序学习方法主要分为 point-wisepair-wise 以及 list-wise 三种思路,LLM通过prompt进行重排也类似。

LLM不同于传统的交叉编码器,具有更强的语义理解能力,并且能够捕捉到文档列表整体的顺序信息,它仍然面对几个不可忽视的问题。

  • 一方面,LLM的输入长度对于一个文档列表来说还是十分受限的,必须通过滑动窗口或集成的方式才能实现文档输入。
  • 另一方面,list-wise的LLM重排器对于输入非常敏感,在某些极端的情况下,例如将输入文档随机打乱顺序时,模型的输出结果甚至可能不如BM25。
  • 另外,还有参数过剩与时效性的问题会导致LLM重排器难以落地。

参考综述:

方案

LRL

Zero-Shot Listwise Document Reranking with a Large Language Model

这篇文章与现有的 score and rank 的 point-wise 打分方式不同,作者提出一种名为 Listwise Reranker with a Large Language Model (LRL) 的方法,利用 GPT-3 对文档进行 list-wise 的排序,直接生成候选文档的identifier序列实现重排, 这种list-wise的方法能够让模型同时关注到所有的文档信息

RankVicuna

RankVicuna 也是一种 Listwise 的LLM排序方法,但是不同于LRL,它是经过针对重排微调后的模型。

  • 利用RankGPT-3.5作为教师模型在MS MARCO v1训练集中随机抽样的100K套训练集文档上生成数据,将RankGPT的能力蒸馏到7B的RankVicuna中。

PRP

作者提出利用LLM做list-wise与point-wise重排任务时,模型存在无法很好地理解排序指令的问题,并且在越小规模的模型中越显著。

作者认为这一问题有可能与预训练中缺少相应任务有关。

LLM应用于 list-wise 时出现的问题

针对这一问题,作者提出一种名为 pairwise ranking prompting (PRP) 的范式,设计了一种简单的prompt,结合了生成和打分的模型API,使得规模较小的开源模型也能够在公开数据集上实现SOTA.

PROMPTRANK

本文中提出一种名为 PROMPTRANK 的框架,依靠prompting和多跳重排,可以在少样本的前提下解决复杂的多跳问答(MQA)。

多跳问答(multi-hop question answering, MQA)是指query对应多个文档,且回答问题需要结合召回的复数文档进行多步推理的场景。目前的MQA大多基于retrieve-then-read的pipeline,然而这种模式下往往需要大规模的训练数据,对低资源场景(如医疗、法律等特定领域)不友好。

LLMRank

【2023-5-15】人民大学发表论文:LLM用于推荐系统排序

将推荐问题形式化为条件排序任务,将历史交互作为条件,将召回得到的候选item作为候选。

采用特定提示方法来应用LLM解决排序任务:包括交互历史候选item排序指令来设计提示模板。

  • LLM 具有很有前途的零样本排序能力。
  • LLM 难以感知历史交互顺序,并且可能会受到位置偏差等偏差的影响,而这些问题可以通过专门设计的提示和引导策略来缓解。
  • img

结束


支付宝打赏 微信打赏

~ 海内存知已,天涯若比邻 ~

Share

Related Posts

标题:大模型落地技术:参数高效微调 LLM PEFT

摘要:大模型工业落地的技术经验总结:参数高效微调 PEFT

站内可视化导航

文章可视化导读:鼠标划过图形块时,如果出现蓝色光环, 点击即可跳转到对应主题

Comments

--disqus--

    Content
    My Moment ( 微信公众号 )
    欢迎关注鹤啸九天