大模型在华为推荐场景中的探索和应用

大模型在华为推荐场景中的探索和应用
2024年10月23日 12:28 InfoQ

演讲嘉宾|陈渤,华为诺亚方舟实验室高级算法工程师

编辑 |蔡芳芳

策划 |AICon 全球人工智能开发与应用大会

推荐算法是互联网信息分发的核心渠道,传统的推荐算法主要基于 ID 和协同信息建模用户对物品的个性化偏好。进入大模型时代,LLM 蕴含的强大世界知识和逻辑推理能力,给推荐系统带来了新的机遇和建模范式,进一步赋能工业推荐系统全链路。

本文中,华为诺亚方舟实验室高级算法工程师陈渤围绕 推荐模型如何从大模型中取长补短以提升推荐效果 展开,介绍了华为在基于 LLM 的推荐算法方向的探索和工业(华为广告、音乐)落地,包括推荐协同信息的注入与对齐,大模型开放世界知识和推理能力的使用,面向推荐任务的大模型效率优化等。

12 月 13-14 日,作为全年系列大会的收官之站,2024 AICon 全球人工智能开发与应用大会将在北京举办!本次大会将继续聚焦人工智能的前沿技术、实践应用和未来趋势,比如大模型训练与推理、AI agent、RAG、多模态大模型等等...... 精彩议题正陆续上线,欢迎访问链接查看详情:https://aicon.infoq.cn/202412/beijing/

以下内容源自陈渤在 2024 AICon 全球人工智能开发与应用大会·上海站的演讲(经 InfoQ 进行不改变原意的编辑整理)

背   景

我们生活在一个信息爆炸的时代,推荐系统无疑成为了一项关键技术。它不仅能够提升用户体验,比如在 Amazon 或淘宝等平台上帮助用户快速找到感兴趣的商品,还能在我们华为的内部广告、APP 分发、音乐、视频和浏览器资讯推荐中发挥作用,帮助用户发现他们感兴趣的内容。

其次,推荐系统也是一个“物找人”的过程,它帮助广告主和物品找到潜在用户,从平台角度来看,这是一个双赢的过程,有助于构建健康的平台生态。在工业推荐系统中,用户在我们平台上的交互历史会被记录下来,并通过特征工程模块提取出结构化信息,如用户的序列信息、画像信息,以及物品的统计信息等。

接下来,我会重点介绍两个核心应用环节:大模型在特征建模和直接面向打分排序方面的应用。我们会基于这些结构化特征训练推荐模型,包括召回和排序模型。这些模型会对候选物品进行打分排序,最终向用户展示一个经过排序的物品列表。

大模型推荐系统

在探索大模型推荐系统的过程中,我们发现,传统的推荐模型主要依赖于用户在特定场景中的交互数据来进行推荐。这种方法能够有效地利用数据集中的用户与物品之间的协同信息。同时,这种模型的规模相对较小,其参数主要集中在底部的 ID 基础嵌入上,因此无论是在训练还是推理方面,所需的时间和资源都相对较少。

然而,模型也有明显的局限性。它只能利用数据集内部的信息来进行推荐,难以真正理解语义信息,因为原始的语义信息通常会被 ID 化处理。此外,对于用户生成意图和兴趣的深度演变推理也是一大挑战。

自 2022 年 ChatGPT 出现以来,我们看到了大模型在外部事实性知识、推理能力和推断规划方面的能力。许多学术界和工业界的人士正在探索如何将大模型引入推荐系统,以带来额外的信息增益。主要体现在以下四个方面:

第一,大模型能够引入开放域世界的知识,更好地描述物品,突破数据集内部的局限,提供额外的信息增益。

第二,大模型具备较好的跨域通用语义知识,能够更好地应用于跨域推荐或冷启动问题,这些是传统基于 ID 的方法难以解决的。

第三,大模型的一个缺点是它主要基于语义建模,缺乏协同信息。因此,近两年来,许多研究工作都在探索如何将推荐场景领域的协同信息注入到大模型中,以弥补其在启动信息上的不足。

