Py学习  »  机器学习算法

大模型时代下的推荐系统:深度学习与推荐系统 2.0 (文末送书)

Coggle数据科学 • 6 天前 • 16 次点击  

在当今数字化时代,推荐系统已成为我们生活中不可或缺的一部分,从电商购物到视频娱乐,从新闻资讯到社交网络,它无处不在地影响着我们的决策和体验。

然而,随着用户需求的日益复杂化和数据规模的爆炸式增长,传统推荐系统面临着诸多挑战,其中数据稀疏性问题尤为突出,尤其是冷启动问题,一直是困扰深度学习推荐模型的瓶颈。

unsetunset大模型与推荐系统unset unset

大语言模型通过学习海量的互联网知识,能够很好地应对冷启动问题。无论是新用户还是新物品,它们在推荐系统中往往因为缺乏足够的交互数据而难以获得精准的推荐。而大语言模型凭借其强大的知识储备和泛化能力,可以从预训练模型中提取并迁移知识,从而在多个维度提升推荐系统的性能,包括泛化性、稀疏性、效率和有效性。

从技术层面来看,大语言模型以海量的互联网文本信息为基础,构建了基于 Transformer 架构的语言模型,并通过预测下一个 token(可以是一个词或词的一部分)的概率来训练模型。以 BERT 为例,它通过预测上下文中的中间 token 来进行训练,这与传统的语言模型架构有所不同。

由于训练数据量巨大,模型训练过程无需人工标注,只需进行数据预处理即可。一旦完成预训练,大语言模型就可以用于解决语言理解和语言生成等下游任务。

简而言之,大语言模型通过对海量文本中 token 序列的统计建模,学习给定语言片段后下一个 token 出现的概率,从而为各种下游任务提供支持。

对于推荐系统而言,用户的过去操作行为实际上是一个有序序列,类似于文本中的词序列。每个用户的操作序列类似于一段文本,而所有用户的操作行为序列则构成了大语言模型的训练语料库。

因此,预测用户下一步的操作行为就类似于预测词序列中的下一个 token(在推荐系统中,物品可以类比为语言模型中的 token)。

通过这种简单的类比,我们可以直观地认识到,推荐系统可以嵌入到大语言模型的理论框架中,从而利用其强大的能力来解决推荐系统的问题。

unsetunset落地大模型的难点unsetunset

实际上,推荐系统的数据来源远比这复杂。除了用户交互序列外,还有用户画像信息、物品画像信息等。 其中,一些用户画像和物品画像信息(如用户的年龄、性别、偏好,物品的标题、标签、描述文本等)都可以用自然语言来呈现。

将用户行为交互序列、用户画像、物品画像等信息作为背景知识输入到大语言模型中,可以使推荐结果更加精准。

推荐系统中涉及的许多数据是多模态的(例如,物品不仅有描述文本,还有图片,甚至介绍视频等)。这种异构信息对于推荐系统的推荐效果至关重要。

目前,一些深度学习推荐算法已经具备了利用多种信息进行推荐系统建模的能力。这些多模态信息也可以转换为文本信息,供大语言模型使用。当前的多模态大语言模型可以直接处理多模态数据,因此也可以直接应用于推荐系统。

即使不使用图像和视频等多模态数据,仅利用文本数据,大语言模型也已经非常强大。大语言模型最强大的能力之一是零样本(zero-shot)和少样本(few-shot)学习。

简单来说,零样本学习意味着在预训练完成后,大语言模型可以直接解决未知的下游任务;而少样本学习则是在给定几个例子后,大语言模型能够解决类似的问题,这种能力被称为“上下文学习”(In-Context Learning),即从一个例子中推断出结论的能力。

这两种强大的能力都可以用于解决推荐问题。在使用大语言模型进行推荐时,需要设计一些提示(prompts)和模板,以激活大语言模型的推荐能力。

unset unset传统推荐模型与大语言模型:对比与思考unsetunset

传统推荐模型通常以 Embedding + 深度网络 作为核心架构,通过拟合用户反馈信号来提升推荐效果。其主要特点包括:

  • 模型较小,时间和空间开销低:适合在资源受限的环境中运行。
  • 充分利用用户反馈信号:能够根据用户的点击、购买等行为进行精准推荐。
  • 局限性:只能利用数据集内的知识,缺乏语义信息和深度意图推理能力。

