0


RPP/RPP+:多智能体强化学习 + 长期个性化推荐

RPP/RPP+:多智能体强化学习 + 长期个性化推荐


论文:https://arxiv.org/pdf/2407.17115

代码:https://github.com/maowenyu-11/RPP

提出背景

为了让这些大型语言模型更好地执行推荐任务,一个有效的方法是为特定的推荐任务定制提示,而不是微调一个推荐大模型,这通常需要大量的资源。

目前,已经有一些方法通过手动设计或列举后选择来研究任务相关的提示,目的是为了创建一个所有用户在特定推荐任务中共享的固定提示模板。

这些模板通常包括角色扮演、历史记录、推理指导和输出格式等模式。

但是,我们认为,对所有用户使用统一的提示模板可能无法充分发挥大型语言模型提供个性化推荐的能力。

一方面,这种一刀切的方法可能无法准确捕捉到用户的不同意图和偏好,从而影响推荐效果。

另一方面,大型语言模型的性能对提示的表达方式非常敏感,固定模板限制了提示表达方式的多样性。

因此,我们提出了为每个用户个性化定制实例化提示的概念。

我们从强化学习中获得灵感,提出了一种自动化个性化提示的方法。

这种方法的基本思想是将自然语言视为行动空间,并将提示生成视为基于用户个性化信息选择行动的问题。

这样,我们可以根据每个用户的特点来定制提示,以提高推荐的相关性和准确性。

我们提出了一种新的方法,名为强化提示个性化(RPP/RPP+),它使用多智能体强化学习技术为每位用户定制个性化的提示,以提升大型语言模型在推荐任务中的表现。

这种方法通过精心设计的语言行动空间,针对每位用户的独特信息,如他们的兴趣和历史行为,来优化提示。

我们没有在庞大的词汇库中逐字搜索,而是在句子层面上探索不同模式的多种表达方式,这样做既提高了效率又保证了提示的质量。

RPP/RPP+利用了一种特别的强化学习框架,称为Actor-Critic,并且每个智能体都能够访问一个共享的全局状态,这个状态包含了当前的个性化提示和由LLMs生成的推荐结果。

我们还特别设计了一个动态细化过程,称为RPP+,它可以在迭代中不断优化提示,使得推荐结果更加精准。

通过在多个公共数据集上的实验,我们证明了RPP/RPP+能够显著提高推荐系统的性能,超越了传统的推荐模型和一些新兴的少样本方法。

这些实验不仅展示了个性化提示的强大潜力,也证明了我们方法的有效性。

我们的主要贡献包括提出了一种新的个性化提示框架,提高了搜索效率,并确保了提示的质量,最终通过实验验证了我们方法的优势。

问题:

  • 大模型在推荐系统中虽然具有强大的语义理解、意图推理和知识利用能力,但现有研究大多采用统一的提示模板,忽视了用户个体差异,这可能导致推荐系统无法准确捕捉到每个用户的个性化偏好。

解决方法:

  • 为了解决上述问题,提出了实例导向的提示策略,即通过为每位用户定制个性化的提示来提升推荐的相关性和准确性。
  • 使用强化提示个性化(Reinforced Prompt Personalization, RPP)技术,这是一种基于多代理强化学习(MARL)的方法,用于优化个性化提示。
  • RPP通过选择最优的句子而不是逐字优化,来提升效率并保证提示的质量。
  • RPP+在RPP的基础上增加了动态优化动作的机制,以进一步提升个性化提示的灵活性和推荐系统的性能。

对比:

  • 与传统的推荐系统相比,传统系统依赖于固定算法和统一的用户画像,而RPP/RPP+通过个性化提示,能够更细致地捕捉用户的即时偏好和长期兴趣。
  • 与任务导向的提示设计相比,任务导向的提示是为所有用户应用相同的模板,而实例导向的提示则是为每个用户定制不同的提示,以更好地适应其独特性。

类比:

  • 可以类比为个性化教育,其中教师根据每个学生的特点和需求定制教学计划,而不是对所有学生使用相同的教学方法。
  • 另一个类比是个性化医疗,医生根据病人的具体情况开具个性化的药物和治疗方案,而不是所有病人都采用标准治疗流程。

RPP/RPP+的核心优势在于其能够为每个用户提供定制化的服务,而不是采用一种通用的方法。

具体来说,对于一个用户,我们根据他的历史交互行为和候选项目作为输入,然后根据这些信息来定制个性化的提示。

个性化的目标是找到一个最优的提示,使得用户对推荐结果的满意度最大化。

我们用一个公式来表示这个过程,其中 P 代表所有可能的提示空间,LLM 会根据提示和输入信息产生推荐结果,R(·) 函数用来衡量推荐结果与用户实际偏好的匹配程度,匹配度越高,推荐效果越好。

因此,我们的任务就是找到那个能够最大程度提升匹配度的最优提示。

在【Preliminaries】部分提到的公式是:

  •                                     [                                       p                               ∗                                      =                            arg                            ⁡                                                   max                                  ⁡                                                      p                                  ∈                                  P                                                 R                            (                                       y                                           L                                  M                                                 (                            p                            ,                            x                            )                            )                            ]                                  [ p^* = \arg\max_{p \in P} R(y_{LM}(p, x)) ]                     [p∗=argmaxp∈P​R(yLM​(p,x))]
    

