LLM-TRSR论文阅读笔记

Harnessing Large Language Models for Text-Rich Sequential Recommendation论文阅读笔记

Abstract

现存的问题:

​ 当推荐场景中的项目包含丰富的文本信息时,例如在线购物中的产品描述或社交媒体上的新闻标题,LLM 需要更长的文本才能全面描述历史用户行为序列。这给基于 LLM 的推荐器带来了巨大的挑战,例如超长限制、大量时间和空间开销以及模型性能不理想等。

提出方法:

​ 我们在本文中设计了一个新颖的框架,用于利用大语言模型进行文本丰富的序列推荐(LLM-TRSR)。具体来说,我们首先建议对用户的历史行为进行分割,然后采用基于 LLM 的摘要器对这些用户行为块进行摘要。特别是,从卷积神经网络(CNN)和递归神经网络(RNN)模型在用户建模中的成功应用中汲取灵感,我们在本文中引入了两种独特的总结技术,分别是分层总结和递归总结。

​ 然后,我们将包含用户偏好摘要、最近的用户互动和候选项目信息的提示文本构建到基于 LLM 的推荐器中,随后使用监督微调(SFT)技术对其进行微调,以生成我们的最终推荐模型。我们还使用了低库自适应(Low-Rank Adaptation,LoRA)技术进行参数高效微调(Parameter-Efficient Fine-Tuning,PEFT)。

Introduction

​ 然而,在项目具有丰富文本信息的推荐场景中,例如电子商务中的产品标题、媒体平台上的新闻标题,扩展文本对于全面描述用户历史行为序列至关重要,这给 LLM 带来了以下挑战。首先,现有的 LLM 通常对输入长度有限制,例如 GPT-2 ,输入长度为 1,024 个标记,这可能不足以涵盖大量文本信息。其次,由于 Transformer 架构的计算复杂度为𝑂(𝑛2),较长的文本会给下游推荐任务带来巨大的计算资源开销,这给要求高实时响应性的推荐系统应用带来了挑战。第三,较长的文本会使模型在有效捕捉用户偏好变化方面面临更大挑战,从而可能影响最佳性能。

​ 为此,我们在本文中设计了一个新颖的框架,用于利用大型语言模型进行文本丰富的序列推荐(LLM-TRSR)。图 1 是我们提出的方法的示意图。具体来说,我们的方法主要包括以下几个主要步骤。首先,我们提取用户行为历史序列,并将其转化为一段较长的文本。随后,我们将这个长文本分割成几个区块,确保每个区块都能被大型语言模型完全摄取。然后,我们提出了一种基于 LLM 的总结器,它能全面考虑这些区块,从而得出用户偏好摘要。请注意,该总结器的参数是冻结的。最后,我们根据用户偏好摘要、最近的用户互动和候选项目信息构建输入提示文本,并将提示输入基于 LLM 的推荐器,随后使用监督微调(SFT)对其进行微调,以输出 “是 ”或 “否”。此外,还采用了基于低级适应(LoRA)的参数高效微调(PEFT)方法,以减少内存开销并加快训练过程。

pAkZSeO.png

​ 在上述过程中,一个关键问题是如何使用基于 LLM 的摘要器从多个用户行为块中提取用户偏好。本文受深度学习领域广泛应用的两种神经网络架构(分别是卷积神经网络(CNN)和循环神经网络(RNN))的启发,提出了两种不同的摘要方法,分别是分层摘要和循环摘要。

​ 具体来说,在分层摘要范例中,我们首先使用基于 LLM 的摘要器从每个单独的数据块中提取摘要。随后,将这些单个摘要逐步合并,并再次输入摘要器,从而得到更高层次的摘要。通过这种分层方法,我们最终得到了用户的偏好摘要。

​ 在循环摘要范例中,我们首先使用基于 LLM 的摘要器从第一个区块中提取摘要。随后,我们将后续区块和之前生成的摘要反复输入基于 LLM 的摘要器,促使其根据新的行为输入更新用户偏好摘要。这种迭代过程一直持续到最后一个区块,最终形成用户行为的综合偏好摘要。

