强化学习在推荐系统中的实践探索与业界进展

强化学习在推荐系统中的实践探索与业界进展
2024年09月19日 13:00 DataFunTalk

导读本次分享人为虎牙推荐算法工程师张启华老师,分享题目为强化学习在推荐系统的实践与业界进展。张启华老师毕业于华南理工大学,曾就职于百度和腾讯等知名科技公司。目前在虎牙公司就职于信息流推荐相关职位,对于推荐系统的重排混排方向有着深入的研究和实践经验。

本次分享将从以下四个方面进行阐述:

1. 背景和挑战

2. 探索和实践

3.前沿进展

4. 问答环节

分享嘉宾|张启华广州虎牙信息科技有限公司推荐算法工程师

编辑整理|张翎

内容校对|李瑶

出品社区|DataFun

01

背景和挑战

1. 应用场景融合排序

在现实场景中,推荐系统常常需要处理多个任务,包括但不限于预测用户的点击行为、点赞行为以及送礼行为等。这些任务各自具有独特的价值,并且相互之间存在一定的关联性。为了充分利用这些任务之间的关联,普遍使用多任务模型来预测不同的任务,再使用融合排序的方式将不同任务的预测结果进行整合,从而更好地满足用户的需求。

融合排序可以通过整合这些多任务的预测结果,减少单一预测源带来的偏差。不同任务的倾向也会增加推荐结果的多样性,还有多元化的用户需求。同时可以基于业务的需求,调整任务的权重,使得推荐结果更加符合实际的业务需求。比较普遍的一种方法是通过权重公式作为代理函数,将各个任务的预估值结合起来作为最终排序。而我们希望通过引入强化学习来优化融合排序的结果,达到提升长期价值的目的。

2. 主流方法

主流的代理函数优化方法主要有以下两种:手动调参和在线自动调参。

手动调参的方法可解析性比较强,但其主要缺点是比较难实现个性化和场景化。

而在线自动调参不需要手动干预,但是需要长期设置一个探索流量,可能会带来用户体验的折损。比较主流的方法有 Bayes 优化和进化策略。

其中进化策略已经可以将用户的特征作为输入,实现个性化的融合参数输出。而更进一步的希望是引入强化学习,综合考虑用户的状态转移与我们的决策结果,优化更长期的用户满意度。

3. 挑战

(1)强化学习着重考虑当前决策对未来可能产生的影响。在训练过程中,模型需要不断与环境进行交互,以便在采取新决策时获取实时的环境反馈。正因如此,传统的静态数据集方法并不适用于决策模型的训练与测试,因为新的决策结果往往不在已有的数据集中。

(2)在推荐系统领域,尽管我们习惯采用静态数据来训练和验证推荐模型,但在当前主流的信息流推荐系统中,代理很难与真实环境交互,进而收集到新的反馈数据。此外,收集高质量数据通常成本高昂,特别是在涉及庞大状态和动作空间的场景中,采样效率问题变得尤为突出。

(3)推荐系统是一个开放且动态的环境,用户的行为模式可能随时发生变化。这种变化不仅影响环境的奖励函数,还可能改变转移概率。这与强化学习所依赖的静态环境假设存在冲突。

(4)此外,用户反馈往往存在时延,且反馈的质量也并非总是清晰和准确。这些因素都为推荐系统中的强化学习应用带来了额外的挑战。

(5)在推荐系统领域,业界普遍采用两种训练 agent 的方案。首先,一种常见的方法是借助模拟器来辅助 agent 的训练过程。然而,agent 的性能表现高度依赖于模拟器能否提供与真实数据相一致的反馈和状态转移。另一种方法则是通过在线收集轨迹数据,并在离线状态下进行经验回放训练。这种方法采用 off-policy 的算法框架,利用重要性采样来纠正值函数的期望。例如,YouTube 的 Top-K Off-Policy Correction 便是其中的一种实践。

02

探索和实践

1. 探索过程

在基线方法中,运用 Bayes 优化和进化策略来调整融合参数。而在应用强化学习时,考虑到真实数据的重要性,更倾向于采用 off-policy 方法。