这个公式是用来描述个性化提示的目标。下面是对公式的分析:

  •                                                p                               ∗                                            p^*                     p∗:表示最优的个性化提示。
    
  •                                     (                            arg                            ⁡                            max                            ⁡                            )                                  ( \arg\max )                     (argmax):表示寻找使得后面函数值最大的参数。
    
  •                                     (                            p                            ∈                            P                            )                                  ( p \in P )                     (p∈P):表示提示 ( p ) 是从所有可能的提示空间 ( P ) 中选取的。
    
  •                                     (                            R                            (                            ⋅                            )                            )                                  ( R(\cdot) )                     (R(⋅)):是一个函数,用来量化预测结果与真实情况之间的一致性或者匹配度。这里的 ( R ) 很可能是一个评分函数,用于评价推荐系统的性能。
    
  •                                     (                                       y                                           L                                  M                                                 (                            p                            ,                            x                            )                            )                                  ( y_{LM}(p, x) )                     (yLM​(p,x)):表示 LLM 根据提示 ( p ) 和输入 ( x ) 生成的推荐结果。这里的 ( x ) 可能包含了用户的历史交互数据和候选项目信息。
    
  •                                     (                                       y                                           L                                  M                                                 )                                  ( y_{LM} )                     (yLM​) 的输出反映了用户对候选项目的偏好。
    

综合来看,这个公式的目标是在整个可能的提示空间中找到一个最优的提示

     ( 
    
    
    
      p 
     
    
      ∗ 
     
    
   
     ) 
    
   
  
    ( p^* ) 
   
  
(p∗),这个提示能够使得语言模型生成的推荐结果与用户的偏好最大程度地一致。

论文大纲

├── 1 文献标题【描述研究主题】
│   └── 加强化提示个性化用于大型语言模型的推荐【研究主题】
├── 2 作者信息【列出作者和机构】
│   ├── 文玉毛,中国科学技术大学【作者和机构】
│   └── 何向楠,中国科学技术大学,脑启发智能感知与认知教育部重点实验室【作者和机构】
├── 3 摘要【概述研究内容和贡献】
│   ├── 设计有效提示以增强LLMs的理解用户偏好和提供推荐的能力【研究内容】
│   └── 提出并评估了RPP/RPP+方法【研究贡献】
├── 4 引言【描述背景和问题】
│   ├── 大型语言模型(LLMs)在推荐系统中的潜力【背景介绍】
│   └── 现有研究集中于任务式提示,忽视了用户个体差异【问题描述】
├── 5 方法论【介绍研究方法】
│   ├── 任务式提示与实例式提示的对比【方法对比】
│   └── RPP/RPP+框架的提出【方法介绍】
│       ├── 输入【用户特征和候选项目】
│       │   ├── 用户表示【嵌入向量】
│       │   └── 候选项目列表【用于推荐的物品】
│       ├── 处理过程【MARL优化】
│       │   ├── 多智能体强化学习(MARL)【技术手段】
│       │   │   ├── 各智能体独立策略网络【个性化提示模式】
│       │   │   └── 中央训练与分散执行(CTDE)范式【训练与执行模式】
│       │   ├── 行动空间设计【方法细节】
│       │   │   ├── 角色扮演、历史记录、推理指导、输出格式【四种模式】
│       │   │   └── 句子级优化【提升搜索效率】
│       │   └── 状态空间与奖励函数定义【方法细节】
│       │       ├── 状态更新【当前提示和LLMs的排名输出】
│       │       ├── 奖励函数【基于LLMs回答的NDCG】
│       │       └── 策略网络优化【Actor-Critic架构】
│       └── 输出【优化后的个性化提示】
│           ├── 个性化提示生成【MARL策略网络输出】
│           └── LLMs与提示交互【产生推荐结果】
│               ├── LLMs【作为环境】
│               └── 提示-响应循环【迭代优化过程】
├── 6 实验【展示研究结果】
│   ├── 使用不同数据集评估RPP/RPP+的有效性【实验设置】
│   └── RPP/RPP+与传统推荐模型和少量样本方法的比较【实验结果】
├── 7 相关工作【文献综述】
│   ├── LLMs在推荐系统中的应用【相关领域】
│   └── 提示优化方法的探讨【相关技术】
└── 8 结论【总结全文】
    ├── 强调RPP/RPP+方法在推荐任务中的优势【研究总结】
    └── 讨论RPP/RPP+的潜在应用和局限性【未来展望】

推理模式

推理指导在RPP(强化提示个性化)中确实有6个子类动作,这样设计是有特定原因的。让我们详细解析这6个子类及其目的:

  1. 直接推荐: 例如:“请直接推荐候选电影。” 目的:提供一个基准方法,无需复杂推理。适用于简单明确的用户偏好。
  2. 基于历史推荐: 例如:“根据用户的观影历史推荐电影。” 目的:利用用户的过往行为来预测未来偏好。适合有丰富历史数据的情况。
  3. 推断偏好后推荐: 例如:“分析用户的观影模式,推断其偏好,然后推荐电影。” 目的:深入理解用户潜在兴趣,适合处理复杂或隐含的用户偏好。
  4. 逐步思考: 例如:“请逐步分析用户喜好,考虑多个因素,然后给出推荐。” 目的:引导LLM进行更详细、系统的分析,适合处理多维度的用户兴趣。
  5. 推荐并精炼: 例如:“先给出初步推荐,然后根据用户特征进一步精炼结果。” 目的:通过两步法提高推荐的准确性,允许系统自我纠正。
  6. 相似度计算后推荐: 例如:“计算候选电影与用户偏好的相似度,然后推荐最相似的电影。” 目的:引入明确的相似度概念,适合需要精确匹配的场景。

