Ubuntu对话语料库:一个在非结构化多轮 对话系统中大型研究数据集外文翻译资料

 2022-08-26 04:08

英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料


附录X 译文

Ubuntu对话语料库:一个在非结构化多轮

对话系统中大型研究数据集

摘要

本文介绍了Ubuntu对话语料库,这是一个包含近100万个多轮对话的数据集,总共有700多万个话语和1亿个单词。 这为基于可以利用大量未标记数据的神经语言模型构建对话管理器的研究提供了独特的资源。 数据集既具有对话状态跟踪挑战数据集中的对话的多轮属性,又具有来自微博服务(例如Twitter)的交互的非结构化特性。我们还描述了两种适用于分析该数据集的神经学习架构,并为选择最佳下一响应的任务提供基准性能。

一,简介

计算机与人类以自然和连贯的方式交谈的能力长期以来一直被认为是人工智能(AI)的主要目标之一。在本文中,我们考虑构建对话代理的问题,这些代理能够在不同的主题上进行一对一的多对话交互。我们主要针对非结构化对话,其中对话期间交换的信息没有先验逻辑表示。这与使用槽填充表示的最近关注结构化对话任务的系统形成对比。

我们观察到,在AI计算机视觉的几个子领域中,语音识别、机器翻译的基本突破是近年来使用机器学习方法。更具体地说是用神经架构实现的。然而,值得注意的是,许多最成功的方法,特别是卷积和递归神经网络,早在多年前就已为人所知。因此,将这一进展归因于三个主要因素是合理的:1)非常大的丰富数据集的公开分布2)大量计算能力的可用性3)神经架构的新训练方法的开发,特别是利用未标记的数据。在对话系统的发展方面尚未观察到类似的进展。我们假设这是由于缺乏足够大的数据集,并且旨在通过为多轮对话研究提供新的大型语料库来克服这一障碍。

新的Ubuntu对话语料库包含从Ubuntu聊天记录1中提取的近一百万个双人对话,用于接收各种与Ubuntu相关的问题的技术支持。每个对话平均有8轮,最少3轮。所有对话都以文本形式(而非音频)进行。该数据集比结构化语料库(例如对话状态跟踪挑战的结构化语料库)大几个数量级。它与最近的数据集具有相同的规模,用于解决问题,例如问答和微博服务的分析,例如Twitter,但是我们的数据集中的每个对话包括几个回合,以及更长的话语。此外,因为它针对特定领域,即技术支持,所以它可以用作在目标应用程序中开发AI代理的案例研究,与通常缺乏明确目标的聊天室代理相反。

除语料库外,我们还提供适用于分析此数据集的学习架构,范围从简单的频率 - 逆文档频率(TF-IDF)方法到更复杂的神经模型,包括递归神经网络(RNN)和较长短对话存储器(LSTM)架构。我们提供这些算法的基准性能,使用我们的新语料库进行培训,选择最佳下一个响应,无需任何人工标签即可实现。数据集已准备好公开发布。为实证结果开发的代码也是可用的。

  1. 相关工作

我们简要回顾一下现有的对话数据集,以及一些用于结构化和非结构化对话的最新学习架构。 这绝不是一份详尽的清单(由于空间限制),而是调查与我们的贡献最相关的资源。

2.1对话数据集

交换机数据集和对话状态跟踪挑战(DSTC)数据集已被用于训练和验证对话管理系统以获取交互式信息。该问题通常被形式化为插槽填充任务,其中代理尝试在对话期间预测用户的目标。这些数据集已经成为结构化对话的重要资源,并且在这一领域取得了重大进展,尽管与目前用于训练神经结构的数据集相比,它们相当小。

最近,一些数据集被用于包含从Twitter提取的非结构化对话。里特等人收集了130万次谈话。通过使用A-B-A三元组,这被延伸到了更长的背景优势。尚等人使用的数据来自类似微博的中文网站。然而据我们所知,这些数据集尚未公开,此外,这些微博客服务的回复后格式可能不像人类之间的自然对话那样代表聊天室中连续的消息流。事实上,里特等人估计,Twitter上只有37%的帖子属于“会话性质”,其收集数据的69%只包含长度为2的交换。我们假设聊天室风格的消息传递与人与人之间的对话关系比微博客网站或基于论坛的网站(如Reddit)更紧密。

部分Ubuntu聊天记录以前已被聚合到一个名为Ubuntu Chat Corpus的数据集中。然而,该资源预先服务于多参与者结构,因此不太适合调查更传统的双方对话。

