面向任务型对话的异构记忆网络 | EMNLP 2019 论文解读

简介: 在这篇文章中,我们提出了一个异构记忆网络(Heterogeneous Memory Networks, HMNs)来同步处理用户语句,对话历史以及背景知识库。HMNs由上下文无关(context-free memory)记忆网络和我们提出的上下文敏感(context-aware memory)记忆网络组成,分别用于编码、储存结构化的知识元组(knolwdge tuples)和序列化的用户语句、历史对话,并生成两个小词表分布(知识词表和历史对话词表)以及一个大词表(所有训练的词汇分布)供回复语句生成的选词。

摘要:人类通过语言将大脑里的知识表达出来,通过对话相互传递知识。机器通过学习大量的语料可以一定程度学会流畅的语句表达,但如果没有知识,则生成的只会是漂亮而无内涵的回复。传统的模块化的对话模型可以通过数据库查询等方式将关键信息填入回答的模版中,但是端到端的对话生成模型则要更复杂一些。为了解决这个问题,记忆网络(Memory Networks)通常是一个不错的技术方法。但是现有的记忆网络结合对话系统只是提供了如何引入知识的一个方法,并不能很好的处理多种来源和结构的知识。因此在这篇文章中,我们提出了一个异构记忆网络(Heterogeneous Memory Networks, HMNs)来同步处理用户语句,对话历史以及背景知识库。HMNs由上下文无关(context-free memory)记忆网络和我们提出的上下文敏感(context-aware memory)记忆网络组成,分别用于编码、储存结构化的知识元组(knolwdge tuples)和序列化的用户语句、历史对话,并生成两个小词表分布(知识词表和历史对话词表)以及一个大词表(所有训练的词汇分布)供回复语句生成的选词。在三个数据集上的实验结果表明,HMNs超过了现有的SOTA模型,能够较显著的提高端到端任务型对话模型的表现。

问题背景

人类客服在回答客户问题时首先理解用户的语言,然后到相关数据库、知识库中查询所需要的知识,最终整理并回答问题。在这个过程中如果缺乏相对应的知识数据,即使是人类也几乎不可能准确回答用户所需要的问题,因为客户可能需要的关键点就是那条数据库中的知识,而再漂亮的回复偏离了重点也是不合格的。机器也是如此。生成模型如果仅通过历史对话语料学习,最终学习到的可能只是最安全、最通用的回复,但在实际对话中缺乏关键知识,也将导致无法解决具体事务。因此在对话模型中恰当的引入知识显得至关重要。

image.png

如图所示一个典型的任务型对话,用户问题What is the address for keen需要根据上文的hotel_keen以及Knowledge Base中检索到的2_miles、578_arbol_dr等作为关键信息来生成系统回复的语句。在这种情况下,传统的pipeline类型的对话系统通常采用填槽(slot filling)以及检索的方式来查找所需的关键信息,这种方式需要大量的人工标注。深度学习的发展促使我们更进一步探索:许多[7, 8]工作证明了完全数据驱动的任务型对话也是可行具有一定前景的。现有的完全数据驱动(fully data-driven)的任务型对话模型通常基于Sequence to Sequence模型,同时采用注意力(attention)机制来引入外部知识。Madotto在这些基础上进一步提出了Mem2Seq(Memory to Sequence)模型[1],将multihop attention和pointer network的思想引入了对话生成模型。

现有的模型将不同来源、不同结构的信息杂糅、拼接到一起,用同一个网络(RNN或Memory Network)表达。但是人类思考的时候并不是将所有的信息杂糅在一起的,而是有一个思路:例如该对话任务,真人客服首先考虑的是问题,然后结合上下文,依靠这些信息查阅数据库,最后生成最后的回复。在这样的思想指导下,我们考虑不同的知识在对话这个任务中起到的作用是不同的,例如历史对话实际上指导的是上下文信息和回答的模式,而知识/数据库信息则更像插入到回复中的“值”。同样的,历史对话是一种序列化的信息,而知识库往往是一种结构化的数据,所以我们还需要对不同信息采用更适合它们结构的表达模型。因此我们提出了异构记忆网络模型(Heterogeneous Memory Networks, HMNs)结合Encoder-Decoder框架来更好的完成对话任务。本文的主要贡献在于:

  1. 我们提出了HMNs模型结合Encoder-Decoder模型第一次探索将对话历史、知识库等用不同的Memory来表示。
  2. 我们提出了一种用门机制(gating mechanism)加强的上下文敏感记忆网络(context-aware memory networks)来更好的学习、表达对话历史等上下文依赖信息。
  3. 我们在三个流行的公开数据集上进行了测试,实验结果表明对话模型总体水平显著超过现有的SOTA模型,且不同部分的改进都是有效的。

