《指导和促进大型语言模型,以实现可解释的跨领域推荐》

Instructing and Prompting Large Language Models for Explainable Cross-domain Recommendations | Proceedings of the 18th ACM Conference on Recommender Systems

Authors: ​编辑Alessandro Petruzzelli​编辑Cataldo Musto​编辑Lucrezia Laraspata​编辑Ivan Rinaldi​编辑Marco de Gemmis​编辑Pasquale Lops​编辑Giovanni SemeraroAuthors Info & Claims

如何利用大型语言模型(LLM)解决跨域推荐(Cross-Domain Recommendation, CDR)中的关键挑战,并生成可解释的推荐结果?

关键挑战

  1. 数据稀疏性:跨域数据通常较少,如何利用LLM的预训练知识弥补这一缺陷?

  2. 领域差异:如何让LLM理解不同领域的语义关联(如“书籍→电影”)?

  3. 可解释性:如何设计提示,使LLM不仅能推荐,还能生成合理的解释?

  4. 模型适应性:不同规模LLM(如GPT-3.5 vs. LLaMA-7B)在零样本和少样本设置下的表现如何?

 Methodology(方法论)

本文提出的方法是一个基于大型语言模型(LLM)的跨域推荐系统(CDR)框架,主要包括四个阶段:

  1. 数据预处理(Data Pre-processing)
  2. 指令微调(Instruction Tuning)
  3. 提示工程(Prompting LLMs for CDR)
  4. 输出优化与推荐(Output Refinement and Recommendation)

下面详细讲解每个阶段的核心思想和技术细节。


1 Data Pre-processing(数据预处理)

目标

将原始数据转换为适合LLM输入的格式,并划分训练集和测试集,避免数据泄露(data leakage)。

关键步骤

  1. 用户划分

    • 将重叠用户集合 (\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),防止信息泄露。
  2. 构建用户偏好数据

    • 对每个用户 (u \in \mathcal{U}_I \cup \mathcal{U}_P),收集:
      • 喜欢的物品((\mathcal{P}_{u,S})):如评分≥5的书籍。
      • 不喜欢的物品((\mathcal{N}_{u,S})):如评分<5的书籍。
      • 目标领域候选物品((\mathcal{R}_{u,T})):待排序的电影列表。
  3. 提取物品特征((\mathcal{F})):

    • 包括标题、类别、作者等文本信息,用于后续提示构建。

2 Instruction Tuning(指令微调)

目标

通过指令微调让LLM适应跨域推荐任务,使其能够:

  • 理解CDR任务的定义。
  • 学会根据用户的历史偏好生成推荐列表和解释。

关键步骤

  1. 设计“适应提示”(Adaptation Prompt)
    每个训练样本的提示(prompt)由三部分组成:

    • System Prompt(系统指令):定义任务目标,如:

      “你是一个跨域推荐系统,用户会提供他们在源领域喜欢和不喜欢的物品,你需要根据这些信息在目标领域生成推荐列表。”

    • User Prompt(用户输入):包含用户偏好和候选物品,如:

      “我喜欢这些书:《哈利·波特》(奇幻),不喜欢这些书:《五十度灰》(爱情)。请从以下电影中推荐最相关的:《哈利·波特与魔法石》(奇幻)、《泰坦尼克号》(爱情)。”

    • Model Output(期望输出):提供正确的推荐和解释,如:

      “推荐列表:1. 《哈利·波特与魔法石》
      解释:你喜欢奇幻类书籍,因此推荐同类型的电影。”

  2. 微调LLM

    • 使用交叉熵损失优化LLM参数,使其生成的推荐和解释接近人工标注的正确答案。
    • 采用全参数微调(full fine-tuning),而非参数高效方法(如LoRA),以最大化模型性能。
  3. 输出CDR-LLM

    • 微调后的模型称为 CDR-LLM,专门用于跨域推荐任务。

3 Prompting LLMs for CDR(提示工程)

目标

在测试阶段,使用个性化提示让CDR-LLM生成推荐,并比较**零样本(zero-shot)少样本(one-shot)**设置的效果。

关键步骤

  1. 选择源领域和目标领域

    • 例如:书籍(源)→ 电影(目标)。
  2. 构建测试提示(Test Prompt)

    • 结构类似于适应提示,但不提供正确答案(Model Output部分去掉)。
    • 示例(零样本):

      “用户喜欢:《指环王》(奇幻),不喜欢:《暮光之城》(爱情)。请推荐以下电影:《指环王1》(奇幻)、《恋恋笔记本》(爱情)。”

  3. 少样本(One-shot)设置

    • 在提示中额外添加一个示例,展示推荐逻辑,如:

      “示例:
      用户喜欢:《冰与火之歌》(奇幻),推荐:《权力的游戏》(奇幻)。
      现在请为新用户推荐:……”

  4. 输入LLM并获取推荐

    • 将构建的提示输入CDR-LLM,生成推荐列表和解释。

4 Output Refinement and Recommendation(输出优化与推荐)

目标

由于LLM可能生成不符合格式的推荐(如“幻觉”推荐不存在的物品),需要对输出进行后处理。

关键步骤

  1. 过滤无效推荐

    • 检查LLM返回的推荐是否在候选集 (\mathcal{R}_{u,T}) 中,剔除不存在的物品。
  2. 提取推荐列表

    • 保留LLM返回的排序,如:

      “推荐:1. 《哈利·波特》 2. 《指环王》” → 取Top-k。

  3. 解析解释文本

    • 提取“Explanation:”之后的内容,作为推荐理由。

5 Discussion(讨论)

  1. 通用性:框架适用于不同LLM(如GPT、LLaMA、Mistral)。
  2. 指令微调的必要性
    • 小模型(如LLaMA-7B)必须微调,否则无法正确生成推荐。
    • 大模型(如GPT-3.5)在零样本下表现良好,但少样本可进一步提升效果。
  3. 可解释性:LLM能自动生成合理的推荐解释,这是传统CDR方法难以实现的。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