Learning to Collaborate——基于多智能体强化学习的多场景联合优化

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
推荐全链路深度定制开发平台,高级版 1个月
OpenSearch LLM智能问答版免费试用套餐,存储1GB首月+计算资源100CU
简介: 利用多智能体强化学习技术来进行多场景的联合排序优化

背景与简介:Does your optimization really optimize your application?

在淘宝平台上有非常多的子场景,例如搜索、推荐、广告。每个子场景又有非常多细分,例如搜索包括默认排序、店铺内搜索、店铺搜索等;推荐内有猜你喜欢、今日推荐、每日好店等。基于数据驱动的机器学习和优化技术目前大量的应用于这些场景中,并已经取得了不错的效果——在单场景内的A/B测试上,点击率、转化率、成交额、单价都能看到显著提升。
然而,目前各个场景之间是完全独立优化的,这样会带来几点比较严重的问题:

  a. 用户在淘宝上购物会经常在多个场景之间切换,例如:从主搜索到猜你喜欢,从猜你喜欢到店铺内。不同场景的商品排序仅考虑自身,会导致用户的购物体验是不连贯或者雷同的。例如:从冰箱的详情页进入店铺,却展示手机;各个场景都展现趋同,都包含太多的U2I(点击或成交过的商品)。

  b. 多场景之间是博弈(竞争)关系,期望每个场景的提升带来整体提升这一点是无法保证的。很有可能一个场景的提升会导致其他场景的下降,更可怕的是某个场景带来的提升甚至小于其他场景更大的下降。这并非是不可能的,那么这种情况下,单场景的A/B测试就显得没那么有意义,单场景的优化也会存在明显的问题。因为这一点尤为重要,因此我们举一个更简单易懂的例子(如下图)。一个1000米长的沙滩上有2个饮料摊A和B,沙滩上均分分布者很多游客,他们一般会找更近的饮料摊去买饮料。最开始A和B分别在沙滩250米和750米的位置,此时沙滩左边的人会去A买,右边的人去B买。然后A发现,自己往右边移动的时候,会有更多的用户(A/B测试的结论),因此A会右移,同样B会左移。A和B各自‘优化’下去,最后会都在沙滩中间的位置,从博弈论的角度,到了一个均衡点。然而,最后‘优化’得到的位置是不如初始位置的,因为会有很多游客会因为太远而放弃买饮料。这种情况下,2个饮料摊各自优化的结果反而是不如不优化的。

多场景问题实际并不止存在于淘宝上,目前比较大型的平台或者无线APP都不止一个场景。即使不谈Yahoo,Sina等综合性网站,像Baidu、Google等功能比较单一、集中的应用,也会有若干场景(如网页、咨询、地图等)。那么这些平台或应用都会面临类似的问题。
综上,研究大型在线平台上的多子场景联合优化,无论从淘宝平台的应用上,还是从科研的角度,都具有重要意义。

为了解决上述的问题,本文提出一个多场景联合排序算法,旨在提升整体指标。我们将多场景的排序问题看成一个完全合作的、部分可观测的多智能体序列决策问题,利用Multi-Agent Reinforcement Learning的方法来尝试着对问题进行建模。该模型以各个场景为Agent,让各个场景不同的排序策略共享同一个目标,同时在一个场景的排序结果会考虑该用户在其他场景的行为和反馈。这样使得各个场景的排序策略由独立转变为合作与共赢。由于我们想要使用用户在所有场景的行为,而DRQN中的RNN网络可以记住历史信息,同时利用DPG对连续状态与连续动作空间进行探索,因此我们算法取名MA-RDPG(Multi-Agent Recurrent Deterministic Policy Gradient)。


4864fc6e33679a295b7dbe746450224a.png

系统总览

传统的单场景优化

目前,单场景排序策略的大体结构如下,每个商品用一组特征来表示<人气分,ctr分……>,排序策略通过给出一组特征权重来决定排序的结果,商品的分数即为各个特征的加权相加。主搜索和店铺内搜索都有自己的排序策略,独立优化,互不影响。


669e19845ec7bb08a53f769e601a45cd.png

多场景联合优化

多场景联合排序的系统结构如下,场景之间不再是孤立的,而是由一个统一算法进行学习,然后将排序模型更新到各个排序场景(Agent)。所利用的用户日志也不再是单场景内部的,而是基于多个场景的信息,其中不仅包含用户的行为反馈,还包括当时所在场景的信息。


