- 英文标题:Policy Adaption For Deep Reinforcement Learning-Based Dialogue Management.
作者:Lu Chen, Cheng Chang, Zhi Chen, Bowen Tan, Milica Gasic, Kai Yu.
对话策略优化是统计对话管理的核心。深度强化学习被成功应用于提前定义好的固定领域中,但是当领域动态发生变化,例如有新的语义槽被添加到当前领域的本体中,或者策略被迁移到其它领域时,对话状态空间和对话动作集合都会发生变化,因而表示对话策略的神经网络结构也会发生变化。这将使得对话策略的自适应变得十分困难。本文提出一种多智能体对话策略 MADP(Multi-Agent Dialogue Policy), 相比于普通的基于深度强化学习的对话策略,MADP 不仅学习更快,也更适合于领域扩展和迁移。MADP 包括一个语义槽无关的智能体(G-Agent)和一些语义槽相关的智能体(S-Agent)。每个 S-Agent 除了有私有参数外,还有相互之间共享的参数。当策略进行迁移时,S-Agent 中的共享参数和 G-Agent 中的参数可以直接迁移到新领域中。模拟实验表明 MADP 可以显著提升对话策略的学习速度,而且有利于策略自适应。
研究背景:
任务型对话系统的典型架构如图 1 所示,其中对话管理(Dialogue Management, DM)是整个系统的控制核心。DM 有两个作用:一个是对话状态跟踪器维护系统的对话状态,另一个对话策略决定在当前状态上应该选择什么动作。对话策略是一个从置信对话状态到对话动作的映射函数。部分可观测马尔科夫决策过程(POMDP)提供了一个可以利用强化学习来优化对话策略的方法。最近,深度强化学习(DRL)方法被用于对话策略优化。在 DRL 方法中,对话策略一般用一个多层的全连接网络表示。传统的 DRL 方法在固定领域上表现很好,但是不太适合领域扩展和迁移的情况。当领域扩展时,置信状态空间和可能的对话动作集合都会发生变化,因此网络的结构也会发生变化。如图 2 所示,例如当领域扩展时,比如新增一个语义槽,则表示对话策略的神经网络的输入和输出的维度会增大(红色的圈),第一层和最后一层新增加的参数(红色的线)则需要随机初始化,然后在新的领域继续训练对话策略。这种方法不能充分利用在其它语义槽上已经学到的知识,使得迁移后在新领域的学习较慢。
在这篇文章中,我们提出一种适合领域自适应的对话策略框架:多智能体对话策略(MADP)。MADP 包括一个语义槽无关的智能体(G-Agent)和一些语义槽相关的智能体(S-Agent)。每个 S-Agent 除了有私有参数外,还有相互之间共享的参数。当策略进行迁移时,S-Agent 中的共享参数和 G-Agent 中的参数可以直接迁移到新领域中。此外,由于 S-Agent 之间有共享的参数,在一个 S-Agent 上学到的技能可以快速地迁移到另一 S-Agent,这可以加速策略的学习。
研究方法:
1)多智能体对话策略
一般地,置信对话状态和对话动作集合都可以分解成语义槽(slot)相关和语义槽无关的两大部分,语义槽相关的部分可以进一步分解到每个具体的语义槽上。具体地,置信状态b可以分解成,其中,是置信对话状态中与语义槽无关的部分,是置信状态中与第 i 个语义槽相关的部分;可能的对话动作集合A可以分解成,是可能的对话动作中与语义槽无关的动作的集合,是可能的动作中与第 i 个语义槽相关的对话动作的结合。
基于这种分解,我们提出一种多智能体对话策略(Multi-Agent Dialogue Policy, MADP)。MADP 包括两种智能体:一个语义槽无关的智能体(G-Agent)和 n 个语义槽有关的智能体 (S-Agent)。MADP 框架是一个对话策略的表示方法,不依赖于具体的强化学习算法,因此它的训练可以使用大多数 DRL 算法,这里我们用 DQN 算法为例进行介绍,称之为 MADQN。
如图 3(a)所示的 MADQN 示例有 4 个 S-Agent 和一个 G-Agent。G-Agent 的输入是,输出是中每个可能动作对应的 Q 值;第 i 个 S-Agent 的输入是,输出是中每个可能动作对应的 Q 值。在决策时,选择所有智能体中 Q 值最大的动作作为最终的回复动作。每个智能体在计算各自的 Q 值时,中间会有消息交换,如图 3(b)所示,在第 i 个隐层后,每个智能体会先给其它智能体发送消息,然后再接收其它智能体发过来的消息。消息可能的形式有很多,一种简单的方式可以直接把第 i 层的隐层向量和当作消息。具体地,第 j 个 S-Agent 会收到其它 S-Agent 的消息
和 G-Agent 发过来的消息。在收到这些消息后,S-Agent 会将隐状态从更新到,如图 3(c)中的上图所示:
其中 是激活函数,比如 ReLU。,和是网络参数,所有的 S-Agent 共享参数。类似地,G-Agent 会收到所有 S-Agents 发过来的消息:
然后 G-Agent 将更新到,如图 3(c)下图所示:
其中,和是网络参数。
2)共享-私有加权网络
在上面的介绍中,所有的 S-Agent 共享参数,相应的 MADQN 称之为 MADQN_S。当领域任务较简单,例如语义槽个数较少且特性相同,S-Agent 的所有参数都共享是没有问题的,但是当领域任务较复杂时,例如语义槽个数较多或每个语义槽的特性差异较大时,则每个 S-Agent 除了共有参数外,还需要有自己的私有参数来捕捉每个语义槽的私有特性。在 MADQN 的基础上,我们提出了一种共享-私有加权网络(Shared-Private Weighted Network, SPWN),在每个 S-Agent 中引入私有参数,相应的 MADQN 称之为 MADQN_SP,原始没有私有参数的 MADQN 称为 MADQN_S。在 MADQN_SP 中,对于第 j 个 S-Agent,除了有共享参数外,还有对应的私有参数。如图 4 所示,在计算时,两个子网络分别用两套参数进行计算,然后进行加权:
其中,Net 就是上图中的两个子网络,是加权系数。
3)对话策略自适应过程
步骤一:在原有领域中训练 MADQN;
步骤二:当领域扩展时,为每个新增的语义槽添加一个对应的 S-Agent;
步骤三:如果 MADQN 是 MADQN_S,即 S-Agent 没有私有参数,则新增加的 S-Agent 直接使用共享参数;如果 MADQN 是 MADQN_SP,即 S-Agent 除了共享参数还有私有参数,则新增加的 S-Agent 的共享参数直接使用之前其它 S-Agent 的共享参数,而私有参数用共享参数加上很小的噪音进行初始化;
步骤四:在扩展后的领域继续训练 MADQN。
实验结果:
1)策略的快速学习
我们先在 DSTC2 领域上比较了我们提出的多智能体对话策略(MADQN_S 和 MADQN_SP)和普通的基于 DQN 的对话策略,这三个模型都是在 DSTC2 领域上从头开始训练,整个训练过程中的成功率变化如图 5 所示。
由图 5 结果可以发现,基于多智能体的对话策略的性能要显著好于普通的 DQN 策略。这个原因是,由于 S-Agent 之间有共享参数,S-Agent 学到的技能可以相互之间迁移,从而加快学习。
2)领域自适应
这一小节我们比较提出的多智能体的对话策略(MADQN_S 和 MADQN_SP)和普通的 DQN 的领域迁移效果。我们先在 DSTC2_Simple 领域上训练这三个策略,DSTC2_Simple 领域比 DSTC2 少一个语义槽(pricerange)。然后,我们将领域从 DSTC2_Simple 扩展到 DSTC2,即增加一个新的语义槽 pricerange。当领域扩展后,DQN 的迁移方法如图 2 所示,即输入层和输出层的维度增加,对应的新增的参数随机初始化,然后在新领域 DSTC2 接着训练。MADQN_S 和 MADQN_SP 按照上面介绍的对话策略自适应过程进行训练。领域扩展到 DSTC2 上后,训练过程的成功率如图 6 所示。我们可以发现,基于多智能体的对话策略的自适应效果要显著好于普通的 DQN 策略自适应的效果。
研究结论:
针对对话领域扩展和迁移的问题,本文提出一种多智能体对话策略(MADP)。MADP 包括一个语义槽无关的智能体(G-Agent)和一些语义槽相关的智能体(S-Agent)。每个 S-Agent 除了有私有参数外,还有相互之间共享的参数。这些共享的参数不仅可以使得在一个领域中 S-Agent 之间的技能可以相互迁移,而且当领域进行迁移时,S-Agent 中的共享参数可以直接迁移到新领域中。