强化学习在美团“猜你喜欢”的实践

在这样的多轮交互中,我们把推荐系统看作智能体(Agent),用户看作环境(Environment),推荐系统与用户的多轮交互过程可以建模为MDP:

我们的优化目标是使Agent在多轮交互中获得的收益最大化:

具体而言,我们把交互过程中的MDP建模如下:

超参数$\phi$的物理意义是调整全量数据集中点击和下单模型的TradeOff,通过综合考虑点击和下单两个任务的AUC确定,没有个性化的因素。我们以此为切入点,使用Agent的动作调整融合超参数,令:$score=click\ast\left(pay+\phi\right)$

a是由Agent的策略生成Action,这样做有两个好处:其一,我们知道一个较优解是a=1,这种情况下强化学习策略和基线的排序策略保持一致,由于强化学习是个不断试错的过程,我们可以很方便地初始化Agent的策略为a=1,从而避免在实验初期伤害线上效果。其二,允许我们根据物理意义对Action做Clip,从而减轻强化学习更新过程不稳定造成的实际影响。

在实验过程中我们发现,强化学习的策略可能上线初期效果很好,在点击和下单指标上都取得了一定的提升,但在后续会逐渐下降,如图7前半段所示。在逐层转化效率的分析中,我们发现强化学习分桶的设备曝光率和UV维度点击率有所降低,而用户停留时长和浏览深度稳定提升,这说明Agent学习到了让用户与推荐系统更多交互,从而获取更多曝光和转化机会的策略,但这种策略对于部分强烈下单意图用户的体验是有伤害的,因为这部分用户意图转化的代价变高了,因而对展位的期望变低。针对这种情况,我们在奖励塑形中加入两个惩罚项:

修正后的奖励为:

在模型方面,我们在不断改进MDP建模的过程中先后尝试了Q-Learning、DQN[3]和DDPG[4]模型,也面临着强化学习中普遍存在更新不够稳定、训练过程容易不收敛、学习效率较低(这里指样本利用效率低,因此需要海量样本)的问题。具体到推荐场景中,由于List-Wise维度的样本比Point-Wise少得多,以及需要真实的动作和反馈作为训练样本,因此我们只能用实验组的小流量做实时训练。这样一来训练数据量相对就比较少,每天仅有几十万,迭代效率较低。为此我们对网络结构做了一些改进,包括引入具体的Advantage函数、State权值共享、On-Policy策略的优化,结合线上A/BTest框架做了十数倍的数据增强,以及对预训练的支持。接下来我们以DDPG为基石,介绍模型改进的工作。

如图8所示,基本的DDPG是Actor-Critic架构。线上使用Actor网络,预测当前State下最好的动作a,并通过Ornstein-Uhlenbeck过程对预测的Action加一个随机噪声得到a’,从而达到在最优策略附近探索的目的。将a’作用于线上,并从用户(Environment)获得相应的收益。训练过程中,Critic学习估计当前状态s下采取动作a获得的收益,使用MSE作为LossFunction:

对参数求导:

Actor使用Critic反向传播的策略梯度,使用梯度上升的方法最大化Q估计,从而不断优化策略:

在确定性策略梯度的公式中,$\theta$是策略的参数,Agent将使用策略$\mu\theta\left(s\right)$在状态s生成动作a,$\rho^{}\mu$表示该策略下的状态转移概率。在整个学习过程中,我们不需要真的估计策略的价值,只需要根据Critic返回的策略梯度最大化Q估计。Critic不断优化自己对Q(s,a)的估计,Actor通过Critic的判断的梯度,求解更好的策略函数。如此往复,直到Actor收敛到最优策略的同时,Critic收敛到最准确的Q(s,a)估计。

接下来基于这些我们介绍的DDPG模型改进的工作。

如图9所示,在实际实验中观察V(s)和A(s,a)均值的比值大约为97:3,可以验证我们的这一判断。在实际训练过程中,我们先根据状态和收益训练V(s),再使用Q(s,a)-V(s)的残差训练A(s,a),很大程度上提升了训练稳定性,并且我们可以通过残差较为直观地观测到到当前策略是否优于基线。图8中A(s,a)稳定大于0,可以认为强化学习在自己的目标上取得了稳定的正向收益。

受A3C[6]网络的启发,我们观察到DDPG的网络中Actor和Critic网络中都有State的表达,而在我们的场景中大部分参数都集中在State的部分,在十万量级,其他参数只有数千,因此我们尝试把State部分的权重做共享,这样可以减少约一半的训练参数。