首先,对动标融合问题进行 MDP 建模。在建模过程中,状态描述涵盖了用户的基本属性、会话信息以及行为序列。动作则对应于融合公式中的多维连续值参数。奖励机制主要基于时长反馈和其他行为的加权总和。

然后采用基于 Actor-Critic 框架和经验回放的离线训练方法。初始阶段,运用DDPG 算法进行训练。然而很快发现值函数显著超过了真实折扣回报,这与行业经验相符。尽管尝试使用 TD3 来解决过估计问题,但值函数仍然出现发散,且线上效果相较于基线方法更差。

为了深入分析问题原因,对模型输出进行了细致检查。结果显示,Actor 输出的动作分布与样本动作分布存在显著差异,甚至出现了样本中未曾出现的动作。而 Critic 对这些未见动作的评价却异常高,这显然与经验直觉相悖。

针对值函数发散的问题,根据过估计的经验,首先考虑的是贝尔曼方程的应用。

在训练过程中,backup 操作会结合下一个状态的估计与当前的即时奖励,形成对当前状态的估计值,而下一个状态的估计是由模型当前的目标策略和值函数共同决定的,这构成了一种递归关系。然而,当预测后续状态时,若目标策略在指定的下一状态中输出了在数据集中罕见的状态动作对,那么下一个状态的值估计会变得不准确。特别是在执行贪心的贝尔曼更新时,这种由数据缺失或采样偏差导致的值函数误差会在递推更新中传播并放大,最终引发值函数的发散。导致这种误差的原因可以归结为三类:

首先,某些状态动作对在数据集中可能完全未出现或出现频率较低。

其次,在缺乏近乎无限的采样数据时,转移概率的估计可能会产生偏差或偏移,因为所计算的期望是基于数据集所呈现的转移概率,而非真实的 MDP。

最后,训练过程中模型尚未收敛时,学习得到的转移概率可能与样本中的转移概率不一致,从而导致期望值的偏差。

为了验证此种偏差,一篇关于 offline RL 的论文模拟了 agent 在无环境交互的情况下的训练过程。需说明的是,agent 负责与环境互动以收集数据并自我训练。而 off-policy agent 仅基于行为 agent 收集的数据进行训练,不与环境交互收集新数据。据此,存在以下三种赛道:

(1)Final Buffer:行为 agent 在训练过程中收集数据,确保与环境交互的过程具有充分的探索性。

(2)Concurrent:off-policy agent 与行为 agent 同时训练,但数据仍由行为agent提供,探索性较小。

(3)Imitation:训练完成后,专家 agent 收集的经验池,其中不包含任何探索策略。

在三种赛道中,off-policy agent 在环境性能方面的表现均较为糟糕,但其值函数均远超过真实回报。特别是在无探索数据消耗的情况下,值函数在训练过程中迅速发散。这与推荐系统中所遇到的情况类似。

经过对前述结果的深入分析,BCQ 论文中将此类误差定义为推断误差。具体而言,数据集与真实 MDP 之间的推断误差可量化为两者自然数之间的差值。当应用贝尔曼公式进行展开时,得到的是一个递推式,其中包含当前状态的值估计差异以及下一个状态的值估计差异。这种误差主要源于真实 MDP 与数据集所展现的 MDP 在转移概率上的不一致性。

当给定策略 π 的时候,这种推断误差就表现成策略访问到的一个状态动作对的概率和推断误差的一个澄清,也就是一种给定策略分布下的期望误差。

为了使得这个推断误差尽可能小或等于零,从公式上看,可以有两种方法。

第一种是通过近乎无限的采样,让 batch 数据逼近真实环境的转移概率。使得第一个公式里面当前状态的误差和下一个状态的误差都为零。这也意味着数据集跟真实环境是一个完美无偏的在线。但是这种方法在现实中显然是不可行的。

第二种策略优化方法的核心在于,确保我们的策略仅针对那些在批量数据中频繁出现或显著存在的状态-动作对进行操作。这意味着,在特定状态下,使得存在偏差的那些给定状态条件下的动作输出概率都为零,或者让训练中的策略尽可能地在数据集的行为策略附近,也就是对目标策略做 Batch-Constranined,即基于数据集分布下的约束。

