RPP:通过多智能体强化学习提高大语言模型在推荐系统的效果

技术
RPP:通过多智能体强化学习提高大语言模型在推荐系统的效果

发布时间:2024 年 07 月 24 日

推荐系统

Reinforced Prompt Personalization for Recommendation with Large Language Models

设计精妙的提示能助力 LLMs 深入洞察用户喜好,并凭借其意图解读与知识运用的双重优势,精准推荐。然而,当前研究多聚焦于任务导向的提示设计,采用包含角色扮演、历史记录、推理引导及输出格式四种模式的固定模板,统一应用于所有用户。这种便捷之法却忽视了用户间的独特性,可能导致用户偏好捕捉的偏差。为此,我们创新提出实例导向的提示策略,为每位用户量身定制个性化提示,并借助强化提示个性化(RPP)技术,通过多代理强化学习(MARL)精细调整四种模式。RPP 将提示个性化视为在四种模式间全局择优,而非逐字逐句的微调,确保了提示的高质量。同时,RPP 针对特定推荐任务,从多角度精心雕琢每种模式的表达方式。此外,RPP+ 的提出,进一步通过迭代过程中的动态动作优化,提升了动作空间的灵活性。实验证明,RPP/RPP+ 在多数据集的排名任务中表现卓越,超越了传统推荐模型及基于提示的其他方法,凸显了实例导向提示在 LLMs 推荐领域的关键作用,并证实了 RPP/RPP+ 的实效性。代码已公开于 https://github.com/maowenyu-11/RPP。

https://arxiv.org/abs/2407.17115

  1. 大语言模型在推荐系统上的应用和问题

随着大语言模型的兴起,越来越多的项目、应用开始把大语言模型用于推荐系统。随手到Arxiv上一搜,咱们就能搜到800多篇大语言模型和推荐系统的论文。

picture.image

我们社区里的【推荐系统】专栏也收纳了90多篇大语言模型与推荐系统的论文。

picture.image

可见大语言模型在推荐系统这个常见的应用有多火爆。但传统的方法往往是通过手工提示工程或者选择性枚举来探索推荐任务得定制化提示词,为所有用户建议统一的提示词模板。

但是,为所有用户使用统一的提示词模板无法发挥出大语言模型在个性化推荐方面的潜力:

picture.image

  • • 一刀切的提示方式难以精确捕捉到用户的多样化意图和偏好,这可能导致推荐效果平平。以上图为例,第一位用户对科幻电影的偏好在其长期观影历史中得到了体现,如《超人》和《茧》等;而第二位用户对喜剧电影的偏好则在其短期观影历史中显现,如《老气横秋》和《修女也疯狂》等。因此,基于用户长期或短期观影历史的推荐任务提示,并不适用于所有用户。
  • • 其次,LLMs的性能对提示的表述非常敏感,固定的提示模板限制了不同表述方式可能为LLMs输出带来的优势,因此作者提出为推荐任务中的不同用户定制个性化的实例化提示。

虽然这个理念和吸引人,但是要为每个用户提供个性化的提示词优化并非易事。比如直接手动创建或启发式为每个用户定制提示词,既耗费人力又耗费资源。

因此,作者从强化学习中获得启示,实现提示词优化的自动个性化。基于此,作者提出了RPP(Reinforced Prompt Personalization,强化提示个性化),运用多智能体强化学习(MARL)算法为每个用户个性化提示。

  1. 什么是RPP?

RPP的代码目前已开源,大家可以直接去Github获取 https://github.com/maowenyu-11/RPP

picture.image

2.1 概览

picture.image

总的来说,RPP框架能够通过多智能体强化学习(Multi-Agent Reinforcement Learning,MARL),为每位用户量身定制个性化的即时提示。该技术通过制定策略,针对提示中的关键模式进行逐一优化,在与大型语言模型(LLM)互动后获得最大回报。对于RPP+版本,"细化(Refine)"功能由LLMs实现,进一步提升了选择行动的灵活性与品质。

