Mem2Seq: Effectively Incorporating Knowledge Bases into End-to-End Task-Oriented Dialog Systems
文章目录
摘要
第1节 引言
第二章 模型描述
第二章 第一节 记忆编码器
第二章 第二节 记忆解码器
第二章 第二节 第一节 Sentinel
* 2.3 Memory Content
* 3 Experimental Setup
* * 3.1 Dataset
abstract
为任务设计的端到端对话系统在整合知识库方面常面临挑战。本文中提出了一种新颖且简单的端到端可微分模型称为内存到序列(Mem2Seq)来解决这一问题。Mem2Seq被视为首个神经生成模型它融合了多跳注意力机制与指针网络的思想。我们通过实验展示了Mem2Seq如何控制每个生成步骤以及其多跳注意力机制如何有助于学习记忆间的关联性。此外我们的模型具有很强的通用性无需专门针对特定任务进行复杂设计因而实现了更快捷的训练过程并在三个不同面向任务的应用场景数据集上取得了最佳性能表现
1 Introduction
面向任务的对话系统协助用户以自然语言实现特定目标,并非仅限于餐厅预订与日程安排。 通常而言, 它们主要由多个分系统模块构成: 包括语言理解, 对话管理, 知识查询以及语言生成 (Williams & Young, 2007; Hori等人, 2009; Lee等人, 2009; Levin等人, 2000) ; Young等人, 2013)。 此外, 查询外部知识库(KB)的能力在面向任务的对话系统中至关重要, 因为不仅用户的回答会受到对话历史的影响, 同时也会受到查询结果的影响(如表1)。 然而, 尽管基于分系统的任务导向对话架构结合了领域特定知识与槽填充技术以维持稳定性能, 但其对模块间依赖关系的模拟仍显复杂化, KB系统的解释往往需要大量的人力资源支撑。

当前使用递归神经网络编码器-解码器模型进行端到端对话建模的方法已经展现出显著的效果(Serban等, 2016; Wen等, 2017; Zhao等, 2017)。这些方法可以直接将纯文本对话历史映射至输出回应,并且通过潜在的方式表示出对话状态因此无需人工创建状态标签。此外 最近提出了基于注意力机制的一种复制方式(Gulcehre等, 2016; Eric和Manning, 2017) 这种方式可以直接从输入源中复制单词至输出回应 使用该机制即使遇到未知标记也会使模型能够有效生成正确的实体
尽管现有方法已经取得了成功的效果(如Surowski等人的研究),但这些方法仍存在两个主要缺陷:首先,在整合外部知识库信息到RNN的状态单元方面表现不佳(Suhr等人, 2017)。其次,在处理涉及长序列的任务时需要投入大量计算资源,并且在采用注意力机制模型的情况下尤为明显。
此外,在端到端存储器网络(MemNN)中,并非像外部存储器那样直接关注外部KB信息;相反,在MemNN体系中,默认情况下它只能从预定义的候选集(Sukhbaatar等, 2015)中选择其响应而不是逐字生成。这种机制使得MemNN在处理复杂对话时会受到限制;相比之下,在推理任务中引入多跳机制已被证明是重要的(Bordes和Weston, 2017)。然而,在实际应用中发现 MemNN 的内存查询过程必须人工设计而非学习;同时该系统不具备自我复制能力。此外,在这种架构下无法实现对记忆内容的自我更新机制
为此,在解决上述问题的基础上
2 Model Description