第四,大模型的复杂度相对较高,这在工业应用中,无论是在训练还是在线推理方面,都会面临更大的效率挑战。

LLM for Rec

在工业领域,我们总结了大模型在推荐链路中的几种应用方式:

第一,在特征工程领域,我们可以利用大模型对数据进行加工处理,从而得到结构化的特征,比如针对用户和物品的特征。

第二,我们可以用大模型作为一个更强大的编码器,来生成用户和物品的表征,从而学习到更深层次的语义知识。

第三,大模型可以直接用于对候选物品进行排序打分。这可以应用于 CTR 预测、位置预测等任务,或者用于生成式推荐,类似于工业中的召回或重排阶段。

第四,在对话式场景中,大模型也能在用户与系统之间的交互以及对现有流程的控制上发挥重要作用。

在探讨大模型在推荐系统中的应用时,我们可以从训练和推理两个阶段来总结现有的工作。横坐标代表了在训练大模型时是否会注入推荐系统领域的知识,即是否需要用领域知识进行微调;纵坐标则表示在推理阶段是直接使用大模型进行推理,还是引入传统的推荐模型进行推理。

从这个分析中,我们可以看到一种明显的趋势,那就是 LLM for Rec 在朝着语义和协同联合优化的方向发展。无论是在模型侧引入传统推荐模型进行辅助,还是在数据微调侧引入领域知识进行数据微调,目的都是从不同的角度为大模型提供关于推荐场景的领域知识。

这种联合优化的方法旨在结合大模型强大的语义理解和传统推荐模型在协同信息处理上的优势,以期在推荐系统中实现更准确的用户和物品表征,以及更有效的推荐结果。

LLM for Feature

推荐系统通常是一个相对封闭的领域。现有的推荐系统工作主要依赖于封闭域内的 ID 基础协同信息和共性关系来进行推荐。这种方法的优点在于能够充分利用封闭域内的数据,但其缺点也很明显,尤其是在面对冷启动或数据稀疏场景时,传统推荐系统的效果并不理想。而这些问题正是大模型所擅长解决的。

大模型在推荐系统中的应用带来了两方面的额外能力:

首先,大模型具备开放世界知识,这使得它能够突破封闭域的限制,更好地理解物品背后的额外信息。例如,对于某部电影,大模型不仅能够获取到电影本身的信息,还能够了解电影的影评、导演的

背景等相关信息。这些语义知识往往是封闭域内的知识所无法提供的,从而为推荐系统增添了更多的背景信息和深度。

其次,大模型的逻辑推理能力是一个突出的优势。它能够更深入地理解用户的当前查询、意图和动机,或者基于用户过去的行为序列来推测用户的偏好。在语义层面上,大模型能够更好地理解用户可能的未来规划和需求。这种深层次的理解能力使得推荐系统能够更精准地捕捉到用户的真实需求,为用户提供更加个性化的推荐。

利用 LLM 开放知识

辅助推荐的通用框架 KAR

我们利用大模型的能力,提出了一个基于开放域知识的框架,旨在生成语义知识以辅助传统的大模型。这个框架的第一步是确定推荐场景的关键因素,例如在音乐推荐中可能是音乐风格或流派,在电影推荐中可能是导演或电影类型。

基于这些关键因素,我们通过 QA 的方式对大模型进行提问,让模型提供关于物品在这些关键因素上的知识,或者根据用户在这些物品上的行为序列来推断用户的兴趣偏好。这种 QA 方式能够促使大模型生成符合关键因素的知识,并得到关于用户和物品的额外文本信息。

这些文本信息并不适合直接用于传统的基于 ID 的推荐模型。因此,我们设计了一个知识编码器方法,比如 BERT 或 BiLSTM,将文本信息转换成结构化的嵌入向量。

由于大模型生成的知识可能不可控,并可能存在幻觉问题,我们在嵌入向量的使用上引入了多专家网络进行知识的提取。包括共享网络参数和独享参数,以进一步提取向量,最终得到可以用于下游推荐模型的增强用户表征向量。