68547d7b81e6902c64b6854e12e1e77c.png

方法与应用

multi-agent reinforcement learning

问题描述

为了解决上述单场景优化的两个缺陷,我们将多场景联合优化转化成一个Multi-Agent Reinforcement Learning的问题。对问题作如下具体定义:

Multi-Agent: 在多场景环境下,每一个场景的排序策略作为一个agent,agent学习自己的policy function,来将一个state映射为一个具体的action。

Sequential Decision:用户一次只与一个agent进行交互,当前agent的action会影响后面其他agent的策略。

Fully Cooperative:所有的agent完全合作,来提升一个共同的指标。agent之间可以互相通信,并且所有agent的行为是由一个centralized critic进行评价。

Partially Observable: 环境是部分可观测的,每一个agent只能看到局部的信息,而观察不到完整的信息。

模型

受DDPG的启发,我们的模型也是基于actor-critic的方法,主要包含三个模块:centralized critic,private actors和communication component。centralized critic近似一个状态动作值函数,表示在当前状态s下,执行动作a所能获得的未来收益的期望。每一个agent的policy function由一个actor network来表示,输入为当前的状态s,输出为一个确定的action。通信模块将之前所有agent的local observation和action编码成一个message向量,agent通过接收message来进行合作。通过这些message的传递,每个agent的决策不仅由自己决定,还会受到其他agent的影响。而且message还可以帮助agent得到更多关于环境信息的描述,帮助agent的决策。

我们用$(o_1, r_1, a_1, \cdots, a_{t-1}, o_t, r_t)$ 表示experience的序列,其中$o/r/a$ 分别对应于observation/reward/action。如前所述,我们的环境是一个部分可观测的,所以状态$s_t$是前面所有观测的函数,即$s_t=f(o_1, r_1, a_1, \cdots, a_{t-1}, o_t, r_t)$。N个agent $\{A^1, A^2, \dots, A^N\}$分别对应于N个不同的优化场景。每个agent $A^i$ 使用自己的policy function $\mu^i(s_t)$ 产生action $a^i_t$, 得到reward $r^i_t = r(s_t, a^i_t)$,同时状态从$s_t$跳转到$s_{t+1}$。当给出一组action ($a_t^1,a_t^2,\cdots,a_t^N$),我们使用一个centralized action-value function $Q(s_t,a_t^1,a_t^2,\cdots,a_t^N)$ 来对其进行评价。


模型的具体结构见下图所示:


78a53d73e9db0dda85d513884a1936cf.Png

Centralized Critic: 和DDPG一样,我们使用一个critic network来评估未来的总收益。由于我们的agent都共享一个目标,所以我们采用了一个centralized critic $Q(s_t, a^1_t,a^2_t,\cdots,a^N_t)$。

Private Actor: 每个agent有自己的private actor,来输出自己所要采取的action。由于我们所要探索的是一个高维连续动作空间,因此我们使用神经网络把actor设计成一个确定性的策略,即将state直接映射到一个具体的action。在时间t,agent $A^{i_t}$的action为

$$ a_t^{i_t} = \mu^{i_t}(s_t;\theta^{i_t}) \approx \mu^{i_t}(h_{t-1}, o^{i_t}_t;\theta^{i_t}) $$

,其中$\mu^i(s_t;\theta^i)$是policy function,$\theta^i$是参数。actor network的输入state有两部分构成:1.当前的local observation;2.由所有agent的历史observation和action通过LSTM编码成的message。

Communication Component: 将所有agent的历史observation和action编码成message向量,

$$ h_{t-1}=LSTM(h_{t-2},[o_{t-1};a_{t-1}]; \psi) $$

其中$o_t$和$a_t$表示t时刻,所有agent的observation和action。通过message的传递,使得任何一个agent都能够得到更完整的信息,有助于agent之间更好的合作。

训练

Critic: critic network使用Bellman公式进行学习,最小化如下loss:

$$ L(\phi) = \mathbb{E}_{h_{t-1}, o_t, a_t, r_t}[(Q(h_{t-1}, o_t, a_t; \phi) - y_t)^2] $$

其中,$y_t = r_t + \gamma Q(h_t, o_{t+1}, \mu^{i_{t+1}}(h_{t}, o_{t+1}); \phi)$