​ 本文的主要贡献如下:

  • 据我们所知,我们是第一个提出利用大型语言模型来解决文本丰富的顺序推荐问题的人。
  • 我们建议使用基于 LLM 的摘要器来封装用户行为历史,并引入了两种不同的摘要范式,分别是分层摘要和循环摘要。

Method

​ 在本节中,我们将详细介绍我们的框架。具体来说,我们将首先介绍如何通过基于 LLM 的摘要器获得用户偏好摘要,包括分层摘要范式和循环摘要范式。然后,我们将使用基于 LoRA 的 SFT 方法阐明基于 LLM 的推荐器的训练过程,并进一步演示训练后的模型在推荐任务中的应用。

基于分层 LLM 的用户偏好摘要

​ 本节将介绍分层摘要范式的技术细节,如图 2 所示

pAkZyX6.png

历史序列的构建和分割

​ 为了利用 LLM 强大的文本处理能力来解决文本丰富的顺序推荐问题,给定用户行为序列 S = [𝐼1, ... , 𝐼𝑛] 时,我们建议将 S 转换为一段文本,其中包含用户与之交互的每个项目的信息。然而,正如我们在第 1 节中所讨论的,在文本丰富的序列推荐中,用户可能会与多个项目进行交互,每个项目都包含大量文本信息。因此,直接使用 LLM 处理这些大量文本可能会面临一些挑战,例如超出长度限制和过多的计算资源开销。因此,我们建议对文本进行分割,确保每个区块只包含与少数几个项目相关的信息,使其更便于 LLM 进一步处理。具体示例将在后续章节中介绍。

块摘要

​ 在分层摘要范例中,在对文本进行分割后,我们将对每个文本块进行单独摘要,这样就可以在每个特定时间段内辨别用户的偏好。对于分块摘要,在本文中,我们采用了 Llama-30b-instruct2 作为摘要器

​ 图 3 展示了我们如何通过提供提示文本来利用 LLM 的零镜头总结功能。在这种情况下,我们根据所需的提示模板输入适当的提示文本,要求模型总结用户的购物偏好。然后,模型会生成一个合适的摘要。我们可以发现,由于包含的项目较少,通过这种方式得到的摘要可以关注更多复杂的细节,如产品的具体材料。值得注意的是,我们可以通过修改提示文本实现良好的通用性。例如,将提示中与购物相关的描述替换为与新闻阅读相关的描述,我们就可以利用 LLM 总结新闻阅读偏好。

pAkZhhd.png

层次摘要

​ 在分层摘要范例下,在获得每个区块的摘要后,我们提出了一种分层方法,即向 LLM 输入多个摘要,并指示它进一步摘要这些摘要,最终得到用户偏好的综合摘要。这一过程与卷积神经网络(CNN)分层提取高层特征的方式非常相似。图 4 展示了我们如何设计一个适当的提示来利用 LLM 完成这项任务。我们可以发现,与单个区块摘要的详细重点不同,进一步总结多个摘要后得出的结果更加抽象和概括。它们不再纠缠于细枝末节,而是更有效地捕捉到了整体购物习惯。这凸显了分层摘要范式所能提供的高度抽象和概括能力。值得注意的是,虽然在我们的示例中,我们只用了两层总结就得到了包含十个项目的行为序列的最终总结,但实际上我们可以进一步扩展总结层的数量,就像在卷积神经网络中增加层数一样。这在理论上允许我们处理包含无穷多个项目信息的行为序列。

pAkeScq.png

基于递归 LLM 的用户偏好总结

​ 本节将介绍递归总结范式的技术细节,如图 5 所示。受递归神经网络(RNN)的启发,递归摘要范式的工作原理如下。将用户行为序列文本分割成块后,提取第一个块的摘要。随后,将前一个区块的摘要和下一个区块的用户行为输入基于 LLM 的摘要器,以生成更新的摘要。这一过程反复执行,直到所有区块结束,最终得到用户偏好摘要。