通过引入开放域知识的文本向量,我们可以看到在几个工业场景中常用的 CTR 模型上取得了显著的提升。引入外部语义知识显著提高了 AUC 值,这表明我们的框架有效地增强了推荐系统的性能。

在华为内部,我们在音乐推荐场景中实施了一项应用,利用盘古大模型来分析音乐的风格、情感节奏,以及用户在我们平台上听歌的历史,从而推断用户的听歌倾向。通过这种方法,我们能够引入两种语义信息:一方面是歌曲本身的信息,另一方面是用户的信息。这种结合带来了显著的收益。

此外,在华为的应用市场中,我们也在 APP 推荐场景中应用了大模型。我们对 APP 的开放域描述标签以及用户对这些 APP 的使用偏好进行了推理,这同样在 APP 推荐场景中实现了全面上线。

我们对基于知识生成的推荐系统进行了进一步的探索。在工业场景中,用户和物品的规模非常庞大,用户可能达到上亿,物品可能达到百万甚至千万级别。这导致调用大模型的次数非常多,而且我们之前的方法主要是使用纯语义信息,并将这些信息引入到传统的推理模型中。

为了解决这个问题,我们进行了以下探索。首先,我们利用数据集中的协同信息对用户和物品进行聚类。例如,将行为序列相似的用户聚成一类,或者将具有协同信息的物品聚在一起。这样做有两个好处:一是可以通过对聚类进行统一的 Prompt,减少调用大模型的次数;二是可以提供来自协同信息的额外知识,通过聚类的方式提供协同 + 语义的额外信息。相比于单独每个用户的 Prompt,我们额外提供一个来自协同的聚类的 Prompt,这种结合在我们音乐推荐场景的核心指标,如播放时长上,也带来了进一步的提升。

其次,用户的兴趣变化非常快,例如用户在我们平台上不断产生新的行为。因此,我们利用大模型对用户知识进行推理时,需要不断地、周期性地对用户新形成的兴趣进行推断,并周期性地更新。为了避免大模型在周期性调用过程中对用户过往历史的多次识别编码,我们采用了流式知识更新的方法,学习用户在新时间窗口下的增量兴趣。与固定窗口提取的方法相比,这种方法也能带来额外的提升,并且在音乐推荐场景中也进行了全量上线。

最后,我们对学习文本后的表征进行了精细化使用。与之前使用多专家网络对学到的嵌入知识进行使用的方法相比,我们还搭配使用了离散化方法,如聚类,提供粗粒度的离散化信息给下游模型。这种方法相比于直接使用嵌入方法,也能提供额外的信息增益。

面向 LLM 推荐知识生成的解码加速方法

为了提升大模型在推荐系统中知识生成任务的效率,我们探索了解码加速方法。尽管聚类技术可以在一定程度上减少大模型的调用次数,但大模型本身是一个高资源消耗型的模型。它不仅面临调用次数多的问题,而且单次调用的延迟也很长。这会导致用户知识更新或新物品知识更新时出现延迟,同时也会增加推理机器的成本。

针对这些问题,我们探索了面向知识生成任务的大模型加速方法。我们首选的方法是基于检索的解码加速。选择这种方法的原因是,在推荐场景中,用户和物品的规模通常很大,用户需要周期性地多次调用更新,这会产生很多相似的文本。例如,用户过去一段时间的偏好与未来一周的偏好可能有很多重叠。这种重叠的文本为大模型在投机解码加速过程中提供了很多高质量的操作文本。

基于这些考虑,我们选择了基于检索的方法来构建投机解码。这种方法可以利用用户和物品的周期性更新和文本的重叠性,通过检索相似的文本来加速大模型的解码过程。这样,我们不仅可以减少大模型的调用次数,还可以缩短单次调用的延迟,从而提高整个推荐系统的效率和性能。