在A2C[7]的论文里作者论述了他们的见解:同步A2C实现比异步实现的A3C表现要好。目前尚未看到任何证据证明异步引入的噪声能够提供任何性能收益,因此为了提升训练效率,我们采取了这个做法,使用同一套参数估计Q_{t+1}和更新Q_t,从而使模型参数再次减半。

考虑多组强化学习实验同时在线的情况,结合A/BTest环境特点,我们把以上网络框架扩展到多Agent的情况。

如图11所示,线上多组实验共享State表达和V(s)的估计,每个策略训练自己的A(s,a)网络且能快速收敛,这样的结构一方面使训练过程更加稳定,另一方面为强化学习策略全量提供了可能性。

强化学习通常是在一次次试错(Trial-and-Error)中学习,实时地改进策略并获得反馈能大幅提升学习效率,尤其在连续策略中。这一点在游戏场景下很容易理解,相应地,我们也在推荐系统中构建了实时深度学习系统,让策略更新更加高效。为了支持实时更新的DRL模型和高效实验,我们针对OnlineLearning的需求,基于TensorFlow及TFServing做了一些改进和优化,设计并实现了一套特征配置化的实时更新的DRL框架,在实验迭代过程中沉淀了DQN、DDQN、DDPG、A3C、A2C、PPO[8]等模型。系统架构如图13所示:

训练部分工作流如下:

线上预测部分,推荐系统的Agent从Tair获取预处理参数,并将处理后的特征喂给TFServing做前向传播,得到Action并对展现给用户的排序结果做相应的干预。

针对TensorFLow对OnlineLearning支持比较弱,Serving对千万级Embedding处理效率不高的问题,我们做了一些改进:

同时强化学习作为机器学习的一个分支,很多机器学习的经验仍然适用于此。比如数据和特征决定效果的上限,模型和算法只是不断逼近它。对于强化学习而言特征空间主要包含在状态的建模中,我们强烈建议在状态建模上多做一些尝试,并信任模型有能力从中做出判断。再如,使用更多的训练数据降低经验风险,更少的参数降低结构风险的思路对强化学习仍然适用,因此我们认为DDPG的改进工作能够推广到不同业务的线上A/BTest场景中。此外,我们在训练过程中也遇到了强化学习对随机性敏感的问题[10],为此我们线上使用了多组随机种子同时训练,选择表现最好的一组参数用于实际参数更新。