这6个子类动作的设计考虑了以下几个方面:

  1. 多样性: 覆盖了从简单直接到复杂分析的多种推理方式,以适应不同的用户和场景。
  2. 灵活性: 允许系统根据不同情况选择最合适的推理方法。
  3. 探索与利用平衡: 包含了直接利用已知信息(如历史)和探索潜在偏好的方法。
  4. 计算复杂度梯度: 从简单快速(直接推荐)到复杂但可能更准确(逐步思考)的方法。
  5. 适应不同数据情况: 有些方法适合数据丰富的用户,有些适合新用户或数据稀疏的情况。
  6. 启发LLM不同能力: 激活LLM的不同功能,如直接推理、分析、比较等。
  7. 学习机会: 为强化学习算法提供多样的选择,有助于学习哪种方法在什么情况下最有效。

在RPP中,系统会学习在不同情况下选择最合适的推理指导方法。例如:

  • 对于新用户,可能倾向于使用"直接推荐"或"推断偏好后推荐"。
  • 对于有丰富历史的用户,可能更多使用"基于历史推荐"或"相似度计算后推荐"。
  • 在处理复杂兴趣的用户时,可能选择"逐步思考"或"推荐并精炼"。

通过这种多样化的推理指导选项,RPP可以更好地适应不同用户、不同场景,提供更个性化和精准的推荐。同时,这种设计也为系统提供了丰富的学习空间,有助于不断改进其推荐策略。

输出模式

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

  1. 输出标题和序号,每项单独一行(例如,“请仅输出带有序号的排名结果,用换行符分隔这些序号”)
  2. 输出带有序号的推荐结果,答案中不含任何多余步骤(例如,“注意!只需输出带有序号的排名结果,忽略任何不必要的步骤。”)
  3. 不作解释性回答(例如,“请仅输出带有序号的排名结果,不要解释原因或包含其他文字”)
  4. 举例说明输出格式(例如,“请仅输出带有序号的排名结果。您的输出格式应是 x. 电影标题,x 是序号”)

我们要强调的是,所呈现的动作集是电影推荐中个性化提示优化的典型示例。

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

├── 3 Methodology【方法论】
│   ├── 提升LLMs推荐能力【目标】
│   │   └── 通过RPP/RPP+个性化实例化提示【方法】
│   ├── 将提示个性化视为马尔可夫决策过程【问题表述】
│   │   ├── MDP组成元素:状态集S、行动集A、转移函数T、奖励函数R、折扣因子γ【概念解释】
│   │   ├── 状态s包含当前提示和推荐结果信息【状态定义】
│   │   ├── 行动a对应特定模式的句子选择【行动定义】
│   │   ├── 转移函数t表示状态转移可能性【转移函数定义】
│   │   ├── 奖励函数r根据LLMs回答评估推荐性能【奖励函数定义】
│   │   └── 折扣因子γ控制对未来奖励的重视程度【折扣因子定义】
│   ├── 初始化提示p0并采用MARL优化个性化模式【初始化与优化】
│   │   ├── CTDE范式下的多智能体RL【优化范式】
│   │   ├── 每个智能体zk负责个性化特定模式【智能体职责】
│   │   └── 策略πk选择行动以生成个性化提示pt【策略生成】
│   ├── 设计有效的行动空间以平衡搜索效率和提示质量【行动空间设计】
│   │   ├── 行动空间由多个子空间组成,每个代表一种模式【子空间定义】
│   │   ├── 句子级优化提高效率【优化方法】
│   │   └── 行动集由人类和LLMs共同建立,确保任务相关性和分析多样性【行动集建立】
│   ├── 状态空间提供关键信息以指导智能体行动【状态空间定义】
│   │   ├── 初始化状态s0包含用户特定信息【初始化状态】
│   │   └── 更新状态st包含当前提示和LLMs排名输出【状态更新】
│   ├── 基于Actor-Critic的多智能体架构和奖励函数【架构与奖励】
│   │   ├── 每个智能体具有独立的参数和全局状态访问权限【智能体架构】
│   │   ├── 使用NDCG作为奖励,评估推荐性能【奖励评估】
│   │   └── 优化Actors和Critics的参数【参数优化】
│   └── 算法描述:输入初始化智能体和评价网络,输出优化后的智能体网络【算法流程】

如何自动且有效地个性化推荐系统中的提示(prompts)。

采用多智能体强化学习(MARL)框架RPP/RPP+进行个性化实例化提示。