与我们的贡献微弱相关的是问答系统的问题。有几个问答对的数据集,但这些相互作用比我们研究的要短得多。

2.2 学习体系结构

大多数对话研究历来专注于结构化的插槽填充任务。人们提出了各种方法,但很少有人尝试利用新兴的神经学习架构。一个值得注意的例外是Henderson等人的工作。 他们提出了一种用去噪自动编码器初始化的RNN结构,以解决DSTC3域。

关于非结构化对话的工作,最近由Ritter等人提出。基于统计机器翻译的思想,提出了Twitter数据的响应生成模型。这表明它可以提供优于先前信息检索(例如最近邻)的方法。 Sordoni等人进一步发展了这一想法。利用类似于递归神经网络编码器 - 解码器模型的结构,从更长的背景中利用信息。当通过BLEU评分(机器翻译的标准)测量时,这在A-B-A Twitter三元组上表现相当差,但是比Ritter等人的模型表现得相对更好。他们的结果也通过人体研究验证。 [25]中提出了类似的编码器 - 解码器框架。该模型使用一个RNN将输入变换为某个矢量表示,并使用另一个RNN将该表示“解码”为响应,方法是一次生成一个字。该模型也在人类受试者研究中进行评估,尽管其尺寸小于[28]。总体而言,这些模型突出了交互式系统的神经学习架构的潜力,但到目前为止,它们仅限于非常短的对话。

  1. Ubuntu对话语料库

我们寻求一个大型数据集,用于具有以下特性的对话系统的研究:

bull;双向(或二元)对话,而不是多参与者聊天,最好是人。

bull;大量对话;105 到 106是人工智能其他领域用于神经网络学习的典型数据集。

bull;多轮对话(超过3次)。

bull;任务特定域,而不是聊天机器人系统。

本文提出的Ubuntu对话语料库满足了所有这些要求。

3.1Ubuntu聊天日志

Ubuntu聊天日志是指Freenode Internet中继聊天(IRC)网络上与Ubuntu相关的聊天室的日志集合。该协议允许大量参与者之间的实时聊天。每个聊天室或频道都有一个特定主题,每个频道参与者都可以看到在给定频道中发布的所有消息。其中许多渠道用于获取各种Ubuntu问题的技术支持。

由于每个频道的内容都经过审核,因此大多数互动都遵循类似的模式。一个新用户加入了该频道,并询问他们对Ubuntu遇到的问题的一般性质疑。然后,在首先解决第一个用户的“用户名”之后,另一个更有经验的用户回复可能的解决方案。这被称为名称[29],用于避免频道混淆——在白天的任何给定时间,某些频道可能会发生1到20个同时发生的对话。在最受欢迎的频道中,几乎从来没有一次会话只发生过一次;这使得提取二元对话特别成问题。

当问题解决时,一对用户之间的对话通常会停止,尽管有些用户偶尔会继续讨论与Ubuntu无关的话题。图4显示了一个来自Ubuntu频道的聊天室对话示例以及提取的对话,其中说明了用户通常如何在编写回复之前声明预期消息接收者的用户名。例如,很明显用户“Taru”和“kuja”正在进行对话,用户“old”和“bur[n]er”也在进行对话,而用户“_pm”正在问一个初始问题,“LiveCDrsquo; ”可能正在对之前的评论进行阐述。

3.2数据集创建

为了创建Ubuntu对话语料库,首先必须设计一种方法来从聊天室多方对话中提取二元对话。 第一步是将每条消息分成4元组(时间,发送者,接收者,完全)。 鉴于这些4元组,可以直接对所有元组进行分组,其中有匹配的发件人和收件人。 尽管将时间和发件人与其他人分开很容易,但找到邮件的预期收件人并不总是微不足道的。

3.2.1收件人标识

虽然在大多数情况下,接受者是话语的第一个词,但有时它位于结尾,或者在最初的问题中根本不是。此外,一些用户选择与常用英语单词相对应的名称,例如“the”或“stop”,这可能导致许多误报。为了解决这个问题,我们从当前和以前的日子创建了一个用户名字典,并将每个话语的第一个词与其词条进行比较。如果找到匹配项,并且该单词与非常常见的英语单词不对应,则假定此用户是邮件的预期收件人。如果未找到匹配项,则假定邮件是初始问题,并且收件人值为空。

虽然在大多数情况下,接收者是话语的第一个词,但有时位于最后,或者在初始问题的情况下根本不存在。 此外,一些用户选择与普通英语单词相对应的名称,例如“the”或“stop”,这可能导致许多误报。 为了解决这个问题,我们创建了当前和前几天的用户名字典,并将每个话语的第一个单词与其条目进行比较。 如果找到匹配,并且该单词与非常常见的英语单词不对应,则假定该用户是该消息的预期接收者。 如果未找到匹配项,则假定该消息是初始问题,并且收件人值保留为空。