在表格形式的 Q-learning 中,为实施此约束,在估计下一个状态时,仅选择那些在数据集中实际出现过的状态动作对。对于 DQN 方法,则需要确保目标策略与数据集的行为策略保持高度一致。

为实现这一目标,可以利用生成模型,如 Conditional VAE 去拟合数据中的给定状态条件下的动作分布,进而反映数据集的行为策略。类似于之前的 Q-learning 方法,可以从生成模型中抽取多个可能的下一个动作,并选择其中 Q 值最大的动作作为策略输出。

同时为了尽可能得到 Q 值最大的一个下一个动作,也可以通过加上有上下界的参数化偏置来调整生成模型采样出来的动作。

2. 模型结构

模型结构仍然是以一个 Actor Critic 的范式为主。其中 CVAE 和 Actor 共同构成了agent 的策略输出。这里的 Actor 主要负责根据状态动作对给出具有上下界的动作偏置。

CVAE 通过最小化重构误差和 KL_Loss 来拟合在特定状态下的动作概率。在构造当前状态的值估计和 TD error 时,CVAE 会从分布中多次采样下一个状态的动作候选,而 Actor 会根据这些动作添加偏置。Critic 值则会从这些状态动作对中选取产生的最大 Q 值作为下一状态的值估计,即 Q(π)。Critic 值的目标是根据当前的奖励最小化 TD error。此外,双 Critic 的设计沿用了 TD3 的方式,通过低估来缓解过估计的问题。作为偏置模型的 Actor 则通过最大化 Q 值来调整参数化的动作偏置。最后,只需保持 Actor 和 Critic 的主网络和 target 网络的软更新,即可完成整个训练过程,无需与环境进行交互。

线上的决策过程十分简单,CVAE 的 Decoder 会根据推荐系统给出的用户状态采样多个动作。Actor 则会根据候选的动作,添加偏置之后选取 Critic 认为 Q 值最大的一个动作,作为最终的策略输出。同时线上可以通过添加噪声进行探索,收集更有价值的潜在数据。

3. 训练过程

为确保模型在离线训练时的稳定性及线上应用的实际效果,我们设置了多个不同的测试环境。第一种情境下,使用 BCQ 算法在推荐系统中,借助完全随机的探索策略所收集的数据进行模型训练。而第二种情境 BCQ-EE,则是在已训练的模型基础上,继续在推荐系统中进行数据探索和收集,同时确保对线上环境保持一定的探索性。这种情境下收集的数据集,可视为待进一步探索的专家数据集。

除了直接对策略进行约束外,还可以在 Critic 部分引入策略相关的政策。例如,CQL 和 UWAC 分别采用了两种不同的策略正则化方法,旨在确保模型在训练过程中采取更为保守的估计策略。这两种方法均采用了与 BCQ-EE 相同的专家数据集进行训练。

通过对比训练过程中的值函数输出,我们发现没有任何约束的 TD3 算法在训练初期便迅速发散。而基于专家数据训练的 BCQ,其 Q 值相较于完全随机数据训练的情况有显著提高。

经过分析,我们发现 BCQ 相较于 CQL 展现出更优越的收敛性,尽管其 Q 值相对较低。在实际线上应用中,BCQ 与 CQL 相较于基线进化策略,均有约百分之二的显著时长提升,并且在互动性方面也有显著增强,其中 CQL 的提升幅度更大。这可能是由于 BCQ 的强约束性质,在一定程度上限制了更优策略的选择。然而,通过周期性的线上探索和模型更新,BCQ 仍然能够学习并优化策略。相对而言,CQL 在周期性更新的过程中,偶尔会遭遇线上效果下滑的问题,显示出其弱约束特性使得其相较于BCQ 更不稳定。

4. 整体框架

该框架主要由以下部分构成:其一,由推荐系统和用户构成的运行环境;其二,以用户反馈为核心的日志系统,该系统经处理后形成包含轨迹数据与转移数据的经验回放池。