子解法拆解:

  1. 行动空间设计(因为需要平衡搜索效率和提示质量)- 之所以使用行动空间设计,是因为需要从自然语言空间中选择动作,形成有效的提示。- 例子:在角色扮演模式中选择“你是电影专家”作为行动之一。
  2. 状态空间定义(因为需要提供关键信息以指导智能体行动)- 之所以使用状态空间定义,是因为必须包含当前环境的充分信息,如用户特定信息和当前提示。- 例子:初始化状态s0包含用户嵌入信息,以区分不同用户。
  3. 奖励函数定义(因为需要评估和指导推荐性能)- 之所以使用奖励函数定义,是因为要根据LLMs的回答来评估推荐性能。- 例子:使用归一化折扣累积增益(NDCG)作为奖励函数,评估推荐列表的质量。
  4. 策略网络架构(因为需要个性化每个模式)- 之所以使用策略网络架构,是因为每个智能体需要独立学习如何优化其负责的提示模式。- 例子:基于Actor-Critic架构,每个智能体优化其行动以提高推荐质量。
  5. MARL优化个性化(因为需要生成个性化的提示)- 之所以使用MARL优化个性化,是因为要针对每个用户的个性化信息生成定制化的提示。- 例子:智能体根据用户的历史互动记录个性化历史记录模式。

逻辑链:

  • 目的:提升推荐能力 - 问题:自动个性化提示 - 解法:MARL框架RPP/RPP+ - 子解法1:行动空间设计 - 逻辑链:个性化提示需要从自然语言中选择动作- 子解法2:状态空间定义 - 逻辑链:智能体需要当前环境信息来指导行动- 子解法3:奖励函数定义 - 逻辑链:推荐性能需要通过奖励函数来评估和指导- 子解法4:策略网络架构 - 逻辑链:每个智能体需要独立学习优化个性化提示- 子解法5:MARL优化个性化 - 逻辑链:个性化提示生成需要根据用户个性化信息

以决策树形式表示:

├── 提升推荐能力【目的】
│   └── 自动个性化提示【问题】
│       └── MARL框架RPP/RPP+【解法】
│           ├── 行动空间设计【子解法1】
│           │    └── 个性化提示需要从自然语言中选择动作【逻辑链】
│           ├── 状态空间定义【子解法2】
│           │    └── 智能体需要当前环境信息来指导行动【逻辑链】
│           ├── 奖励函数定义【子解法3】
│           │    └── 推荐性能需要通过奖励函数来评估和指导【逻辑链】
│           ├── 策略网络架构【子解法4】
│           │    └── 每个智能体需要独立学习优化个性化提示【逻辑链】
│           └── MARL优化个性化【子解法5】
│                └── 个性化提示生成需要根据用户个性化信息【逻辑链】

RPP 工作流程和组成部分

在这里插入图片描述
该框架通过多智能体强化学习(MARL)为每个用户个性化定制提示(prompts),以提高大模型在推荐任务中的表现。

  1. 角色扮演(Role-playing):在这个模式下,LLMs被赋予一个特定的角色,例如“电影专家”,这样可以帮助模型利用其在电影领域的知识来提供推荐。
  2. 历史记录(History records):这个模式涉及使用用户过去观看电影的历史记录作为上下文信息,以便更好地理解用户的偏好。
  3. 推理引导(Reasoning guidance):这个模式指导LLMs通过必要的推理步骤来做出推荐,例如通过思考过程(chain-of-thought)或计算候选电影与用户偏好的相似度。
  4. 输出格式(Output format):这个模式定义了LLMs输出的期望格式,例如仅输出电影的排名结果和顺序编号,而不包括其他解释性文本。
  5. 初始提示(Initial Prompt):这是在优化过程开始时使用的提示,通常包含从每个模式中随机选择的句子。
  6. 优化后的提示(Optimized Prompt):这是经过MARL优化后的提示,它根据用户的个性化信息生成,以最大化LLMs的推荐性能。
  7. 状态(State):在MARL中,状态包含了当前环境的关键信息,例如用户的历史记录和当前的提示。
  8. 行动空间(Action Space, A):这是智能体在每个时间步可以选择的动作集合,每个动作对应于提示中的一个特定句子。
  9. 奖励(Reward, r):这是智能体在与LLM环境交互后获得的反馈,通常是基于推荐性能的度量,如归一化折扣累积增益(NDCG)。
  10. “Refine” 模块:在RPP+中,这个模块允许LLMs在迭代过程中动态优化所选择的动作,以提高提示的灵活性和质量。

这张图展示了RPP框架如何通过个性化提示来增强LLMs的推荐能力,以及MARL如何在这一过程中优化关键的提示模式,最终实现更准确的用户偏好捕捉和推荐结果输出。

在这里插入图片描述
这张图介绍的是RPP(Reinforced Prompt Personalization,即“强化提示个性化”)框架,它是一种利用多智能体强化学习(MARL)技术来为每个用户个性化定制提示的方法。

  1. RPP框架:这是一个核心系统,它使用强化学习来定制个性化提示。
  2. 定义:RPP框架首先定义了几个关键部分,包括角色扮演、用户偏好和观看历史等。
  3. 优化:系统会不断优化这些定义的部分,以更好地适应每个用户的需求。
  4. 角色扮演:例如,系统可能会让语言模型扮演一个电影专家的角色。
  5. 用户偏好:系统会尝试捕捉和理解用户的偏好,比如他们喜欢什么类型的电影。
  6. 观看历史:通过分析用户过去观看的电影(如2部或4部电影),系统可以更好地了解用户的喜好。
  7. 最大化奖励:系统的目标是最大化奖励,这里的奖励可能是指推荐准确性或用户满意度。
  8. 初始提示:开始时,系统会生成一个初始的提示,告诉语言模型如何进行推荐。
  9. 优化提示:随着时间的推移,系统会优化这些提示,使其更加精确。
  10. 排名输出:最终,系统会输出一个排名列表,推荐用户可能感兴趣的电影。
  11. 候选影片:这些是系统根据用户偏好挑选出来的电影。
  12. MARL:多智能体强化学习是驱动整个系统优化过程的技术。
  13. 策略:系统会制定策略来优化提示。
  14. 细化模块:RPP+中的一个特性,用于进一步提升推荐结果的质量和灵活性。
  15. 个性化提示:最终,系统会为每个用户提供定制化的提示。
  16. **RPP+**:这是RPP的一个增强版本,它通过动态优化动作来进一步提升个性化推荐的灵活性和质量。