模型

我们的模型主体结构上采用端到端生成模型常用的Encoder-Decoder框架。本章将详细介绍模型结构。
1. 编码器(Encoder)

image.png

Encoder的作用是将对话历史编码和用户Query表达成一个内容向量(context vector)。Encoder部分采用了一个上下文敏感记忆网络(如下图decoder的左半部分)将历史对话和用户的Query作为输入。每一个输入的词汇由(1)token本身(2)该句话的轮次以及(3)对话的身份。例如:用户在第一轮说“hello”然后系统回复“may i help you”则输入为:[(hello, t1, user),(may, t1, sys),(I, t1, sys),(help,t1, sys), (you, t1, sys)],t1即表明为对话的第一轮,user和sys则代表是用户和系统所说的话。将hello,t1,user三个转换为vector相加则是这个词的embedding。最后将embedding的序列输入到上下闻敏感记忆网络中最终得到context vector。

image.png

2. 上下文敏感记忆网络

由于传统的记忆在储存对话历史的时候会丢弃上下文序列信息,因此我们在端到端记忆网络(end to end memory networks)[5]基础上进行修改。记忆网络由多个hop组成,hop 由每个hop自身随机初始化的嵌入矩阵的每个word embedding相加拼接而成。在此我们采用相邻权重共享方案,这意味着不仅是第k个hop中的输入嵌入矩阵,而且是第(k-1)个hop中的输出嵌入矩阵。为了让记忆网络更好地学习和表达上下文信息,我们在存储单元之间添加了一个门控机制,采用的门参考了双向GRU[6]的方法。在加载序列话信息时候,便会通过门机制得到上下文相关的词汇表达以存储至记忆网络。

将查询向量输入,计算注意力权重并得到输出向量。将查询和输出向量相加,我们就得到了第k个hop的输出。在这里也是(k+1)个hop的查询向量。

3. 异构记忆网络

HMNs如前图展示的那样,包含了一个上下文敏感记忆网络和一个上下文无关记忆网络。上下文敏感记忆网络前文已经详述,而上下文无关记忆网络则与端到端记忆网络完全相同。上下文敏感记忆网络用于储存和表达历史对话信息,而上下文无关记忆网络则用来表达知识库信息。两者连接的方式则是通过上下文敏感记忆网络输出一个查询向量作为上下文无关记忆网络的输入。这样即为RNN控制器输入到历史对话中,来结合上下文信息以及一定程度上获得回答的模式,再通过这些信息来查询关键数据,和人类的思考过程相似:根据问题首先确定回答的方式,再通过回答的方式来查找缺失的数据信息。

4. Decoder(解码器)

解码器部分包含了HMNs和一个RNN的控制器如图所示。

image.png

RNN控制器将在每个step将查询向量输入到HMNs中。在每一步中,输入的查询向量通过上下文敏感记忆网络生成对话历史词表(最后一层hop的输出)和大词表(第一层的hop输出作为预测)。而后上下文敏感网络的输出向量将作为查询向量输入上下文无关记忆网络以查询知识库信息并生成一个知识库词表。最后通过选词策略从三个词表中选择一个词作为该轮生成的单词。

5. 拷贝机制和选词策略

我们采用拷贝机制来复制来自记忆网络中的单词。记忆网络中目标词的概率就是两个记忆网络中的注意力权重_x001D_。如果没有出现目标词,则会选中预处理阶段添加的标记存储器跳转位置标记。在选词过程中,如果两个记忆网络的输出都不是跳转标记,我们就比较两个网络中选中的词概率更大的那个。如果只有一个跳转标记,则选择另一个网络中概率最大的词汇。如果两者都为跳转标记,则选择大词表中概率最大的词。

实验和结果

为了验证我们模型,我们设计了相关实验以证实我们模型的设计是否能够达到更好的效果以及模型的新设计(堆叠多个记忆网络以及上下文敏感记忆网络)是否都是有效的。

1. 数据集

image.png

