Instructing and Prompting Large Language Models for Explainable Cross-domain Recommendations文献解读
《指导和促进大型语言模型,以实现可解释的跨领域推荐》
Authors: 编辑Alessandro Petruzzelli, 编辑Cataldo Musto, 编辑Lucrezia Laraspata, 编辑Ivan Rinaldi, 编辑Marco de Gemmis, 编辑Pasquale Lops, 编辑Giovanni SemeraroAuthors Info & Claims
如何利用大型语言模型(LLM)解决跨域推荐(Cross-Domain Recommendation, CDR)中的关键挑战,并生成可解释的推荐结果?
关键挑战
-
数据稀疏性:跨域数据通常较少,如何利用LLM的预训练知识弥补这一缺陷?
-
领域差异:如何让LLM理解不同领域的语义关联(如“书籍→电影”)?
-
可解释性:如何设计提示,使LLM不仅能推荐,还能生成合理的解释?
-
模型适应性:不同规模LLM(如GPT-3.5 vs. LLaMA-7B)在零样本和少样本设置下的表现如何?
Methodology(方法论)
本文提出的方法是一个基于大型语言模型(LLM)的跨域推荐系统(CDR)框架,主要包括四个阶段:
- 数据预处理(Data Pre-processing)
- 指令微调(Instruction Tuning)
- 提示工程(Prompting LLMs for CDR)
- 输出优化与推荐(Output Refinement and Recommendation)
下面详细讲解每个阶段的核心思想和技术细节。
1 Data Pre-processing(数据预处理)
目标
将原始数据转换为适合LLM输入的格式,并划分训练集和测试集,避免数据泄露(data leakage)。
关键步骤
-
用户划分:
- 将重叠用户集合 (\mathcal{U} = \mathcal{U}_S \cap \mathcal{U}_T) 划分为:
- 指令微调用户((\mathcal{U}_I)):用于训练LLM适应CDR任务。
- 提示测试用户((\mathcal{U}_P)):用于评估模型性能。
- 确保 (\mathcal{U}_I \cap \mathcal{U}_P = \emptyset),防止信息泄露。
- 将重叠用户集合 (\mathcal{U} = \mathcal{U}_S \cap \mathcal{U}_T) 划分为:
-
构建用户偏好数据:
- 对每个用户 (u \in \mathcal{U}_I \cup \mathcal{U}_P),收集:
- 喜欢的物品((\mathcal{P}_{u,S})):如评分≥5的书籍。
- 不喜欢的物品((\mathcal{N}_{u,S})):如评分<5的书籍。
- 目标领域候选物品((\mathcal{R}_{u,T})):待排序的电影列表。
- 对每个用户 (u \in \mathcal{U}_I \cup \mathcal{U}_P),收集:
-
提取物品特征((\mathcal{F})):
- 包括标题、类别、作者等文本信息,用于后续提示构建。
2 Instruction Tuning(指令微调)
目标
通过指令微调让LLM适应跨域推荐任务,使其能够:
- 理解CDR任务的定义。
- 学会根据用户的历史偏好生成推荐列表和解释。
关键步骤
-
设计“适应提示”(Adaptation Prompt)
每个训练样本的提示(prompt)由三部分组成:- System Prompt(系统指令):定义任务目标,如:
“你是一个跨域推荐系统,用户会提供他们在源领域喜欢和不喜欢的物品,你需要根据这些信息在目标领域生成推荐列表。”
- User Prompt(用户输入):包含用户偏好和候选物品,如:
“我喜欢这些书:《哈利·波特》(奇幻),不喜欢这些书:《五十度灰》(爱情)。请从以下电影中推荐最相关的:《哈利·波特与魔法石》(奇幻)、《泰坦尼克号》(爱情)。”
- Model Output(期望输出):提供正确的推荐和解释,如:
“推荐列表:1. 《哈利·波特与魔法石》
解释:你喜欢奇幻类书籍,因此推荐同类型的电影。”
- System Prompt(系统指令):定义任务目标,如:
-
微调LLM
- 使用交叉熵损失优化LLM参数,使其生成的推荐和解释接近人工标注的正确答案。
- 采用全参数微调(full fine-tuning),而非参数高效方法(如LoRA),以最大化模型性能。
-
输出CDR-LLM
- 微调后的模型称为 CDR-LLM,专门用于跨域推荐任务。
3 Prompting LLMs for CDR(提示工程)
目标
在测试阶段,使用个性化提示让CDR-LLM生成推荐,并比较**零样本(zero-shot)和少样本(one-shot)**设置的效果。
关键步骤
-
选择源领域和目标领域
- 例如:书籍(源)→ 电影(目标)。
-
构建测试提示(Test Prompt)
- 结构类似于适应提示,但不提供正确答案(Model Output部分去掉)。
- 示例(零样本):
“用户喜欢:《指环王》(奇幻),不喜欢:《暮光之城》(爱情)。请推荐以下电影:《指环王1》(奇幻)、《恋恋笔记本》(爱情)。”
-
少样本(One-shot)设置
- 在提示中额外添加一个示例,展示推荐逻辑,如:
“示例:
用户喜欢:《冰与火之歌》(奇幻),推荐:《权力的游戏》(奇幻)。
现在请为新用户推荐:……”
- 在提示中额外添加一个示例,展示推荐逻辑,如:
-
输入LLM并获取推荐
- 将构建的提示输入CDR-LLM,生成推荐列表和解释。
4 Output Refinement and Recommendation(输出优化与推荐)
目标
由于LLM可能生成不符合格式的推荐(如“幻觉”推荐不存在的物品),需要对输出进行后处理。
关键步骤
-
过滤无效推荐
- 检查LLM返回的推荐是否在候选集 (\mathcal{R}_{u,T}) 中,剔除不存在的物品。
-
提取推荐列表
- 保留LLM返回的排序,如:
“推荐:1. 《哈利·波特》 2. 《指环王》” → 取Top-k。
- 保留LLM返回的排序,如:
-
解析解释文本
- 提取“Explanation:”之后的内容,作为推荐理由。
5 Discussion(讨论)
- 通用性:框架适用于不同LLM(如GPT、LLaMA、Mistral)。
- 指令微调的必要性:
- 小模型(如LLaMA-7B)必须微调,否则无法正确生成推荐。
- 大模型(如GPT-3.5)在零样本下表现良好,但少样本可进一步提升效果。
- 可解释性:LLM能自动生成合理的推荐解释,这是传统CDR方法难以实现的。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)