博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
哈尔滨工业大学博士覃立波:多领域端到端任务型对话系统研究分享
阅读量:2244 次
发布时间:2019-05-09

本文共 7188 字,大约阅读时间需要 23 分钟。

⬆⬆⬆              点击蓝字

关注我们

AI TIME欢迎每一位AI爱好者的加入!

本期AI TIME PhD直播间,我们有幸邀请到了来自哈尔滨工业大学社会计算与信息检索研究中心的在读博士覃立波,他的研究方向为任务型对话系统。

本次演讲主题是——多领域端到端任务型对话系统研究分享 Dynamic Fusion Network for Multi-Domain End-toend Task-Oriented Dialog。

覃立波:哈尔滨工业大学社会计算与信息检索研究中心(SCIR)在读博士生,导师车万翔教授,创立知名公众号[机器学习算法与自然语言处理]及同名知乎专栏,研究兴趣为任务型对话系统,以第一作者曾在ACL、EMNLP、AAAI、IJCAI发表论文多篇。

一、经典的任务型对话系统中的pipeline结构 (Pipeline Task-oriented Dialog System)

Pipeline Task-oriented Dialog System是由自然语言理解(NLU), 对话管理(DM), 和自然语言生成(NLG)几个主要模块构成的。举例来说,语音信号输入“帮我订一张去北京的机票”,可以通过这三个主要模块得到文本回复。首先,“帮我订一张去北京的机票”会作为假设/观测 (Hypothesis/Observation) 输入到自然语言理解(NLU)模块,自然语言理解主要包括领域识别、意图识别和语义槽填充。经过自然语言理解模块后得到输出的语义帧(Semantic frame):领域为”机票“, 意图为”订机票“, 语义槽为”到达地=北京“。随后语义帧作为对话管理(DM) 的输入得到最终对话状态 (Dialogue state),”出发地=NULL,到达地=北京, 出发时间=NULL“,然后通过自然语言生成 (NLG)模块直接生成对话动作 (Dialogue action)去发出询问(出发地)并生成文本回复 (Text response)“请问您从哪里出发?”。

图1:Pipeline Task-oriented Dialog System

虽然Pipeline Task-oriented Dialog System已经在商业系统中应用比较广泛了,但它仍然会存在一些问题。第一个是错误传播(Error propagation),因为中间会经过三个模块,所以如果一个阶段出现问题,那么错误会越积越多。第二个是数据标注的困难(Heavy Data Annotation)。每一个子模块都需要标注大量数据,在现实中是不可取的。于是研究人员提出,能不能直接用端到端任务型对话系统(End-to-end Task-oriented Dialog)生成回复呢?

二、基础端到端任务型对话系统。(End-to-end Task-oriented Dialog System)

如图所示,给定一个Dialogue History X={x1,x2......xk} 和Knowledge Base B,直接生成回复Y= {y1,y2......yn}。不需要之前提到的NLU, DM, NLG模块。图中的橘黄色代表Dialog History,白色表格代表Knowledge Base,蓝色是生成的Response部分。通过给定的Dialog History和Knowledge Base,用Seq2seq Model直接生成了文本的回复。

图2:End-to-end Task-oriented Dialog

三、多领域端到端任务型对话系统。(Multi-Domain End-to-end Task-oriented Dialog System)

现在Single-Domain End-to-end Task-oriented Dialog已经获得了不错的进展,但是现实中的对话机器人可能会遇到无穷无尽的domin,而为每一个domin标注足够的数据集训练是不现实的。那么,我们能不能从一些有大量标注数据的source domain迁移knowledge到很少或者没有标注数据的target domain呢?这也就是我们今天要讲的Multi-Domain End-to-end Task-oriented Dialog。

为大家介绍一下,这个领域已经有的一些研究:

1. Key-Value Retrieval Networks for Task-Oriented Dialogue。在decode端给知识库的每个value做推荐值,然后加给生成的output的vocabulary分布使其意识到实体。

图3:Key-Value Retrieval Networks for Task-Oriented Dialogue

2. Mem2Seq: Effectively Incorporating Knowledge Bases into End-to-End Task-Oriented Dialog Systems。这篇工作也取得了比较好的性能。

图4:Mem2Seq: Effectively Incorporating Knowledge Bases into End-to-End Task-Oriented Dialog Systems

3. Global-to-local memory point networks for task-oriented dialogue。我们将重点介绍这篇工作。

图5:Global-to-local memory point networks for task-oriented dialogue

Seq2Seq Dialogue Generation中,我们定义任务时,根据Dialogue history (X)和Knowledge base (B)得到System response (Y)。

