一种多领域动态融合对话模型介绍

Dynamic Fusion Network for Multi-Domain End-to-end Task-Oriented Dialog

论文链接:https://arxiv.org/abs/2004.11019 (文中的代码开源)

摘要

绝大多数神经网络对话模型都依赖大量的训练数据,但并非所有对话领域都能有大量的数据可用。然而,关于如何有效地使用来自所有域的数据来改进每个域和不可见域的性能的研究相对较少。为此,文中研究了明确利用领域知识和引入共享-私有网络来学习共享的和特有的知识的方法。此外,文中提出了一种新颖的动态融合网络(DF-Net),它能自动探索目标领域和每个源领域之间的关系,结果显示,该模型表现优于现有的多领域对话模型,获得了SOTA的效果。此外,在训练数据较少的情况下,模型的迁移能力比之前最好的超过了13.9%左右。

介绍

现有的方法可以被分为两类:如图 (a) 所示,第一种是简单将各种领域的数据混合起来训练,这样的方法可以隐式地提取共享的特性,但是不能有效地捕获领域特定的知识。第二种如图(b)所示,模型在每个领域上单独训练,这样能够更好的捕获领域特定的知识,但是却忽略了领域间共享的知识。

一种多领域动态融合对话模型介绍

有一种简单的基线模型是将领域共享的和领域特有的特征在一个共享-私有框架中进行合并,图(c),它包括用于捕获域共享特性的共享模块和用于每个域的私有模块,该方法明确区分了共享知识和私有知识。然而这种框架依然存在两个问题:1)给定一个数据量很少的新领域,私有模块很难有效地提取出相应的领域知识;2)该框架忽略了跨特定领域子集的细粒度相关性(例如:schedule领域与navigation领域的相关性要超过weather领域)

为了解决上述问题,文中提出了一种动态融合网络,如图(d)所示,对比于共享-私有模型,该模型进一步引入动态融合模块显式地捕捉领域之间的相关性。特别地,利用一个门控机制自动寻找当前输入和所有的领域特定模型之间的相关性,以便为每个领域分配权重用于提取知识。编码器和解码器以及基于特征查询知识的记忆模块都用上了这种机制。给定一个几乎没有训练数据的新领域时,这个模型仍然可以充分利用现有域,这是基线模型做不到的。

模型结构

模型是基于seq2seq对话生成模型的,如下图(a)所示,为了显式集成领域认知,文中提出使用shared-private框架来学习共享的和相应的领域特定特征,如图(b)。接下来,文中提出了使用一个动态融合网络来动态地利用所有领域之间的相关行以进行细粒度的知识传输,如图(c)。此外,文中还使用了对抗性训练来促使共享模块生成领域共享特性。

一种多领域动态融合对话模型介绍

 

1. seq2seq对话生成

文中将seq2seq任务型对话生成任务定义为根据输入对话历史 X 和知识库 B 来寻找系统响应 Y。不同于典型的seq2seq模型,任务型对话系统中成功的会话依赖于精确的知识库查询。文中采用了global-to-local记忆指针机制(GLMP)来查询知识库中的实体。外部知识记忆用来存储知识库 B 和对话历史 X。KB 记忆是为知识库设计的,而对话记忆是用于直接复制历史词汇。外部知识记忆中的实体以三元组的形式表示,并存储在记忆模块中。对于一个K-hop 记忆网络,外部知识是由一组可训练的embedding矩阵 C=(C^1,,C^{k+1})C=(C​1​​,,C​k+1​​) 组成。为了增加模型和知识模块的交互,模型在编码和解码的过程中都会进行知识库查询。
在编码器中查询知识

一种多领域动态融合对话模型介绍

使用最后一个隐层状态作为初始化的查询向量:

<br>q_{enc}^1=h_T<br><br>q​enc​1​​=h​T​​<br>

此外,它能够循环 k 跳并计算每一跳之上的 attention 权重:

<br>p<em>i^k=Softmax((q</em>{enc}^k)^Tc_i^k)<br><br>p<em>i​k​​=Softmax((q</em>enc​k​​)​T​​c​i​k​​)<br>

最后模型通过 在c^{k+1}c​k+1​​ 上进行加权求和读出记忆o^ko​k​​,并更新查询向量q_{enc}^{k+1}q​enc​k+1​​:

<br>o<em>{enc}^k=\sum_ip_i^kc_k^{k+1},\space q</em>{enc}^{k+1}=q<em>{enc}^k+o</em>{enc}^k<br><br>o<em>enc​k​​=∑​i​​p​i​k​​c​k​k+1​​, q</em>enc​k+1​​=q<em>enc​k​​+o</em>enc​k​​<br>

