关注我们,一起学习
标题:Recommendation as Instruction Following: A Large Language Model Empowered Recommendation Approach
地址:https://arxiv.org/pdf/2305.07001.pdf
学校,公司:人大,腾讯
以往的模型主要从历史行为数据(通常以商品ID的形式)中学习潜在的用户偏好,然后估计用户-商品匹配关系以进行推荐。本文通过对LLM进行微调从而进行用户推荐,用户的偏好或需求可以用自然语言描述(称为指令)来表达,这样LLM就可以理解并进一步执行指令来完成推荐任务。作者对开源LLM(3B Flan-T5-XL)进行指令调优,以便更好地将LLM适应推荐系统。首先设计了一种通用的指令格式,用于用自然语言描述用户的偏好、意图、任务形式和上下文。然后,手动设计39个指令模板,并自动生成大量具有不同偏好和意图类型的用户个性化指令数据(252K条指令)对LLM进行微调。
本文提出了推荐系统的指令调优方法,名为InstructRec。该方法允许用户在与推荐系统交互时,用自然语言指令自由表达他们的信息需求。
2.1用于推荐的指令格式
2.1.1指令的关键点
为了设计一种灵活、可扩展的指令格式,主要考虑与用户需求表达相关的三个关键方面,即 偏好、意图和任务形式 。在图2中对指令格式进行了说明。 偏好(Preference,P) 。偏好是指用户对物品属性或特征的个性化品味。在指令格式中,它旨在捕捉固有的和长期的用户偏好。根据个性化程度,用户偏好可以分为以下三种类型:
-
None():该类型推荐系统无法知道用户的偏好或画像,即冷启动场景或者有隐私要求,从而导致无个性化推荐
-
隐式偏好():关于用户的上下文信息(例如,用户画像或历史交互记录)是可用的,但没有明确暴露出对商品的潜在偏好。隐式反馈更容易收集,但可能有噪声。在格式化历史交互记录时,我们不会像P5中那样直接使用商品ID来表示商品,而是使用商品标题将商品格式化为文本 。
-
显式偏好():在某些情况下,用户还可以直接透露他们的偏好。这种明确的反馈更准确,但很难获得。在这里,主要考虑用户偏好在自然语言文本中的明确表达(例如,用户评论)。不直接考虑明确的互动记录(例如,评分或点赞) ,尽管它们可以很容易地用我们的形式表达出来。
意图(Intention,I) 。与长期偏好相比,用户的意图是指他们对某些类型的物品更直接的需求,这可能与用户的长期偏好不同。根据不同的清晰度将用户意图分为三种类型。
-
None()。在交互过程中,用户可能对下一次交互缺乏明确的目标,并期望通过推荐系统和探索性互动发现潜在的兴趣。
-
模糊的意图()。用户对自己的需求表现出模糊的认知,例如对物品所需特征的描述,而不能清楚地识别特定的物品(例如,“给我儿子的一些礼物”)。
-
具体的意图()。用户有明确的需求,要求系统优先考虑他们的请求,并提供满足特定需求的合适物品(例如,“蓝色、便宜、iPhone13”)。
任务形式(Task From,T) 。LLM执行的指定任务形式。潜在形式如下:
-
Pointwise()。检查某个候选商品是否适合用户,其中匹配关系是基于用户的信息需求和商品特征来确定的。
-
Pairwise()。比较一对商品,并指示LLM从这对商品中选择更合适的一个。
-
Matching()。通过充当匹配(即,候选生成)模块,LLM从整个商品语料库中生成潜在候选。这些候选应是高质量的资源,并对目标商品有很好的覆盖范围。
-
Reranking()。不像指示LLM充当匹配模块,在这种情况下LLM被用作重排器。LLM被指示重新排列检索到的候选商品,从而实现更准确的推荐。
除了上述三部分之外,还可以添加关于用户情况的其他有用的上下文信息(例如,时间和地点),称为上下文。
2.1.2各种交互场景的实例化
在这一部分中,为不同的交互场景实例化上述指令格式。表1中给出了一个关于指令实例化的示例列表。
- (无意图)结合,专注于用户偏好。当执行这些指令时,LLM充当传统的推荐器 。还可以将这两种偏好结合起来,从而指示LLM使用个性化提示进行推荐(𝑃2)。
- 结合,LLM充当传统的检索器 来处理用户的模糊或特定查询。,i_1>
-
在本文的设置中,推荐和搜索之间没有明确的界限,因为两者都可以用类似的方式表达。在上文中主要与结合,由于推理成本高,LLM目前更适合于重排阶段。
2.2指令生成
根据上面介绍的指令格式,通过基于可用的交互数据模拟用户偏好和意图来生成指令数据。但是,我们很难获得大量明确揭示用户真实偏好或意图的数据来构造指令。基于自动提示策略(例如,self-omstrict),该策略通过提示一个指令调整的LLM(称为教师LLM)来生成高质量的指令,作者采用GPT-3.5生成指令,通过提示每个用户的历史互动和评论,为每个用户生成这样的个性化信息。
2.2.1在指令中对三个关键点进行注释(标记)
为了通过自然语言指令更好地格式化用户需求的表达,首先根据各种交互场景的实例手动创建粗粒度模板(见第2.1.2节)。然后用从交互数据中提取或由教师LLM生成的特定用户偏好和意图(指细粒度的用户个性化指令)填充这些模板。 偏好注释 。考虑到不同程度的个性化,作者使用不同的策略来生成用户偏好。对于隐式偏好(),使用商品标题和用户的交互历史来填充模板,如“ The user has previously purchased the following items: {[MASK]} ”,MASK中就是商品名字。对于显式偏好(),用户的显式偏好通常无法获取,因此教师LLM(即GPT-3.5)被用来充当用户,并基于历史交互生成偏好的明确表达。以下是GPT-3.5生成用户偏好的示例: 任务形式注释 。本文中主要考虑。对于pointwise,将指令制定为:“Based on the, is it likely that the user will interact withnext?” ,系统应回答“Yes”或“No”。用于匹配任务,指令被制定为 “Predict the next possible item”。而对于重排任务,会有一个候选集合:“Select one item from the following”。
2.2.2提升指令的多样性
转换任务 。这种策略指的是正常指令的输入和输出之间的交换。要求LLM不仅要根据用户的偏好或意图推荐合适的商品,还要根据推荐的反馈推断他们潜在的信息。这样的任务可以帮助LLM理解用户行为和底层信息需求之间的关系。指令及其反向版本的示例如下所示:
2.3指令微调
2.3.1LLM Backbone
本文采用3B Flan-T5-XL作为骨干型号。由于Flan-T5基于T5进行了微调,具有大量的指令数据,因此它具有遵循自然语言指令的出色能力。Flan-T5采用编码器-解码器架构设计,支持512个token的最大上下文长度。当然也可以采用如LLaMA等其他LLM从而可以接受更长的输入。
2.3.2训练和推理
基于指令微调的优化 。利用生成的指令数据,可以通过指令调微调来优化LLM,这本质上是一种有监督的微调方式。首先根据不同类型的指令对所需的目标输出进行注释。例如,当指示模型预测下一个商品时,目标输出被注释为目标商品。而对于类似CoT的指令,目标输出被注释为用户对特定交互的推理过程。由于指令和目标输出都可以用自然语言格式化,可以将训练统一为序列到序列的方式。损失函数如下,其中为第k个实例对应的目标输出,为第k个实例对应的指令,B是batch size。
推理 。当向用户提供推荐服务时,系统将首先基于用户指令(即用户发出的指令)和其他有用信息(例如历史交互)来选择适当的粗粒度指令模板。然后,通过使用连接、插入和角色转换等操作,将原始表达式转换为模型指令。然后,请求LLM执行指定用户需求的模型指令。由于LLM中生成过程的固有随机性,存在生成候选集合之外的商品的潜在风险,特别是当使用beam search生成候选项目列表时。为了避免这个问题,直接将候选商品作为输入送到模型的解码器,并计算它们的可能性,以确定推荐的最终排名。
交流群:点击“联系 作者”--备注“研究方向-公司或学校”
欢迎|论文宣传|合作交流
往期推荐
SIGIR'23 | MOJITO:在序列推荐中考虑时间信息进行注意力机制混合
长按关注,更多精彩
点个在看你最好看