如表格示,我们的采用了流行的三个数据集:Key-Value Retrieval Datasets[2]、DSTC2[3]以及(6) dialog bAbI tasks[4]。三个数据集均只采用对话以及知识库(元组形式,由于DSTC 2并没有知识库,所以使用的是本体ontology文件生成),去除了slot fillings等等所有标签。三个数据集的数据质量较高且同时包括多领域、单领域等多种形式。

2. 实验指标

为了达到验证的目的,我们采用了多种指标以验证我们的设想。

  • BLEU:我们采用BLEU来验证模型能否生成流畅的回复语句。
  • F1:我们使用F1来验证模型能否准确地在知识库中抽取到回答所需的关键信息并回复。
  • Per-response accuracy and Per-dialog accuracy:主要用在bAbI数据集中,来验证模型是否有能力生成、复现学习到的表达。

3. 对比模型

我们对比了以下几个模型:

  • SEQ2SEQ: seq2seq(LSTM)模型目前来看还是各项生成模型研究对比的可靠稳定的模型。
  • SEQ2SEQ+Attn.: 增加了attention机制的seq2seq能够更好的生成待知识、稀有词语的信息。
  • Mem2Seq:memory to sequence将multihop attention引入了任务型对话生成中。
  • HMNs-CFO:HMNs with context-free memory only。同样是HMNs的模型,但是该模型用上下文无关网络替换了上下文敏感网络,用来验证上下文敏感网络是否真的起到了效果。

4. 实验结果

image.png

image.png

可以看出我们的模型在绝大部分主要评价指标上都得到了最好的表现效果。

在下表随机抽取的一个生成实例中也可以看到,能够生成最流畅的语句并抽取最准确的知识。

image.png

5. 实验分析

  • 模型的效果
    在所有的实验中,我们发现HMNs基本都取得了最好的实验效果。因此总体的模型一定程度上是可靠有效的。特别是在F1指标上,HMNs的表现更加显著,结合实际的生成语句效果(甚至能够抽取到比ground truth更多且仍然准确的实体),我们认为HMNs在某种程度上能够学会如何利用query和历史对话信息从知识库中抽取相关关键信息。
  • 上下文敏感网络是否真的有效?
    在bAbI实验结果(Table 3)中我们对比HMNs-CFO和HMNs模型的实验结果:HMNs在全部指标中均显著胜过HMNs-CFO,而HMNs和HMNs-CFO都采用了两个记忆网络堆叠的方式,唯一的区别便是HMNs-CFO用了两个同样的上下文无关记忆网络分别存储历史对话以及知识库的信息。此外结合训练的loss图像(Figure 4),我们可以得出结论,上下文敏感网络能够更好更快地学习对话生成任务。
  • 用多个网络分别学习对话历史和知识库信息是否有效?
    同样地在该实验中,我们对比Mem2Seq和HMNs-CFO的实验结果:HMNs-CFO在绝大部分指标上(特别是perdialogue accuracy)都取得了更好地成绩。Mem2Seq和HMNs-CFO的两个关键区别在于HMNs-CFO相对于Mem2Seq采用专用的记忆网络存储不同信息,同时通过对话历史信息输出查询向量到知识库的方式连接两个网络。因此采用专用的记忆网络并用合适的方式连接不同的记忆模块这个想法在这里也得到了有效的证明。

未来工作

在前面的实验结果中我们可以注意到Key-Value Retrieval Datasets实验中天气预测这项指标HMNs、Mem2Seq等利用了记忆网络的模型表现不佳。对此我们展开调研发现天气预测任务中,平均的知识库元组条目数量是其他任务的三倍之多,然后我们在这个任务中通过匹配的方式缩减元组数量到和其他任务大致相同之后,F1指标上升到了48。因此我们认为目前的训练方式记忆网络在显著增加信息存储量的情况下可能存在问题。在实际使用的时候需要先利于匹配等方式减少候选数量。因此我们需要进一步研究HMNs在不同数据量尺度之下的表现以及改进方法。

参考资料

