# 2305.00447_TALLRec: An Effective and Efficient Tuning Framework to Align Large Language Model with Recommendation * 首页: * PDF: * GitHub: * 引用: 591(2025-09-11) * 组织: * University of Science and Technology * National University of Singapore ## 总结 **总结** * 比较简单,快速看完 **Paper引用说明** * 使用 LoRA 对 LLaMA-7B 模型进行微调 **TALLRec** * 一种高效的微调框架,用于对齐 LLMs 与推荐任务 * 通过两个阶段的调优(alpaca tuning和rec-tuning)来高效地将LLM与推荐任务进行对齐 **消融实验** * Rec-tuning 是 TALLRec 成功的关键,Alpaca-tuning 在数据稀缺时提供辅助 * Alpaca-tuning 在样本较少时有助于提升 LLM 通用性,但随着样本增加,其作用减弱。 * TALLRec (Both) 在样本超过64时表现最佳,说明其能够整合多领域数据提升泛化性能。 ## Abstract 本研究探讨了**大型语言模型**(LLMs)在**推荐系统**中的应用潜力。LLMs因其出色的知识表示和泛化能力,在多个领域表现出色。研究人员最初尝试通过**In-context Learning**,将推荐任务转化为提示(prompt)形式,以利用LLMs的优势。然而,由于LLMs的训练任务与推荐任务之间存在显著差异,且预训练过程中缺乏推荐相关的数据,导致其在推荐任务中的表现仍不理想。 为了解决这一问题,本文提出了一种高效的调优框架**TALLRec**,旨在通过推荐数据对LLMs进行微调,从而缩小其与推荐任务之间的性能差距。实验结果显示,TALLRec框架能在**电影和书籍推荐**领域显著提升LLMs的推荐能力,即使在样本数量少于100的情况下。此外,该框架具有很高的**计算效率**,可以在单块**RTX 3090** 显卡上运行**LLaMA-7B** 模型,并展现出**跨领域泛化能力**。 d ### 重点内容强调: - **TALLRec框架**是本文的核心贡献,其提出目的是增强LLMs的推荐能力。 - 框架在**小样本**和**单GPU**环境下表现出色,具有实际应用价值。 - **跨领域泛化能力**表明该方法具有广泛适用性。 **主要内容:** 近年来,**大型语言模型(LLMs)** 在多个领域表现出色,激发了研究者探索其在**推荐系统**中的应用潜力。早期的研究尝试利用 LLMs 的优势,例如**丰富的知识**和**通过上下文学习(In-context Learning)的强泛化能力**,通过将推荐任务构造成提示(prompt)来实现。然而,由于 LLMs 的训练任务与推荐任务之间存在显著差异,且 LLMs 在预训练阶段缺乏足够的推荐相关数据,因此其在推荐任务中的性能仍不理想。 **解决方案与贡献:** 为了解决这些问题,作者提出构建一个**大型推荐语言模型**,即通过使用**推荐数据对 LLMs 进行微调**。为此,作者提出了一种高效且有效的**对齐 LLMs 与推荐任务的微调框架**,名为 **TALLRec**。实验表明,**TALLRec 框架能够显著提升 LLMs 在电影和书籍推荐任务中的能力**,**即使在样本数量少于 100 的小数据集上也能取得良好效果**。此外,该框架**计算效率高**,**可在单个 RTX 3090 显卡上运行 LLaMA-7B 模型**。微调后的 LLM 还表现出**跨领域泛化的鲁棒性**。 **关键词:** 推荐(Recommendation)、指令微调(Instruction Tuning)、大型语言模型(Large Language Models) --- **出版信息:** - **会议名称:** 第十七届 ACM 推荐系统会议(RecSys 2023) - **时间地点:** 2023年9月18日至22日,新加坡 - **DOI:** 10.1145/3604915.3608857 - **ISBN:** 979-8-4007-0241-9 - **版权:** ACM 授权 - **CCS 分类:** 信息系统 → 推荐系统 --- ### **总结重点:** 1. **LLMs 在推荐系统中的应用潜力**:LLMs 的知识丰富性和泛化能力使其成为推荐系统的潜在工具。 2. **当前挑战**:训练任务与推荐任务的不匹配、推荐数据在预训练中缺失。 3. **提出方法 TALLRec**:一种高效的微调框架,用于对齐 LLMs 与推荐任务。 4. **实验效果显著**:在小数据集和跨领域任务中表现良好。 5. **高效性与实用性**:可在单卡上运行,并适配 LLaMA-7B。 6. **开源共享**:代码与数据公开,便于复现与进一步研究。 --- 如需对论文的其他章节(如 Introduction、Method、Experiment 等)进行详细总结,也可继续提供内容。 ## 1. Introduction ### 背景与研究动机 近年来,**大语言模型(LLMs)** 在生成类人语言和执行多种任务方面表现出色,包括自然语言处理、机器人技术和信息检索等领域。这些模型展现出**丰富的知识内容**和**组合泛化能力**,仅通过适当的指令,就能学会解决未见过的任务并利用自身知识实现高性能。鉴于这些能力,LLMs在需要强泛化能力和丰富知识的**推荐系统**中也展现出应用潜力。然而,目前LLMs在推荐系统中的应用研究仍较为有限,是一个值得探索的方向。 ### LLMs在推荐中的初步尝试 已有研究尝试将LLMs应用于推荐系统,主要采用**In-context Learning**(上下文学习)的方法,通过OpenAI API进行实现。这些研究通常将LLM作为传统推荐模型(如MF、LightGCN)的**重排序工具**,即在传统模型筛选出候选物品后,LLM用于进一步排序。然而,此类方法的性能与传统模型相当,并未体现出LLM的优势。更严重的是,仅依赖In-context Learning有时会**完全失败**,例如ChatGPT在书籍和电影推荐任务中,要么拒绝回答,要么总是给出正面预测(喜欢)。如果忽略拒绝回答的情况,计算AUC指标后发现其表现接近随机猜测(AUC ≈ 0.5)。 ### 问题分析与研究假设 我们分析了仅依赖In-context Learning失败的两个主要原因: 1. **任务不匹配**:LLMs训练任务(语言生成与理解)与推荐任务之间存在较大差距,且推荐领域在LLM训练中提供的数据非常有限。 2. **模型能力限制**:LLM的效果受到底层推荐模型的限制,这些模型可能无法将目标物品纳入候选列表。 因此,我们提出构建一个**大型推荐语言模型(LRLM)**,通过进一步调优LLMs,弥合其与推荐任务之间的差距,并更有效地激发其推荐能力。 ### 提出方法:TALLRec 框架 为实现这一目标,我们专注于**推荐任务下的LLM调优**。考虑到**指令调优(Instruction Tuning)** 对提升LLM解决多种任务能力具有关键作用,我们提出一个**轻量级调优框架 TALLRec**,用于将LLM适配到推荐任务中。 TALLRec 的核心方法是: - 将推荐数据结构化为**指令形式**; - 通过**额外的指令调优过程**对LLM进行训练; - 采用**LoRA**(低秩适配)结构,仅对模型的部分参数进行微调,从而在**计算资源有限的GPU**(如NVIDIA RTX 3090 24GB)上高效运行。 同时,为了验证框架的高效性,我们在**少样本(few-shot)设置**下进行实验,仅使用少量调优样本,验证了TALLRec框架的**快速适应能力**。 ### 实验与结果 我们基于LLaMA-7B模型应用TALLRec框架,并在**知识密集型的电影和书籍推荐任务**中进行了全面实验。实验结果表明: 1. TALLRec 能在少样本设置下快速激发LLM的推荐能力; 2. 调优后的LLM具有**强大的跨领域泛化能力**(如从电影推荐迁移到书籍推荐); 3. TALLRec 在性能上优于传统推荐模型和基于In-context Learning的GPT3.5(更强的LLM)。 ### 研究贡献总结 本研究的主要贡献包括: 1. **提出新问题**:探索如何将LLMs与推荐系统对齐,揭示了基于In-context Learning方法的局限性,并强调了**指令调优**的重要性; 2. **提出新框架 TALLRec**:一个轻量级、高效、低成本(低GPU资源消耗)的LLM调优框架,适用于推荐任务; 3. **开展广泛实验**:验证了TALLRec的有效性与高效性,并发现其具有**跨领域强鲁棒性**,可无缝迁移至不同领域。 ## 2. TALLRec 本节首先介绍调优大语言模型(LLMs)所需的基础知识与任务设定,然后提出 TALLRec 框架。 --- ### 2.1. 预备知识 #### 指令调优(Instruction Tuning) 指令调优是训练大语言模型以理解人类指令并生成合适响应的重要技术。 **步骤如下(以翻译任务为例)**: 1. **定义任务并编写“任务指令”**:用自然语言描述任务,例如“将英文翻译为中文”。 2. **构造“任务输入”和“任务输出”**:例如,“Who am I?” 和 “我是谁?”。 3. **构建“指令输入”和“指令输出”**:将“任务指令”与“任务输入”合并为“指令输入”,“任务输出”作为“指令输出”。 4. **基于指令对进行模型调优**:通过训练这些指令-输出对来调优模型。 #### 推荐任务的指令调优(Rec-tuning) 推荐任务的目标是利用大语言模型(LLM)构建一个语言推荐模型(LRLM),预测用户是否喜欢新物品。 **具体步骤**: - **任务指令**:基于用户历史交互,判断用户是否会喜欢目标新电影,输出“Yes”或“No”。 - **任务输入**:将用户的历史交互物品分为“喜欢”和“不喜欢”两类(按时间排序),并加入目标新物品。 - **构造指令输入与输出**:将任务指令与输入合并为“指令输入”,目标输出为“是”或“否”。 --- ### 2.2. TALLRec 框架 TALLRec 框架旨在高效、低 GPU 内存消耗下,使大语言模型与推荐任务对齐。该框架包括两个调优阶段和轻量级调优技术。 #### TALLRec 调优阶段 - **Alpaca 调优**:使用 Alpaca 提供的自指令数据,通过条件语言模型目标训练 LLM,提升其通用能力。 - **Rec-tuning**:通过推荐任务的指令输入输出对(如上所述)进一步调优 LLM 的推荐能力。 图2展示了 TALLRec 的整体框架,其中 rec-tuning 阶段使用推荐数据构造的指令对进行调优,同时采用轻量级调优技术以提高效率。 #### 轻量级调优(Lightweight Tuning) 直接对 LLM 进行训练计算开销大、耗时长。为此,TALLRec 采用 **LoRA(Low-Rank Adaptation)** 技术进行轻量级调优。 **原理**: - 认为现代语言模型的参数冗余,关键信息集中在低维空间中。 - 因此,只需调整少量参数即可达到与全模型相当的性能。 - 具体做法:冻结预训练模型参数,在 Transformer 的每一层中引入可训练的低秩矩阵进行调优。 **目标函数**: $$ \max_{\Theta} \sum_{(x,y)\in\mathcal{Z}} \sum_{t=1}^{|y|} \log\left(P_{\Phi+\Theta}(y_t|x,y_{