RPP框架就像一个聪明的电影推荐专家,它通过了解你过去的观影喜好,不断学习和调整,最终给你推荐你可能喜欢的电影。

而且,这个推荐过程会变得越来越精准,因为它会根据你的反馈不断优化推荐策略。

RPP/RPP+ 关系图

Actor网络:负责生成动作,即选择最佳的提示句子。

每个智能体都有自己的Actor网络,根据当前状态生成动作和相应的概率。

Critic网络:评估当前状态的价值,即预测采取某个动作后的预期回报。

Critic网络帮助智能体评估当前策略的好坏。

RPP(强化提示个性化)方法是一种用于个性化大模型推荐系统的新方法。

我们正在训练一个非常聪明的AI助手来为每个用户提供个性化的电影推荐。

  1. 整体框架(RL公式化): 想象RPP是在玩一个复杂的游戏。这个游戏的规则(马尔可夫决策过程)包括:- 游戏中的各种情况(状态集S)- 可以采取的行动(动作集A)- 采取行动后情况如何变化(转移函数T)- 每个行动带来的得分(奖励函数R)- 未来得分的重要性(折扣因子γ)
  2. 可以采取的行动(动作空间): AI助手可以调整四个方面来个性化推荐:- 如何扮演推荐者的角色(角色扮演)- 考虑用户多少历史观影记录(历史记录)- 如何分析用户喜好(推理指导)- 如何呈现推荐结果(输出格式)
  3. 游戏中的各种情况(状态空间): AI助手需要考虑的信息包括:- 用户的整体偏好(用户嵌入)- 当前使用的推荐语言(当前提示)- 大语言模型给出的推荐结果(LLM输出)
  4. 学习策略(Actor-Critic架构): AI助手学习的方式类似于多个专家(多智能体)一起工作:- 有人负责决定采取什么行动(演员网络)- 有人负责评估行动的好坏(评论家网络)- 根据推荐的准确度来判断整体表现(奖励函数)
  5. 具体学习步骤(算法):- 首先设置初始状态(初始化)- 然后决定采取什么行动(动作选择)- 观察新的情况(状态更新)- 计算这个行动的得分(奖励计算)- 根据得分调整决策方式(参数更新)

整个过程是这样的:AI助手开始时可能不太了解用户。

它会尝试不同的方式来推荐电影,比如考虑用户最近看过的5部电影,或者用更正式的语气来描述电影。

每次推荐后,它会看用户是否喜欢这个推荐(通过计算NDCG@M这个指标)。

如果用户喜欢,AI就会记住这种推荐方式;如果用户不喜欢,AI就会尝试改变策略。

通过不断重复这个过程,AI助手逐渐学会了为每个用户定制最合适的推荐方式。

它可能发现有些用户喜欢基于最近看过的电影来推荐,而有些用户则更喜欢基于他们长期的观影历史。

有些用户可能喜欢详细的推荐理由,而有些则喜欢简洁的推荐列表。

这就是RPP方法的核心思想:通过不断尝试和学习,为每个用户找到最佳的个性化推荐方式,让大语言模型能够提供更准确、更贴心的电影推荐。

状态空间

智能体:就是你要优化的东西。

状态空间包含了智能体在进行决策时所需的所有环境信息。

在RPP框架中,状态空间由以下几部分构成:

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

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

实验结果

在这里插入图片描述

  • Pop:这种模型就像去热门餐厅一样,它推荐那些大家都喜欢的东西,但可能不会考虑到每个人的不同口味。
  • BPRMF:这个模型就像一个侦探,它通过分析人们过去喜欢的东西(用户-项目交互矩阵),找出潜在的模式(潜在因子矩阵),然后根据这些模式来推荐新的东西。
  • SASRec:这种模型像一个有记性的朋友,它不仅记得你过去喜欢什么,还能预测你将来可能喜欢的东西。
  • BM25:这个模型就像一个图书馆的目录系统,它通过查找关键词(项目频率)来帮你找到相关的书籍(推荐项目)。
  • VQ-Rec:这种模型像是一个有组织的工具箱,它把每一件工具(项目)都分门别类地放好,这样当你需要时,就可以快速找到合适的工具。
  • UniSRec:这个模型像是一个多才多艺的艺术家,它通过阅读艺术品(项目描述文本)来理解不同的风格,然后用这些风格来创作新的艺术作品(推荐)。

RPP/RPP+ 通过实例级个性化提示,使 LLaMa2-7B-chat 在推荐性能上超越了传统推荐模型和少样本方法,更准确地捕捉用户个性化需求,提供更优质的推荐结果。

