TALLRec: An Effective and Efficient Tuning Framework to Align Large Language Model w Recommendation

中科大何向南团队的工作

Introduction

将LLMs应用于推荐系统面临诸多挑战。最初的研究方法是通过上下文学习(In-context Learning)将推荐任务以提示的形式呈现给LLM,让LLM给传统推荐模型给出的候选物品进行重排,但效果不理想,这主要是因为1)LLMs的训练任务与推荐任务之间存在巨大的差距且预训练期间缺乏足够的推荐数据。2)LLM的作用受到基础推荐模型的限制,由于基础推荐模型的容量有限,可能无法在其候选列表中包含目标项目。

为了弥补这一差距,本论文提出了一个名为TALLRec的高效调优框架,通过推荐数据对LLMs进行调优,从而提升其在推荐任务中的表现。

Method

前置知识

1指令调优

指令调优是用人工注释指令和响应训练LLM的关键技术,通过微调一组不同的人工注释的指令和响应来促进LLM的能力。这一阶段赋予了模型一个强大的泛化能力,从而赋予其熟练地处理未知任务的能力,并确保其对新场景和挑战的适应性。具体来说,指令调优有四个一般步骤。
步骤1:识别一个任务,并使用自然语言表达一个指令,以有效地解决任务。该指令可以包括对任务的明确定义,以及解决它的具体解决方案。这些描述在整个研究中被称为“任务指导”。
步骤2:用自然语言表示任务的输入和输出,并将其定义为“任务输入”和“任务输出”。
步骤3:将“任务指令”和“任务输入”整合在一起,形成“指令输入”,对每个数据点以“任务输出”作为对应的“指令输出”。
步骤4:基于格式化的“指令输入”和“指令输出”对数据训练LLM。
在这里插入图片描述

2推荐调优任务定义

由用户交互的历史项目被表示为一个由 [ i t e m 1 , i t e m 2 , . . . , i t e m n ] [ i t e m _1 , i t e m_ 2 , . . . , i t e m_ n ] [item1,item2,...,itemn] 表示的序列。序列中的每个项目都包含 ID 和 文本信息(例如,电影名称或书名)。此外,该序列还伴有一个用户反馈序列,表示为 [ r a t e 1 , r a t e 2 , . . . , r a t e n ] [rate_1,rate_2,...,rate_n] [rate1,rate2,...,raten],其中 r a t e i ∈ { 1 , 0 } rate_i ∈\{1,0\} ratei{1,0} 表示用户是否喜欢 i t e m i i t e m _i itemi
在作者的设置中,作者的任务是利用表示为 M M M 的 LLM 来构建一个表示为 M r e c M_{rec} Mrec 的 LRLM,它可以根据用户的推荐任务指令和用户的历史交互来预测用户是否会喜欢一个新项目(表示为 i t e m n + 1 item_{n+1} itemn+1 )。
符号表示:

  • 与新项组合的历史序列表示为“Rec Input”
  • LRLM 的预测表示为“Rec output”,
  • 推荐任务的“任务指令”表示为 “Rec Instruction”。

任务的目标是利用表示为 M 的 LLM 来构建 LRLM,它可以预测用户是否会喜欢新项目。为了实现这一目标,我们使用推荐数据对LLM进行推荐调优(rec-tuning)。如表 2 所示,将推荐数据格式化为指令微调的形式。我们首先组成一个“任务说明”,它引导模型根据用户的历史交互确定用户是否喜欢目标项目,并对“是”或“否”的二元答案做出反应。为了格式化“任务输入”,根据评级将用户的历史交互项目分为两组:用户喜欢的项目和不喜欢的项目,其中项目按交互时间顺序排序并由文本描述表示(例如,标题和简要介绍)。此外,“任务输入”还包括用户从未见过的目标新项目。最后,我们将“任务说明”和“任务输入”合并以创建“指令输入”,然后将预期的“指令输出”设置为“是”或“否”以进行重新调整。
在这里插入图片描述

TALLRec Framework

在本小节中,作者将介绍TALLRec框架,该框架旨在促进LLM与推荐任务有效且高效地对齐,特别是在低GPU内存消耗设置下。具体来说,作者首先介绍了TALLRec调优方法,然后介绍了基础大模型的选择。
在这里插入图片描述

1TALLRec Tuning Stages

TALLRec包括两个调优阶段:alpaca调优和推荐调优(rec-tuning)

前一阶段是LLM常用的常见训练过程,提高了LLM的泛化能力,后一阶段模拟指令调优模式,针对推荐任务对模型进行微调。
对于前者,作者使用Alpaca 提供的自指导数据来训练作者的模型。在指令调优过程中使用了Alpaca库中的条件语言建模目标:
在这里插入图片描述
对于推荐调优,与前者类似,将推荐数据格式化为指令调优的格式。如表2所示
在这里插入图片描述

2Lightweight Tuning

在训练LLM时,直接微调模型是计算密集型和耗时的。考虑到这些因素,作者建议采用一种轻量级的微调策略来同时执行指令调优和指令控制调优。轻量级微调的中心思想是,当代语言模型可能拥有过多的参数,而它们的信息集中在一个较低的内在维度上。因此,可以通过只微调参数的一小部分子集来获得与微调全部参数相当的性能。

具体来说,作者使用了LoRA ,它涉及到冻结预先训练过的模型参数,并在transformer架构的每一层中引入可训练的秩分解矩阵,以促进轻量级的微调。因此,通过优化秩分解矩阵,作者可以在保持原始参数处于冻结状态的同时有效地合并补充信息。总之,最终的学习目标可以计算为:

在这里插入图片描述

其中Θ是LoRA参数,并且在训练过程中作者只更新LoRA参数。通过LoRA,作者可以只用原始LLM参数的千分之一来完成训练,从而完成训练过程。

3backbone选择

使用LLM-Llama

实验结果

与传统推荐模型对比
在这里插入图片描述
与基于上下文学习的大模型推荐方法对比
在这里插入图片描述

总结

本文通过轻量级实现将LLMs与推荐任务对齐,在低GPU内存消耗的情况下,能够显著提升推荐性能​。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值