大语言模型以 Transformer 架构 为基础,通过大规模预训练语料库和自监督训练提升语义理解和生成能力。其主要特点包括:

  • 引入外部开放世界知识:丰富语义信号,提升跨领域推荐能力。
  • 适合冷启动场景:能够为新用户或新物品提供合理的推荐。
  • 局限性:缺乏用户反馈信号,计算复杂度高,难以处理海量样本。

难点1:训练效率

大语言模型训练时占用过多显存,训练时间过长,这使得模型的迭代和优化变得极为困难。

  1. 参数高效微调(PEFT):通过只更新模型的一部分参数(如适配器模块),大幅减少训练所需的显存和时间。
  2. 调整模型更新频率:采用长短更新周期相结合的方式,例如在离线阶段进行大规模更新,而在在线阶段进行小规模微调。

难点2:推理延迟

大语言模型的推理延迟过高,难以满足推荐系统对实时性的要求。

  1. 预存储部分输出或中间结果:通过空间换时间的方式,提前计算并存储可能的输出或中间结果。
  2. 模型压缩:通过知识蒸馏、剪枝、量化等方法,减小推理模型的实际规模。
  3. 仅用于特征工程和特征编码:避免直接在线上环境中进行模型推理,而是将大语言模型用于特征提取和编码,后续推理任务交给轻量级模型完成。

难点3:长文本建模

在推荐领域,用户的长序列行为、庞大的候选集以及多样的特征会导致推荐文本过长。这不仅难以被大模型有效捕捉,甚至可能超出语言模型的上下文窗口限制(Context Window Limitation)。

难点4:ID 特征的索引与建模

纯 ID 特征(如用户 ID)本身没有语义信息,无法被语言模型理解。需要探索更适合语言模型的 ID 索引和建模策略,例如将 ID 特征与语义信息结合,或者通过嵌入学习为 ID 特征生成语义向量。

unsetunset大模型与推荐系统融合思路 unsetunset

大语言模型(LLM)是一种基于深度学习的自然语言处理技术,能够从大规模语料库中学习语言规则和模式。当模型参数达到一定规模时,其性能显著提升,展现出强大的泛化能力和涌现能力。

大语言模型存储了大量通用世界知识,具备语言理解和表达能力,但缺乏推荐领域的专有数据,且计算复杂度高,训练和推理成本高昂。

一个自然的想法是:如何通过合适的范式,将大语言模型的能力转移到推荐系统中,利用其丰富的通用知识辅助推荐,提升推荐效果和用户体验。

目前,行业内对大语言模型和推荐系统的结合进行了大量探索,根据大语言模型与推荐系统的耦合强度,主要有以下两种建模范式:

范式1:LLM + 推荐

将语言模型作为特征提取器,将物品和用户的原始信息(如商品标题/属性/类别、用户的点击序列/上下文)设计成提示(prompt),输入到大语言模型中,输出对应的嵌入向量或语义摘要信息。

这些信息随后被用作特征,或通过语义挖掘用户潜在兴趣偏好,最终融入推荐系统的决策过程。

LLM 嵌入(LLM Embedding)

在传统推荐领域,通常使用无语义的数值 ID 来表示商品和文本信息,并通过稀疏的 one-hot 编码处理 ID 特征。这种编码方式会导致语义信息的丢失。随着语言模型的兴起,一种直观的方法是利用语言模型作为编码器,获取商品标题/属性等文本信息的嵌入表示,并将其与推荐系统中基于 ID 的 one-hot 编码模式相结合。例如:

  • U-BERT:通过编码用户评论内容,增强用户的个性化向量表示,最终获得密集的嵌入向量。
  • UniSRec:通过编码商品标题/用户行为序列,实现跨领域序列推荐目标。

LLM 摘要(LLM Summary)

这类工作利用大语言模型对商品/用户的原始语料信息进行总结,生成精简的语义表达,供后续推荐模块使用。例如,Liu 等人提出了基于 LLM 的生成式新闻推荐框架 GENRE。通过将新闻标题和类别等数据构建成提示,激发 LLM 生成新闻摘要和个性化新闻等内容。这些生成的信息一方面用于迭代优化 LLM 的生成能力,另一方面用于训练新闻推荐模型,补充推荐模型的知识信息。

