《Meta Dialogue Policy Learning》
作者:微软2020
介绍:
- 研究任务型对话中DP组件的few shot问题与新领域迁移。
- 提出了DTQN以利用跨domains的low-level共享信号(如动作、槽位)。
- 把DTQN嵌入到一个meta-Learning框架,引入了Meta-DTQN。
注意现在这个论文还在under review,所以源码就别想了,不过可以去ConvLab上搜下试试。
Introduction
多领域问答:复杂的系统比如Siri,通常包含thousands of task domains。总之,新领域迁移,或者few-shot,是一大问题。
DP = POL = 对话策略管理 = 给定state和user-goal,输出next-step-action。
由于对话会跨越多轮,DP通常需要使用强化学习。
传统方法在算法层面内在地无法实现向新领域的迁移。
我们提出了一个思想,即there is often shareable low-level information between different domains.它们可以在上下文表示与agent策略选择上构成相似性。提出了一个基于DQN的强化学习算法,DTQN,hierarchically model cross-domain relations at domain-level, act-level and slot-level。
【按:这里所谓的信息,就是两个领域拥有same-name的act和slot。至于3-level层级建模,说穿了,就是多利用底层的低维信息。】
元学习框架:元学习框架MAML用于adapt models to new tasks with a small number of data。过去的元学习框架主要都是NLG以及监督学习,POL以及强化学习的则少很多,而这就是本文的第二个创新点。作者基于MAML元学习框架进行魔改,引入了很多trick如dual-replay机制,warm-up RBS机制等等,使得其胜任了任务型对话POL的task。
【按: meta-learning即元学习,也可以称为“learning to learn”。常见的深度学习模型,目的是学习一个用于预测的数学模型。而元学习面向的不是学习的结果,而是学习的过程。其学习的不是一个直接用于预测的数学模型,而是学习“如何更快更好地学习一个数学模型”。 了解元学习框架需要多看参考文献,这里不赘述了。】
P.S. 作者在论文内多次提到附录,但是论文里根本没有附录,怎么回事?
2 参考文献
| No. | 类型 | 内容 | 重要性 |
|---|---|---|---|
| 1 | 早期RL与策略对话的结合 | Model-based RL | 3 |
| 2 | 基于multi-hot的POL | temporal control。对话任务的完成需要的回合会越来越多。 | 2 |
| 3 | 基于multi-hot的POL | Bbq-networks | 2 |
| 4 | 基于multi-hot的POL | ConvLab。这里的multi-hot state向量包括6个基本特征类,例如request和inform。 | 4 |
| 5 | 早期RL | Playing atari | 0 |
| 6 | Meta-learning框架 | Model-Agnostic Meta-Learning (MAML) framework。can applies to any optimizable system. | 4 |
| 7 | Meta-learning框架 | off-policy meta-reinforcement learning | 2 |
| 8 | Meta-learning框架用于NLG | The domain adaptive dialog generation method (DAML)。It places the state encoder and response generator into the MAML framework to learn general features across multiple tasks | 2 |
| 9 | 早期RL | Meta-supervised-learning | 0 |
| 10 | MultiWoz | 数据集 | 1 |
| 11 | 基于人工规则的POL | - | 1 |
| 12 | 早期RL | RL的科普扫盲 | 0 |
| 13 | 早期RL | 2015年 | 0 |
| 14 | 早期RL与策略对话的结合 | Sample efficient on-line learning of optimal dialogue policies with kalman temporal differences. | 1 |
| 15 | 层级POL | subgoal discovery for hierarchical dialogue policy learning | 1 |
| 16 | Meta-learning框架 | finding an effective prior as initialization for new task learning | 1 |
| 17 | Meta-learning框架 | by a meta-learner to optimize the model which can quickly adapt to new domains | 3 |
| 18 | 早期RL | DQN | 1 |
| 19 | 早期RL与策略对话的结合 | Replay Buffer Spiking (RBS) | 2 |
RL扫盲的,太老的POL都不用管了。核心就是要了解基于MultiWOZ数据集做POL的基本程式,以及如何与RL结合。
一些参考:
https://www.zhihu.com/question/57159315
https://zhuanlan.zhihu.com/p/57864886
3 Problem Formulation
3.1 Reinforced Dialogue Agent
RL用于POL,则Reward r r r measures the degree of success of a dialogue。例如在ConvLab中,reward与对话轮数L有关。
RL内有state(envrioument, oveservation),有act。用于POL,state就是对话状态s,act就是系统动作a。Q函数就是Q(s, a)
给定s,agent根据 ϵ \epsilon ϵ-greedy策略选择a。这里和DQN就很像了,比如replay buffer也有。最终loss也是均方误差。
3.2 Environment and Domain
用户模拟器:首先,模拟器具化一个对话目标goal,然后,agent努力完成这个目标。目标可能涉及1到多个domains。
We split all domains into source domains and target domains to fit the meta-learning scenario。
【按:即是source domain用于training,target domain用于adaptation。而不是把全部领域都一股脑地训练,那样还怎么表现模型的跨领域迁移能力对吧】
3.3 State Representation