与使用普通Seq2Seq生成文本不同, 我们在公式中加入B,在储存Knowledge base (B)和Dialogue history (X)的外部知识库中查询知识,并从Dialogue history和Knowledge base中复制单词,word by word的去生成回复。

具体的Query Knowledge in Decoder是怎么做的呢?是使用sketch tags去解释所有可能生成的实体类型,比如@address代表所有Address,比如一句话“覃立波在哈工大“,会先生成模板”Name 在 Address“。Decoder的时候会有两种情况,有一种是生成普通的词汇,而更重要的一点是:实体是怎么生成的?如果判断出生成的单词不是普通单词,而是一个sketch tag,那么就会对知识库进行Query,最后挑出概率最大的值作为生成的实体。这就是Global to local memory point networks for task oriented dialogue这篇工作的模型。

但是其实以上的模型都是在混合多域混合数据集上训练通用模型,所以忽略了每个领域specific的特征。那么有没有考虑到每个领域specific特征的工作呢?

3.1考虑到每个领域specific特征的工作研究

负采样

1. Sequence-to-Sequence Learning for Task-oriented Dialogue with Dialogue State Representation。这篇工作是用Dialogue history的表示去Query知识库,并把每个domin分开来做。

图7:Sequence-to-Sequence Learning for Task-oriented Dialogue with Dialogue State Representation

2. Entity-Consistent End-to-end Task-Oriented Dialogue System with KB Retriever。这篇工作主要关注的是实体一致性的问题。如何定义实体一致呢?比如,我们问” 姚明的身高是多少?“,如果回答是” 一米 “,那么” 一米 “明显是不匹配” 姚明 “的,我们就认为这是实体不一致。我们当时做出的假设是在回复的那句话中,实体是来源于知识库的某一行的,于是就认为在某一行是实体一致的。这篇工作是第一个去探索实体一致性的,但这个方法也是在每一个domin数据集训练一个model,所以存在一些缺点,比如在考虑到specific特征后忽略了共享的特征,即忽略了不同domain之间的共享知识 (例如,位置字词既存在于schedule domain中,又存在于navigation domain中)。

图8:Entity-Consistent End-to-end Task-Oriented Dialogue System with KB Retriever

3.2合并领域共享(domain-shared)和领域私有(domain-private)特征

负采样

合并领域共享(domain-shared)和领域私有(domain-private)特征的简单的基准就是shared-private framework。我们引入动态融合模块(dynamic fusion module)以显式捕获域之间的相关性,编码器(encoder)和解码器(decoder)都采用这种机制来查询知识库。

图9:Dynamic Fusion Mechanism

接下来详细介绍一下Shared-Private Encoder-Decoder Model。每个instance X都经过共享(shared)及其对应私有(private)的专用编解码器,shared部分来捕获domain-shared features,private来考虑domain-specific features。任务型对话系统重要的是如何Query知识库,那么如何把考虑后的domain-shared features和domain-specific features查询知识库呢?我们做了简单的拼接和非线性变化,融合domain-shared features 和 domain-specific features,使用self-attention来获取上下文向量( context vector)作为query,解码器融合过程也与编码器的融合过程相同。但是这个方法也有缺点,第一个缺点是Domain B在数据量很少的时候,学习是不充分的。第二个缺点是会忽略了域的某些子集之间的细粒度相关性。

图10:Shared-Private model

为了解决以上两个缺点,我们提出了Dynamic Fusionlayer。判断domain间的相关程度以利用所有域知识并使用加权总和作为domain-specific features。给定任何domin的实例,使用多个private encoder-decoder来获取来自所有domin的domain-specific features,通过动态domain-specific feature融合模块融合它们,通过shared-specific feature模块获得shared-specific features,在编码器和解码器中应用Dynamic Fusion以查询知识库。

图11:Dynamic Fusion model

3.3实验和分析结果

负采样

实验所用数据集一个是SMD (Stanford multi-domain dialogue),一个是重标扩展的Multi-WOZ 2.1数据集。我们所用Baselines是Mem2Seq、DSR、KB-retriever、GLMP。实验结果中,可以看到Shared-private framework有不错的性能,而Dynamic Fusion framework则有了进一步提升。我们也做了一系列的消融实验(Ablation Study)去验证结果,如图所示,我们会发现每一种消融实验的final performance都会有一定程度的降低,也就验证了每一个component的有效性。

图12:实验结果

图13:Ablation Study