在实验过程中,我们发现了两个关键点。首先,检索在一开始是高效的,但随着知识的不断累积,检索的耗时占比会不断攀升。从图中可以看到,蓝色的线代表检索在解码过程中的耗时占比,它甚至可以达到 25%。随着工业场景的具体使用,检索耗时会进一步增长,成为制约投机解码的一个痛点。

其次,下游任务对于大模型生成文本的容忍度较高。因为我们通常将文本转换成 ID 或嵌入向量提供给下游的 Top k 模型使用,而不是直接使用原始文本信息。因此,我们发现不同 Top k 采样策略下的应用到下游任务时,整体 AUC 并没有很大的区别,即不同采样策略下的 AUC 差异性并不显著。

基于这两点发现,我们提出了一种基于个性化检索加模糊校验的方法来进一步加速面向知识生成推荐的大模型。

我们为用户和物品构建个性化检索池。构建方法可以基于协同过滤或属性相似性,例如将行为序列相似的用户聚合在一起,共享同一个检索池。这种方式可以在一定程度上控制检索池的大小,减少检索时间占比,同时增加检索池内部文本的分布一致性,提高命中概率。

在校验阶段,我们放松了校验条件,从原本的 Top 1 变为 Top k,允许大模型校验过程接受更多的 token,以提升整体加速比。但是,如果只是单纯地放开 Top k 的限制,大模型在每次解码过程中可接受的 token 变多,生成的知识类文本长度也会变长,可能导致大模型发散生成的问题。为了避免这种情况,我们在配置 Top k 时,同时控制 Top p 的概率门槛,只有当符合一定门槛概率时,才认为投机成功,从而进行加速。

通过实验效果,我们可以看到使用模糊校验和个性化检索池的方法带来的加速效果是显著的,整体上能够实现 3 到 5 倍的加速效果。实验结果表明,无论是用户侧还是物品侧的任务,在采用不同的框架进行文本生成时,这种加速效果都非常显著,尤其是用户侧的加速更为明显。这是因为用户的兴趣具有很大的相似性,因此很多文本可以在过往生成的历史文本中直接被检索到,这进一步证明了基于检索的投机解码在推荐场景中的应用优势。

在采用模糊校验与原始的精确匹配对比时,我们发现模糊校验带来的信息损失对于下游任务的影响几乎可以忽略不计。这种方法也适用于不同大小的大模型,并且具有良好的兼容性。对于规模越大的大模型,由于其推理时耗时更长,使用这种方法带来的额外加速比也更大。

这种方法已经在华为内部的广告场景中进行了全量落地。我们利用大模型生成关于广告可能吸引的目标人群、产品特点、品牌定位和形象等知识。生成的文本提供给下游基于 ID 的推荐模型使用。与原始大模型的解码方式相比,我们的方法在保证 AUC 基本持平的情况下,能够实现 3.4 倍的额外加速效果。

LLM for Ranking

当大模型直接用于打分排序时,它面临推荐场景中一个独特的问题,即长序列理解问题。我们知道,用户的行为序列长度可能非常长,例如,用户在我们平台上产生的历史行为序列可能会达到数万甚至数十万的级别。许多研究表明,对用户长序列的建模能够显著提升推荐效果。当我们增加行为序列的长度时,传统的基于 ID 的方法能够稳步提升效果。

在大模型直接用于打分排序的场景中,我们发现情况并非如此。大模型的效果会先上升后下降,这实际上是由于大模型对长序列理解能力的限制所导致的。这种性能变化提示我们在设计基于大模型的推荐系统时,需要考虑如何有效地处理长序列数据,以确保模型能够准确地捕捉到用户的行为模式和偏好,从而提供更准确的推荐。这可能涉及到对长序列进行分段处理、提取关键特征或者采用其他策略来增强模型对长序列的理解能力。

LLM 直接排序的长序列理解方法

当我们尝试延长用户的行为序列时,我们发现这并不能稳定地提升推荐效果。目前,许多面向大模型直接打分排序的方法只能处理较短的序列,比如截取最近的 10 个或 15 个行为,因为大模型很难理解更长的行为序列。