借鉴强化学习在定制提示中的应用,将提示生成视为从自然语言的广阔空间中挑选行动,并构建为一个马尔可夫决策过程(MDP)对每个实例优化提示:

    1. 动作空间(Action Space)
  • • RPP将每个模式的动作空间定义为一系列句子选择,而不是在庞大的词汇表中逐字优化
  • • 这种方法提高了搜索效率,并确保了提示的质量。
    1. 状态空间(State Space)
  • • 状态空间包含了智能体所需的关键信息,如用户的个性化特征和当前的提示及推荐结果。
    1. 奖励函数(Reward Function)
  • • RPP使用归一化折扣累积增益(Normalized Discounted Cumulative Gain, NDCG)作为奖励函数,直接评估LLMs的回答性能。
    1. Actor-Critic架构
  • • 每个智能体都包含一个Actor和一个Critic网络,Actor负责生成动作,Critic负责评估状态的价值。
  • • 这些网络在集中训练的同时,以分散的方式执行(Centralized Training with Decentralized Execution, CTDE),每个智能体根据全局状态独立学习。

2.2. 动作空间

在运用强化学习优化提示时,设计有效的动作集至关重要。关键挑战在于平衡搜索效率与提示质量。

为了处理这种平衡,作者设计了四个子空间,每个子控件分别代表一种不同的模式,并配备多个句子作为动作。受先前研究的启发,利用角色扮演、历史记录、推理引导和输出格式模式探究了任务级别的提示,通过优化这四种模式来探索个性化实例级别的提示。

为提高搜索效率,对这四种模式进行句子级别的优化提升了 RPP/RPP + 的效率,而非在庞大的词汇表中逐字优化。

朝着确保提示质量的目标迈进,每个模式 A_k 由为推荐任务精心设计的多个句子构成,不含模糊词汇,并涵盖多种视角供大型语言模型(LLMs)分析。这些句子代表了相应代理在动作空间 A_k 中的可能动作 。

动作集由人类和大型语言模型(LLMs)为特定任务 (如电影排名任务)共同构建。每个动作都由大型语言模型(LLMs)精心打造 ,并经过人类的严格筛选,以确保其与任务相关,且包含多样的分析视角,从而保障提示质量。

此外,为增强个性化提示的灵活性,借助大型语言模型(LLMs)在每次迭代中对所选动作进行改进(Refine),使生成的提示具有更适配的表达,作者把这种改进命名为(RPP+)。

2.2.1 角色扮演

此模式为大型语言模型(LLMs)分配特定角色,以生成与特定职业相符的响应。

例如,将大型语言模型(LLMs)定位为电影专家,使其能够运用其在电影领域的广博知识。

在推荐的情境中,“角色扮演”模式的动作包括:

  • • 1)将大型语言模型(LLMs)定位为专家,以利用领域知识,例如,“你是一名电影专家。”。
  • • 2)把大型语言模型(LLM)设定为推荐者,以增强其推荐能力,比如,“你擅长推荐电影。”。
  • • 3)指示 LLM 像心理学家那样去辨别用户的内心意图,比如:“你擅长捕捉人们对电影的兴趣。”。

2.2.2 历史记录

用户的过往交互构成了获取高质量推荐的关键上下文信息。

直观来看,某些用户表现出的短期兴趣通过近期交互能得到最好的捕捉,而另一些有长期偏好的用户则需要更长的序列。

所以,通过改变交互序列的长度来个性化历史记录,以契合用户的动态偏好。

2.2.3 推理指导

这种模式为 LLM 提供了把复杂任务系统分解为多个推理步骤的指引,融合了像思维链(CoT)、反思和改进等策略。