左:传统DQN系统。
缺陷:
(1)6个multi-hot特征向量彼此相对隔绝,缺乏内部联系的考虑。(state信息不共享)
(2)来自不同domain的act是独立建模的回归类。(action信息不共享)
总结就是action与state信息可以也应该跨领域共享。
右:DTQN
jointly optimizes the policy network and domain knowledge representations.
Framework
本节介绍核心创新点。4.1节介绍我们提出的DTQN强化学习算法。4.2节介绍我们如何将其用于元学习框架。
4.1 DTQN
system action space:A
dialogue state space:S
把state与actions层级分解为4个嵌入子空间:
领域空间D,动作空间C,槽位空间O,值空间V。
原来的state与actions则通过这4个子空间嵌入的联合编码获得。
【按:说的很绕。其实,就是指利用domain,slot,value,act的词向量,来构建system action 与dialogue state 的嵌入特征向量。由于数据集里system action 与dialogue state都是结构化的domain,slot,value,act实例的组合,所以就等于system action 与dialogue state的嵌入空间降维到了更加线性无关的子空间。】
(1)state encoder
过去已定义好的dialogue state特征类,我们保留。

【按:这里不太懂。依图看,6个feature对应6个act?inform,request,thank,bye,greet,booking?】
将
H
=
6
H=6
H=6类对话状态特征向量用如下方法转化成最终该dialog state的向量:
s
=
R
e
L
U
(
W
s
[
s
1
,
s
2
,
.
.
.
,
s
H
]
)
s=\bold {ReLU}(W_s[s_1,s_2,...,s_H])
s=ReLU(Ws[s1,s2,...,sH])
s
h
s_h
sh(
h
∈
[
1
,
H
]
h\in[1,H]
h∈[1,H])是每一个特征类的特征向量,H个拼起来,用线性层映射到
s
s
s,其是一个长度为
d
s
d_s
ds的向量。
【按:每个domain都有自己特有的act特征集?这里需要翻引用的文献才能明白。】
接下来的问题就是怎么计算 s h s_h sh。
注意每个
s
h
s_h
sh都包含了
∣
D
h
∣
|D_h|
∣Dh∣个domain-specific特征。将第
h
h
h个特征类的特征向量
s
h
s_h
sh的第
i
i
i个(
i
∈
[
1
,
∣
D
h
∣
]
i\in[1,|D_h|]
i∈[1,∣Dh∣])domain-specific组成部分记为
s
^
h
,
i
\hat s_{h,i}
s^h,i,包含了该act-domain的信息,全部本体内的槽值对信息,以及标志domain是否active的二值信息(concat)
s
^
h
,
i
=
[
d
h
,
i
,
a
v
g
(
o
⊙
v
)
,
u
h
,
i
]
\hat s_{h,i}=[d_{h,i}, \bold{avg}(o \odot v),u_{h,i}]
s^h,i=[dh,i,avg(o⊙v),uh,i]
s h = 1 / ∣ D h ∣ ⋅ ∑ i = 1 ∣ D h ∣ ( R e s i d u a l ( s ^ h , i ) ) s_h=1/|D_h| ·\sum^{|D_h|}_{i=1}(\bold{Residual}(\hat s_{h,i})) sh=1/∣Dh∣⋅i=1∑∣Dh∣(Residual(s^h,i))
把针对每个领域的特有特征加和求平均,作为最终第 h h h个特征类的特征向量。
(2)action encoder
传统DQN仅编码dialogue states。
而我们则用一个action encoder显式地建模system actions
对每一个act a a a,定义包含这个act的所有领域构成集合为 D a D_a Da,
其中第
l
l
l个domain(
l
∈
[
1
,
∣
D
a
∣
]
l\in[1, |D_a|]
l∈[1,∣Da∣])的特征定义为
a
^
l
=
[
d
l
,
c
l
,
a
v
g
(
o
)
]
\hat a_{l}=[d_l, c_l, \bold {avg}(o)]
a^l=[dl,cl,avg(o)]
即领域的嵌入向量;动作嵌入向量;全部槽位嵌入向量的平均——三者拼接。
a
=
1
/
∣
D
h
∣
⋅
∑
l
=
1
∣
D
h
∣
(
R
e
s
i
d
u
a
l
(
a
^
l
)
)
a=1/|D_h| ·\sum^{|D_h|}_{l=1}(\bold{Residual}(\hat a_l))
a=1/∣Dh∣⋅l=1∑∣Dh∣(Residual(a^l))
定义上式为最终的该system action的特征向量。
是一个长度为 d a d_a da的向量。
【按:state encoders与action encoders的嵌入表是共享的】
一共有 ∣ A ∣ |A| ∣A∣个这种act向量。将全部act的特征向量堆叠为一个矩阵 A ∈ R ∣ A ∣ × d a A\in R^{|A| \times d_a} A∈R∣A∣×da。
(4)Q-values
上面得到dialogue states空间的特征向量
s
∈
R
d
s
s\in R^{d_s}
s∈Rds,又得到了dialogue actions空间每一个act的特征向量
a
∈
R
d
a
a\in R^{d_a}
a∈Rda,用一个双线性张量积将两个向量乘起来,得到一个标量:
v
=
1
d
a
a
W
q
s
v = \frac {1}{\sqrt{d_a}}aW_qs
v=da1aWqs
它就是当前对话状态情况下,系统动作为a对应的Q值。
4.2 Meta Reinforcement Learning with Dual Replay
伪代码如下:

policy network: Q Q Q
target network: Q ′ Q' Q′
训练时:
外循环:取样K个dialogue goal作训练用task
内循环:for k in range(K):
- agent基于task t k t_k tk与环境交互,收集轨迹,存在一个replay buffer M t r M_{tr} Mtr里。
- 从 M t r M_{tr} Mtr中采样,得到一minibatch个该任务的实验对象: B t r t k B^{t_k}_{tr} Btrtk
- 用DQN经典Loss公式,计算损失函数
- 更新一次参数 θ Q ( k ) \theta_{Q}^{(k)} θQ(k) from θ Q \theta_{Q} θQ
- 根据更新后的网络参数,agent再与环境交互,取得轨迹 B e v t k B_{ev}^{t_k} Bevtk

- 这一步逐渐特殊。论理,应当把根据 B e v t k B_{ev}^{t_k} Bevtk计算的task eval loss用于更新 θ Q \theta_Q θQ。但是,这种on-policy学习,在初始阶段会遭受sparse rewards的问题。为什么会稀疏呢?因为跨领域对话场景下,一则要探索的state-action空间非常大,二则完成任务的回合数会非常多,三则前两个问题在未来随着新领域集成到系统里会变得越来越严重。因此,agent就容易过拟合on-policy data,掉入决策空间的局部最小点。故,作者提出了一个dual-replay framework以支持有效的off-poliicy学习。即,Apart from the main replay buffer M t r M_{tr} Mtr for meta-training, we construct a task evaluation memory M e v M_{ev} Mev。说穿了,就是训练阶段的task与估计阶段的task分开存储。【按:这一段是重点,以后细化】
- 另外,我们还利用了一个imitation learning的变体,**Replay Buffer Spiking (RBS)**来warm up学习过程。在开始实验前,先拿一批数据以基于规则的方法对buffer做初始化。这样能让从 M e v M_{ev} Mev采用得到的 B e v t k B_{ev}^{t_k} Bevtk是混合了on-policy与off-policy数据。然后,根据 B e v t k B_{ev}^{t_k} Bevtk计算的task eval loss用于更新 θ Q \theta_Q θQ。