pAkeJCd.png

首块的摘要

​ 在循环总结范例中,总结第一个数据块的方法与分层总结范例中使用的方法基本一致。图 6 举例说明了如何总结 MIND 数据集中特定用户的第一个数据块。

pAkedDf.png

递归摘要

​ 在获得第一个区块的摘要后,我们可以继续进行循环摘要,以得出用户偏好的最终摘要。图 7 展示了我们如何设计一个合适的提示文本来利用 LLM 完成这项任务。很明显,我们在提示文本中加入了更详细的描述,以确保 LLM 能够准确理解手头的任务。LLM 的输出结果符合我们的预期,在更新用户短期倾向摘要的同时,有效地捕捉到了用户的长期兴趣。

pAkec2n.png

基于LLM的推荐

​ 在获得用户偏好摘要后,我们就可以使用基于 LLM 的推荐器,而不必担心长度限制或过多的计算开销。我们建议使用监督微调(SFT)方法来训练基于 LLM 的推荐模型。具体来说,如图 8 所示,本文建议为基于 LLM 的推荐系统构建一个提示文本,由以下五个部分组成:

  • 推荐指令:它的作用是指示 LLM 同时考虑偏好摘要和用户最近的行为,以完成推荐任务。推荐任务的结构是输出 “是 ”或 “否”。
  • 偏好总结:这源于前面提到的分层归纳范式或循环归纳范式,用于代表用户的长期兴趣。
  • 最近的用户行为:这包括用户最近与之互动的项目,表明用户的短期兴趣。
  • 候选物品描述:这将提供候选项目的所有文本属性
  • 最终答案:这说明用户是否与项目进行了交互。

​ 然后,我们使用以下SFT训练损失,将基于LLM的推荐器训练为:

\(\mathcal{L}_{sft}=-\sum_{i=1}^L\log\Pr(v_i|v_{<i}),\)

​ 其中,𝑣𝑖 是提示文本中的第 𝑖 个单词,𝐿 是提示文本的长度。概率 Pr(𝑣𝑖 |𝑣<𝑖)由 LLM 模型按照下一个词预测范式计算得出。在训练过程中,我们利用低链自适应(Low-Rank Adaptation,LoRA)进行参数高效微调(Parameter-Efficient Fine-Tuning,PEFT),从而大大减少了可训练参数的数量。

​ 训练阶段结束后,在测试阶段,我们去掉提示文本末尾的 “是 ”或 “否”。然后,我们将修改后的提示语𝑃 输入大语言模型,得到模型预测的下一个词是 “是 ”或 “否 ”的概率:

\(p_{yes}=\Pr('yes'|P),\quad p_{no}=\Pr('no'|P).\)

​ 最后,我们使用 softmax 函数计算交互概率,计算公式为

\(p=\frac{\exp(p_{yes})}{\exp(p_{yes})+\exp(p_{no})}\)

pAkmFMt.png

总结

​ 这里总结一下,本文讲的还是非常清晰的,主要就是通过各种prompt输入到LLM来生成用户的偏好,最后再用这些用户偏好输入到LLM中进行相应的推荐。然后贴一下原文的conlusion

​ 在本文中,我们研究了大语言模型在富文本序列推荐(LLM-TRSR)中的应用。具体来说,我们首先提出对用户行为序列进行分割。然后,利用大型语言模型的零镜头总结能力,我们采用了基于 LLM 的总结器来封装用户偏好。值得注意的是,我们引入了两种不同的偏好总结范式,分别是分层总结和循环总结。随后,我们提议将基于 LLM 的推荐器用于顺序推荐任务,并使用监督微调(SFT)对参数进行微调。在参数高效微调(PEFT)中还使用了低库自适应(LoRA)技术。

posted @ 2024-08-26 19:20  ANewPro  阅读(56)  评论(0编辑  收藏  举报