RPP+、RPP 之间的关系和主要区别

  1. 基本框架:- RPP: 使用多智能体强化学习(MARL)来优化提示的不同组成部分。- RPP+: 在RPP的基础上增加了额外的功能,但保留了核心的MARL框架。
  2. 动作空间处理:- RPP: 从预定义的动作集合中选择动作。- RPP+: 引入了动态精炼(dynamic refinement)机制,可以在迭代过程中调整动作。
  3. 灵活性:- RPP: 动作空间是固定的,限制了可能的提示变化。- RPP+: 通过动态精炼,提供了更大的灵活性,可以生成更多样化的提示。
  4. LLM的使用:- RPP: 主要使用LLM进行推荐生成。- RPP+: 除了推荐生成,还利用LLM来精炼和改进动作(提示组件)。
  5. 计算复杂度:- RPP: 相对较低的计算复杂度。- RPP+: 由于额外的动态精炼步骤,计算复杂度略高。
  6. 性能潜力:- RPP: 在固定动作空间内寻找最优策略。- RPP+: 有潜力找到更优的策略,因为它可以探索更广泛的提示空间。
  7. 适应性:- RPP: 对于预定义的提示组件有良好的适应性。- RPP+: 可以更好地适应不同用户和场景,因为它可以动态调整提示组件。
  8. 实现复杂性:- RPP: 实现相对简单。- RPP+: 实现更复杂,需要额外的机制来处理动态精炼。
  9. 与LLM的交互:- RPP: 主要在推荐阶段与LLM交互。- RPP+: 在动作选择和推荐两个阶段都与LLM交互。
  10. 训练过程:- RPP: 训练过程相对直接。- RPP+: 训练过程包含额外的步骤,需要在每次迭代中进行动作精炼。
  11. 扩展性:- RPP: 扩展性受限于预定义的动作空间。- RPP+: 更容易扩展到新的领域或任务,因为它可以动态生成新的提示组件。
  12. 资源需求:- RPP: 资源需求相对较低。- RPP+: 由于额外的LLM调用和处理,资源需求较高。
  13. 应用场景:- RPP: 适用于动作空间相对固定的场景。- RPP+: 更适合需要高度个性化和动态适应的场景。

RPP+是RPP的一个更高级、更灵活的版本。

它通过引入动态精炼机制,增强了系统的适应性和个性化能力。

RPP+有潜力产生更优秀的性能,特别是在复杂和动态变化的环境中。

然而,这种增强的能力是以增加实现复杂性和计算资源为代价的。

选择使用RPP还是RPP+应该基于具体的应用需求、可用资源和对灵活性的要求来决定。

在实际应用中,可能需要在RPP的简单性和RPP+的灵活性之间权衡。对于资源有限或问题相对简单的场景,RPP可能就足够了。而对于需要高度个性化和动态适应的复杂场景,RPP+可能会带来显著的性能提升。

场景:为用户 Alice 推荐电影

用户背景:

  • Alice 喜欢科幻和悬疑电影
  • 最近观看历史:《盗梦空间》、《星际穿越》

可用电影列表:

  1. 黑客帝国
  2. 异形
  3. 心理罪
  4. 楚门的世界
  5. 头号玩家

让我们看看 RPP 和 RPP+ 如何处理这个推荐任务:

RPP 处理流程:

  1. 状态观察:- 用户:Alice- 最近观看:《盗梦空间》、《星际穿越》
  2. 动作选择(从预定义选项中):- 角色扮演:电影评论家- 历史记录长度:2(最近两部电影)- 推理指导:基于用户喜好推荐- 输出格式:排序列表
  3. 生成提示:你是一位电影评论家。用户最近看过《盗梦空间》和《星际穿越》。基于用户对科幻和复杂情节的喜好,推荐3部电影。请以排序列表的形式输出推荐结果。
  4. LLM 输出:1. 黑客帝国2. 头号玩家3. 楚门的世界
  5. 评估和学习:- 假设 Alice 选择了《黑客帝国》并给出了高评分- 系统学习强化科幻元素在提示中的重要性

RPP+ 处理流程:

  1. 状态观察: 与 RPP 相同
  2. 动作选择(动态精炼):- 初始选择与 RPP 相同- 额外步骤:使用 LLM 精炼选定的动作
  3. 动态精炼提示:原始提示是:"你是一位电影评论家。用户最近看过《盗梦空间》和《星际穿越》。基于用户对科幻和复杂情节的喜好,推荐3部电影。请以排序列表的形式输出推荐结果。"请对这个提示进行改进,特别强调用户对深度科幻和现实与虚幻界限的兴趣。保持提示的简洁性。
  4. LLM 精炼后的提示:作为一位专注于深度科幻的影评人,分析用户观看《盗梦空间》和《星际穿越》的选择。这表明她喜欢探索现实与虚幻之间模糊界限的作品。推荐3部融合了科幻元素和现实思考的电影,按与用户兴趣的相关度排序。
  5. 使用精炼后的提示获取 LLM 输出:1. 黑客帝国2. 楚门的世界3. 异形
  6. 评估和学习:- 假设 Alice 选择了《黑客帝国》和《楚门的世界》,并给出了很高的评分- 系统学习: a) 强化对"现实与虚幻界限"主题的重视 b) 学习动态精炼在提升推荐质量方面的有效性