THE END
1.学习笔记在线强化学习与离线强化学习的异同(3)强化学习与离线强化学习的区别 强化学习和离线强化学习都是机器学习的分支,主要用于训练智能体以在不断尝试和错误的过程中学习如何最大化累积奖励。它们之间的主要区别在于数据的获取方式和训练环境的不同。 1. 数据获取方式:在强化学习中,智能体通过与环境的交互来获取数据,通过试错的过程来学习最佳策略。这意味着智能https://blog.csdn.net/hzlalb/article/details/136797191
2.机器学习——强化学习与深度强化学习腾讯云开发者社区近年来,强化学习(Reinforcement Learning, RL)在多个领域取得了巨大的进展。从早期简单的迷宫导航问题到今天 AlphaGo 击败围棋世界冠军,强化学习的潜力得到了充分展现。而随着深度学习的引入,深度强化学习(Deep Reinforcement Learning, DRL)更是将这一技术推向了前所未有的高度。本篇文章将深入探讨强化学习与深度强化学习https://cloud.tencent.com/developer/article/2455966
3.在对齐AI时,为什么在线方法总是优于离线方法?根据人类反馈的强化学习(RLHF)随着大型语言模型(LLM)发展而日渐成为一种用于 AI 对齐的常用框架。不过近段时间,直接偏好优化(DPO)等离线方法异军突起 —— 无需主动式的在线交互,使用离线数据集就能直接对齐 LLM。这类方法的效率很高,也已经得到实证研究的证明。但这也引出了一个关键问题: https://m.thepaper.cn/newsDetail_forward_27434433
4.强化学习离线模型离线模型和在线模型强化学习离线模型 离线模型和在线模型,在推荐算法领域,时常会出现模型离线评测效果好,比如AUC、准召等指标大涨,但上线后业务指标效果不佳,甚至下降的情况,比如线上CTR或CVR下跌。本文尝试列举一些常见的原因,为大家排查问题提供一点思路。1.离线、在线特征不一致离线https://blog.51cto.com/u_14499/11815202
5.强化学习的基本概念在线学习和离线学习针对的是在强化学习模型在训练过程中交互数据的使用方式。在线学习的强化学习模型,会在一个交互之后,立即用本次交互得到的经验进行训练。而离线学习的强化学习模型,往往是先将多个交互的经验存储起来,然后在学习的时候,从存储的经验中取出一批交互经验来学习。 https://www.jianshu.com/p/28625d3a60e6
6.离线强化学习因此,离线强化学习(offline reinforcement learning)的目标是,在智能体不和环境交互的情况下,仅从已经收集好的确定的数据集中,通过强化学习算法得到比较好的策略。离线强化学习和在线策略算法、离线策略算法的区别如图 18-1 所示。图18-1 离线强化学习和在线策略算法、离线策略算法的区别https://hrl.boyuai.com/chapter/3/%E7%A6%BB%E7%BA%BF%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0/
7.科学网—[转载]强化学习在资源优化领域的应用强化学习在资源优化领域的应用王金予, 魏欣然, 石文磊, 张佳微软亚洲研究院,北京 100080 摘要:资源优化问题广泛存在于社会、经 ,科学网https://blog.sciencenet.cn/blog-3472670-1312677.html
8.仙启仙启,面向行业专家、企业及研发运营人员的智能决策开发平台。通过数据驱动环境虚拟技术,将复杂的决策过程梳理成可操作的业务流程,并依托云计算资源和深度强化学习算法库,为用户提供智能决策全流程一站式服务.https://www.revive.cn/
9.AIR学术李升波:将强化学习用于自动驾驶:技术挑战与发展趋势或使用模型,或使用预先采集的数据,先离线训练一个最优策略,然后部署到自动驾驶汽车,实现在线控制应用。第二,同时训练和应用策略,即SOTI方法:这是利用强化学习的探索试错机制,通过在线探索环境产生数据,实现自动驾驶策略的在线自我更新。这类方法要求强化学习算法必须进行在线部署,从而进行在线地探索和在线地训练。https://air.tsinghua.edu.cn/info/1008/1323.htm
10.泰语学习App排行榜华为手机泰语学习app推荐莱特葡萄牙语学习背单词软件在你的葡萄牙语学习路上一路相随,贴心定制,一对一服务,随时了解自己的学习进度,解决学习中出现的任何问题,不受时间和空间的限制。学习进度时刻跟进,轻松了解自己的学习情况,省心省力,同时也可以轻松的显示出学习复习进度,便于及时复习强化,学习进度在手,学习计划制定好,葡萄牙语学习不再发愁https://www.diandian.com/phb/1491/
11.多目标排序在快手短视频推荐中的实践复杂多目标:Ensemble Sort和在线自动调参 重排序:Listwise、强化学习和端上重排序 总结和展望 01 快手短视频推荐场景介绍 1. 关于快手 快手主要的流量形态 有4个页面: ① 发现页:致力于让用户看见更大的世界,分为单列和双列两种形态。 双列 点选模式,给用户提供选择的自由 https://maimai.cn/article/detail?fid=1603183032&efid=T7RIoRo14AcJUC_PIXWVhA
12.叶志豪:介绍强化学习及其在NLP上的应用分享总结雷峰网基于价值函数的强化学习,它先通过对现状进行一个价值函数的估计,进而去提升策略,估计这个策略,再重复循环,再估计当前策略下的函数,再用当前价值函数来提升它的策略,两步,第一步估计价值函数,第二步是提升它的策略,这两步一直循环。 基于值的函数分为在线学习和离线学习两种方式,在线学习的代表学习方法是 Sarsa,离线https://www.leiphone.com/news/201807/sbyafpzV4BgvjLT1.html
13.基于深度强化学习的水面无人艇路径跟踪方法6.针对上述现有技术的不足,本发明所要解决的技术问题是:如何提供一种基于深度强化学习的水面无人艇路径跟踪方法,无需进行环境和无人艇运动建模并且具备自适应能力,从而能够进一步提高无人艇路径跟踪控制的稳定性和准确性。 7.为了解决上述技术问题,本发明采用了如下的技术方案: https://www.xjishu.com/zhuanli/54/202210772926.html/
14.反事实增强的对抗学习序列推荐强化学习提供了一种建模上述序列推荐过程的工具, 其思路是将不同的用户反馈信号映射为不同的激励价值, 并通过最大化累积价值激励函数的优化过程, 同时挖掘用户的序列动态兴趣和长时平稳倾向. 尽管, 基于强化学习的推荐系统最近取得成功, 这得益于有效的价值激励函数设计, 但是启发式设计的价值激励函数往往面临区分度https://c-s-a.org.cn/html/2024/4/9470.html