因为推荐在于根据用户的行为推断用户意图,引入中间步骤从表面深入本质极为关键。在“推理指导”模式中涵盖了六个动作子类别:

    1. 没有中间步骤的直接推荐(例如,“请按优先级从高到低给这些候选电影排序。

”)

    1. 明确指示 LLM 依据用户的交互历史进行推荐(例如,“请根据我的观看历史给这些候选电影排序。

”)

    1. 提示 LLM 在推荐项目前推断用户偏好(例如,“请根据从我观看历史推断出的我的电影偏好给这些候选电影排序。

”)

    1. 允许 LLM 在没有具体指令的情况下进行推断(例如,“请给这些候选电影排序,并逐步思考。

”)

    1. 在生成推荐结果的过程中利用 LLM 的细化和更新机制(例如,“请给这些候选电影排序,并根据我的观看历史细化排名结果。

”)

    1. 要求 LLM 在推荐项目前计算候选项目与用户偏好之间的相似度(例如,“请在计算这些候选电影与我的电影偏好之间的相似度后,根据我的观看历史给这些候选电影排序。

”)

2.2.4 输出格式

此模式明确了 LLM 在推荐任务中期望的输出格式,从而避免无效输出,便于进行准确评估。

    1. 输出标题和序号,每项单独一行(例如,“请仅输出带有序号的排名结果,用换行符分隔这些序号”)
    1. 输出带有序号的推荐结果,答案中不含任何多余步骤(例如,“注意!

只需输出带有序号的排名结果,忽略任何不必要的步骤。

”)

    1. 不作解释性回答(例如,“请仅输出带有序号的排名结果,不要解释原因或包含其他文字”)
    1. 举例说明输出格式(例如,“请仅输出带有序号的排名结果。

您的输出格式应是这样:

x. 电影标题,x 是序号”)

我们要强调的是,所呈现的动作集是电影推荐中个性化提示优化的典型示例。不过,通过替换任务需求或特定领域的术语,此框架能轻松推广到各类推荐任务(如评分预测、项目排名)和领域(如游戏、音乐)。而且,当前的动作集可通过属于每个模式的其他选择进行扩充。这些都展现了所提框架的灵活性和可扩展性。

2.3 状态空间

状态空间包含了智能体在进行决策时所需的所有环境信息。在RPP框架中,状态空间由以下几部分构成:

  • 用户特定信息 :初始化状态时,包含用户个性化特征,如从传统推荐模型中获得的用户嵌入(embedding)。
  • 当前提示 :在每一步迭代中,当前的提示文本(prompt)被编码并加入状态空间,以便智能体可以根据当前的提示内容进行决策。
  • 推荐结果 :大型语言模型(LLMs)生成的推荐结果,通常是一个排名列表,也被编码并包含在状态中。

状态空间的设计使得智能体能够基于当前的推荐环境和历史信息来选择最佳的行动。

2.4 基于多智能体和奖励函数的演员-评论家架构

为使每个模式与对应的智能体实现单独个性化,在 CTDE 框架下,多智能体强化学习(MARL)由四个演员-评论家构成,其中每个智能体具有独立参数,且能够访问全局状态。

2.4.1 奖励函数

奖励函数用于量化智能体选择的行动的好坏,是强化学习中引导智能体学习的关键因素。在RPP框架中:

  • 使用NDCG作为奖励 :RPP框架使用归一化折扣累积增益(Normalized Discounted Cumulative Gain, NDCG)作为奖励函数,这是一种常用于评估推荐系统性能的指标。
  • 即时奖励 :智能体在每一步选择行动后,会根据LLMs的推荐结果获得一个即时奖励,这个奖励反映了推荐结果与真实用户偏好之间的匹配程度。
  • 累积奖励 :智能体的目标是最大化长期累积奖励,这鼓励智能体选择能够持续带来高质量推荐的行动。

2.4.2 Actor-Critic架构