Actor: actor的更新是最大化performance function。以 $A^{i_t}$ 在时间 $t$ 为例,目标函数如下:

$$ J(\theta^{i_t}) = \mathbb{E}_{h_{t-1}, o_t} [ Q(h_{t-1}, o_t, a; \phi) |_{a = \mu^{i_t}(h_{t-1}, o_t;\theta^{i_t})}] $$

根据链式求导法则,actor的网络参数更新为:

$$ \begin{equation} \begin{aligned}& \nabla_{\theta^{i_t}} J(\theta^{i_t}) \\ & \approx \mathbb{E}_{h_{t-1}. o_t}[\nabla_{\theta^{i_t}} Q^{i_t}(h_{t-1}, o_t, a; \phi) |_{a = \mu^{i_t}(h_{t-1}, o_t;\theta^{i_t})}] \\ & = \mathbb{E}_{h_{t-1}, o_t} [\nabla_{a} Q^{i_t}(h_{t-1}, o_t, a; \phi) |_{a=\mu^{i_t}(h_{t-1}, o_t)} \nabla_{\theta^{i_t}} \mu^{i_t}(h_{t-1}, o_t;\theta^{i_t})] \end{aligned} \end{equation} $$

Communication Component: 通信模块实质上为Critic和Actor的共享部分,更新上面两个模块的时候就可以更新此模块的参数。

算法描述如下:


7c88163aebdc1755803fc5d66079a62c.png

主搜索与店铺内搜索的应用

淘宝主搜索是淘宝流量的门户,承载着每秒数以万计的查询,为用户提供满意的商品结果。店铺内搜索(无query的情况下就是店铺内推荐)也是用户在店铺内淘选商品的重要工具。长期以来两者作为独立的场景,各自优化,都取得了非常不错的效果。由于主搜和店铺内是统一分桶的,所以在日常优化中,我们很容易会发现两者还是存在着一些互相影响。利用MARL的方法,将两个场景的排序策略看作两个agent,同时控制两个场景的排序,优化整体去重的GMV指标,这个想法应运而生。下面介绍我们利用MA-RDPG算法在主搜和店铺内搜索展开的应用。

首先,应用MA-RDPG算法,进行一个MARL的建模如下图所示:


4736b4e6c8392a249611bc38a4424d73.png


Environment: 以主搜和店铺内搜索这两个场景为环境。随着两个agent采取action,环境的状态也发生着改变。并且该环境会跟据所采取的action和所处的state,给出一个reward。

Agents: 主搜索和店铺内搜索分别是两个agent。对同一个用户而言,在同一时刻,只被一个agent所服务。

States: 我们的state包含两个方面,一个是communication模块所产生的上一个时刻的agent所发出的message,另一个是当前agent所观测到的local observation。local observation包括:1. 用户的静态属性信息(性别、年龄和购买力等);2. 用户点击商品的属性信息(价格、CVR和销量等);3. query的行业类型、以及当前用户所在的页码编号;4. 当前所处场景的index。10维的message与52维的observation concat起来形成state向量。

Actions: 如前所述,目前线上的排序是根据商品特征线性加权求和所得的分数,来进行排序的。如果控制了这些排序特征的权重,即控制了排序结果。主搜action为一个7维权重向量,店铺内搜索action为一个3维权重向量。

Reward: 如果用户在此次pv上发生了点击行为,则reward为1。若用户发生了购买行为,则购买金额为reward,若既无点击也无成交,则reward为-1。

实验与分析

在线训练过程如本文系统总览中的图所示。actor network是一个32/32/7(3)的全连层网络,前两层由ReLu激活,最后一次用softmax激活。critic network是一个三层的全连层网络,用ReLu激活。$\gamma$设置为0.9。设置buffer size为$10^4$,minibatch size为100。我们进行了四组对比实验:1. Empirical Weight(EW,经验权重) + Learning To Rank(L2R,目前线上在使用的online LTR);2. L2R + EW;3. L2R + L2R;4. MA-RDPG。A + B表示主搜部署A算法,店铺内搜索部署B算法。每组实验都与EW+EW作比较,A/B test结果如下图所示:


edb26332a60f03f63c334590ffed4682.png

结果分析