我们尝试在Low-Resource Setting下,保持两个domin不变,将另外的数据集变为原来数据集的1%,5%、10%、20%、30%、50%,再跑我们的模型,如图,红线代表我们的模型,黄线代表GLMP模型,可以发现我们的模型一直较高,说明有更好的鲁棒性。并且我们的模型在5%数据量的时候到达了GLMP100%数据量的结果,这证明了我们的模型在Low-Resource Setting下是非常有效的,可以有效地从其他domin转移知识以在low-resource domain获得更好的性能。

图14:Low-Resource Setting

我们也尝试了Zero-Shot Setting,从训练集中随机删除一个domin,而其他domin数据保持不变以训练模型, 如图,会发现我们的模型表现好于GLMP,这进一步证明我们框架的可移植性。

图15:Zero-Shot Setting

我们还对Dynamic Fusion Layer在low-resource (5%) setting中的每个input和每个domain的权重做了可视化,如图可以看到,”Navigate和Schedule“的颜色比”Navigate和Weather“的颜色更红一些,进一步研究发现,”location“ 和”set“同时在”navigation domain“ 和”schedule domain“ 出现,所以我们发现Navigate和Schedule可能有更近的关系。

图16:Visualization of Dynamic Fusion Layer

总结

据我们所知,这是在多域端到端任务导向对话(Multi-domain end-to-end task-oriented dialog)中有效探索Shared-private framework的第一项工作。我们扩展的动态融合框架(Dynamic fusion framework)可以利用细粒度的知识来获得所需的精度,从而使其更适合于新Domains。

论文和代码的地址都已经开源,欢迎大家去访问。

论文地址:https://www.aclweb.org/anthology/2020.acl-main.565/

代码地址:

https://github.com/LooperXX/DF-Net

REF

Eric, Mihail, and Christopher D. Manning. "Key-value retrieval networks for task-oriented dialogue." arXiv preprint arXiv:1705.05414 (2017).

Madotto, Andrea, Chien-Sheng Wu, and Pascale Fung. "Mem2seq: Effectively incorporating knowledge bases into end-to-end task-oriented dialog systems." arXiv preprint arXiv:1804.08217 (2018).

Wu, Chien-Sheng, Richard Socher, and Caiming Xiong. "Global-to-local memory pointer networks for task-oriented dialogue." arXiv preprint arXiv:1901.04713 (2019).

Wen, Haoyang, et al. "Sequence-to-sequence learning for task-oriented dialogue with dialogue state representation." arXiv preprint arXiv:1806.04441 (2018).

Qin, Libo, et al. "Entity-consistent end-to-end task-oriented dialogue system with kb retriever." arXiv preprint arXiv:1909.06762 (2019).

本文所引用图片均来自讲者覃立波PPT.

整理:李嘉琪

审稿:覃立波

排版:杨梦蒗

本周直播预告:

AI TIME欢迎AI领域学者投稿,期待大家剖析学科历史发展和前沿技术。针对热门话题,我们将邀请专家一起论道。同时,我们也长期招募优质的撰稿人,顶级的平台需要顶级的你,请将简历等信息发至yun.he@aminer.cn!

微信联系:AITIME_HY

AI TIME是清华大学计算机系一群关注人工智能发展,并有思想情怀的青年学者们创办的圈子,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法、场景、应用的本质问题进行探索,加强思想碰撞,打造一个知识分享的聚集地。

更多资讯请扫码关注

(直播回放:https://b23.tv/lAiohV)

(点击“阅读原文”下载本次报告ppt)

转载地址:http://pegbb.baihongyu.com/

你可能感兴趣的文章
使聊天机器人具有个性
查看>>
使聊天机器人的对话更有营养
查看>>
一个 tflearn 情感分析小例子
查看>>
attention 机制入门
查看>>
手把手用 IntelliJ IDEA 和 SBT 创建 scala 项目
查看>>
GAN 的 keras 实现
查看>>
AI 在 marketing 上的应用
查看>>
Logistic regression 为什么用 sigmoid ?
查看>>
Logistic Regression 为什么用极大似然函数
查看>>
LightGBM 如何调参
查看>>
用 TensorFlow.js 在浏览器中训练神经网络
查看>>
梯度消失问题与如何选择激活函数
查看>>
为什么需要 Mini-batch 梯度下降,及 TensorFlow 应用举例
查看>>
为什么在优化算法中使用指数加权平均
查看>>
初探Java设计模式5:一文了解Spring涉及到的9种设计模式
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>
Java集合详解2:一文读懂Queue和LinkedList
查看>>
Java集合详解3:一文读懂Iterator,fail-fast机制与比较器
查看>>
Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
查看>>
Java集合详解5:深入理解LinkedHashMap和LRU缓存
查看>>