Actor-Critic架构是一种结合了动作、反馈学习的强化学习算法,特别适合于连续动作空间和大规模问题。在RPP框架中:

  • Actor网络 :负责生成动作,即选择最佳的提示句子。每个智能体都有自己的Actor网络,根据当前状态生成动作和相应的概率。
  • Critic网络 :评估当前状态的价值,即预测采取某个动作后的预期回报。Critic网络帮助智能体评估当前策略的好坏。
  • 集中训练,分散执行(CTDE) :虽然每个智能体有自己的参数,但它们可以访问全局状态信息,这样可以在保持各自独立性的同时共享环境信息。

Actor-Critic架构允许智能体在迭代过程中不断学习和更新,Actor更新其策略以选择更好的动作,而Critic更新其价值估计以更准确地预测回报。

  1. 效果评估

利用三个公开的推荐系统(RSs)数据集进行效果评估,以评估RPP/RPP+在排序任务中的成效,并回答以下几个问题:

  • • RQ1:运用 RPP/RPP+对实例级提示进行个性化处理,能否切实增强大型语言模型(LLMs)的推荐能力?
  • • RQ2:框架 RPP/RPP+在不同类型的 LLMs 上的泛化能力究竟怎样?
  • • RQ3:框架的每种模式对于我们的任务各自有着怎样的贡献?
  • • RQ4:框架对于超参数的变化敏感程度达到何种程度?

在 LLaMa2-7B-chat 上对 RPP/RPP+的有效性予以评估,并将其与各类基线进行对比,涵盖传统推荐模型少样本方法 以及基于提示 的方法。

此外,在多种预训练 LLMs 上拓展评估,以衡量 RPP/RPP+的泛化能力。

3.1 对比方法(测试基准)

采用了若干基准模型用于比较,并将它们归为三类:

  • • 1.传统推荐模型:Pop、BPRMF 以及 SASRec
  • • Pop 凭借项目的流行度来做推荐,却忽视了个性化。
  • • BPRMF 融合贝叶斯方法和矩阵分解技术,把用户-项目交互矩阵分解成潜在因子矩阵。
  • • SASRec 借助自注意力编码器全面剖析用户行为中的长期依赖关系,并且通过前馈网络预测后续交互。
  • • 2.少样本模型,诸如 BM25、VQ-Rec 与 UniSRec;
  • • BM25 是一种通用性的信息检索算法,通过考量项目频率来提升项目排名的精准度。
  • • VQ-Rec 提出了一种项目表示方案,以获取专为促进可迁移的顺序推荐而设计的向量量化项目表示
  • • UniSRec 利用项目描述文本来获取可迁移的表示,这能够通过轻量级的项目编码架构和两个对比预训练任务来达成
  • • 3.提示优化方法,包含手动提示和作为一种启发式提示的枚举。

3.2 RQ1: 运用 RPP/RPP+对实例级提示进行个性化处理,能否切实增强大型语言模型(LLMs)的推荐能力?

为回答 RQ1,通过对比 RPP/RPP+与各种基线的性能,来评估RPP在 LLaMa2-7B-chat 上的有效性。采用 NDCG@1、NDCG@5 和 NDCG@10 的评估指标来评估 LLMs 在项目排名方面的能力,结果如下表。

picture.image

凭借手动提示或枚举的任务级提示,LLaMa2-7B-chat 呈现出比传统推荐模型和少样本方法更差的推荐性能。

然而,通过在 RPP/RPP+中实现的实例级提示个性化,LLaMa2-7B-chat 在各种数据集上超越了这些基线模型。

例如,在传统推荐模型中表现最佳的基线 SASRec,在 ML-1M 数据集上的 NDCG@1、NDCG@5 和 NDCG@10 指标上分别超出表现最佳的基于提示的方法(枚举)。证实了 LLMs 任务级提示的短板。

相较之下,RPP 相较于传统推荐模型中的领先基线(SASRec)表现更优,在 ML-1M 上的 NDCG@1、NDCG@5 和 NDCG@10 指标上分别实现了提升。

