GenRec: Large Language Model for Generative Recommendation论文阅读笔记
Abstract
本文提出了一种使用大型语言模型(LLM)的创新推荐系统方法,该方法纯粹基于原始文本数据,即使用项目名称或标题作为项目 ID,而不是创建精心设计的用户或项目 ID。更具体地说,我们提出了一种新颖的用于生成推荐(GenRec)的 LLM 方法,它利用 LLM 的表达能力直接生成要推荐的目标项目,而不是像传统的鉴别推荐那样逐一计算每个候选项目的排名得分。GenRec 利用 LLM 的理解能力来解释上下文、学习用户偏好并生成相关推荐。
我们提出的方法利用大型语言模型中的大量知识来完成推荐任务。我们制定了专门的提示,以增强 LLM 理解推荐任务的能力。随后,我们利用这些提示对 LLaMA 骨干 LLM 进行 LoRA 微调,以原始文本(使用原始项目名称或标题作为项目 ID)表示的用户-项目交互数据来捕捉用户偏好和项目特征。
Introduction
在本文中,我们为生成式推荐(GenRec)提出了一种新颖的基于纯文本的大语言模型。GenRec 直接使用文本项目名称或标题作为项目的 ID,无需为每个项目创建专门设计的 ID。GenRec 模型的主要优点之一是它充分利用了项目名称中固有的丰富描述性信息,这些信息通常包含可进行语义分析的特征,从而能够更好地了解项目与用户的潜在相关性。这有可能提供更准确、更个性化的推荐,从而提升整体用户体验。本文的主要贡献可归纳如下:
- 我们强调了基于 LLM 的生成式推荐这一前景广阔的范例,它可以直接生成要推荐的目标项目的名称,而不是传统的判别式推荐,后者必须逐一计算每个候选项目的排名得分,然后对它们进行排序,以决定推荐哪个项目。
- 我们引入了一种名为 GenRec 的新方法,通过将文本信息适当纳入生成式推荐模型来提高生成式推荐性能。
Method
我们为基于 LLM 的生成式推荐提出的 GenRec 框架简单而有效。拟议框架的架构如图 1 所示。给定用户的项目交互序列后,用于生成式推荐(GenRec)的大语言模型将根据提示格式化基于文本的项目名称或标题。重新格式化后的序列将用于微调大语言模型,经过微调的 LLM 可以预测用户可能与之交互的后续项目。
序列生成
GenRec 的初始组件是一个生成函数,其任务是生成包含用户兴趣的各种序列。为了提高模型对推荐任务的理解能力,我们设计了多种提示来促进序列的生成。以图 2 为例,我们使用用户的电影观看历史作为训练数据,并利用这些信息来格式化训练序列。
序列由三部分组成:指令、输入和输出。指令元素概述了电影推荐的具体任务,我们为此创建了几个指令,以增强 LLM 对正在进行的推荐任务的理解。输入表示用户的交互历史,但不包括最近的实例。输出则是该记录中的最新交互。在这里,LLM 的主要任务是准确预测最后一次交互。
训练策略
在本文中,我们使用 LLaMA 大型语言模型 [23] 作为 GenRec 训练的基础。LLaMA 模型是在一个庞大的语言语料库上预先训练的,为我们高效捕捉用户兴趣和项目内容信息的预期目的提供了宝贵的资源。不过,值得注意的是,即使是最小的 70 亿参数版本,GPU 微调 LLaMA 所需的内存也相当可观。
为了规避这一挑战并节省 GPU 内存,我们在本研究范围内采用了 LowRank Adaptation(LoRA)方法来完成 LLaMA-7b 模型的微调和推理任务。通过这种方法,我们大大降低了对 GPU 内存的需求。通过这种优化方法,我们可以在一个内存容量为 24GB 的 GPU 上对 LLaMA-LoRA 模型进行微调。
Conclusion
本文提出的 GenRec 是一种基于文本项目名称或标题作为 ID 的生成式推荐大语言模型方法。通过将项目名称的丰富语义作为输入,GenRec 可以提供个性化和与上下文相关的推荐。我们的实际演示凸显了 GenRec 的功效,并指出了它在不同推荐方案中的适应性。此外,GenRec 框架的灵活性便于与任何大型语言模型集成,从而扩大了其潜在的实用范围。就未来工作而言,有几个方向值得探索。我们打算通过开发更复杂的提示来完善序列的生成,从而进一步增强模型对推荐任务的理解。此外,我们还计划扩展我们的研究,纳入更复杂的用户交互数据,如评分或评论,从而更深入地了解用户行为和偏好。另一个方向是了解 GenRec 如何与不同的大型语言模型配合使用,因为我们对使用不同模型的好处和坏处都很好奇。