Mem2Seq由两个主要组成部分构成:记忆编码器和记忆解码器(如图1所示)。记忆编码器通过向量表示生成对话历史的信息;随后通过记忆解码器读取并复制存储的历史信息以生成响应内容。我们定义对话历史中的所有单词为标记序列X=\{x_1,x_2,...,x_n\} ,其中n为序列长度;而B=\{b_1, ...,b_l \}则表示KB元组;集合U=[B;X]则作为X与B的拼接结果;同时将系统反应的所有词集合定义为Y=\{y_1,...,y_m\};并使用指针下标集合PTR=\{ptr_1,...,ptr_m\}来指示响应中每个词的位置关系:具体而言,
ptr_i= \begin{cases} \max(z), & \text{如果存在某个索引 } z \text{ 满足 } y_i = u_z \\ n + l + 1, & \text{其他情况} \end{cases} \tag{1}
u_z \in U是输入序列,n+l+1是哨兵位置下标。
2.1 Memory Encoder
该编码器基于标准MemNN模型(Sukhbaatar等人的研究)设计。其输入来自U中的单词级别数据。通过一组可训练的嵌入矩阵构建存储单元集;其中每个嵌入层分别对应特定标记,并通过线性变换将其映射至相应的特征空间;同时,在读取操作中采用了对应的查询向量进行操作。该模型采用多步循环机制,在每一步中动态计算各存储单元在当前查询点下的注意力权重分布情况:
C^k_i=C^k(x_i)位于内存位置i处的内容,则p^k作为软内存选择器决定了查询向量q^k与内存单元是否存在关联关系。该模型基于C^{k+1}的权重参数以及读取操作来生成当前时刻的状态表示o^k:
o^k=\sum_i{p^k_iC^{k+1}_i} \tag{3}
查询向量的更新遵循以下公式:q^{k+1}=q^k+o^k;在编码阶段生成的结果是内存中的结果向量o^K,该结果向量构成了解码阶段的输入向量。
2.2 Memory Decoder
解码器主要采用RNN架构与记忆网络MemNN的结合方式。其中MemNN通过加载上下文序列X以及外部知识库B的信息来推导出合适的系统响应。基于Chung等人的研究(2014),门控重新单元GRU被设计为MemNN中的动态查询生成器。在每个解码步骤t中,在获取到之前所生成的词项以及之前的查询后,在此基础之上会自动生成新的查询向量h_t:如下所示:
h_t=GRU(C^1(\hat{y}_{t-1}),h_{t-1}) \tag{4}
随后将查询h_t传递至生成标记的MemNN模块中,在每一个时间段内会生成两个概率分布:一个是基于整个词汇表的概率分布(记为 P_{vocab} ),另一个是基于内存单元的概率分布(记为 P_ptr )。这些分布分别代表对话历史信息与知识库内容。其中第一个概率分布 P_{vocab}(\hat y_t=softmax(W_1[h_t:o^1])) \tag{5} 是通过融合第一跳注意力读取器输出与当前查询向量来计算得到的。
其中W_1被视为训练参数。 MemNN架构中的解码器模块通过注意力机制生成权重矩阵,并计算得到最终输出结果。 其中计算公式可表示为:P_{ptr}=p^K_t 该权重矩阵的具体计算方式与传统的 attention 机制相似,在模型训练过程中不断优化以提升预测准确性。 我们的解码器模块采用指针机制,在存储空间中检索相关输入词,并将其整合到当前处理序列中。 其工作原理与基于注意力机制的设计相似,并参考了Vinyals及其团队的研究成果(2015)。
为了实现这一架构的设计目标,在关注点上进行了精心安排:基于预期的第一跳跃动与最终跳跃动对注意力分布的要求分别呈现"松散"与"清晰"的特点。具体而言,第一跳跃动倾向于聚焦于内存中的信息检索,而最终跳跃动则偏好采用带有指针监督机制的具体token。通过综合优化两个交叉熵损失指标的总值来统一优化整个架构的所有参数:其中第一个损失函数基于P_vocab(ŷ_t)与y_t ∈ Y之间的对比关系用于建模词汇分布情况;而第二个损失函数则基于P_ptr(ŷ_t)与ptr_t ∈ PTR之间的对比关系,专注于ptr相关的任务学习过程。TR算法在此过程中发挥着重要的内存分配作用
2.2.1 Sentinel
当预期词汇未被检索时,则训练P_{ptr}会产生一个标记符号;如公式1所示所示。一旦选择该标记后,则模型将从P_{vocab}生成该标记;否则则会通过P_{ptr}分布来管理内存内容。通常情况下,标记令牌充当一种控制机制,在每个时间步决定采用哪种分布进行操作。类似的方法被用于语言建模任务中的软门控制(Merity等人, 2017)。与Gulcehre等人的方法不同, 使用这种方法使得模型无需单独学习门控功能, 也不再受See等人所提出的软门方法限制(见See等人, 2017)。
2.3 Memory Content
我们把字级内容X存储在内存模块中。类似于Bordes和Weston(2017)的研究,在X的每个标记中加入时态信息以及说话者标识符以便于捕捉顺序依赖关系。例如,“hello t1 $u”表示在时间步长为1时点上用户的问候信息
此外,在解码过程中,在主题、关系和对象这三个词上进行单词嵌入的累加。例如,在表1中展示威斯汀的信息:(威斯汀、距离、5英里)。因此,在解码阶段的对象部分用作P_{ptr}的生成字。例如,在指向KB元组(威斯汀, 距离, 5英里)时,请注意我们的模型将'5英里'复制为输出字。

3 Experimental Setup
3.1 Dataset
基于三个公共多轮任务导向对话数据集bAbI对话框(Bordes和Weston, 2017)、DSTC_2(Henderson等, 2014)以及车内助手(Eric等, 2017)进行实验研究
bAbI-based dialog framework encompasses five end-to-end learning tasks within the restaurant domain, all designed around simulated dialogue data. Tasks 1 through 4 focus on API interaction, followed by a more refined API communication process, recommendation of options, and provision of additional information. Task 5 represents the integration and combination of tasks 1 to 4. Each task is accompanied by two test sets: one adhering to the same distribution as the training data, and another incorporating out-of-vocabulary (OOV) entities that do not appear in the training set. Additionally, this framework incorporates data extracted from the Dialog State Tracking Challenge 2 (DSTC2), which includes a condensed version of work by Bordes and Weston (2017), with an emphasis on dialogue state tracking without including state annotations. A key distinction from this dataset is that it originates from real human-robot conversations, where issues such as speech recognition errors or misinterpretations by the robot lead to increased noise and more frequent errors compared to other datasets.
最近,《车载助手数据集》已正式发布。该数据集是由亚马逊 Mechanical Turk平台采集的人类-人类多领域对话数据资源库构成。它主要包含三大功能模块:日历安排管理、天气信息查询以及兴趣点导引服务。值得注意的是尽管该数据集在对话转换速度上相对较快但其参与对话的主体更加多元化且系统的响应内容更为丰富尤其是 KB 相关信息内容更为复杂因此该数据集在 KB 交互能力方面提出了更高的技术要求而非传统的对话行为建模需求
