摘要
策略优化是统计对话管理的核心部分。深度强化学习已成功用于静态预定义领域的对话策略优化。但是,当领域动态变化时,例如添加了一个之前未见过的新概念(或插槽),并且该概念随后可以用作数据库搜索约束,或者将一个领域的策略转移到另一个领域,对话状态空间和动作空间都将更改。因此,不同领域的模型结构必须不同。这使对话策略的适应/转移具有挑战性。本文提出了一种多agent对话策略(MADP)来解决这些问题。MADP由一些槽依赖的agent(S-Agent)和槽独立的agent(G-Agent)组成。除了每个私有参数外,S-Agent还具有共享参数。在策略转移期间,可以将S-Agent中的共享参数和G-Agent中的参数直接转移到扩展/新领域中的agent。仿真实验表明,MADP可以显着加速策略学习并促进策略适应。
1.介绍

面向任务的口语对话系统(SDS)是可以与人连续交互以完成预定义任务(例如寻找饭店或预订航班)的系统。这些系统通常根据结构化的本体进行设计,该结构化的本体由用户可能希望用来构架查询的某些概念(或槽)组成。每个槽都具有两个属性:是否可请求和可通知。如果用户可以请求槽的值,则该槽能够向用户提供信息。信息槽是用户可以提供一个值以用作对其搜索进行约束的槽。图1是寻找餐馆的对话示例。这里的
food和
area是可通知的槽,而
phone是可请求的槽。
在每轮对话中,对话状态跟踪器将为每个可通知的槽保持对话置信状态,即可能值的分布。这些具有数据库查询结果的信念状态形成对话状态
b,基于该对话状态,对话策略
π(从
b到对话动作
a=π(b)的映射函数)将决定如何响应用户。强化学习(RL)方法通常用于自动优化策略
π。最近,对话策略采用了深度强化学习(DRL)方法。这些策略通常由包括深层Q网络和策略网络在内的完全连接的神经网络表示,并在静态预定义的领域中很好地发挥作用。然而,与基于高斯过程的方法不同,它们不适合本体动态变化的情况。例如,如果添加了新的可通知槽
pricerange,则对话状态空间和动作空间将更改,因此模型结构必须不同,这可能会大大降低性能。此外,不同领域之间的策略转移也具有挑战性,因为它们的状态空间和动作空间都根本不同。
在本文中,我们提出了一种多agent的对话策略(MADP),这有助于策略的适应/转移。MADP由一些槽依赖的agent(S-Agent)和槽独立的agent(G-Agent)组成。每个S-Agent专注于一个可通知槽,而G-Agent专注于与槽无关的方面。在做出决策时,每个agent首先根据自己的策略选择一个候选动作。然后从这些候选动作中选择最终动作。S-Agent除了其私有参数外,还具有共享参数。私有参数捕获每个槽的特定特征,而共享参数捕获所有槽的共同特征。使用共享参数,可以将一个S-Agent的技能转移到另一个S-Agent,这可以加快学习过程。此外,当添加了新的槽时,共享参数可以用于初始化对应的S-Agent,即,可以将其他S-Agent的一些通用技能转移到新的S-Agent。据我们所知,本文是研究基于DRL的对话策略中政策适应/转移的首次尝试。
2.提出的框架
在本节中,我们将首先详细介绍MADP,其中S-Agent仅具有共享参数。然后,我们介绍一种为S-Agent集成私有参数和共享参数的方法,然后介绍在MADP框架下进行对话策略调整的具体过程。
注意,提出的MADP不依赖于任何特定的DRL算法,因此与所有现有DRL算法兼容。在这里,我们在深度Q网络(DQN)框架中使用它,并将其称为多agent DQN(MADQN)。
2.1 多agent对话策略MADP