为了解决这个问题,我们提出了一种基于语义相似度检索的方法,它可以从用户的行为序列中截取与当前预测物品相关的部分,以弥补大模型在长序列理解上的不足。具体来说,我们首先使用大模型对用户行为序列中的每个物品进行编码,然后通过主成分分析(PCA)等降维方法为每个物品生成一个语义向量。在进行打分排序时,我们使用检索方法从用户行为序列中选择与当前预估物品相似的部分行为,作为当前用户的表示。这样,即使大模型只使用少量的行为序列,也能更好地理解用户。

为了增强大模型在长序列理解方面的能力,我们采用了检索方法来构建一个混合数据集。这个数据集的构建包括两个方面:一是我们使用用户最近的一些行为记录来创建样本;二是我们利用检索技术额外构造一些增强数据。通过这种混合数据集的构建,我们对大模型进行微调,以此来提升它对用户长行为序列的理解能力。

采用基于语义检索的方案,我们发现即使不对模型进行微调,使用原始的 7B、13B 等大模型,也能观察到明显的性能提升。当我们对少量样本进行监督式微调后,与原始的基于 ID 的方法相比,性能更是显著提升。这显示了大模型的一个显著优势:样本高效性。这意味着大模型只需要少量样本的训练微调,就能达到传统基于 ID 的方法需要大量训练才能实现的效果。

在对序列长度进行分析时,我们可以看到,传统方法(蓝色线)随着序列长度的增加而显著提升效果。而原始大模型(黄色线)的表现则不如传统方法。但是,经过微调后的大模型(红色线)能够更好地理解用户行为序列长度增加带来的额外信息增益。这表明,一方面,我们的方法能够缓解大模型在长序列理解上的困难;另一方面,通过这种方式拉长用户行为序列,能够带来进一步的信息增益。

LLM 个性化参数微调方法

虽然增加序列长度和样本数量可以提升模型的预测效果,但这些操作可能会降低大模型的训练效率。因此,如何平衡模型的预测效果和训练效率是一个关键问题。为了解决这个问题,我们提出了一种基于个性化参数微调的方法。目前的方法为了保证训练效率,通常会使用短序列和少量样本进行微调,并采用如 LoRA 这样的高效微调技术。

这些方法在体现个性化方面存在困难。为了避免这个问题,我们提出了一种隐式地将大模型拓展到更长序列和更多样本空间的方法。具体来说,我们首先在全量数据上使用长序列训练一个推荐模型。然后,在需要对大模型进行微调的少量数据上,我们将这个推荐模型的信息隐式地注入到大模型的 LoRA 参数中。这种方法的好处在于,大模型只需要使用少量的训练数据进行微调,从而保证了训练效率。同时,通过将推荐模型的信息注入 LoRA 参数,大模型能够隐式地扩展其感受野,从而在一定程度上避免了信息损失。

我们提出了一种基于 Meta-LoRA 的方法,该方法提供可控和可扩展的 LoRA 参数,以实现个性化的大模型,从而增强大模型在个性化推荐系统领域的性能。我们保持了一个共享的 Meta-LoRA 矩阵,对于每个样本或用户,我们使用推荐系统提供的额外信息来路由多个 Meta-LoRA 参数,生成独特的 LoRA 参数进行微调。这种方法不仅可以增强大模型的个性化能力,还可以让大模型隐式地扩展到更长的序列和更全面的样本空间。

通过将推荐系统领域的知识注入大模型,我们观察到模型的整体 AUC 表现有所提升,同时保持了训练效率。传统的方法是将长序列直接用于大模型的微调,这会导致训练效率降低,限制了使用更长序列和更多样本的能力。我们的方法则是将长度 60 的序列放在 ID 侧,仅使用少量长度构建 Prompt 进行微调,这样既达到了接近的效果,又大幅提高了训练效率。

语义增强的推荐方法