3.2.2话语创作

对话提取算法在第一个响应中向后工作,以在3分钟的时间范围内找到所回复的初始问题。通过收件人姓名(最近的会话历史记录中的某个人)的存在来识别第一个响应。最初的问题被确定为第一个答复中确定的接收者最近的话语。

所有不符合第一反应或初始问题的话语都将被丢弃,不会产生任何响应的初始问题也将被丢弃。我们还会丢弃超过五个话语的对话,其中一个用户说出超过80%的话语,因为这些话语通常不代表真实的聊天对话。最后,我们只考虑由3个或更多轮组成的对话框,以鼓励对长期依赖性进行建模。

为了缓解对话中“漏洞”的问题,一个用户没有明确地解决另一个用户,如图5所示,我们检查每个用户是否在他们的谈话期间与其他人交谈。如果不是,则将所有未寻址的话语添加到对话中。图5显示了一个示例对话以及提取的对话框。请注意,我们还连接了给定用户的所有连续话语。

我们不对Ubuntu对话语料库中发布的数据进行任何进一步的预处理(例如,标记化,词干化)。然而,预处理的使用是大多数NLP系统的标准,并且也用于我们的分析(参见第4节)。

3.2.3特殊情况和限制

通常情况下,用户将发布初始问题,并且多个人将以不同的答案回复它。 在这种情况下,第一用户和回复的用户之间的每个对话被视为单独的对话。 这具有令人遗憾的副作用,即在几个对话中多次出现初始问题。 然而,与数据集的大小相比,这种情况的数量足够小。

需要注意的另一个问题是,不考虑话语发布时间来分割两个用户之间的对话。 即使两个用户的会话跨越多个小时甚至几天,也会将其视为单个对话。但是,这种对话很少见。 我们在语料库中包含发布时间,以便其他研究人员可以根据需要进行过滤。

3.3数据集统计

表2总结了Ubuntu对话语料库的属性。 Ubuntu聊天记录最重要的功能之一就是它的大小。 这对于基于神经架构构建对话管理器的研究至关重要。 另一个重要特征是这些对话中的转弯次数。 匝数的分布如图1所示。可以看出,每个对话的对话和转弯次数遵循近似幂律关系。

3.4测试集生成

我们预留了2%的Ubuntu对话语料库对话(随机选择),形成一个可用于评估响应选择算法的测试集。与语料库的其余部分相比,该测试集已被进一步处理以从每个对话中提取一对(上下文,响应,标志)三元组。该标志是一个布尔变量,指示响应是否是给定上下文之后的实际下一个话语。响应是我们旨在正确识别的目标(输出)话语。上下文包括在响应之前出现在对话中的话语序列。我们创建了一对三元组,其中一个三元组包含正确的响应(即对话中的实际下一个话语),另一个三元组包含从测试集中的其他地方随机抽样的错误响应。该标志在第一种情况下设置为1,在第二种情况下设置为0。表3中显示了一个示例对。为了使任务更加困难,我们可以从一对响应(一个正确,一个不正确)转移到一组更大的错误响应(全部使用flag = 0)。在下面的实验中,我们考虑了1个错误响应和10个错误响应的情况。

由于我们希望学习预测会话的所有部分,而不是仅关闭结束语句,因此我们会考虑测试集中会话的各个上下文部分。使用简单的公式随机确定上下文大小:

c= min(t-1,n-1),

where

这里,C表示最大期望上下文大小,我们将其设置为C = 20。最后一项是所需的最小上下文大小,我们将其设置为2。参数t是该对话的实际长度(因此约束条件) ,n是与随机采样的上下文长度相对应的随机数,被选择为与C成反比。

在实践中,这导致具有短上下文的短测试对话,而较长的对话通常被分成短或中等长度的段,偶尔长的上下文为10或更多圈。

3.5评价指标

我们考虑选择最佳响应的任务。 这可以通过处理3.4节中描述的数据来实现,而不需要任何人类标签。 该分类任务是对先前应用于对话数据集的召回和精确度量的适应。

语言任务中经常使用的一系列度量是recall@k(在下面表示为r@1 r@2,r@5)。在这里,代理被要求选择k最可能的响应,如果真实的响应是在这些k候选中,则是正确的。在二进制分类的情况下,只有r@1度量是相关的(如表3示例所示)。

虽然

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[441538],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。