此外,RPP 在 ML-1M 上的 NDCG@1、NDCG@5 和 NDCG@10 指标上分别比最佳的基于提示的方法(枚举)有提升 。

表明,由于能够从实例层面个性化提示,RPP/RPP+让大型语言模型能更好地领会用户的个性化意图,并给出更精准的推荐。

3.3 框架 RPP/RPP+在不同类型的 LLMs 上的泛化能力究竟怎样?

为回答 RQ2,对各种大型语言模型(如 LLaMa2-7B-chat、ChatGPT 以及 Alpaca)拓展了 RPP/RPP+的评估,并将RPP/RPP+的性能与基于任务的提示基线做对比,结果如下表。

picture.image

L、C和A分别指代大型语言模型中的LLaMa2-7B-chat、ChatGPT以及Alpaca。

RPP/RPP+在各类大型语言模型上都能出色地泛化,并显著提升大型语言模型的排名性能。

3.4 框架的每种模式对于我们的任务各自有着怎样的贡献?

picture.image

picture.image

其中,“Manual”与“Enum”代表基于任务的提示方法。而“RPP-Ro”、“RPP-Hi”、“RPP-Re”和“RPP-Ou”则为RPP/RPP+框架下的四种变体,分别对应于“角色扮演”、“历史记录”、“推理引导”和“输出格式”的实例化提示方法。

消融研究探究了个性化每种模式(即“角色扮演”“历史记录”“推理指导”和“输出格式”)对提升大型语言模型推荐能力的影响。

个性化任意一种模式都能提升大型语言模型对项目的排名性能,而 RPP/RPP+的完整框架能达到最优性能。

与其他模式相比,个性化“推理指导”带来的益处最大,为推荐提供了解释性,也证明了个性化推理过程在准确分析用户偏好方面的有效性。

此外,“角色扮演”和“输出格式”突显了大型语言模型对提示的内在敏感性,提示表达的修改能够促使大型语言模型输出更佳。“历史记录”证实了用户的短期或长期交互历史对推荐的影响。

这强调了将提示分解为四种模式并分别定制,有助于大型语言模型的推荐。

3.5 框架对于超参数的变化敏感程度达到何种程度?

picture.image

上图中研究了训练示例(用户)数量对 LLaMa2-7B-chat 上的 RPP/RPP+的作用。随着训练示例的数量从100增加至500,RPP/RPP+的性能起初提升,随后趋于稳定。考虑到性能和资源消耗,我们将训练示例的数量设定为 200。

picture.image

上图探讨了 RPP/RPP+对候选项目数量在 5 到 20 范围内的敏感性。观察枚举方法和 RPP/RPP+对应的曲线,随着候选项目数量增多,大型语言模型的排名性能下降,可归因于大型语言模型处理长输入的局限性。

不过,RPP/RPP+增强大型语言模型推荐性能的能力是稳健的,因为 RPP/RPP+和枚举的曲线之间的差距保持稳定。

3.6 案例研究

picture.image

就上图中的用户而言,将“角色扮演”模式从“你是一位电影专家”个性化为“你是一位电影排名者以契合用户的兴趣”,致使用户接下来交互的真实项目排名更高。这表明将大型语言模型设定为电影排名者来分析用户的偏好,能够为该用户带来更精准的推荐。

picture.image

对于上图中的用户,把“历史记录”模式从 5 个交互记录个性化为 2 个历史记录,排名结果会更精确。这显示出考虑短期的交互历史比长期的更能有效地捕捉他的偏好。

picture.image

对于上图中的用户,将“推理指导”模式从“逐步思考”个性化为“在排名前更新电影偏好”会带来更优的推荐,证明对他来说,利用大型语言模型的细化和更新机制比没有具体指令的推导更合理。

picture.image

此外,将“输出格式”模式从“给出输出格式示例”个性化为“无需任何不必要的步骤进行回答”,让大型语言模型更易理解指令并为上图的用户推荐。

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论