RPP/RPP+:多智能体强化学习 + 长期个性化推荐
- 提出背景
- 论文大纲
- 目的
- 问题
- 解法
- RPP 工作流程和组成部分
- RPP/RPP+ 关系图
- 实验结果
- 强化学习前置知识
- 3 方法论
- 3.1 强化学习在提示个性化中的运用
- 3.2 行动空间
- 3.3 状态空间
- 3.4 多智能体的Actor-Critic架构和奖励函数
- 3.5 算法步骤
论文: 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 ) 是从所有可能的提示空间 ( P ) 中选取的。
-
:是一个函数,用来量化预测结果与真实情况之间的一致性或者匹配度。这里的 ( R ) 很可能是一个评分函数,用于评价推荐系统的性能。
-
:表示 LLM 根据提示 ( p ) 和输入 ( x ) 生成的推荐结果。这里的 ( x ) 可能包含了用户的历史交互数据和候选项目信息。
-
综合来看,这个公式的目标是在整个可能的提示空间中找到一个最优的提示
论文大纲

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

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

这张图介绍的是RPP(Reinforced Prompt Personalization,即“强化提示个性化”)框架,它是一种利用多智能体强化学习(MARL)技术来为每个用户个性化定制提示的方法。
- RPP框架:这是一个核心系统,它使用强化学习来定制个性化提示。
- 定义:RPP框架首先定义了几个关键部分,包括角色扮演、用户偏好和观看历史等。
- 优化:系统会不断优化这些定义的部分,以更好地适应每个用户的需求。
- 角色扮演:例如,系统可能会让语言模型扮演一个电影专家的角色。
- 用户偏好:系统会尝试捕捉和理解用户的偏好,比如他们喜欢什么类型的电影。
- 观看历史:通过分析用户过去观看的电影(如2部或4部电影),系统可以更好地了解用户的喜好。
- 最大化奖励:系统的目标是最大化奖励,这里的奖励可能是指推荐准确性或用户满意度。
- 初始提示:开始时,系统会生成一个初始的提示,告诉语言模型如何进行推荐。
- 优化提示:随着时间的推移,系统会优化这些提示,使其更加精确。
- 排名输出:最终,系统会输出一个排名列表,推荐用户可能感兴趣的电影。
- 候选影片:这些是系统根据用户偏好挑选出来的电影。
- MARL:多智能体强化学习是驱动整个系统优化过程的技术。
- 策略:系统会制定策略来优化提示。
- 细化模块:RPP+中的一个特性,用于进一步提升推荐结果的质量和灵活性。
- 个性化提示:最终,系统会为每个用户提供定制化的提示。
- RPP+:这是RPP的一个增强版本,它通过动态优化动作来进一步提升个性化推荐的灵活性和质量。
RPP框架就像一个聪明的电影推荐专家,它通过了解你过去的观影喜好,不断学习和调整,最终给你推荐你可能喜欢的电影。
而且,这个推荐过程会变得越来越精准,因为它会根据你的反馈不断优化推荐策略。
RPP/RPP+ 关系图


当然可以。我会尽量用通俗易懂的语言,同时保留所有逻辑细节来介绍RPP方法。
RPP(强化提示个性化)方法是一种用于个性化大模型推荐系统的新方法。
我们正在训练一个非常聪明的AI助手来为每个用户提供个性化的电影推荐。
- 整体框架(RL公式化):
想象RPP是在玩一个复杂的游戏。这个游戏的规则(马尔可夫决策过程)包括:
- 游戏中的各种情况(状态集S)
- 可以采取的行动(动作集A)
- 采取行动后情况如何变化(转移函数T)
- 每个行动带来的得分(奖励函数R)
- 未来得分的重要性(折扣因子γ)
- 可以采取的行动(动作空间):
AI助手可以调整四个方面来个性化推荐:
- 如何扮演推荐者的角色(角色扮演)
- 考虑用户多少历史观影记录(历史记录)
- 如何分析用户喜好(推理指导)
- 如何呈现推荐结果(输出格式)
- 游戏中的各种情况(状态空间):
AI助手需要考虑的信息包括:
- 用户的整体偏好(用户嵌入)
- 当前使用的推荐语言(当前提示)
- 大语言模型给出的推荐结果(LLM输出)
- 学习策略(Actor-Critic架构):
AI助手学习的方式类似于多个专家(多智能体)一起工作:
- 有人负责决定采取什么行动(演员网络)
- 有人负责评估行动的好坏(评论家网络)
- 根据推荐的准确度来判断整体表现(奖励函数)
- 具体学习步骤(算法):
- 首先设置初始状态(初始化)
- 然后决定采取什么行动(动作选择)
- 观察新的情况(状态更新)
- 计算这个行动的得分(奖励计算)
- 根据得分调整决策方式(参数更新)
整个过程是这样的:AI助手开始时可能不太了解用户。
它会尝试不同的方式来推荐电影,比如考虑用户最近看过的5部电影,或者用更正式的语气来描述电影。
每次推荐后,它会看用户是否喜欢这个推荐(通过计算NDCG@M这个指标)。
如果用户喜欢,AI就会记住这种推荐方式;如果用户不喜欢,AI就会尝试改变策略。
通过不断重复这个过程,AI助手逐渐学会了为每个用户定制最合适的推荐方式。
它可能发现有些用户喜欢基于最近看过的电影来推荐,而有些用户则更喜欢基于他们长期的观影历史。
有些用户可能喜欢详细的推荐理由,而有些则喜欢简洁的推荐列表。
这就是RPP方法的核心思想:通过不断尝试和学习,为每个用户找到最佳的个性化推荐方式,让大语言模型能够提供更准确、更贴心的电影推荐。
实验结果

