大模型推荐LLM4Rec调研2024
写在前面:近期因业务需求,对近期大模型推荐(LLM4Rec)相关研究做了一次调研,整理了一下资料。这里将这些资料分享出来,期望可以对看到的同学有所帮助。
1 LLM4Rec的基础调研及框架
在多方搜索资料后发现,在2023年存在一篇大模型推荐的survey神作,见参考文献[1]。国内也有一些讲解资料参考:[奥创纪元:当推荐系统遇到大模型LLM] ****[When RS Meets LLM:推荐系统如何从大语言模型中取长补短?面向应用视角的全面综述] 。 这篇文章对近期大模型推荐的研究工作进行分类,如下图所示,大模型结合推荐的应用主要分为5个方面:
图1 大模型结合推荐的主要方式分类
- 数据采集阶段:线上收集用户真实的行为和记录,得到原始数据。
- 特征工程阶段:对原始数据进行筛选、加工、增强,得到可供下游深度模型使用的结构化数据(structured data)
- 特征编码阶段:对结构化数据进行编码,得到对应的稠密向量表示(embeddings)
- 排序阶段:对候选item进行打分排序,得到要呈现给用户的item排序列表(recommended items)
- 推荐流程控制:把控上述推荐系统整体流程,也可细化到对排序阶段的召回/粗排/精排的控制。(pipline controller)
另外,模型也对模型的发展做了进一步的预测,如下图所示,微调大模型完成推荐、不微调大模型+传统推荐大模型将会为未来发展方向。这里就不具体展开,详情可看原文。
图2 大模型推荐的发展趋势讨论
本文章不再对上文所提调研工作进行详述,而是对今年(2024)以来影响力较大的工作进行汇总,分析各互联网公司的研究进展,期望可以给出一些启示。
2 近期各公司在LLM4Rec方面的进展
近两年大模型飞速发展,很多公司也在探索大模型在推荐场所的落地应用。这里对近期的一些进展进行survey,时间紧迫,可能没有很好的整理,还望谅解。
Meta
背景及问题
-
计算扩展性不足:尽管深度学习推荐模型(DLRMs)在海量数据和数千个特征上进行训练,但它们在计算资源上的扩展性不足,这限制了模型的性能和应用。
-
推荐系统中的特征缺乏明确的结构:异构特征(高基数ID、交叉特征、计数、比值)起着关键作用。
-
问题规模的挑战:十亿级动态词汇量,对比语言中10万规模的静态词汇量。推理阶段需要以目标感知的方式考虑数万个候选。
-
计算成本:推荐系统每天需要处理的tokens比语言模型 1-2 个月处理的tokens多几个数量级。
所提方法
- 生成式推荐(Generative Recommenders,简称GRs): 首次提出了生成式推荐,这是一种新的范式,用于替代传统的深度学习推荐模型(DLRMs)。 特征统一:对DLRMs中的异构特征空间进行了序列化和统一处理,随着序列长度趋于无限大,新方法逼近完整的DLRM特征空间。 任务统一:能够将主要的推荐问题(排名和检索)重新表述为生成式推荐中的纯序列转导任务。 进一步使得模型训练能够以序列化、生成的方式进行,这允许我们在相同的计算资源下训练数量级更多的数据。
任务形式如下图:
统一特征:如上图所示, DRs 这里把 E/F, G, H 分别进行 merge and sequentialize, 这里 (E, F) 表示哪些用户的交互行为, merge 后得到的是 (Φ,a,t)(Φ,𝑎,𝑡): (Context, action, timestamp), 二 G, H 则是一些 “not related to user-content engagements”.
统一任务:
- 排学:对于 ranking, 作者设计的任务是:
即通过过往的信息预测下一个 action.
- 检索:对于 retrieval, 作者设计的任务是仅对那些 ai𝑎𝑖 为 positive 的情况进行:
negative 的 action 不进行预测.
- 模型优化 我们通过提出新的序列转导架构——分层序列转导单元(HSTU)来解决训练和推理过程中的计算成本挑战。
作者为了兼顾效率, 特别改进了模型框架:
注意到, 其中的每个模块变成了:
虽然形式上和 attention 还是比较像的, 但是注意到:
- Q(X)K(X)^T并没有经过 softmax 处理, 作者认为这样除了效率外, 还能够保证不同的参与度能够有所区分;
- 𝑈(𝑋), 门控机制的引入 (作者用来模拟 MoE).
- 可以发现, softmax 这个点的影响很大.
- 此外, 还有数据集的切分, 优化器的选择等等.
虽然最后的效果并没有特别夸张, 但是这些尝试是值得肯定的.
实验结论
Generative Recommenders与DLRMs的比较:GR在工业规模流设置下不仅离线性能显著优于DLRMs,而且在A / B测试中带来了12.4%的指标提升;GR的扩展性优于DLRMs,其各项指标随着计算量的增加呈幂律增长,这表明从LLMs借鉴的扩展规律也适用于大规模推荐系统。
?没看懂的地方:动态词汇表适应性
推荐系统需要能够快速适应动态变化的词汇表,如新物品的加入和旧物品的移除。HSTU的设计允许模型灵活地处理这些变化,而不需要频繁的重新训练,这一点对于保持推荐系统的最新状态和相关性非常重要。
华为
CTRL: Connect Collaborative and Language Model for CTR Prediction
背景及问题
仅使用语言模型进行推荐目前效果不理想,需要通过引入推荐场景的数据,结合微调技术,为语言模型注入协同信号。为此,华为提出了一种对齐语言模型和协同模型的框架CTRL。
具体技术方案
-
Prompt construction:通过7个模板把表格数据转换为文本数据。
-
用户和物品特征:特征名+连接词+特征值。
-
用户历史行为序列:用户的历史类型+动作连接词+历史1|历史2|历史3。
-
采用’,‘作为特征之间的分隔符;采用’.'作为用户信息和物品信息的分隔符。
-
-
Cross-model Knowledge Alignment:将协同模型和语言模型的知识进行对齐。
- 利用对比学习预训练融合两种模态的信息。
-
Supervised Finetuning:在经过细粒度对比学习预训练之后,两种模态的信息已经进行充分融合。
-
使用监督信号使协同模型适配下游任务。
-
通过在不同的任务上微调,可以适配不同的推荐任务。
-
-
Serving:仅使用更轻量的传统模型进行serving,不会对RT造成影响。
实验结果
实验结果如上表所示,在多个数据集上获得了sota。
总结下方法创新性:
-
以混合粒度知识对齐的方式,同时建模协同信号和语义信号;
-
从数据角度进行双向知识注入,语言模型与推荐模型互相解耦;
-
可以单侧推理,推理复杂度低。
百度
Representation Learning with Large Language Models for Recommendation
百度这篇文章原理还比较容易理解,但是他写的复杂,导致理解费劲。
背景及问题
推荐系统利用深度学习和图神经网络,如NGCF和LightGCN,显著提升个性化推荐。然而,它们过分依赖ID信息,忽视了文本信息,且易受隐式反馈(如点击偏见)的噪声干扰。为此,我们提出了RLMRec,通过结合LLMs(大型语言模型)增强表示学习,捕捉更多深层次的语义特征。我们通过辅助文本和跨视图对齐技术处理文本信息,利用互信息优化表示,以应对数据质量和偏见问题,确保在噪声环境下推荐系统的稳健性。
提出的方法
所提方法三步走:
第一步:使用LLM提取用户画像。即先获取item的各种特征文本,然后用大模型总结item的简要描述;然后结合用户与物品的交互信息,让LLM总结用户的兴趣或者画像描述,最后抽取用户画像的文本emb。(注意这里省了了画像抽取的细节,感兴趣可看原文)
第二步:对齐图网络中用户emb与文本描述emb。使用对比学习,将两个特征进行对齐。
第三步:借助生成训练方式,进一步对去图网络emb与语言表示。即利用图网络中用户emb,通过生成网络还原用户画像的文本描述。
由此,获得了llm增强的用户画像emb。
实验结果
实验证明了所提emb的提升,特别是在抗噪声干扰方面。同时也说明了该emb的通用性,在多个测试集获得提升。这里就不列出了。
腾讯
ID-centric pre-training for recommendation
背景及问题
传统的顺序推荐(SR)系统通过分析用户历史行为序列,预测用户未来喜好,常用于网站推荐。它主要利用ID嵌入,将商品独特ID转化为密集的嵌入向量来表示商品。然而,当面对新领域迁移时,这种方法存在挑战。本研究提出ID中心推荐预训练范式(IDP)来解决这一问题,通过在预训练阶段整合ID和行为信息,利用ID嵌入的语义,用CDIM在源领域寻找相似商品,以生成适应新领域的项目嵌入。实验证明,IDP模型在冷启动和暖启动场景下表现优越
所提方法
本文所提方法,可以分为三部分:
1)基于ID序列的预训练,这部分模型可采用SASRec,即常用的序列推荐模型。目的是通过预训练,获取ID的emb,同时emb中包含了item的协同信号。
2)多领域的ID emb匹配。这一步,就是让item的文本表示text_emb 对齐 ID_emb,训练方式为对比学习,这里就不详细说明。
3)新领域ID_emb的生成,这部分是用于模型迁移的核心。对于一个新领域,item的文本表示可以先生成对应text_emb,然后通过匹配获取topN个ID_emb; 然后使用这topN个向量进行加权求平均,获取最终的新领域item的ID_emb。新的模型ID_emb可直接复用预训练的推荐模型。
当然,在下游任务中可以直接复用预训练的推荐模型;微调也能更好适配新领域。
实验结果
实验证明了预训练的有效性,在多个测试集的下游任务获得了提升。这里细节不进行阐述,可自行查看原文。
快手
Knowledge Adaptation from LLM to Recommendation for Practical Industrial Application
或许没看很懂,没理解到底线上怎么用,有点像水文。
背景及问题
过往使用大模型做推荐分为两种思路:
- 冻结LLM参数并适应推荐领域数据:利用LLM生成物品的内容嵌入,通常是通过处理生成物品的文本描述(如标题、说明、评论等),从而捕捉物品的语义信息,比如Chat-Rec。
- 在推荐领域的特定文本数据集上微调LLM:利用LLM捕捉用户行为序列,通过设计提示prompt,使LLM学习用户和物品之间的潜在关系,在预测任务中理解用户的偏好变化和行为模式,从而更好地预测用户可能感兴趣的物品,比如TallRec。
文中认为以上其实都是将LLM的广域和推荐领域强行结合(Rec-to-LLM),可能会出现遗忘,即随着推荐任务的学习,模型会丢失在预训练过程中学到的知识。
由此有了新的这个LEARN框架(Llm-driven knowlEdge Adaptive RecommeNdation),旨在有效融合大模型和推荐系统(LLM-to-Rec),更像是一种特征提取,LEARN框架通过双塔结构(用户塔和物品塔),利用LLM生成的Embedding来改进推荐性能。
提出方法
- 历史序列和目标序列
感觉是对行为序列做截断,当前曝光之前的作为历史序列,当前曝光之后的作为目标序列,对于第i
个用户,其历史交互序列和目标交互序列分别定义如下:
-
历史交互序列:
U_hist_i = {Item_i1, Item_i2, ..., Item_iH}
-
目标交互序列:
U_tar_i = {Item_i(H+1), Item_i(H+2), ..., Item_i(H+T)}
-
用户塔和商品塔
用户塔就是PCH,商品塔给了三种样式:
- Variant 1:使用与用户塔相同的架构和模型权重,但输入的是用户目标交互序列(user target interactions)。这种方法通过使用相同的因果注意机制(causal attention)来处理用户历史交互,从而对齐用户和商品Embedding。
- Variant 2:使用自注意机制(self-attention mechanism),只关注商品本身。独立处理每个商品,不考虑商品之间的顺序依赖。(这里缺少不少细节,比如线上如何用)
- Variant 3:直接使用CEG生成的内容Embedding,在训练阶段使用用户目标交互序列,在推理阶段只使用商品的文本描述作为输入。
在训练阶段,Variant 1 使用用户目标交互序列作为输入,Variant 2 和Variant 3 独立处理每个商品。
- 线上应用:
应用模型如下图所示,他包含两个loss。主loss是预测用户和item是否匹配(点击序列),数据包括llm产生的emb和id_emb;辅助loss是avr预测,即转化率。
实验结论
实验过程给出了多个对比实验,主要是根据召回准确率来对比。实验证明所提variant 1中模型的有效性;证明所提方法对比纯id_emb或文本emb的优势。具体可查看原文。
阿里
Large Language Model based Long-tail Query Rewriting in Taobao Search
背景及问题
淘宝电商搜索引擎框架下,用户输入搜索词之后,平台先进行语义理解,对用户query进行改写,之后对原始词 + 改写后的词召回商品,再经过多层排序后对用户展现头部商品。query改写的目标是,在保持相关性的同时,对原始query进行语义扩展,可以召回更多相关商品。例如,有两个搜索词,“DIY blind box"和"Self_building blind box”。这里前者和后者语义相同,但是前者是主流搜索词,召回结果有多个。而后者属于长尾搜索词,难以召回多个结果。如果将后者改写为前者,语义保持相同的情况下,召回更多的商品,则在后续的排序流程中更有概率推荐转化率高的商品,从而提高订单量 && GMV。
目前LLM在query改写上有一些工作,但由于对没有使用query改写特定任务对大模型进行fine-tune,还存在一定的局限性。
所提方法
本文提出了BEQUE框架,框架包含三个阶段,如下图所示:
第一阶段 Multi-instruction Supervised Fine Tuning : 使用多领域数据集对LLM进行finetune,主要包括Query Rewriting Dataset和辅助数据集2个部分。
- Query Rewriting Dataset: 使用基线改写策略,对原始query取相关性TOPN的改写query。为了进一步优化数据集相关性,限制原始query和改写query的相关性必须大于某一阈值。基线改写策略对长尾query效果不佳,即便原始query和改写query语义上具有相关性,但是召回的商品集合未必相关。因此使用拒绝负采样,query和改写query召回商品后,要求用户真实交互过的商品数大于一定阈值,来保证和query和改写query在召回商品集合上的相关性
- 辅助数据集: 为增强LLM对长尾query的理解能力,使用quality classification,product title prediction,Chainof-thought,三个辅助数据集对LLM进行finetune。
第二阶段 offline feedback : 设计多个函数多角度评估改写query质量,包括relevance、increment、hitrate等3个评估方法。
- relevance:即便原始query和改写query 语义上具有相关性,但是召回的商品集合未必相关。因此定义相关性指标来衡量改写前后召回商品的相关性。淘宝离线评估方法用来评估query和召回商品标题的相关性。
- increment:query改写可以增加商品召回的数量,解决“few-recall”的问题。因此定义增量指标来衡量query改写后是否增加了召回商品的数量。
- hitrate: 定义命中率指标,如果搜索场景之外成交过的某件商品和原始query相关性大于一定阈值,那query改写后应尽量召回该商品。
第三阶段 object alignment:强制模型学习改写query之间pairwise的偏序。
使用PRO Loss来pair wise地学习改写query之间的顺序:
模型的最终Loss为监督微调的loss + PRO loss
实验结果
模型离线效果如下表所示。从上图可以看到,与多种基线相比,BEQUE与多种基线相比,在多个测试集上的relevance指标略为逊色,但在incr/hitrate指标上有极大幅度的提升。细节可参考原文。
蚂蚁
SLMRec: Empowering Small Language Models for Sequential Recommendation
背景及问题
主要研究推荐 大模型 的蒸馏问题,以满足线上 推理 时效性要求。
NLP领域中LLM的冗余性启示我们,尽管LLMs在NLP任务上表现出色,但在SR任务中过大的模型并非必需。我们关注的是找到合适大小的LLM,既能保证性能,又能减少资源消耗。 现有的LLM驱动的SR模型如P5、CoLLM等虽然性能提升显著,但参数量膨胀问题严重,增加了70倍,这在面对海量日志和实时更新的环境时显得不切实际。因此,我们的研究旨在优化LLM在SR中的应用,通过减少不必要的模型大小,如利用LLMs的规模定律,以实现既能提升性能又节省资源的目标。
我们致力于研究如何通过缩小LLMs,如LLaMa-7B的规模,来探究其在推荐中的实际效果,关注的是观察这种减小参数量对性能的影响。
模型蒸馏策略
我们选择LLaMa模型,教师模型为深度的,学生模型为较浅的,它们具有相同的隐藏维度。为确保特征方向的一致性,我们设计了一个余弦相似性损失𝐿𝑓𝑠𝑖𝑚,通过比较教师和学生模型每间隔𝑖层的特征向量来测量相似性。
我们还加入了特征范数正则化,通过计算教师和学生模型每组间隔𝑖层的特征差的平方和来量化L2距离。数学表达为𝐿𝑓𝑛𝑜𝑟𝑚,目标是使学生模型的特征尽可能接近教师模型,以保持相似性和防止偏差。
我们引入了多源指导,通过学习额外的适应器𝑊𝑡来细化学生模型的学习。
总损失函数𝐿𝑡𝑜𝑡𝑎𝑙由三部分组成:知识蒸馏损失𝐿𝐾𝐷,特征相似性损失𝐿𝑓𝑠𝑖𝑚,以及多源指导的预测损失𝐿𝑚𝑝。
通过联合优化这三种损失,学生模型能既学习教师知识,又能保持自身特征质量和对推荐的理解,从而提升其泛化能力和推荐表现。
其中,我们引入了三个超参数𝜆1 𝜆2, 和𝜆3,分别代表知识蒸馏损失、特征相似性损失𝐿𝑓𝑠𝑖𝑚和多源指导预测损失𝐿𝑚𝑝的重要性。它们允许我们在知识学习、特征保持和理解推荐知识之间进行动态平衡。通过调整这些权重,我们可以优化模型,确保在学习教师知识的同时,保证特征质量和对推荐信息的处理,从而增进学生模型的泛化能力和推荐表现。
实验结果
实验,我们发现基于LLM的推荐方法在提取序列兴趣模式方面明显优于传统TSR方法。同时也证明了小型语言模型在适当策略下能与大模型抗衡。具体细节可参考原文。
小红书
NoteLLM: A Retrievable Large Language Model for Note Recommendation
问题及背景
小红书作为一个UGC的种草分享平台,用户往往对特定内容具有很强的连续了解欲望,比如出游攻略,往往希望多看几个笔记去完善自己的出游计划,此类推荐文中称为item2item(I2I)推荐,从业务实际出发,标签(#号,hashtag)和类目(cate)提供很强的指导性和相关性,但现有基于BERT的模型进行Embedding学习时,对标签或类别等元素只是作为文本的一部分,没有充分利用,由此做了NoteLLM的工作。
所提方法
本方法将训练定义为三个任务
- 推荐任务——在池子里选出top-k篇出来;
- hashtag生成任务——通过标题和内容生成hashtag;
- 类比生成任务——通过标题、内容和hashtag生成类别;
为三个任务设计统一的prompt:
训练过程采用多任务联合训练。即训练数据中构造召回pairs对,对emb进行对比学习;对tag和类目采用生成的loss,最后将对比学习loss与生成loss叠加作为total loss。
实验结果
实验证明了所提方法的有效性,特别在低曝光笔记上效果提升明显。具体可参考原文。
3 总结与讨论
总结一下近期的重要探索方向:
1 将推荐场景动作和item进行序列化,以大模型方式预训练和应用,如meta
2 语义表示与ID_emb的相互注入,增加特征的表示。如华为、百度、腾讯
3 小方向应用探索,如阿里的query改写、蚂蚁的模型蒸馏、小红书的标签生成与emb增强。
大模型&AI产品经理如何学习
求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。
1.学习路线图
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方图片前往获取
3.技术文档和电子书
这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
4.LLM面试题和面经合集
这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