在训练阶段,采用完全离线的强化学习(Offline RL)方法,通过引入策略约束或正则化手段确保训练的稳定性。训练完成后,运用OPE 方式对模型性能进行评估,并检验策略是否满足约束条件。

最后,结合探索与利用策略在线进行决策,并收集新一轮的训练经验数据,以进行迭代训练。整个流程旨在不断提升模型性能,实现优化决策。

5. 论文贡献

上述工作已整理成论文并发表在 KDD 上。论文的主要贡献在于,尝试运用推断误差归因的 Off-policy 方法来解决推荐系统中存在的训练发散和训练不稳定问题。首次将 Offline RL 应用于真实的推荐系统环境,提出了一种稳定且可行的离线强化学习解决方案,并将其用于优化融合排序模块。

此外,还引入了一种保守的离线策略估计器,即 OPE 方法。该方法在离线评估策略性能的同时,也能检测 OOD 的程度,即判断所访问的状态工作对是否超出数据集范围。

最后,对比了不同模型及数据集配置在训练稳定性和在线性能方面的表现,验证了专家数据和随机数据以及 batch 约束对模型性能的影响。

在此框架下,还将其应用于其他需要参数搜索的模块,并取得了显著的业务收益。Offline RL 作为一种更适合推荐系统强化学习的训练范式,仍然可以选择物料或其他动作空间进行尝试。

03

前沿进展

1. 研究方向

近年来,强化学习领域取得了显著进展,并衍生出众多研究方向。其中包括多智能体强化学习、异常化学习以及基于偏好的强化学习等。这些新兴方向亦被积极探索并应用于推荐系统的研究与实践中。同时,对于如何评估基于强化学习的推荐系统性能,亦引起了广泛关注。

为了推动这一研究领域的持续发展,研究人员已提出若干真实推荐数据集及性能更佳的模拟器。这些工具为评估和改进推荐系统的强化学习方法提供了坚实支持,有助于推动该领域的进一步繁荣与进步。

2. Multi-Agent

推荐系统是一个综合性的系统,涉及搜索、推荐、广告等多种任务,并需考虑用户体验、用户目标等多元利益。目前,大多数强化学习方法主要基于单一代理框架,仅适用于单一任务及相关研究。然而,随着技术的发展,推荐系统已开始探索多任务处理,并尝试采用多代理式深度强化学习或分层深度强化学习等方法。

第一篇论文提出了一种创新的两阶段强化学习框架,旨在推荐平台中联合优化推荐和广告策略。第一阶段,该框架致力于生成推荐列表,以优化用户体验;第二阶段,则将广告巧妙地融入推荐列表中,旨在平衡广告收入与用户体验。这一研究为多代理解决冲突任务的实践提供了新的思路。

第二篇论文提出了一种基于多目标抽象的深度分层强化学习算法,旨在解决复杂环境中的任务分解与目标导向学习问题。该算法通过构建两层次的代理结构,实现了长期稀疏兴趣与短期用户兴趣的有效捕捉和协同优化。高层次代理负责识别并跟踪长期稀疏的转化兴趣,同时为低层次代理设定抽象目标。低层次代理则依据实时环境交互和高层代理的抽象目标,捕捉短期用户兴趣,并采取相应的行动策略。通过拆解高难度目标,该算法引导低层次代理在不同阶段针对不同子目标进行学习和优化,从而降低了达到高层目标的难度。例如,一个购买目标可以被拆分为点击、浏览和收藏等多个子目标行为,以便更有效地实现最终目标。这种算法在提高任务完成效率和智能体学习能力方面具有显著优势。

3. Inverse RL

接下来,探讨 Inverse RL 在推荐系统领域的应用及其最新进展。在基于强化学习的推荐系统中,奖励函数占据至关重要的地位,因为它直接决定了系统的优化目标。然而,目前大多数工作中的奖励函数都是依赖于人工设计,这在一定程度上限制了系统的性能。