主要区别:

  1. 提示生成的灵活性:- RPP 从预定义选项中选择- RPP+ 通过 LLM 动态精炼提示,产生更个性化和具体的描述
  2. 对用户兴趣的捕捉:- RPP 停留在较为一般的科幻和复杂情节描述- RPP+ 捕捉到了更细致的兴趣点(现实与虚幻的界限)
  3. 推荐结果:- RPP 的推荐较为宽泛,包含了一个可能不太相关的选项(《头号玩家》)- RPP+ 的推荐更加聚焦于用户的具体兴趣,提供了更相关的选择(《楚门的世界》替代了《头号玩家》)
  4. 学习和适应:- RPP 学习强化特定元素的重要性- RPP+ 不仅学习内容偏好,还学习了如何更好地描述和捕捉用户兴趣
  5. 计算复杂度:- RPP 流程相对简单直接- RPP+ 需要额外的 LLM 调用来精炼提示,增加了复杂度但提高了个性化程度

总结:
RPP+ 通过动态提示精炼,展现了更强的个性化能力和对用户兴趣的深入理解。它能够产生更精确、更相关的推荐,但代价是增加了计算复杂度。这个例子展示了 RPP+ 如何在提供更精准推荐方面优于 RPP,特别是在捕捉用户细微兴趣差异的场景中。

3 方法论

为了提升大模型在推荐系统中的应用效果,我们设计了RPP/RPP+框架,该框架利用多智能体强化学习(MARL)技术,针对每个用户的具体情况个性化地定制提示。

本节内容首先介绍了如何将提示个性化问题构建为马尔可夫决策过程(MDP),随后详细阐述了RPP/RPP+的各个组成部分,包括行动空间、状态空间、奖励函数和策略架构。

3.1 强化学习在提示个性化中的运用

在个性化离散提示的过程中,手动创建或基于启发式的方法可能无法自动且高效地实现。

我们采用强化学习的理念,将提示生成视为从自然语言空间中选取行动的过程,并将这一问题构建为MDP问题,以实例化的方式优化提示。

具体来说:

  • 状态空间S包含了所有可能的状态s,其中每个状态s都包含了当前提示和推荐结果的信息。
  • 行动空间A由一系列行动a组成,每个行动都对应于特定模式下选取的句子,例如“你是一个电影专家”用于角色扮演。
  • 转移函数T(s_t+1 | s_t, a_t)描述了在状态s_t下采取行动a_t后转移到状态s_t+1的可能性。
  • 奖励函数R定义了代理在与LLMs交互后获得的奖励r,该奖励基于LLMs的回答来评估推荐性能。
  • 折扣因子γ用于平衡代理对即时奖励和未来奖励的关注。

对于用户u,我们从每个模式中随机选取句子初始化提示p_0。

在多智能体强化学习框架下,每个智能体zk负责个性化一个特定模式,并拥有独立的行动空间Ak。

我们的目标是寻找一系列策略π_k,这些策略基于全局状态s_t选择行动a_t(k),以生成第t步的提示p_t。

我们的目标是通过优化策略π_k并最大化期望累积奖励J来获得每个用户的最优提示p_t,其数学表达式为:

  •                                     [                            J                            =                                                   max                                  ⁡                                                      {                                               π                                     k                                              }                                                            E                                                        s                                     t                                              ∼                                  S                                                            [                                           ∑                                               t                                     =                                     0                                              ∞                                                      γ                                  t                                          r                               (                                           s                                  t                                          ,                                           a                                  t                                          )                               ]                                      ]                                  [ J = \max_{\{\pi_k\}} \mathbb{E}_{s_t \sim S} \left[ \sum_{t=0}^{\infty} \gamma^t r(s_t, a_t) \right] ]                     [J=max{πk​}​Est​∼S​[∑t=0∞​γtr(st​,at​)]]
    

通过这种方式,我们可以在迭代过程中为每位用户找到最优的个性化提示,从而提升推荐系统的性能。

我们通过实验验证了RPP/RPP+在多个公共数据集上的有效性,证明了个性化提示在增强LLMs推荐能力方面的优势。

3.2 行动空间

在利用强化学习对提示进行优化的过程中,构建一个高效的行动集非常关键。

我们需要解决的主要问题是如何在搜索效率和提示的质量之间找到平衡点。

为了解决这个问题,我们创建了一个由多个子空间构成的行动空间,每个子空间都代表一种不同的模式,并且都配备了多种句子作为可能的行动选项。

我们从以往的研究中得到灵感,这些研究调查了如何使用角色扮演、历史记录、推理指导和输出格式这四种模式来设计任务式的提示。

我们进一步探索了如何通过优化这四种模式来实现提示的个性化。

为了提高搜索效率,我们不是在庞大的词汇库中逐字寻找最佳选项,而是在每个模式的句子库中选择最合适的句子。

这种句子级别的优化不仅提升了效率,而且确保了提示的质量,因为我们精心设计了每个模式下的句子,确保它们既明确又具有多样性,能够从不同角度引导LLMs进行分析。

在实际应用中,行动集是由人类专家和LLMs共同为特定任务定制的,比如电影排名。

每一条行动都经过了LLMs的精心制作和人类专家的严格筛选,以保证其与任务的相关性,并包含多种分析视角,以确保提示的质量。

此外,我们还利用LLMs在每次迭代中对选定的行动进行细化,使得生成的提示更加灵活和适应性强,我们将这一增强版本称为RPP+。

3.3 状态空间