假设在一个领域中有
n个可通知的槽,并且对话状态
b通常可以分解为子状态
b1?,...,bn?和
bg?,即
b=b1???????bn??bg?。
bj?(1≤j≤n)是与第
j个可通知槽相对应的置信状态,而
bg?表示与槽无关的状态,例如数据库搜索结果。类似地,可以将汇总动作划分为
n+1个集合,包括
n个与槽相关的动作集合
Aj?(1≤j≤n),例如,
request_slotj?,
confirm_slotj?,
select_slotj?以及一个与槽无关的动作集合
Ag?,例如
repeat,
offer。
MADP由
n个与槽相关的agent(即S-Agent
Aj?(1≤j≤n))组成,每个agent对应一个可通知的槽;以及一个与槽无关的agent(即G-Agent
Ag?)。图2(a)概述了以DQN作为DRL算法的MADP。
-
Aj?的输入是
bj?,输出是与
Aj?中的动作相对应的Q值
qj?,即
qj?=[Q(bj?,aj1?),??,Q(bj?,ajms??)],其中
ajk?(1≤k≤ms?)∈Aj?。
-
Ag?的输入为
bg?,输出是与
Ag?中的动作相对应的Q值
qg?,即
qg?=[Q(bg?,ag1?),??,Q(bg?,agmg??)],其中
agk?(1≤k≤mg?)∈Ag?。
为了获得所有动作的Q值
q,如图2(a)所示,将所有agent的输出连接起来,即
q=q1??????qn??qg?。进行决策时,将根据
q选择动作。
这些agent在计算自己的Q值时会有一些内部消息交换。如图2(b)所示,在第
i个隐藏层之后,
Aj?和
Ag?都将输出一些消息。在这里,我们仅将隐藏层的输出用作为消息,即
hji?表示
Aj?,
hgi?表示
Ag。
(1)在第
(i+1)个隐藏层,
Aj?的输入包括:a.其前一层
hj?的输出;b.来自其他S-Agent的消息
cji?:
n?11?∑1≤l≤n,l??=j?hji?;c.来自G-Agent
gi?的消息,
gi?=hig?。根据
hji?,
cji?和
gi?,
Aj?的第
(i+1)个隐藏层的输出显示在图2(c )的顶部,即:
hji+1?=σ(Hsi?hji?+Csi?cji?+Gsi?gi),(1)
其中
σ是非线性激活函数,例如 RELU。
θs??{Hsi?,Csi?,Gsi?}i=1L?是权重矩阵,即在所有与槽相关的agent之间共享的参数。
(2)同样地,在
Ag?的第
(i+1)个隐藏层,输入包括:a.其上一层
hgi?的输出;b.来自S-Agents的消息
cgi?:
n1?∑1≤j≤n?hji?。基于
hgi?和
cgi?,图2(c )的底部显示了
Ag?的第
(i+1)个隐藏层的输出,即:
hgi+1?=σ(Hgi?hgi?+Cgi?cgi?),(2)
其中
θg??{Hgi?,Cgi?}i=1L?是权重矩阵。
总之,MADQN可以看作是具有隐藏层
hi+1=σ(Tihi)的结构化DQN,其中
hi是所有
hji?(1≤j≤n)和
hgi?的串联表示,即
hi=h1i???????hni??hgi?。
Ti采取如下形式:
Ti=??????????Hsi?Csi??Csi?Cgi??Csi?Hsi??Csi?Cgi????????Csi?Csi??Hsi?Cgi??Gsi?Gsi??Gsi?Hsi????????????,(3)
其中
Csi?=n?11?Csi?和
Cgi?=n1?Cgi?。MADQN的训练过程类似于vanilla DQN,只是权重矩阵由等式(3)构成。
2.2 共享-私有权重网络
在槽具有相似特征的简单领域中,共享参数足以捕获不同槽之间的差异。但是,在更复杂的域中,需要私有参数来捕获其特征。在这里,我们提出了一个共享-私有权重网络(SPWN),以在S-Agent中引入私有参数。
在SPWN中,除了所有槽上的共享参数
θs??{Hsi?,Csi?,Gsi?}i=1L?之外,每个S-Agent
Aj?还具有其自己的私有参数
θj??{Hji?,Cji?,Gji?}i=1L?。对于每个输入
bj?,agent首先计算
θj?和
θs?并行的输出,然后取两个输出的加权平均值以获得最终输出
qj?,即:
qj?=αNet(bj?;θj?)+(1?α)Net(bj?;θs?),(4)
其中
α∈[0,1]是权重。Agent所在领域或任务越复杂,
α应该越大。
2.3 策略适应
基于MADP的策略适应的一般过程,即共享私有适应(SP-Adapt):
(1)初始化S-Agent
Aj?的共享参数
θs?,私有参数
θj?和G-Agent
Ag?的参数
θg?。
(2)在原始领域中训练多agent策略。
(3)扩展新领域时,新S-Agent的私有参数
θj?由
θs?初始化;或者当它转移到新域时,S-Agent的共享参数
θs′?和G-Agent的
θg′?由原始领域中的相应参数初始化,即
θs′?←θs?和
θg′?←θg?。私有参数
θj′?由带有附加噪声的
θs?初始化,即
θj′?←θs?+N(0,σnoise?I)。
(4)在扩展或新领域中不断训练策略。
另外,如果原始领域和扩展领域或新领域相对简单,并且它们的交互环境遵循相似的模式,则对S-Agent使用没有私有参数的简化MADP框架就足够了,以获得令人满意的结果,这时,S-Agent的共享参数和G-Agent的参数由原始领域中的相应参数初始化。这称为共享适应(S-Adapt)过程。