我们提出了一种语义增强的推荐方法,该方法将推荐系统领域的协同信息注入到大模型中,以保证训练的效率。然而,大模型在推理时的延迟仍然很高,这限制了其在工业场景中的实际应用。为了解决这个问题,我们采取了一种新的方法:将语义信息注入到传统的推荐模型中,这样在线上推理时就不需要大模型,而是直接使用基于 ID 的传统方法进行推理,从而确保了较低的在线延迟。

这种方法结合了两类模型的优势:基于 ID 的传统推荐模型具有低复杂度,适合工业部署;而基于语义信息建模的大模型能够更好地适应冷启动和长尾场景,并能更准确地建模语义信息。我们设计了一个两阶段框架:第一阶段是跨模态知识对齐,我们将文本模态的数据提供给大模型,而将 ID 模态的数据提供给传统的推荐模型。通过这种方式,让语义空间中的两种模态相互对齐,从而将语言模型中的语义信息隐式地注入到传统推荐模型中。第二阶段,在少量数据上进行微调后,我们将基于 ID 的模型应用到下游的全部数据上进行微调。在这个过程中,通过有监督的微调,让我们的传统模型能够更强烈地感受到推荐系统领域的协同信息。在线部署时,我们可以放弃原始的大模型,只使用经过微调的传统模型进行推理。

我们对提出的方法进行了对比实验,结果表明,与原始的未注入语义信息的方法相比,我们的方法带来了显著的性能增益。无论是在公开数据集还是华为内部的公益数据集上,注入语义信息后的基于 ID 的方法都显示出了明显的性能提升。这种方法在训练和推理阶段的效率也得到了很好的保障。

总结与展望

大模型在推荐系统中的应用带来了额外的信息增益,具体表现在以下几个方面:

  1. 大模型对于推荐系统的信息增益:大模型能够提供丰富的领域知识和世界知识,尤其是在资讯类场景中,它能够提供强大的通用世界知识,增强推荐系统的信息背景。大模型具备强大的推断能力,能够更深入地理解用户,包括用户兴趣的推断、意图的识别等,为推荐系统提供更多可能性。

  2. 突破传统定位,重塑推荐流程:大模型不仅仅局限于特征编码或打分排序,它在流程控制和对话式推荐场景中也能发挥作用,提升用户交互体验。

  3. 语义协同兼顾,空间融合:当前许多研究选择将语义信息和协同信息结合的方式来建模,无论是在数据层面进行微调还是在模型层面与传统推荐模型结合,都能发挥语义和协同双方的优势。

  4. 缓解稀疏场景:大模型的语义知识有助于缓解推荐系统中的冷启动和长尾问题,并提供开放世界通用知识,更好地进行跨域推荐。

尽管大模型带来了这些优势,但也存在一些挑战和展望,需要进一步解决。

  1. ID 特征的索引和建模:ID 特征本身缺乏语义信息,难以被大模型理解,因此设计更好的面向推荐场景的 ID 索引和建模是下一步需要攻克的问题。

  2. 推荐领域的长文本建模:推荐系统中的行为序列、特征和候选集等可能形成长文本,如何让大模型更好地建模和提取长文本信息是一个值得探索的方向。

  3. 训练效率:推荐系统需要实时响应用户行为,因此训练效率对大模型的实际应用至关重要。需要探索更好的大模型训练策略,或结合大小模型的更新策略来提升模型更新频率。

  4. 推理时延:大模型的高时延限制了其在工业场景中的应用,如何设计更好的在线部署推理方法,例如软硬结合的方法来提升大模型的时效性,是实现其在线推理服务的关键。

演讲嘉宾介绍:

陈渤,华为诺亚方舟实验室高级算法工程师。毕业于上海交通大学,现任华为诺亚推荐搜索实验室高级算法工程师,主要负责华为推荐场景算法研发、大模型落地探索和应用,在 KDD、SIGIR、IJCAI、TKDE、CIKM 等高水平会议或期刊上发表多篇论文,并担任 KDD、WWW、SIGIR、AAAI 等会议程序委员会委员。

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部