一种常见的做法是利用用户的显式行为作为奖励信号,以反映用户的兴趣反馈。然而,用户的决策过程受到多种潜在因素的影响,将这些因素全面纳入奖励函数中,仅仅依靠人工设计是极具挑战性的。

逆强化学习的出现为解决这一问题提供了新的思路。它旨在从数据中推断出奖励函数,而非依赖于人工设计。具体而言,逆强化学习可以通过两种主要方法实现:一种是基于专家行为的模仿学习,另一种则是从专家设计的策略中反推出一个回报函数,使得在该回报函数下得到的最优策略与专家策略相近。这两种方法都为推荐系统的优化提供了新的可能性。

首篇论文构建了一个基于路径推理的推荐系统,该系统融合了深层对抗模型的逆强化学习方法。其核心在于通过学习知识图谱中的推理路径,为代理提供额外的信息支持,进而优化推荐系统内的路径推理策略。此方法不仅限于利用用户和物料之间的路径关系进行推理,更是一次引入专家知识以指导模仿学习的积极探索。

第二篇论文主要探讨了多轮对话的推荐系统。该系统利用逆强化学习技术,通过分析用户与系统之间的对话轨迹,深入挖掘用户的潜在偏好。通过这种方式,我们能够进一步优化多轮对话策略,提高系统的推荐效果和用户满意度。

4. Agent 评估

最后分享的是关于强化学习在推荐系统应该如何评估的论文。

这篇论文指出了常见的序列推荐系统的离线评估范式,其实不适合用来评估强化学习的推荐性。比如基于单步的准确性评估,无法反映强化学习的当前决策在未来所带来的潜在收益,并掩盖了一些离线代理的关键缺陷。

论文提出了一些替代方案,来评估 RL 在推荐系统的性能。比如离线策略评估,还有基于模拟器的评估等等。这些建议也在激发未来的研究,发展可靠的用于评估基于RL 的推荐系统的协议。因为指标的选择决定了如何评估方案有效性,也影响了 RL 在推荐系统的研究方向。

5. 未来展望

以下是一些具有启发性的研究方向。基于偏好的强化学习和逆强化学习均致力于从数据中学习奖励函数,而非依赖于人工设计。相较于显式的奖励反馈,推荐系统中用户可能更倾向于提供偏好信息,如排序优化或速度提升等反馈。偏好基础的强化学习可利用这些偏好信号深化对用户的理解,进而优化推荐系统。逆强化学习则通过分析用户的行为模式和决策过程,来推断用户的潜在偏好。相较于传统方法,逆强化学习更注重从观测数据中挖掘用户的真实偏好,而不仅仅是依赖用户的显式反馈。此外,通过引入专家事例,如路径推理知识等,可进一步融入专家知识。

当前推荐系统是一个高度复杂的体系,涵盖诸多模块、目标和任务。在前述的两个Multi-agent 实例中,其一借助多智能体分离处理不同任务,其二则通过层次化的任务拆解来洞察用户的长期和短期兴趣。多智能体的引入有助于推荐系统中各模块更为高效地协同工作,为实现不同目标间的平衡或一致性提供了可能。

Offline RL 在多个对折损或安全敏感的领域已得到广泛应用,为这些领域提供了一种安全可靠的离线训练模式。其特别适用于处理大规模离线数据任务,与其他强化学习方法不同,Offline RL 的训练过程无需与环境进行交互。其核心目标是在固定的数据集中学习最优策略,这些特点使其更适合应用于推荐系统。

然而,鉴于推荐系统所处的动态非封闭环境特性,数据集与真实环境间不可避免地会出现分布偏移的现象。此类分布偏移亦会对 Offline RL 的性能和泛化能力造成影响,或可视为其当前发展阶段的一项局限性。

在之前的前沿研究中,我们可以观察到强化学习的多个研究方向在推荐系统中均能找到相应的应用场景。这些研究不仅为推荐系统的持续优化提供了众多新的可能性,还让我们对该领域的未来发展充满了期待。

04

问答环节

Q1:在此之前,您提到在信息流推荐中使用了打分的 reward 和 action 的概念。那么,在这个特定场景下,我们如何定义这两个概念呢?