[1] 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).
[2] Eric, Mihail, and Christopher D. Manning. "Key-value retrieval networks for task-oriented dialogue." arXiv preprint arXiv:1705.05414 (2017).
[3] http://camdial.org/~mh521/dstc/downloads/handbook.pdf
[4] Bordes, Antoine, Y-Lan Boureau, and Jason Weston. "Learning end-to-end goal-oriented dialog." arXiv preprint arXiv:1605.07683 (2016).
[5] Sukhbaatar, Sainbayar, Jason Weston, and Rob Fergus. "End-to-end memory networks." Advances in neural information processing systems. 2015.
[6] Cho, Kyunghyun, et al. "On the properties of neural machine translation: Encoder-decoder approaches." arXiv preprint arXiv:1409.1259 (2014).
[7] Vinyals, Oriol, and Quoc Le. "A neural conversational model." arXiv preprint arXiv:1506.05869 (2015).
[8] Shang, Lifeng, Zhengdong Lu, and Hang Li. "Neural responding machine for short-text conversation." arXiv preprint arXiv:1503.02364 (2015).

相关文章
|
3天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
15 2
|
23天前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
53 3
|
1月前
|
机器学习/深度学习 Web App开发 人工智能
轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》
《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》这篇论文提出了一种基于YOLOv3-Tiny的轻量级目标检测模型Micro-YOLO,通过渐进式通道剪枝和轻量级卷积层,显著减少了参数数量和计算成本,同时保持了较高的检测性能。
33 2
轻量级网络论文精度笔(一):《Micro-YOLO: Exploring Efficient Methods to Compress CNN based Object Detection Model》
|
1月前
|
机器学习/深度学习 编解码 算法
轻量级网络论文精度笔记(三):《Searching for MobileNetV3》
MobileNetV3是谷歌为移动设备优化的神经网络模型,通过神经架构搜索和新设计计算块提升效率和精度。它引入了h-swish激活函数和高效的分割解码器LR-ASPP,实现了移动端分类、检测和分割的最新SOTA成果。大模型在ImageNet分类上比MobileNetV2更准确,延迟降低20%;小模型准确度提升,延迟相当。
56 1
轻量级网络论文精度笔记(三):《Searching for MobileNetV3》
|
1月前
|
机器学习/深度学习 存储 分布式计算
未来趋势:探索GraphRAG在大规模异构网络环境下的挑战与机遇
【10月更文挑战第11天】随着互联网和物联网技术的快速发展,数据不仅数量庞大,而且类型多样,形成了复杂的大规模异构网络。这些网络中包含了不同类型的节点(如文本、图像、视频等)以及它们之间的多种关系。如何有效地处理这种大规模异构网络,以便进行内容理解与生成,是当前研究的一个热点问题。Graph Retrieval-Augmented Generation (GraphRAG) 框架作为一种新兴的方法,在这一领域展现出了巨大的潜力。本文将深入探讨GraphRAG的基础理论、构建方法,并分析其在未来大规模异构网络环境下的挑战与机遇。
90 3
|
1月前
|
机器学习/深度学习 存储 自然语言处理
从理论到实践:如何使用长短期记忆网络(LSTM)改善自然语言处理任务
【10月更文挑战第7天】随着深度学习技术的发展,循环神经网络(RNNs)及其变体,特别是长短期记忆网络(LSTMs),已经成为处理序列数据的强大工具。在自然语言处理(NLP)领域,LSTM因其能够捕捉文本中的长期依赖关系而变得尤为重要。本文将介绍LSTM的基本原理,并通过具体的代码示例来展示如何在实际的NLP任务中应用LSTM。
67 4
|
1月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
46 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
1月前
|
编解码 人工智能 文件存储
轻量级网络论文精度笔记(二):《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object ..》
YOLOv7是一种新的实时目标检测器,通过引入可训练的免费技术包和优化的网络架构,显著提高了检测精度,同时减少了参数和计算量。该研究还提出了新的模型重参数化和标签分配策略,有效提升了模型性能。实验结果显示,YOLOv7在速度和准确性上超越了其他目标检测器。
47 0
轻量级网络论文精度笔记(二):《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object ..》
|
3月前
|
人工智能 算法 安全
【2023 年第十三届 MathorCup 高校数学建模挑战赛】C 题 电商物流网络包裹应急调运与结构优化问题 赛后总结之31页论文及代码
本文总结了2023年第十三届MathorCup高校数学建模挑战赛C题的解题过程,详细阐述了电商物流网络在面临突发事件时的包裹应急调运与结构优化问题,提出了基于时间序列预测、多目标优化、遗传算法和重要性评价模型的综合解决方案,并提供了相应的31页论文和代码实现。
76 0
|
3天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第39天】在数字化时代,网络安全和信息安全成为了我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全的重要性,并提供一些实用的技巧和方法来保护自己的信息安全。
14 2