英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
Exemplar Encoder-Decoder for Neural Conversation Generation
Gaurav Pandey, Danish Contractor, Vineet Kumar and Sachindra Joshi
IBM Research AINew Delhi, India{gpandey1, dcontrac, vineeku6, jsachind}@in.ibm.com
摘要
在这篇论文里提出了一种新的模型:Encoder—Decoder网络模型(EED),该模型从训练数据中学习相似的例子以生成相应。使用传统的基于tf-idf的检索模型,从训练数据中检索到类似的转换示例。
1、介绍
随着大数据集的可用性和神经方法的进步,端对端学习(Sutskever et al.,2014)体系结构的变体已经成功的应用于构建会话系统(Serban et al.,2016,2017b),然而尽管这些方法是最先进的会话生成框架,但它们扔存在一些问题,例如答案缺乏多样性,生成简短、重复和无趣的答案(Liu等人,2016;Ser-Ban等人,2016,2017b)。最近的大量文献都致力于克服这个问题(Li等人,2016a;Lowe等人,2017)。
在某种程度上,这些问题的出现时因为需要将生成摘要所需的所有信息作为从训练数据中学习的模型参数的一部分加以限制。仅这些模型参数可能不足以生成自然对话。因此,尽管提供了大量的数据,但发现神经网络系统在应用中难有成效。
为了挖掘封闭域对话,我们构建了一种名为编码器—解码器的神经编码器解码器结构体系(EED),该体系结构通过利用训练对话中的类似上下文来学习为给定上下文生成答案。因此,我们不同于seq2seq模型,只从对齐的并行语料库学习语言模式,而是通过从生成文本时可以引用的训练数据中提供密切相关的样本来辅助训练模型。
具体的说,给定上下文C,我们使用训练数据的反向索引检索一组上下文对(c,r),我们通过编码响应c(也被称为示例答案)以及当前上下文c的编码表示来创建示例向量。然后,我们根据每个示例向量c能够生成基本答案的可能性来衡量每个示例向量的重要性。我们相信可能包含有助于生成答案的信息,图1给出了基本答案中出现的范例答案中的单词。
图1 参考答案与生成答案比对
本文的贡献:
我们提出了一种新的示例编码器-解码器(EED)体系结构,利用类似的对话,取自一个培训数据集的索引,检索到的上下文响应用于创建示例解码器使用的EED模型,为了学习上下文关联对的重要性,我们提出了基于Ubantu对话语料集的详细的实验,该数据集包含127000个技术对话类型。我们比较了EED与现有模型(比如HRED、VHRED)发现EED在现有的数据集上的指标(如activity实体指标、基于嵌入的指标)要优于这些模型,此外,我们对结果进行了分析,发现基于上下文的回答信息更丰富,更多元化。
本文的余下部分安排如下,第二节主要介绍了近期的一些相关工作,第三节描述了EED模型。第四节,解释数据集以及在训练过程中使用的模型信息,第五节中展示了EED模型的结果。
2、相关工作
在本节中,我们将我们的工作与其他数据驱动的端到端会话模型进行比较。 端到端会话模型可以进一步分为两大类 - 基于生成的模型和基于检索的模型。基于生成的模型将对话生成的问题作为序列学习问题的序列。初始工作将整个上下文视为单个长句并学习编码器 - 解码器框架以逐字生成响应(Shang et al。,2015; Vinyals and Le,2015)。 接下来是通过将其分解为对话历史和最后一次话语来更好地模拟背景的工作(Sordoni等,2015b)。 通过使用分层编码器解码器(HRED)模型进一步有效地建模上下文,该模型首先学习每个话语的矢量表示,然后组合这些表示以学习上下文的矢量表示(Serban等,2016)。 后来,提出了一种名为VHRED的替代分层模型(Serban et al。,2017b),其中生成的响应适用于潜在变量。这样可以提供更多信息,并增加响应生成的多样性。 在文献中也研究了明确地将多样性纳入响应生成的模型(Li等人,2016b; Vijayakumar等人,2016; Cao和Clark,2017; Zhao等人,2017)。
我们的工作与上述不同,因为上述方法都没有明确地使用在训练数据中观察到的类似对话上下文。
另一方面,基于检索的模型将对话上下文视为查询,并使用来自对话日志的信息检索(IR)技术获得一组响应(Ji等人,2014)。 已经进行了进一步的工作,其中使用基于深度学习的模型进一步对响应进行排序(Yan等,2016a,b; Qiu等,2017)。 另一方面,基于端到端深度学习的学习者也被用来产生反应(Wu et al。,2017; Henderson et al。,2017)。 最近,还提出了一种框架,该框架使用判别式对话网络,该网络对从响应发生器网络接收的候选响应进行排序,并以端到端的方式训练两个网络(Lu等,2017a)。
与上述模型相比,我们使用输入上下文以及检索到的响应来生成最终响应。 与我们的工作同时,还提出了使用检索到的翻译对的机器翻译的生成模型(Gu et al。,2017)。 我们注意到虽然两篇论文的基本前提仍然相同,但不同之处在于合并检索数据的机制。
3、EED
3.1概述
对话由一系列的完整性组成。在对话的特定点,在它之前表达的突出声音被联合称为上下文。紧接着上下文的话语被称为响应。如第1节所述,给定一个会话对话,我们希望通过使用来自训练数据的类似上下文 - 响应对来生成响应。我们从以离线方式使用训练数据创建的倒排索引中检索一组K个示例上下文 - 响应对。然后将输入和检索的上下文响应对馈送到Exemplar Encoder Decoder(EED)网络。 EED网络的示意图如图3.1所示.EED编码器将输入上下文和检索到的响应组合在一起,以创建一组示例向量。然后,EED解码器基于输入上下文和被检索的上下文之间的相似性来使用示例性矢量来生成响应。我们现在提供每个模块的详细信息。
图3.1 EED模型图解
3.2检索类似的上下文 - 响应对
给定大量的对话作为(上下文,响应)对,我们在tf-idf向量空间中索引每个响应及其对应的上下文。 我们进一步提取对话的最后一轮并将其索引为上下文响应文档对的附加属性,以便允许基于它的定向查询。
给定一个输入上下文c,我们构造一个查询,将上下文中的最后一个话语权衡为上下文的其余部分的两倍,并使用它从基于BM25的索引中检索top-k类似的上下文 - 响应对(Robertson) 等人,2009)检索模型。 这些检索能帮助我们形成的示例上下文 - 响应对
3.3 编码网络
给定示例对我们通过编码器将输入的上下文c和参考上下文生成嵌入,公式如下:
(1)
(2)
这里,我们不限制我们对编码器的选择,任何参数化的可微分结构都可以用作编码器来生成上述迁入,类似的,我们通过编码器响应来提供示例,以生成响应嵌入,也就是说:
(3)
接下来,我们将编码器r(k)的示例性响应与编码器相结合,通过上下文,如公式4所示,创建范例向量e(k)。这允许我们包括关于类似响应的信息以及编码的输入上下文表示
(4)
示例性矢量被解码器进一步用于产生更贴近的答案,在下一节中会详细解释
。
3.4 解码网络
会想一下,我们希望示例答案有助于根据响应的上下文与输入上下文的相似程度来生成答案,更类似的示例上下文是输入上下文,更高的应该是它在生成答案时的效果,为此,我们使用3.3 节中计算编码的方法来计算相似度得分如下所示
(5)
接下来,将在3.3 节中计算的每个示例向量馈送到解码器,其中解码器负责预测来自示例向量的答案。设时给定输入情况下产生真实答案的分布,要最大化的目标函数表示为分数,解码分布和示例向量的函数如下所示:
(6)
我们根据响应上下文和输入的上下文的相似程度,权衡每个示例向量同最终目标之间的权重,此外,相似性时输入的可微函数,因此,可以通过反向传播来训练,该模型应学会样本上下文指定更高的相似性。其响应有助于产生正确的答案。模型描述 使用编码器和解码器网络,可以使用任何可微分的参数架构来实现,我们在下一节讨论编码器与解码器的选择方法。
3.5 编码与解码
在本节中,我们将讨论我们的模型使用的各种编码器和解码器,对语境由有序话语序列组成,每个话语可以进一步被视为一系列的词语。因此,可以将上下文看成是具有多个级别的层次结构,包括单词级别和句子级别。我们使用通常作为HRED框架一部分的分级重构的编码器,用于生成响应和查询。字级编码器将话语的字的矢量表示编码为话语矢量,最后,话语级别编码器将话语向量编码作为上下文向量。
设是上下文中出现的单词,对于话语中的每个单词,我们从嵌入句看成是检索相应的嵌入。的嵌入词被视为。第n个话语的编码可以迭代计算如下
(7)
我们使用LSTM对上诉方程进行建模。最后一个隐藏状态被称为话语编码,并将其表示为,话语级编码器采用话语级编码,并生成对上下文的编码:
(8)
同样,我们使用LSTM对上诉方程进行建模。最后隐藏被称为上下文嵌入,单词级别的LSTM用于嵌入相应,特别是当相应中存在1M个单词序列。对于每个单词W,我们从单词嵌入矩阵中检索相应的单词矩阵,响应嵌入的计算方法如下:
(9)
同样采用LSTM对上诉方程进行建模,最后的隐藏嵌入被称为响应嵌入。
4、实验设置
4.1数据集
4.1.1 Ubantu数据集
我们在Ubuntu Dialogue Corpus上进行了实验(Lowe et al。,2015)(v2.0)2。 Ubuntu对话语料库有大约1M的上下文响应对以及标签。 标签值1表示与上下文关联的响应是正确的响应,否则是不正确的。 由于我们只对正面标记数据感兴趣,因此我们使用label = 1.表2描述了数据集的一些统计数据。
4.1.2Tech Support 数据集
我们还在一个超过127K的对话的大型技术支持数据集上进行实验。 我们将在本文的其余部分将此数据集称为技术支持数据集。 技术支持数据集包含与寻求代理协助(技术支持)的员工相关的对话 - 解决密码重置,软件安装/许可和无线访问等问题。 与Ubuntu数据集相比,该数据集显然有两个不同的用户 - 员工和代理。 在我们的实验中,我们仅对代理响应建模。
对于技术支持数据中的每个对话,我们对上下文和响应对进行采样,以创建类似于Ubuntu数据集格式的数据集。 请注意,可以从单个对话生成多个上下文响应对。 对于每次对话,我们对25%的可能的上下文 - 响应对进行抽样。 我们通过随机选择5000个对话并采样上下文响应对来创建验证对。 同样,我们从5000个转换的不同子集创建测试对。 其余的对话用于创建训练上下文 - 响应对。 表3显示了该数据集的一些统计信息:
表3、数据集统计指标
4.2 模型训练细节
EED和HRED模型使用PyTorch框架实现(Paszke等,2017)。 我们初始化单词嵌入矩阵以及来自标准正态分布的上下文和响应编码器的权重,均值为0,方差为0.01。 编码器和解码器的偏差用0初始化。嵌入矩阵一词由上下文和响应编码器共享。 对于Ubuntu数据集,我们使用单词嵌入大小600,而上下文和响应编码器和解码器中LSTM的隐藏层的大小固定为1200.对于技术支持数据集,我们使用单词嵌入大小为 128.此外,上下文和响应编码器和解码器中多个LSTM的隐藏层的大小固定为256.为技术支持数据集选择了较小的嵌入大小,因为我们发现技术响应的多样性更少 与Ubuntu数据集相比,支持数据集。
两个不同的编码器用于编码输入上下文。 第一个上下文编码器的输出与示例响应向量连接,以生成示例向量,如第3.3节所述。 第二个上下文编码器的输出用于计算评分函数,详见3.4节。 对于每个输入上下文,我们使用第3.2节中讨论的tf-idf机制为Ubuntu数据集和3个用于Tech支持数据集的上下文响应对检索5个类似的上下文响应对。
我们使用Adam优化器(Kingma和Ba,2014),学习率为1e-4来训练模型。 在训练期间使用批量大小为20个样本。 为了防止过度拟合,我们使用早期停止和验证集上的对数似然作为停止标准。 为了使用提出的EED模型生成样本,我们根据3.4节中讨论的学习评分函数确定最类似于输入上下文的示例上下文。 相应的示例矢量被馈送到解码器以生成响应。 使用宽度为5的波束搜索生成样本。平均每字对数似然用于对波束进行评分。
5、 结果与评估
5.1定量评估
5.1.1活动实体指标
BLEU(Papineni et al。,2002)用于比较生成的句子和基本事实句的传统和流行度量标准,经常用于评估机器翻译。 该指标也已用于计算会话中预测响应的得
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[441585],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。