首先,MA-RDPG的效果显然优于其他方法,甚至都不逊于目前线上最好的L2R+L2R。比起单场景独立的优化,我们的联合优化方法所取得的效果证明了场景之间确实有合作的空间,在多场景的协同配合之下,整体指标确实会得到提升。其次,我们可以看到MA-RDPG与L2R + L2R相比,在没有损失主搜指标的情况下,提升了店铺内搜索的GMV,场景之间的协助再一次得到了体现。最后,实验L2R + EW也应证了主搜效果的提高,会一定程度上伤害店铺内搜索的GMV这个结论。

训练过程

我们监控每个训练batch所输出的平均action,观察它们在训练过程中的变化情况。如下图所示:


064fca19ac2344b64ce6ea70575da03b.png



可以看到,actor所输出的action随着训练时间而逐步趋向稳定。上图为主搜的action,下图为店铺内搜索的action。输出权重的大小顺序也基本与我们的业务常识相符合。

Case Study

我们选取几种典型的case来进一步说明,MA-RDPG是如何促使两个场景进行合作的。

case 1: 主搜是如何帮助店铺内搜索。模拟这样一个情景,一个高购买力的年轻女性,在寻找价格较高的商品,搜索“dress”,在主搜场景下,对比MA-RDPG和L2R给出的搜索结果。


095cb04ebdf6f5c228845f5dce97253a.png



左边MA-RDPG给出的结果多数是大店和大品牌的商品,吸引用户进店,从大局出发着眼于未来收益。而右边L2R还是只考虑本场景内的收益,给出一些高转化与高销量的商品,希望引导用户尽快成交。

case 2: 店铺内搜索利用用户在主搜场景的信息改善排序。一个男性用户想购买一台冰箱,起初在主搜搜索“冰箱”,并点击浏览一些冰箱的商品,之后看到一款大型家电店铺的商品,点击并进入到店铺内搜索页面,比较MA-RDPG与L2R的店铺内搜索页结果如下:


363b603241a6c847d56653432eb485f7.png



显然,左边考虑了用户在主搜场景内的信息,将更多的冰箱类目的商品排在前面,更加迎合用户的需求。而右边的结果并不能体现这一点。

实验环境下的结果

主搜和店铺内上线,测试效果如下:

单场景效果:在综合优化下,主搜与基准桶相比,算法相关指标提升+12.5%;店铺内对比基准桶,算法相关指标有+9.4%的提升。

联合效果:在综合优化下,联合去重报表对比基准桶,有近+10%的提升。

总结与展望

随着AI技术的发展,越来越多的新技术涌现,我们的排序也经历了从规则到浅层监督学习,到深度学习、强化学习等智能排序算法的转变。新的问题与挑战,迫使我们不断的开拓与进取。从一个场景的优化,到现在尝试着联合两个场景一起优化,这只是联合优化的一小步,现在的做法也比较简单,甚至还存在着非常多的不足和缺陷,还有更多更复杂的问题需要我们去克服去解决。我们相信在面对未来越来越复杂的电商排序场景下,平台需要的不是各场景之间的互搏与内耗,而是协同与合作,我们期待更多更高级的多场景联合优化的方法涌现,为平台创造更大的价值。

另:欢迎有深度学习、强化学习背景或者感兴趣的同学加入我们。heng.lh@alibaba-inc.com