测试时
for an unseen domain, we adopt a similar off-policy approach for meta-adaptation.
这种train-test consistency(训练-测试一致性)规避了the known difficulty in on-policy meta-adaptation with off-policy meta-training
事实上,传统的MAML-RL框架,可以视作我们的dual-replay结构的一个特例(set the task evaluation memory M e v M_{ev} Mev to ∣ B e v t k ∣ |B^{t_k} _{ev}| ∣Bevtk∣)
Experiment
5.1 Setup
数据集:multiwoz2.0
基本模式:training-and-adaptation
- source domain:attraction, restaurant, taxi and hospital for training
- target domain:hotel, train and police for adaptation
我们设置了两种实验环境:
- single-domain:agents are trained and tested with only single-domain dialogue goals
- composite-domain:for each task in meta-training, we first select a seed domain d ∗ d^* d∗ and then sample domain composition which contains d ∗ d^* d∗. The trained model is then adapted and evaluated in various domain compositions containing d ∗ d^* d∗.
【按:原始数据集内以数据dial(goal)为单位,有些dial仅涉及1个domain,有些dial则涉及两到三个。总共本体里有7种domain。单领域环境很简单。组合领域环境则根据seed domain的选取衍生多种子环境。】
系统:DQN + DTQN两种RL算法,分有无RBS和有无dual replay来做消融实验。few shot上,选取1000个数据。
实施细节:所有agent都在ConvLab上开发。batch_size=16,training_replay_buffer.size() = evaluation_replay_buffer.size() = 50000。在训练阶段,前1000个episode对buffer初始化。在adapt阶段,single-domain为10个episode;composite-domain为前50个episode。
5.2 Evaluation Results


5.2.1 Few-shot Models
| No. | 系统 |
|---|---|
| 1 | DQN-1K |
| 2 | DTQN-1K |
both models are trained from scratch with the 1,000 frames in the target domains.
DQN-1K在向Hotel迁移时完全失败了。而DTQN-1K全面胜利。
5.2.2 Adaptive Models
| No. | 系统 | 说明 | 单领域 | 多领域 |
|---|---|---|---|---|
| 1 | VANILLADQN | DQN没有RBS | 最差 | 差 |
| 2 | DQN | 标准baseline,使用binary state representations | 次差 | 差 |
| 3 | DTQN | 我们的模型(没有使用元学习框架) | 次好 | 差 |
| 4 | META-DTQN-SR | 我们的模型(使用元学习框架,没有dual replay机制)(5的single replay版本) | 一般 | 差 |
| 5 | META-DTQN | 我们的模型 | 最好 | 最好 |
由表1:在单领域方面,META-DTQN虽然最好,但优势不明显,因为单领域比较简单,DTQN也能handle。
由表2:组合领域方面,DTQN在hotel上几乎失败。在train上还算成功,因为train与taxi相似度较高。META-DTQN全面胜利。

由表3:表3就是单纯的POL性能,不管adaptive能力了。这个情况下,META-DTQN和DTQN都很好。反而META-DTQN-SR还不如DQN,这是因为single replay设置使得它过拟合了。所以,如果没有dual replay机制,宁可不要元学习框架。
Effects of dual replay:

composite-domain情况下,DTQN更易遭受initial reward sparsity的影响,这 时候dual replay机制的作用就更明显。
图2:控制task eval memory的size ∣ M e v ∣ |M_{ev}| ∣Mev∣的增大,从 ∣ M e v ∣ |M_{ev}| ∣Mev∣ = batch size ∣ B e v t k ∣ |B_{ev}^{t_k}| ∣Bevtk∣ = 16开始。size<5000时,训练loss在warm-up阶段结束后,会迅速下降,即过拟合确实是存在的,导致success rate无法提升。size > 5000时,success rate得以正常提升,说明增大size对帮助模型逃离局部最小点是有效的。
Effects of adaptation data size

接下来研究adaptation data on target domains的size对agent性能的影响。
图3:size从100增到2500,性能逐次提升。注意到,既然1个episode包含大约10个frames(samples),而我们在前50个episodes使用RBS,这意味着当size<500时,仅off-policy经历能够影响到agent。换言之,其实agent的adaptation能力主要提升自size - 500个on-policy数据,这再次印证了我们模型具有极强adaptation能力
Conclusion
略。
1965

被折叠的 条评论
为什么被折叠?