A1:我们的 action 实质上是我们代理函数中的融合参数。我们输出的连续值,实际上是对融合参数进行调权的一种倾向性体现。至于 reward,它是用户在每次分页推荐过程中的反馈,其中时长是最主要的考量目标。此外,我们也会将其他互动行为作为加权和,以此作为最终的 reward 设定。

Q2:action 是不是类似于在已有的参数上做一些加加减减这种 action,连续值是预估出来吗?是一个类似于加权系数的感觉是吧?

A2:对,经过动标融合处理后,输出的多维连续值即为权重系数的融合结果。

Q3:输入信息的特征,如普通推荐系统中所采用的特征,用户(user)等相关信息吗?

A3:在处理此问题时,关键在于明确您的目标。例如,若旨在分析用户在各类目标上的偏好,那么引入大量用户行为序列或许并非必要。相反,我们应将焦点放在用户历史行为中的特定方面,如互动倾向、长短视频偏好以及传播行为的倾向等。通过分析这些因素,我们能更精确地确定选取什么用户特征作为输入。

Q4:关于您在 Actor-Critic 算法中构建神经网络的过程,特别是在 Actor 网络的构建方面,能否分享一下您是如何基于经验来设计和构建这一部分的?

A4:actor 其实构建很简单,它的模型结构就是一个多层的 NN 网络,并没有过多的设计。

Q5:这种 NN 一般根据什么经验法则得出来的?因为当这个神经网络太大了,actor 会非常不稳定,然后很容易就飘了。

A5:这种不稳定性主要源于我们在选择动作空间时的决策。在融合排序的场景中,我们的动作空间可能相对受限,可能只有十几维。这还与状态空间有密切关系。因此,在设计模型结构之前,我们应更加关注如何简化特征输入,以确保RL 所理解的状态空间能够尽可能与目标保持一致。

Q6:什么样的场景比较适合做强化学习,或者说我们使用强化学习的壁垒在哪里?是在模型层,还是在数据层,还是在最后的一些部署层。

A6:我认为在模型层或者一些在线上可以进行超参选择的策略上,都可以进行强化学习的应用。

Q7:不论什么样的场景,小场景、大场景也不受数据的这种限制吗?因为有一些小场景,数据量可能没有那么多。

A7:在数据量充足的前提下,采样效率才能得到保障,进而使 RL agent 充分理解环境。这是确保算法性能与准确性的关键所在。

Q8:接着刚才同学的问题想问一下,这个强化学习主要是在二八调参的这个场景的应用吗?在比如说金牌、重排这个方面有没有应用?

A8:我们在重排里面的一个多样性设置,会去用 RL 调整它的多样性参数,也是在第一版就取得了比较显著的效果。因为在刚才介绍的情况之下,它本来就是一个调参的尝试。它的场景比较简单,直接复用一些挑战的场景,就能比较快速验证在其他模块上的有效性。

Q9:在您加入之前,采用的是非强化学习方法。关于其效果与其他方法的比较,在效果上是正向还是负向的?

A9:正向的。在虎牙平台中,首页的内容展示采用了混合排列的方式,并融入了异构内容的推荐。为了优化这些异构内容的选择,我们采用了强化学习算法。无论是视频、直播间还是图文内容,强化学习都为我们带来了显著的提升。通过智能决策,我们能够更加精准地满足用户的个性化需求,提升用户体验。

以上就是本次分享的内容,谢谢大家。

分享嘉宾

INTRODUCTION

张启华

广州虎牙信息科技有限公司

推荐算法工程师

目前就职于虎牙,之前先后在百度和腾讯工作,一直从事推荐算法领域,尤其对重排/混排算法有较深的理解与创新。在业界首次提出把强化学习应用于多目标融合领域的方案,随后在腾讯多个产品有效果显著的落地应用,后续也有多家公司跟进应用,该成果整理成论文发表在数据挖掘领域国际顶级学术会议 KDD2022 上,引起较大反响,在这一领域开创了一个全新范式,大幅提升了效果天花板

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部