相关文章
|
6月前
|
人工智能 数据安全/隐私保护
AI Agent是大模型落地业务场景的主流形式
【1月更文挑战第5天】AI Agent是大模型落地业务场景的主流形式
332 2
AI Agent是大模型落地业务场景的主流形式
|
6月前
|
人工智能 自然语言处理 搜索推荐
大模型应用产品「归一妙计」亮相,AI Agent落地广告投放场景
在通用L0级语言模型基础之上,结合领域知识训练出适配各应用场景的专属模型,将成为企业经营的“智慧大脑”。 在广告投放这一企业核心的营销场景中,「营销领域大模型」已成为引领行业变革的关键力量,它将重塑数字营销的内容生产方式、投放工作流、消费模式等等,进一步推动营销生态的发展和进化,让广告主的营销内容更丰富、投放更高效、转化更直观。 近期,归一智能正式发布了AI Agent应用产品「归一妙计」,这是一款基于「利欧归一」营销领域大模型,训练出的适配各媒体平台投放工作流的SEMGPT专属模型,能够为企业提供更加智能、精准和高效的AI广告投手服务。
637 0
大模型应用产品「归一妙计」亮相,AI Agent落地广告投放场景
|
1月前
|
机器学习/深度学习 算法 决策智能
北大领衔,多智能体强化学习研究登上Nature子刊
北京大学研究团队近日在《Nature》子刊上发布了一篇关于多智能体强化学习(MARL)的论文,提出了一种高效且可扩展的MARL框架,旨在解决大规模网络控制系统中的决策问题。该框架实现了智能体间的局部通信,减少了通信成本与计算复杂度,并在交通、电力及疫情防控等多个真实场景实验中,显著提升了决策性能。论文链接:https://www.nature.com/articles/s42256-024-00879-7。尽管该研究仍存局限,但为MARL的应用提供了新思路。
51 2
|
19天前
|
敏捷开发 机器学习/深度学习 数据采集
端到端优化所有能力,字节跳动提出强化学习LLM Agent框架AGILE
【10月更文挑战第23天】字节跳动研究团队提出AGILE框架,通过强化学习优化大型语言模型(LLM)在复杂对话任务中的表现。该框架将LLM作为核心决策模块,结合记忆、工具和专家咨询模块,实现智能体的自我进化。实验结果显示,AGILE智能体在ProductQA和MedMCQA数据集上优于GPT-4。
79 4
|
1月前
|
Python 机器学习/深度学习 人工智能
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
【10月更文挑战第1天】本文通过构建一个简单的强化学习环境,演示了如何创建和训练智能体以完成特定任务。我们使用Python、OpenAI Gym和PyTorch搭建了一个基础的智能体,使其学会在CartPole-v1环境中保持杆子不倒。文中详细介绍了环境设置、神经网络构建及训练过程。此实战案例有助于理解智能体的工作原理及基本训练方法,为更复杂应用奠定基础。首先需安装必要库: ```bash pip install gym torch ``` 接着定义环境并与之交互,实现智能体的训练。通过多个回合的试错学习,智能体逐步优化其策略。这一过程虽从基础做起,但为后续研究提供了良好起点。
117 4
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
|
1月前
|
机器学习/深度学习 人工智能 安全
北大领衔,多智能体强化学习研究登上Nature子刊
【10月更文挑战第1天】近日,北京大学领导的研究团队在《Nature》子刊上发表了一篇关于多智能体强化学习的论文,提出了一种高效且可扩展的框架,解决了大规模网络控制系统中的决策问题。该框架通过局部通信避免了集中式和独立学习的缺点,在交通、电力等领域的实验中展现了卓越性能。然而,其在更复杂系统中的效果及计算复杂度仍需进一步验证。论文链接:https://www.nature.com/articles/s42256-024-00879-7。
39 3
|
1月前
|
人工智能
Agent应用对话情感优化
【10月更文挑战第2天】
39 0
Agent应用对话情感优化
|
3月前
|
机器学习/深度学习 存储 定位技术
强化学习Agent系列(一)——PyGame游戏编程,Python 贪吃蛇制作实战教学
本文是关于使用Pygame库开发Python贪吃蛇游戏的实战教学,介绍了Pygame的基本使用、窗口初始化、事件处理、键盘控制移动、以及实现游戏逻辑和对象交互的方法。
|
4月前
|
机器学习/深度学习 算法 数据挖掘
Python强化学习应用于数据分析决策策略:** - 强化学习让智能体通过环境互动学习决策。
【7月更文挑战第5天】**Python强化学习应用于数据分析决策策略:** - 强化学习让智能体通过环境互动学习决策。 - Python因丰富库(如TensorFlow, PyTorch, Keras, Pandas, NumPy)和生态而受青睐。 - 使用OpenAI Gym构建环境,如`gym.make(&#39;CartPole-v0&#39;)`。 - 选择模型,例如神经网络,定义策略如Q-Learning。 - 训练模型,调整智能体行为,如Q-Learning更新Q表。 - 最后评估模型性能,实现数据驱动决策。
51 3
|
4月前
|
机器学习/深度学习 算法 Python
强化学习(Reinforcement Learning, RL)** 是一种机器学习技术,其中智能体(Agent)通过与环境(Environment)交互来学习如何执行决策以最大化累积奖励。
强化学习(Reinforcement Learning, RL)** 是一种机器学习技术,其中智能体(Agent)通过与环境(Environment)交互来学习如何执行决策以最大化累积奖励。