- Pop:这种模型就像去热门餐厅一样,它推荐那些大家都喜欢的东西,但可能不会考虑到每个人的不同口味。
- BPRMF:这个模型就像一个侦探,它通过分析人们过去喜欢的东西(用户-项目交互矩阵),找出潜在的模式(潜在因子矩阵),然后根据这些模式来推荐新的东西。
- SASRec:这种模型像一个有记性的朋友,它不仅记得你过去喜欢什么,还能预测你将来可能喜欢的东西。
- BM25:这个模型就像一个图书馆的目录系统,它通过查找关键词(项目频率)来帮你找到相关的书籍(推荐项目)。
- VQ-Rec:这种模型像是一个有组织的工具箱,它把每一件工具(项目)都分门别类地放好,这样当你需要时,就可以快速找到合适的工具。
- UniSRec:这个模型像是一个多才多艺的艺术家,它通过阅读艺术品(项目描述文本)来理解不同的风格,然后用这些风格来创作新的艺术作品(推荐)。
RPP/RPP+ 通过实例级个性化提示,使 LLaMa2-7B-chat 在推荐性能上超越了传统推荐模型和少样本方法,更准确地捕捉用户个性化需求,提供更优质的推荐结果。
强化学习前置知识
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,其数学表达式为:
通过这种方式,我们可以在迭代过程中为每位用户找到最优的个性化提示,从而提升推荐系统的性能。
我们通过实验验证了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 ) 就是提示和输出编码的总和,公式表示为,其中
3.4 多智能体的Actor-Critic架构和奖励函数
在多智能体强化学习(MARL)中,我们构建了四个Actor-Critic网络,每个网络针对一种行为模式进行优化。
每个智能体都有自己的参数,但都能访问全局状态信息。
- Actor-Critic网络:每个智能体的Actor网络根据当前状态 ( s_t ) 来选择行动
和计算其概率
,而Critic网络评估该状态的价值
。
- 奖励函数:我们使用归一化折扣累积增益(NDCG)作为奖励,这是评价推荐任务性能的指标。
奖励 ( r_t ) 根据LLMs的推荐输出 ( o_t ) 来计算,公式为,其中 ( M ) 是候选项目的数量。
- 优化目标:我们定义了优化目标
和
这些目标考虑了当前和未来的奖励,以及Critic网络评估的价值,公式为
,
,
其中
3.5 算法步骤
我们的算法框架旨在通过强化学习个性化提示,以增强推荐系统的性能。
算法1:名为“强化提示个性化”的算法流程如下:
- 输入包括:一组初始行动者网络、一组评论家网络、系统初始状态以及为行动者和评论家设定的学习率。
- 输出为:优化后的行动者网络。
算法步骤:
- 从时间步1开始,进行循环迭代。
- 对每个行动者进行循环,以获取基于当前状态的行动和概率。
- 对每个评论家进行循环,以评估当前状态的价值。
- 合成当前时间步的提示,这是通过连接各行动者生成的行动来实现的。
- 将合成的提示输入到大模型(LLMs)中,并与之交互。
- 根据交互结果和预设的公式更新系统状态。
- 根据LLMs的反馈计算奖励。
- 对每个行动者和评论家网络的参数进行更新,以优化策略和价值评估。
- 继续迭代,直到达到预定的迭代次数或性能提升不再显著。
这个算法框架通过不断迭代,学习如何生成更有效的提示,以提高推荐系统对用户偏好的响应能力和准确性。
通过与LLMs的交互,算法能够逐渐理解并预测用户的意图,从而提供更加个性化的推荐。

所有评论(0)