GPT4Rec:语义查询生成

GPT4Rec 利用 LLM 模型理解用户意图,基于用户的行为历史提取兴趣点,并生成中间语义查询,用于后续推荐召回。具体步骤如下:

  1. 根据用户历史交互的产品及其标题,通过提示格式化后,使用 GPT2 生成能够代表用户多种兴趣的“搜索查询”。
  2. 将生成的查询提供给搜索引擎,检索出待推荐的项目,从而提高推荐召回的相关性和多样性。

范式2:LLM 作为推荐系统

与第一种融合方法不同,这种范式的目标是直接将预训练的 LLM 转化为强大的推荐模型,替代推荐系统中的一个或全部模块(召回 -> 粗排 -> 精排 -> 重排)。

输入序列通常包括介绍描述、行为提示和任务指令,输出为最终推荐结果。这种“LLM 作为推荐”的范式是一种非常理想的推荐方式,高度依赖于 LLM 模型强大的语言理解、逻辑推理和文本生成能力。

LLM 作为排序器(LLM as Ranker)

该工作将推荐问题形式化为给定条件下的排序任务,其中用户的交互历史作为条件,推荐系统召回的项目作为候选集。通过设计合适的提示模板,结合条件、候选和排序指令,LLM 可以为候选产品打分或排序。实验表明,LLM 在零样本(Zero-Shot)场景下具有更好的排序能力,但不可避免地存在位置偏差和流行度偏差问题。

LLM 作为推荐系统(LLM as RecSys)

以 Chat-Rec 为例,Chat-Rec 将 LLM 作为推荐系统的中心枢纽,通过提示将 LLM 和推荐模块连接起来。通过用户与 LLM 之间的多轮对话,逐步缩小推荐候选范围,最终提供精准的推荐结果和推荐理由。具体步骤包括:

  • 将用户的行为足迹转化为提示,让 LLM 学习用户偏好。
  • 将用户的推荐历史和推荐系统生成的候选集输入 LLM,进行过滤和排序,完成多轮推荐。

范式3:基于 LLM 的品类知识推荐

由于 LLM 的推理过程极为耗时,无法满足在线推荐系统毫秒级延迟的要求,短期内无法直接用于在线推理。因此,越来越多的研究和实践采用“LLM + 推荐”的方式,利用大模型的知识和推理能力,提升推荐模型对产品信息、上下文和用户行为序列的知识表达能力, 具体包括:

  • 利用 LLM 的通用知识信息构建品类匹配系统,在推荐召回阶段引入匹配 I2I(Item-to-Item),在排序阶段进行品类兴趣扩展建模,提升推荐多样性。
  • 利用 LLM 的文本推理能力辅助产品/用户理解。通过 LLM 对电商商品的冗余文本信息进行降噪、净化和重写,结合用户行为序列、上下文和用户画像,总结用户行为,并通过预训练语言模型将文本知识结果转化为嵌入向量,与传统推荐模型结合,提升模型的知识表达能力。

unset unset编辑推荐unsetunset

《深度学习推荐系统2.0(全彩)》既适合推荐系统、计算广告和搜索领域的从业者阅读,也适合人工智能相关专业的本科生、研究生、博士生阅读,帮助建立深度学习推荐系统的技术框架。通过学习前沿案例,读者可加强深度学习理论与推荐系统工程实践的融合能力。


王喆 ,毕业于清华大学计算机科学与技术系,现任Disney技术总监,曾任TikTok高级技术经理、Hulu高级研究员。清华大学KEG实验室学术搜索引擎AMiner早期发起人之一。主要研究方向为推荐系统、计算广告,发表相关领域学术论文7篇,拥有专利15项,是《深度学习推荐系统》《百面机器学习:算法工程师带你去面试》等技术书的作者。曾担任KDD、CIKM等国际会议的审稿人,DLP-KDD联合主席。

 留言领书,送三本  #



 学习大模型 & 讨论Kaggle  #

图片


△长按添加竞赛小助手

每天大模型、算法竞赛、干货资讯

与 36000+来自竞赛爱好者一起交流~图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/181203
 
16 次点击