状态空间是智能体做出决策的信息基础,它必须提供充分的环境信息。

为此,我们根据用户的特性来初始化状态 ( s_0 )。

在每一步 ( t ),我们根据当前的提示 ( p_t ) 和大模型的排名输出 ( o_t ) 来更新状态 ( s_t ),确保状态能够全面反映环境信息。

  • **初始化状态 ( s_0 )**:我们根据用户的个性特征来设定状态,使用传统推荐模型(如LightGCN)生成的用户嵌入作为特征。这样,每个用户和物品都有一个独特的表示,由函数 ( f(u, i) ) 计算得到。
  • **更新状态 ( s_t )**:我们利用预训练的语言模型(例如BERT)和序列模型(例如GRU)来编码当前的提示和LLMs的输出。这样,状态 ( s_t ) 就是提示和输出编码的总和,公式表示为 ( s t = e ( p ) t + e ( o ) t ) ( s_t = e(p)_t + e(o)_t ) (st​=e(p)t​+e(o)t​),其中 ( e ( p ) t ) ( e(p)_t ) (e(p)t​) 和 ( e(o)_t ) 分别是提示和输出的编码表示。

3.4 多智能体的Actor-Critic架构和奖励函数

在多智能体强化学习(MARL)中,我们构建了四个Actor-Critic网络,每个网络针对一种行为模式进行优化。

每个智能体都有自己的参数,但都能访问全局状态信息。

  • Actor-Critic网络:每个智能体的Actor网络根据当前状态 ( s_t ) 来选择行动 ( a t ( k ) ) ( a_t(k) ) (at​(k)) 和计算其概率 ( prob t ( k ) ) ( \text{prob}_t(k) ) (probt​(k)),而Critic网络评估该状态的价值 ( v t ( k ) ) ( v_t(k) ) (vt​(k))。
  • 奖励函数:我们使用归一化折扣累积增益(NDCG)作为奖励,这是评价推荐任务性能的指标。奖励 ( r_t ) 根据LLMs的推荐输出 ( o_t ) 来计算,公式为 ( r t = NDCG @ M ( o t ) ) ( r_t = \text{NDCG}@M(o_t) ) (rt​=NDCG@M(ot​)),其中 ( M ) 是候选项目的数量。
  • 优化目标:我们定义了优化目标 ( L a k ) ( L_a^k ) (Lak​) 和 ( L c k ) ( L_c^k ) (Lck​) 来分别优化Actor和Critic网络的参数。这些目标考虑了当前和未来的奖励,以及Critic网络评估的价值,公式为 ( R ^ t = r t + 1 + γ r t + 2 + … + γ n − 1 r t + n + γ n v t + n ( k ) ) ( \hat{R}t = r{t+1} + \gamma r_{t+2} + \ldots + \gamma^{n-1} r_{t+n} + \gamma^n v_{t+n}(k) ) (R^t​=rt+1​+γrt+2​+…+γn−1rt+n​+γnvt+n​(k)) 和 ( L a k = 1 2 ∑ t = 0 ∞ ( R ^ t − v t ( k ) ) 2 ) ( L_a^k = \frac{1}{2} \sum_{t=0}^{\infty} \left( \hat{R}t - v_t(k) \right)^2) (Lak​=21​∑t=0∞​(R^t​−vt​(k))2), ( L c k = 1 2 ∑ t = 0 ∞ log ⁡ ( prob t ( k ) ) ( R ^ t − v t ( k ) ) 2 ) ( L_c^k = \frac{1}{2} \sum{t=0}^{\infty} \log \left( \text{prob}_t(k) \right) \left( \hat{R}_t - v_t(k) \right)^2 ) (Lck​=21​∑t=0∞​log(probt​(k))(R^t​−vt​(k))2),其中 ( γ ) ( \gamma ) (γ) 是一个折扣因子,用于平衡短期和长期奖励的权重。

3.5 算法步骤

我们的算法框架旨在通过强化学习个性化提示,以增强推荐系统的性能。

算法1:名为“强化提示个性化”的算法流程如下:

  • 输入包括:一组初始行动者网络、一组评论家网络、系统初始状态以及为行动者和评论家设定的学习率。
  • 输出为:优化后的行动者网络。

算法步骤:

  • 从时间步1开始,进行循环迭代。
  • 对每个行动者进行循环,以获取基于当前状态的行动和概率。
  • 对每个评论家进行循环,以评估当前状态的价值。
  • 合成当前时间步的提示,这是通过连接各行动者生成的行动来实现的。
  • 将合成的提示输入到大模型(LLMs)中,并与之交互。
  • 根据交互结果和预设的公式更新系统状态。
  • 根据LLMs的反馈计算奖励。
  • 对每个行动者和评论家网络的参数进行更新,以优化策略和价值评估。
  • 继续迭代,直到达到预定的迭代次数或性能提升不再显著。

这个算法框架通过不断迭代,学习如何生成更有效的提示,以提高推荐系统对用户偏好的响应能力和准确性。

通过与LLMs的交互,算法能够逐渐理解并预测用户的意图,从而提供更加个性化的推荐。

标签: 人工智能

本文转载自: https://blog.csdn.net/qq_41739364/article/details/141129599
版权归原作者 Debroon 所有, 如有侵权,请联系我们删除。

“RPP/RPP+:多智能体强化学习 + 长期个性化推荐”的评论:

还没有评论