ACL 2020 | 用于多领域端到端任务型对话系统的动态融合网络

本文提出动态融合网络(DF-Net),用于多领域端到端任务型对话系统,解决模型在新领域数据不足时的知识迁移问题。DF-Net 自动探索领域间相关性,通过共享-私有网络学习共享和领域特有知识,实现更好的跨领域性能和迁移能力。在 SMD 和 Multi-WOZ 数据集上,模型超越现有方法,尤其在低资源场景下表现出显著优势。
摘要由CSDN通过智能技术生成

©PaperWeekly 原创 · 作者|王馨月

学校|四川大学本科生

研究方向|NLP

近期的研究已经在端到端面向任务对话系统中取得了很多的进步,然而,大部分模型还是依赖于大规模的训练数据,且只适用于一些特定的任务如导航和时间安排。这样的模型很难扩展到一个只有少量标注数据的新领域。

目前很少有研究针对如何有效利用来自所有领域的数据去提升模型在各个领域以及未发掘的领域的表现进行研究。

对于这一问题,本文提出了能够充分利用领域知识的方法,并引入了一个共享-私有网络来学习一些共享的和特有的知识。此外,本文还提出了一种新颖的动态融合网络(Dynamic Fusion Network, DF-Net),能够自动地探索目标领域和各个源领域之间的相关性。

结果显示,此模型表现优于现有的多领域对话模型,获得了 SOTA 的效果。此外,在训练数据较少的情况下,模型的迁移能力比之前最好的模型平均超过了 13.9%。

论文标题:Dynamic Fusion Network for Multi-Domain End-to-end Task-Oriented Dialog

论文来源:ACL 2020

论文链接:https://arxiv.org/abs/2004.11019

代码链接:https://github.com/LooperXX/DF-Net

论文介绍

对话系统一般按照涉及的领域分为两类:开放域 (open-domin) 对话系统和面向任务 (task-oriented) 对话系统。面向任务的对话系统用于帮助用户达到特定的目标比如预定餐厅和询问导航。近年来,端到端的方法一般事 Seq2Seq 模型来基于对话历史生成回应。

如图,是一个加入来自 SMD 数据集的基于知识 (Knowledge base, KB) 的面向任务的对话的例子。

虽然已经达到了比较好的效果,但端到端的模型依赖于大量的标注数据,这就导致了模型在一个新拓展的领域上很难利用。而实际上,对于一个新的领域,总是很难收集足够多的数据。这就使得将知识从具有充足标注数据的源领域迁移到一个只有少量标注数据的新领域成为非常重要的问题。

已有的工作可以分为两类:第一类是简单地结合多领域的数据集进行训练,这种方法能够隐含地提取共享的特征却很难有效捕捉领域特有的知识,如图 (a);第二类是在各个领域单独地训练模型,能够很好地捕捉领域特有的知识,却忽视了不同领域间共有的知识,如图 (b)。

本文通过建模不同领域间知识的连接来解决已有方法的局限。已有的一个简单的baseline如图 (c),将领域共享的和领域私有的特征合并在一个共享-私有 (shared-private) 架构中。

这种方法区分了共享以及私有的知识,但还存在两个问题:一是面对一个几乎不具备数据的新领域时,私有模块无法有效提取对应的领域知识;二是这个架构忽略了一些领域子集间细粒度的想关性(比如和天气领域相比,导航领域和规划领域更相关)。

为了解决上述问题,论文进一步提出了一个新颖的 Dynamic Fusion Network (DF-Net),如图 (d)。相比于 shared-private 模型,即将介绍的动态融合模块明确地捕捉领域间的相关性。

特别地,本文用一个门来自动地找到当前输入和所有领域特有知识模型间的相关性,进一步在提取知识时对各个领域安排一个权重。这种机制可以用在 encoder 和 decoder 上,同时还有一个记忆模块来基于特征查询知识。这种模型能够在面对一个几乎没有训练数据的模型时最大程度利用已有的领域,这是 baseline 模型不能达到的。

模型在公开数据集 SMD 和 Multi-WOZ 2.1 上进行了实验,获得 SOTA 效果。同时本文也是第一个在多领域端到端任务型对话系统中探索 shared-private 架构的工作。

模型架构

模型架构基于 Seq2Seq 对话生成模型。如图所示,模型由三个主要部分构成。首先是一个 shared-private 架构用于学习共享的知识以及对应的领域特有特征,接着用一个动态融合网络来动态地利用所有领域间的相关性提供给下一步细粒度知识迁移。

此外,本文还使用了对抗训练 (adversarial training) 来促使共享模块生成领域共享特征。

2.1 Seq2Seq对话生成

本文将基于知识的面向任务 Seq2Seq 对话生成定义为根据对话历史 和基于的知识 KB 找到系统回应 的过程。在普通的 Seq2Seq 面向任务对话系统中,一般用 LSTM 编码对话历史 来生成共享上下文敏感的隐藏状态 ,再在 decoding 过程用 LSTM 预测输出。

区别于传统的 Seq2Seq 文本生成,成功的面向任务对话系统将很大程度上依赖于 KB 查询。因此本文采用了全局-局部的记忆指针网络 (global-to-local memory pointer mechanism, GLMP) 来查询 KB 中的实体。

GLMP: GLMP 是基于 Mem2Seq 的改进,整体框架基于 MemNN,包含 encoder 和 decoder,encoder 编码对话历史,输出全局记忆指针和全局上下文表示。decoder 提出 sketch RNN,先产生 sketch 的未填充 slot 的响应,再根据全局记忆指针过滤外部知识库查找信息,最后用局部记忆指针实例化未填充的 slot。

如图 (a) 外部知识 (EK) 中存储着 B 和 X,其中实体已三元组形式存储。对于一个 k 跳的记忆网络,外部知识是由一个可训练的 embedding 矩阵组 C 组成。接下来的问题就是在 Encoder 和 Decoder 中查询知识了。

在 Encoder 中查询知识采用了最后一个隐藏状态作为初始查询序列向量 ,在 k 跳中循环时可以通过与 embedding 矩阵组中的记忆位置利用 Softmax 计算出 k 跳时的 attention 权重,利用 Sigmoid 算出全局记忆指针 ,用于 filter 出外部知识用于 decoding 过程中的相关知识。最终模型通过加权记忆位置读取出机器并更新查询向量,计算出编码后的 KB 信息,用于初始化 decoder。

在 Decoder 中查询知识使用了一个用特殊 token 开头的 sketch tag 来标注所有可能的 slot 类型(比如,

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值