Large Language Models are Zero-Shot Rankers for Recommender Systems论文阅读笔记
Abstract
本工作旨在调查作为推荐系统的排名模型的LLM的能力。我们首先将推荐问题形式化为一个条件排序任务,将顺序交互历史作为条件,并将其他候选生成模型检索到的项目作为候选项。为了解决LLM的排序任务,我们仔细设计了提示模板,并在两个广泛使用的数据集上进行了广泛的实验。我们表明,LLM有良好的零射击排名能力,但
1)难以感知历史交互的顺序,
2)可能会因受欢迎程度或项目位置而有偏差。
我们证明了这些问题可以通过特别设计的提示和引导策略来缓解。有了这些见解,当多个候选生成器检索候选排序时,零镜头LLM甚至可以挑战传统的推荐模型。
Introduction
在本文中,我们进行了实证研究来调查是什么决定了作为推荐模型的LLM的能力。通常,推荐系统是在管道架构中开发的,由候选生成和排序过程组成。这项工作主要集中在推荐系统的排序阶段,因为LLM在一个大规模的候选集上运行的成本更高。此外,排名性能对检索到的候选项目很敏感,这更适合于检查LLM推荐能力的细微差异。
为了开展本研究,我们首先将LLM的推荐过程形式化为一个条件排序任务。根据LLM的内在知识,对于包含顺序历史交互作为“条件”的提示,LLM被指示对一组“候选项”(例如,候选生成模型检索到的项目)进行排序。然后,我们通过分别为“条件”和“候选条件”设计特定的构型,系统地研究了LLM作为ranker的经验性能。总的来说,我们试图回答以下关键问题:
- 哪些因素影响LLM的零射击排名表现?
- LLM依赖什么数据或知识来进行推荐
我们总结出的主要发现如下:
- lm很难感知给定的顺序交互历史的顺序。通过使用专门设计的提示,可以触发LLM来感知顺序,从而提高排名性能。
- LLM在排名时存在位置偏差和流行度偏差,这可以通过bootstrapping或特别设计的提示策略来缓解。
- LLM优于现有的零镜头推荐方法,显示出很有前途的零镜头排序能力,特别是在具有不同实际策略的多个候选生成模型检索到的候选模型上
General Framework for LLMs as Rankers
为了研究LLM的推荐能力,我们首先将推荐过程形式化为一个条件排序任务。然后,我们描述了一个适应LLM来解决推荐任务的通用框架。
使用自然语言指令进行LLM的排名
我们使用LLM作为排序模型,在指令遵循范式中解决排序任务。具体来说,对于每个用户,我们首先构建两个自然语言模式,它们分别包含顺序交互历史H(条件)和检索候选项C(候选项)。然后,这些模式被填充到一个自然语言模板T中,作为最终的指令。通过这种方式,LLM就可以理解指令,并按照指令所指示的方式输出排名结果。图1描述了由LLM进行的排序方法的总体框架。接下来,我们将在我们的方法中描述详细的指令设计。
这里解释一下bootstrap: Bootstrap是一种重采样技术,通过从原始数据集中有放回地随机抽取样本,生成一系列新的数据集,并从这些数据集中计算统计量
序列历史交互
这里是把顺序的历史交互作为LLM的输入纳入到指令中,然后提出了三种构建指令的方法
-
序列Prompt:按时间顺序安排历史互动。例如:“I’ve
watched the following movies in the past in order: ’0. Multiplicity’, ’1.
Jurassic Park’, . . .**”.
-
以最近交互为重点的Prompt:除了顺序的交互记录之外,我们还可以添加一个额外的句子来强调最近的交互。例如:“I’ve watched the following movies in the past in order: ’0. Multiplicity’, ’1. Jurassic Park’, . . .. Note that my most recently watched movie is Dead Presidents. . . .”
-
上下文学习(ICL): ICL是LLM解决各种任务的一种突出的提示方法,它在提示中包括演示示例。对于个性化推荐任务,简单地引入其他用户的例子可能会引入噪声,因为用户通常有不同的偏好。相反,我们通过增加输入交互序列本身来引入演示示例。我们将输入交互序列的前缀和相应的后继者配对作为例子。例如:“If I’ve watched the following movies in the past in order: ’0. Multiplicity’, ’1. Jurassic Park’, . . ., then you should recommend Dead Presidents to me and now that I’ve watched Dead Presidents, then . . .”
检索候选项目
通常,要排序的候选项首先由候选生成模型检索。在这项工作中,我们考虑一个相对较小的候选池,并保留20个候选项目(即m = 20)进行排名。为了用LLM对这些候选项进行排序,我们按顺序排列。
遵循经典的候选生成方法,对于候选项没有特定的顺序。因此,我们在提示中对候选项目生成不同的顺序,这使我们能够进一步检验LLM的排名结果是否受到候选项目的排列顺序的影响,即位置偏差,以及如何通过自举来缓解位置偏差。
使用LLM来进行排序
现有的研究表明,LLM可以遵循自然语言指令,在零镜头设置中解决不同的任务。为了使用LLM进行排序,我们将上述模式填充到指令模板t中,可以给出一个指令模板的示例为
[pattern that contains sequential historical interactions H] [pattern that contains retrieved candidate items C] Please rank these movies by measuring the possibilities that I would like to watch next most, according to my watching history.
解析LLM的输出
就是对LLM的输出进行解析,找到推荐的物品,但是LLM也有可能会生成在候选集中不存在的物品。
实验
这篇文章的实验部分做的非常充分,不过这个留到以后再看
总结
这篇文章主要就是通过不同的方法构建Prompt,然后提出了几种Prompt的策略来触发LLM感知行为顺序的能力。最后引入了Bootstrap来缓解位置偏差和流行度偏差。
标签:候选,顺序,Shot,Language,Models,指令,LLM,排序,交互 From: https://www.cnblogs.com/anewpro-techshare/p/18226911