文献来源:TALLRec: An Effective and Efficient Tuning Framework to Align Large Language Model with Recommendation
期刊会议:RecSys '23: Proceedings of the 17th ACM Conference on Recommender Systems
本文只是对原文章做的一个初步阅读与理解,如有错误的地方,还请多多指点。想了解更多请原读原文。
一、摘要
本文主要提出了一个关于将 LLM
和推荐系统相结合的微调框架 TALLRec
。该框架是为了解决两个问题:① LLM
的训练任务和推荐任务存在巨大差距; ②预训练期间的推荐数据不充足。该框架通过推荐数据来微调 LLM
,从而建立一个 LRLMs
。
二、介绍
在最近的实验中,主要依赖上下文学习的方法,将 LLM
视为传统推荐模型 ,即 LLM
用于对这些模型过滤的候选项目进行重新 排序。但是,这些方法只能达到与传统模型差不 多的性能。更糟糕的是,只使用上下文学习可能无法提出建议。原因如下:
- ①由于训练任务和推荐任务之间的差距,
LLM
可能无法很好的与推荐任务对齐,并且在预训练中以推荐为导向的语料库有限; - ②
LLM
的效果可能会受到底层的推荐模型影响,由于其容量有限,可能无法将目标物品包含在候选列表中。
sds
因此,作者提出了 TALLRec
,通过轻量级微调,将 LLM
与推荐任务对齐。为了节省计算资源,采用了少样本进行微调。
实验验证了框架的高效性和鲁棒性:
- 我们的
TALLRec
框架可以在少样本场景下快速激发LLMs
的推荐能力。 - 通过
TALLRec
框架训练的LLMs在不同领域(例如,电影→书)上具有很强的泛化能力。
三、TALLRec
如下是框架图:
TALLRec
包含两个阶段:alpaca tuning
(主要为了增强LLM的泛化能力)和 rec-tuning
(模拟指令微调格式,将 LLM
在推荐任务上微调)。
alpaca tuning
该阶段的微调利用了 Alpaca
来训练 LLM
。
alpaca tuning
不是很理解,后续在深入了解了解。
rec-tuning
在此之前介绍一下指令微调(Instruction Tuning)。
步骤如下:
- step1:使用自然语言定义一个
task instruction
; - step2:设计并构建输入输出(
Task Input/Output
); - step3:把
Task Instruction
和Task Input
整合成指令输入,指令输出作为对应输出; - step4:把指令输入和指令输出作为格式对,对
LLM
指令微调。
推荐微调任务的步骤和指令微调类似。
- step1: 将推荐数据格式化为指令微调模式
- step2: 构建
Task Instruction
直接让LLM
给出答案,并规定Task Output
输出答案格式(Y/N)
; - step3: 将
Task Input
数据基于ratings
划分为两类,liked items
、disliked items
,同时包含target new item
; - step4: 最后整合
Instruction Input
和Instruction Output
Lightweight Tuning
轻量级的中心前提是当代语言模型可能拥有过多的参数,并且它们的信息集中在较低的内在维度上。因此,我们可以通过调整参数的一个小子集来获得与整个模型相当的性能。具体来说,我们采用 LoRA
,它涉及冻结预训练的模型参数,并将可训练的秩分解矩阵引入到 Transformer
架构的每一层,以促进轻量级调整。因此,通过优化秩分解矩阵,我们可以在保持原始参数处于冻结状态的同时高效地融入补充信息。总的来说,最终的学习目标可以计算为:
通过 LoRA
,我们只需要原始 LLM
参数的千分之一就可以完成训练,完成训练过程。
TALLRec框架微调的LLM是LLaMA,开源且训练集公开。
这里的轻量级微调以及涉及到的秩分解矩阵也不是很明白,也需要后续深入了解。
上述的公式1和公式2出现在这篇论文LoRA: Low-Rank Adaptation of Large Language Models
四、实验结果
RQ1: How does TALLRec perform compared with current LLMbased and traditional recommendation models?
TALLRec
比传统方法和LLM-based
方法表现的性能要好;LLM-based
方法表现的性能和随机猜测差不多,但通过TALLRec
训练的LLM
性能有很大提升。在推荐任务和语言任务存在着不小gap
,因此用推荐数据在LLM
上进行rec-tuning
很重要;- 传统方法在有限的训练样本上无法快速学习推荐能力;
GRU-BERT
和DROS-BERT
并没有所有情况下比本体性能表现好,在少样本训练上单纯加入文本描 述并不会增强传统推荐模型的能力。
### RQ2: How do the different components in TALLRec affect its effectiveness?
AT
的性能和RT
与TALLRec
比起来下降很多,所以rec-tuning
是增强LLM的能力的最大因素;- 在样本数小于128时,
alpaca-tuning
可以增强LLM
在新任务上的泛化能力; - 随着样本数的增加,
TALLRec
不断超越baseline
,rec-tuning
可以利用有限的样本激发LLM
的推荐能力。
RQ3: How does TALLRec perform under cross-domain recommendation?
- 在book数据集上,
TALLRec(Movie)
表现的性能很出色,因此TALLRec
具有跨域泛化能力,而不是像传统的推荐器那样只拟合单一的域。 - 在样本数超过64时,
TALLRec (Both)
在两个测试集中超过TALLRec (Movie)
和TALLRec (Book)
。这表明TALLRec
可以无缝集成不同领域的数据,从而提高其泛化性能。
(PS: 就Figure 4(b)来说,
TALLRec(Both)
并没有在样本数量超过64的时候,性能比另外两种好,不知道为什么作者得出此结论)
五、结论
作者提出 TALLRec
这个微调框架是为了解决 LLM
无法有效的与推荐任务对齐的问题,该框架通过两个阶段的微调(alpaca tuning/rec-tuning
)实现。实验数据也表明了 TALLRec
框架可以很好的将 LLM
与推荐任务对齐,并比传统模型的性能更好,此外也展现了不错的跨域泛化能力。