q_{enc}^{k+1}q​enc​k+1​​ 可以看作是编码的知识库信息,并且被用于初始化解码器。

在解码器中查询知识

一种多领域动态融合对话模型介绍

使用一个 sketch 标签来表示相同类型的所有可能的slot 类型(例如,@address表示所有的 Address)。通过式子4获得 t 时间步的 sketch 标签后,使用attention机制得到的$h{dec,t}^\prime$ 与 LSTM 解码得到的 $h{dec,t}$ 连接起来查询知识,这一过程与编码器中的查询过程类似:

<br>q<em>{dec}^1=[h</em>{dec,t},h_{dec,t}^\prime]<br><br>q<em>dec​1​​=[h</em>dec,t,h​dec,t​′​​]<br>

<br>p<em>i^k=Softmax((q</em>{dec}^k)^Tc_i^kg_i^k)<br><br>p<em>i​k​​=Softmax((q</em>dec​k​​)​T​​c​i​k​​g​i​k​​)<br>

这里,作者将 P<em>t=(p_1^k,,p</em>{b+T}^k)P<em>t=(p​1​k​​,,p</em>b+T​k​​) 视为查询得到的知识的概率,并且选择从查询到的结果中概率最高的词作为生成的词。

2. shared-private 编解码器模型

之前提到的模型在混合的多领域数据集上进行训练,模型的参数在所有领域都是共享的,作者将这种模型称之为共享编解码器模型。这里作者提出了一个使用shared-private框架,包括一个共享的编解码器用于捕捉领域共享的特征和一个 private模型用于给每个领域显式捕捉领域特定的特征。每个实例 X 既要经过共享的编解码器也要经过相应的私有的编解码器。

增强的编码器

给定一个实例以及它所属的领域,shared-private编解码器产生一个编码序列 H_{enc}^{{s,d}}H​enc​s,d​​,包含共享的和来自相应编码器的领域特定表示:

<br>H<em>{enc}^{{s,d}}=(h</em>{enc,1}^{{s,d}}m,\cdots,h<em>{enc,T}^{{s,d}})=BiLSTM</em>{enc}^{{s,d}}(X)<br><br>H<em>enc​s,d​​=(h</em>enc,1​s,d​​m,⋯,h<em>enc,T​s,d​​)=BiLSTM</em>enc​s,d​​(X)<br>

最终的 shared-private 编码器表示由下式得到:

<br>H<em>{enc}^f=W_2(LeakyReLU(W1[H</em>{enc}^s,H_{enc}^d]))<br><br>H<em>enc​f​​=W​2​​(LeakyReLU(W1[H</em>enc​s​​,H​enc​d​​]))<br>

为了便于说明, 作者将 shared-specific融合函数定义为:

<br>shprivate:(H<em>{enc}^s,H</em>{enc}^d)\rightarrow H_{enc}^f<br><br>shprivate:(H<em>enc​s​​,H</em>enc​d​​)→H​enc​f​​<br>

此外,作者还在编码状态上使用了self-attention 获得了上下文向量 c_{enc}^fc​enc​f​​,并使用它代替式(5)中的 h_Th​T​​。这使得查询向量结合了领域共享和领域特定的特征。

3. 用于查询知识的动态融合网络

上述的 shared-private 框架可以捕捉到相应的专有特征,但是却忽视了跨领域的子集中的细粒度相关性。作者进一步提出一个动态融合层来显式利用所有的领域知识,如图所示。从任意领域给定一个实例,作者首先将它放入多个私有的编-解码器中,以从所有领域中获得领域特定的特征。接下来,所有的领域特定的特征被一个动态领域特定特征融合模块所融合,然后通过shared-specific特征融合获得 shared-specific 特征。

一种多领域动态融合对话模型介绍

动态领域特定特征融合

给定所有领域的特 domain-specific 特征,一种 Mixture-of-Experts(MoE)机制被用于在编码器和解码器中动态合当前输入的所有的领域特定知识。

一种多领域动态融合对话模型介绍

接下来详细描述如何融合解码的时间步t,编码器的融合过程也一样:在第 t 个解码时间步给定所有的领域特征表示expert gate E 将其当作输入,输出一个 softmax 分数代表当前输入的token 于每个领域之间的相关程度。作者通过一个简单的前馈层来实现:

<br>alpha<em>t=Softmax(W*h</em>{dec,t}^d+b)<br><br>alpha<em>t=Softmax(W∗h</em>dec,t​d​​+b)<br>

最终的领域特定的特征向量混合了所有领域的输出,取决于 expert gate 的权重.以解码器为例,在训练期间,作者使用交叉熵损失 L_{dec}^{moe}L​dec​moe​​ 作为监督信号让 expert gate来预测响应中每个 token 的领域,expert gate 输出的 alpha_t可以被多个专用解码器视为第 t 个 token 的领域概率分布预测值。因此,领域预测越准确,expert 得到的结果越正确.

Shared-specific 特征融合

作者直接使用 shprivate 操作来融合共享的和最终的 domain-specific 特征:

<br>shprivate:(h<em>{dec}^s,h</em>{dec,t}^{d<em>f})\rightarrow h</em>{dec,t}^f<br><br>shprivate:(h<em>dec​s​​,h</em>dec,t​d<em>f​​)→h</em>dec,t​f​​<br>

最终,动态融合函数可以表示为 dynamic(h<em>{dec,t}^s,{h</em>{dec,t}^{d<em>i}}</em>{i=1}^{|{D}|})dynamic(h<em>dec,t​s​​,h</em>dec,t​d<em>i​​</em>i=1​∣D∣​​),与section 2中相似,这里用 [h<em>{dec,t}^f,h</em>{dec,t}^{f^\prime}][h<em>dec,t​f​​,h</em>dec,t​f​′​​​​] 来代替式(8)中的 [h<em>{dec,t},h</em>{dec,t}^\prime][h<em>dec,t,h</em>dec,t​′​​]。其它的部件和 section 2中的 shared-private encoder-decoder 框架一样。

对抗训练

为了促进模型学习到领域共享的特征,作者在共享的编码器和解码器模块上使用了对抗学习训练方式。

实验

1. 数据集

作者为SMD数据集和 Multi-WOZ 2.1 数据集构造了相应的 KB,数据的统计信息如图所示:

一种多领域动态融合对话模型介绍

2. 实验设置

Embedding 和 LSTM 隐层单元的维度为 128,dropout 从 {0.1,0.2}中选择,batch size 从{16,32}中选择,在框架中,作者还采用了权重类型技巧,优化器为 Adam。

3. Baselines

作者对比了他的模型和sota baselines:

  • Mem2Seq:该模型以对话历史和 KB 实体作为输入,使用一个指针 gate 来控制生成一个词表词语或从输入中选择词汇输出;
  • DSR:该模型使用对话状态表示来隐式检索 KB,并且在解码过程中应用拷贝机制从知识库中检索实体;
  • KB-retriever:模型采用了一个检索模块来检索最相关的知识库,并过滤与生成过程无关的信息;
  • GLMP:该框架采用 global-to-local 指针机制,在解码过程中对知识库进行查询;

实验结果

作者使用 BLEU 和 Micro Entity F1 作为评估指标。结果如图表所示:

一种多领域动态融合对话模型介绍

结论:1)基础的 Shared-Private框架表现要好于之前最好的模型 GLMP,这意味着领域共享和领域特有的特征结合起来之后比起仅使用隐式领域共享特征的模型,它能够更好的增强每个领域的表现;2)作者提出的框架在两个对领域任务型对话数据集上都获得了最好的表现。

实验分析

作者在 SMD 数据集上从几个方面研究了模型的强度。首先通过几个消融实验来分析不同部件的效果,接下来,构造了领域适应实验来验证模型在一个数据量很少或者没有的情况下模型的迁移能力。此外,作者还提供了动态融合层的可视化和实例研究,以便更好地理解模块如何影响和促进性能。

1. 消融实验

一种多领域动态融合对话模型介绍

消融实验结果如表中所示,1)w/o Domain-Shared Knowledge Transfer 代表除去领域共享特征,仅使用领域特定特征来生成;2)w/o Dynamic Fusion Mechanism代表仅简单将所有的领域特定特征加起来,而不是使用 MOE 机制来动态融合;3)w/o Multi-Encoder 代表移除多编码器模块,只使用一个共享编码器;4)w/o Multi-Decoder 代表移除多解码器模块;5)w/o Adversarial Training 代表移除对抗训练的实验设置;

2. 领域适应

一种多领域动态融合对话模型介绍

一种多领域动态融合对话模型介绍

一种多领域动态融合对话模型介绍

一种多领域动态融合对话模型介绍

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可,转载请附上原文出处链接和本声明。 
本文链接地址:https://www.flyai.com/article/569