RasaNLP

个性化对话系统Personalization in Goal-o

2018-03-16  本文已影响24人  是neinei啊

原文
代码

摘要

建模人类对话的主要目标是创建可以在开放式和目标导向场景中与人员交互的代理。 端对端训练的神经对话系统是这种广义对话模型的重要研究线,因为它们不会诉诸任何特定情境的手工制作规则。 然而,将个性化纳入这样的系统是一个很大程度上尚未探索的主题,因为没有现成的语料库来促进这种工作。 在本文中,我们提出了一个新的面向目标的对话框数据集,这些数据集受到与其相关的扬声器配置文件的影响。 我们分析了基于内存网络的现有端到端对话系统的缺点,并提出了对支持个性化的体系结构的修改。 我们还将对话中的个性化作为一项多任务学习问题进行调查,并显示在各种配置文件之间共享特征的单个模型优于每个配置文件的单独模型。

1.介绍

神经网络结构的记忆和注意力机制的最新进展是在机器翻译[Johnson等人,2016],QA[Graves等人,2016]以及其他需要逻辑推理元素的语言理解任务。相比较传统系统,建立基于神经网络的系统完成这些任务的主要动机是,它们不需要任何特征工程或规则领域的手工工作[Vinallys and Le,2015]。 会话建模就是一个这样的领域,端对端训练系统在开放式[Dodge et al。,2015]和面向目标的应用[Bordes and Weston,2016]中匹配或超越了传统的对话系统。

对话系统的一个重要但尚未探索的方面是根据与其交互的人员的特征或属性来个性化机器人的响应的能力。 个性化是创建真正智能的会话代理的关键,可以无缝集成到人类的生活中。例如,餐馆预订系统理想情况下应该与用户进行对话以找到变量的值,例如位置,烹饪类型和价格范围。然后它应该基于这些变量以及关于用户的某些固定属性(饮食偏好,最喜欢的食物项目等)提出建议。机器人使用的语言的注册(或样式)也可能受到用户某些特征(年龄,性别等)的影响[Halliday,1964]。然而,没有开放的数据集可以让研究人员训练每个对话都受说话人的个人信息影响[Serban et al。,2015]的端到端的对话系统。

为了创建这样一个数据集的最终目的,本文旨在扩展由Bordes和Weston [2016]引入的bAbI对话数据集。设置在餐厅预订的领域,他们合成的数据集将对话分解为若干任务,以测试对话系统应具备的一些关键功能。总而言之,这些任务可以用作在面向任务的环境中分析端到端对话系统的框架。 鉴于餐厅及其属性(位置,菜肴类型等)的知识库(KB),该对话系统的目的是为用户预订餐馆。 完整的对话分为不同的阶段,每个阶段都用来测试模型的一方面能力,例如是否可以学习隐式对话状态追踪,是否在对话框中使用知识库中的事实,以及是否处理未出现在训练集对话框中的新实体。

在本文中,我们建议扩展现有数据集的前五个任务。 除了原始任务的目标之外,对话系统还必须利用用户的个人资料信息来改变言语风格并个性化推理KB。 最终目标是根据用户的属性(饮食偏好,最喜欢的食品等)进行个性化的餐厅预订。

bAbI对话框数据集的合成本质以及我们的扩展工作使得构建完美的人工对话系统变得很容易。 因此,这里的目标不是要改善这个领域的技术水平,而是分析现有的端到端的面向任务的对话系统,并在此类框架中对个人信息个性化进行建模。 第3节介绍了我们对原始数据集的修改,第4节描述了基于第5节中任务基准的各种模型。在第6节中,我们分析了将面向任务的对话作为多任务学习问题的任务,并且显示 在各种配置文件中共享特征的单个模型优于每个配置文件的单独模型。 我们的数据集可以通过ParlAI框架[Miller et al。,2017]或Github以及我们的实验代码和训练好的模型进行访问。

2.相关工作

这项工作建立在Bordes和Weston [2016]中描述的bAbI对话数据集上,该数据集旨在测试餐馆预订目标导向的端到端对话系统。他们的任务旨在补充Weston等人描述的bAbI文本理解和推理任务。 [2015]。

与我们最接近的工作是Li等人,他们[2016]在SEQ2SEQ对话模型[Vinallys and Le,2015]中对演讲者角色进行编码。该模型基于讲话者的对话历史(例如,他们的所有推文)在向量空间中建立讲话者角色的嵌入。我们的工作与他们的调查不同,他们的研究意义在于:1)他们关注的是在开放式对话(chit-chat)中产生一致响应的问题,而我们的工作则侧重于面向目标的对话的个性化以及来自一组话语的正确候选响应的排序/区分 ,以及2)他们的对话系统需要提供演讲者的对话历史来建立角色,而我们的任务中,机器人必须从明确提供的属性中组成用户的个人信息。 这可以说是一种更好的现实世界学习场景表示,其中代理人可以利用存储在正式数据结构中的信息来个性化客户服务或餐厅预订等领域的对话。

3.数据集

我们建立在前五个合成的成的bAbI对话任务(T1-T5)上,目标是在餐厅预订餐桌。 会话由模拟器(图1所示格式)根据包含所有餐厅及其属性的底层KB生成。 每个餐厅都由一种美食(10种选择,例如意大利,印度),一个位置(10种选择,例如伦敦,东京),价格范围(便宜,适中或昂贵),宴会大小(2,4 ,6或8人)和评分(从1到8)。 每家餐厅都有一个地址和一个电话号码。 向KB发起API调用返回与满足四个参数的所有餐馆相关的事实列表:地点,美食,价格范围和派对大小。

除了用户和机器人话语之外,每个任务中的对话都由API调用和结果事实组成。在随机选择四个必填字段中的每一个字段后,使用自然语言模式生成对话:位置,美食,价格范围和派对大小。 用户有43种模式,机器人有15种模式(用户可以用4种不同的方式来表达,而机器人只有一种)。 如以下各节所述,我们对知识库进行了进一步添加,并增加了创建我们任务的机器人话语模式。 为了适应bAbI对话任务的综合性质,与真实生活情况相比,机器人响应的个性化被手工制作得过于简单。

图1:个性化餐厅预订系统 用户(绿色或黄色)与机器人进行对话(蓝色)以在餐厅预订餐桌。 在每一回合中,模型都可以访问用户的配置文件属性,对话历史记录和来自API调用的输出(浅红色),并且必须预测下一个机器人语音或API调用(以深红色)。 对话组之间的水平线表示以下各节中描述的单独任务。 (插图由图1改编,Bordes和Weston [2016])。

3.1 个性化的面向目标的对话任务

根据bAbI对话任务,任务1和2测试模型的隐式跟踪对话状态的能力,任务3和4检查他们是否可以排序并在会话中使用KB事实。 任务5将任务的所有方面组合成一个完整的对话框。 除了实现bAbI对话任务的原始目标之外,修改的任务还要求对话系统根据由各种固定属性组成的用户简档来个性化其言语风格和对KB事实的推理。 对于所有任务中的每个对话,在第一轮对话之前提供用户的属性(性别,年龄,饮食偏好和喜欢的食物项目)。

个性化任务1:发出API调用。用户进行查询,其中包含0到4个必填字段(统一采样)。 机器人必须提问以填补缺失的字段,然后生成适当的API调用。

个性化任务2:更新API调用。从任务1发出API调用开始,用户将其请求更新1到4次(统一采样)。 随机选择要更新的字段,然后机器人必须发布更新的API调用。

个性化任务3:显示选项。根据用户请求,通过相应的API调用查询KB,并将结果事实添加到对话历史记录中。 机器人必须根据用户的属性使用简单的启发式(在3.3节中描述)对餐厅进行分类,并向用户提供餐厅,直到他们接受为止。 用户在25%的时间内接受建议,或者如果是最后剩下一项选择,则始终接受建议。

个性化任务4:提供额外的信息。根据用户对随机抽样餐厅的请求,与餐厅有关的所有知识库事实都被添加到历史记录中,并且如果用户决定在那里预订餐桌,则进行对话。然后,用户要求得到餐馆的定位,或者其联系信息或两者都要(分别为概率分别为25%,25%和50%)。 机器人必须学会从历史中检索正确的KB事实,为用户量身定制。

个性化任务5:进行完整的对话。为任务5生成的对话将任务1-4的所有方面组合到完整对话中。

将所有5项任务纳入个性化的第一个方面是,根据用户的性别(男性或女性)和年龄(年轻,中年或老年人),机器人使用的语言风格发生了变化。 对于原始任务中的15个机器人话语模式中的每一个,我们为每个可能的(年龄,性别)配置文件排列创建了6个新模式。 这些模式中的每一个在向用户传递相同信息的同时,在语调,形式和词语用法方面都有所不同。 图1显示了(男性,老人)用户和(男性,年轻)用户的同一对话框的两个版本。将所有5项任务纳入个性化的第一个方面是,根据用户的性别(男性或女性)和年龄(年轻,中年或老年人),机器人使用的语言风格发生了变化。

3.2 用户配置文件和语言样式更改

对于原始任务中的15个机器人话语模式中的每一个,我们为每个可能的(年龄,性别)配置文件排列创建了6个新模式。 这些模式中的每一个在向用户传递相同信息的同时,在语调,形式和词语用法方面都有所不同。 图1显示了(男性,老人)用户和(男性,年轻)用户的同一对话框的两个版本。

在创建话语模式时,重要的是为6个配置文件中的每一个保留一致的词汇。机器人使用的词语和语言的形式化程度和精确度随着年龄而增加。同一时间,同一性别和年龄组的词语选择重叠。例如,(男性,年轻)用户的模式在形式和语调上与(女性,年轻)用户的模式类似,并与(女性,年轻)和(男性,中年)用户共享某些关键词,用户模式。这与(女性,中年)或(女性,老年人)使用者的模式相比较无关。通过在配置文件之间建立这种关系而不是6种完全不同的模式,我们想测试对话模型是否可以学习形成概念(例如形式,精确度和词语使用)与属性(如性别和年龄)之间的关联。将我们的语音样式更改应用于bAbI对话任务会导致与6个用户配置文件关联的同一个对话框的6个版本。因此,我们将每个任务的规模增加了6倍。所有原始模式和与其中每一个相关的6个修改模式都以附录A的表格形式显示。

3.3 KB更新和个性化推理

为了使任务3中的机器人推荐餐馆的顺序个性化,我们为用户的简档添加了2个新属性:饮食偏好(素食或非素食)和最喜欢的食物项目(从与在对话中烹饪)。我们为知识库中的每家餐厅创建了一个副本,并为餐厅类型(素食主义者或非素食主义者)添加了一个附加属性,以区分其他相同的副本。对于修改后的KB中的每个餐厅,我们还添加了特色属性(从与餐厅菜肴相关的菜单中随机抽样)。当修改原始任务中的每个对话框时,我们使用的评分计算公式为:评分(8分)+8(如果餐馆类型与用户的饮食相匹配偏好)+ 2.5(如果餐厅专业匹配用户最喜欢的食品)。有了这样一个标准,所有素食餐馆都会为素食用户比非素食餐厅高8分,并且在机器人建议任何非素食餐馆(按照评分从高到低)推荐之前总会提出。通过额外获得2.5分以反映用户对最喜欢食品的偏好,专门从事该项目的较低评级餐厅将在较高等级(最多2分)专门从事其他事务的餐厅之前提出。这测试了模型根据用户的配置文件执行真/假推理的能力,并根据多个条件隐式排列餐厅。

我们对任务4的修改要求机器人根据用户的某些属性和餐厅本身检索与餐厅相关的KB事实的组合。除了电话号码和地址之外,我们还为每家餐厅的知识库条目添加了3个新属性(社交媒体链接,停车信息和公共交通信息)。在每个修改后的对话框中,当用户询问餐厅的联系信息时,如果用户年轻,机器人必须返回餐厅的社交媒体链接,或者如果用户是中年或老年人,则必须返回电话号码。类似地,当用户询问餐厅的方向时,如果餐馆便宜,机器人必须返回地址和公共交通信息,或者如果餐厅处于适中或昂贵的价格范围内,则必须返回地址和停车信息。这测试了模型根据用户简档(年龄)中的属性或用户在对话期间(餐厅的价格范围)所做的选择来个性化知识库事实检索的能力。

3.4 更新数据集

我们使用与原始bAbI对话框数据集相同的方式生成和构建数据集:对于每个任务,我们提供了使用一半修改后的KB生成的培训,验证和测试集对话框。我们还从包含新实体(餐馆,美食类型等)的其他知识库中生成了另一个测试集,这些新实体在任何培训对话中都看不到,称为(OOV)测试集。在训练期间,该模型可以访问trainning example和知识库。模型可以在plain和OOV两个测试集上进行评估,评估他们在每次对话时从所有可能的候选列表中排列正确的机器人话语的能力。表1给出了每项任务数据集的统计数据,并与原始bAbI对话任务进行了比较。由于与用户配置文件相关的各种语音风格,词汇的大小增加了近四倍。由于KB中每家餐厅的重复和演讲风格的变化,可能的候选答复数量增加了10倍。我们为每项任务提供两种变体:一套全套生成的对话框和一套只包含1000个对话.

表1::数据集统计。 对于第4行到第6行,第一个数字是整个集合的大小,括号中的数字是小集合的大小。 (*)PT1-PT5和所有5个bAbI对话任务都有两个相同大小的测试集,一个使用与训练集相同的KB实体,另一个使用词典外词。

4.模型

继Bordes和Weston [2016]之后,我们通过评估几种学习方法:基于规则的系统,监督嵌入和端到端内存网络来提供修改后数据集的基线。我们还建议对内存网络架构进行修改,以便通过KB进行个性化推理。

4.1 基于规则的系统

我们的任务是通过修改和附加到bAbI对话框任务T1-T5生成的。 所有的对话框都是用基于规则的模拟器构建的,机器人表达完全是确定性的。 因此,可以基于与模拟器相同的规则创建完美的手工制作系统。

4.2 有监督的嵌入模型

尽管从Word2Vec [Mikolov等人,2013]的原始文本学习无监督嵌入广为人知,嵌入也可以专门针对特定任务的监督方式学习。对于开放式和面向目标的对话,受监督的词嵌入模型(对话历史,响应)对已被证明是一个强有力的基线[Dodge et al。,2015,Bordes and Weston,2016]。 我们不会为用户配置文件手工制作任何特殊嵌入,并将其视为对话中的一轮。

嵌入向量是专门针对预测下一个回复的任务而训练的:: image.png , 其中A和B是d×V字嵌入矩阵,并且输入和回答都是(bag-of-embedding)。 该模型用SGD进行训练以最小化排序损失函数: image.png ,其中m是边际的大小,并且N个负候选响应 image.png

是按照示例采样的.

4.3 记忆网络

记忆网络[Weston et al。,2014]是最近一类被证明可以成功完成各种任务的模型,如问答[Sukhbaatar等,2015]和进行对话[Dodge等,2015]。对于对话系统,整个对话历史记录存储在模型的内存组件中。它可以迭代地读取以执行推理并基于上下文选择最佳可能的回答。该模型在每次交谈时都会注意记忆中的各种实体,并可以通过多次迭代(称为hops)进行可视化。 应用Bordes和Weston [2016]描述的对内存网络体系结构的修改,我们使用该模型作为端到端基线并分析其性能。

用户信息存储在模型的存储器中,就好像它是用户所说的对话历史的第一轮一样,即该模型通过组合配置文件中每个属性的嵌入值来构建个人信息的嵌入向量。 与Bordes和Weston [2016]不同,我们不使用KB实体的任何匹配类型功能。 我们的目标是分析现有内存网络模型的功能,以便在进行对话时利用配置文件信息。 附录B包含基于下节中描述的实验的内存网络预测的可视化。

4.4 拆分的内存架构

任务3和4的个性化推理方面要求机器人结合来自用户属性以及对话历史(即知识库事实和对话)的信息。 单个内存架构不能充分关注用于制定个性化响应的各种属性和每轮对话。

我们建议将模型的内存分为两部分:用户信息配置和对话历史记录。 在对话启动之前,各种属性将作为单独的条目添加到配置文件内存中。 同时,随着对话的进行,每个对话轮都会添加到对话内存中。模型读取的机制和基于内存做出推断的机制保持不变。 来自两个存储器的输出以元素方式求和的方式以获得每轮对话的最终响应。 该模型的可视化如图2所示。

image.png

图2:内存网络的分割内存架构:配置文件属性和对话历史记录用两个单独的存储器建模。 两个存储器的输出相加得出最终响应。

5.实验

我们报告表2中所有模型和任务的响应准确度(即从所有可能的答案中选出正确的候选答复的百分比)。行显示任务PT1-PT5和列2-5给出每个模型的准确性。 模型的超参数在验证集上进行了优化(值在附录C中提供)。

表2:跨模型和任务的测试结果。 对于内存网络,第一个数字是每个任务的完整对话的准确性,括号中的数字是小组(含1000轮对话)的准确性。 所有其他型号仅在完整set上进行评估。

image.png

手工制作的系统。正如预期的那样,手工制定的基于规则的系统胜过所有机器学习模型并完美地解决了所有5个任务。 然而,重要的是要注意,为实际对话构建基于规则的系统并非易事:我们的任务使用有限的词汇量和固定的语音模式。 因此,我们希望用它们分析机器学习算法的优缺点。

监督嵌入。与Bordes和Weston [2016]的bAbI对话任务中报告的结果相比,监督嵌入在修改后的任务上表现更差。 该模型无法成功完成任何任务,并且PT2-PT5的每个响应精度极低。 由于词汇量增加了四倍,候选集规模增加了十倍,我们将这种性能下降归因于我们任务复杂性的增加。

记忆网络的演讲风格。记忆网络在所有任务中大大优于监督嵌入。 他们以非常高的准确度完成了PT1和PT2(发布和更新API调用)。 这表明该模型能够隐式跟踪对话状态并根据用户的配置文件个性化机器人的话语。 表5至表6显示了每次对话时读取的内存部分的可视化。

拆分记忆模型进行个性化推理。PT3-PT5的结果表明,Memory Networks无法可靠地在会话中使用KB事实和配置文件信息。 具有分割内存功能的内存网络明显优于PT3的标准体系结构,从而在完整对话任务PT5上实现更好的性能。 表8至表11中对模型注意力的可视化和分析表明,标准记忆网络无法解释关于实体的知识并将其与用户的属性相关联,而拆分记忆有助于在分类餐馆时将概要信息与正确的知识库结合起来 PT3)或提供关于它们的附加信息(在PT4中)。

训练困难。尽管大量的超参数调整,分割记忆模型很难训练PT1和PT2。 训练收敛的准确性明显低于标准模型,导致测试精度降低,并且表明更简单的模型更适合于不需要对内存中的各种实体进行组合推理的任务。 一般来说,为知识库中每个实体学习可区分的嵌入被证明是所有模型的挑战。

个性化的通用体系结构。虽然没有一个模型能够充分解决PT3和PT4,但分配内存架构的内存网络结果令人鼓舞。 我们相信这样的修改不是特定于内存网络的,并且可以应用于任何通用对话模型,其存储和通过对话轮流的原因。

6.多任务学习

我们在多任务学习场景中分析了内存网络架构,以进行全面对话。我们针对演讲风格变化的6个配置文件排列中的每一个训练了各个配置文件特定的模型,并将其性能与单个多配置文件模型进行了比较。每个特定配置文件模型都是在机器人和具有相应年龄和性别组合(总共6000个对话框)的用户之间进行1000次完整对话的培训。 多轮廓模型在相同的6000个完整对话框上训练,包含全部6个用户配置文件。 对于每个配置文件,我们在表3中的1000个测试对话框(具有相同配置文件的用户)上报告针对特定配置文件和多配置文件模型的每个响应精度。

多模型明显优于每个profile特定模型,表明在具有多个profile的对话框上训练单个模型,这些profile共享逻辑和词汇是一种有效的学习策略。 我们将这种颠簸的准确性归因于学习6个用户配置文件中的共享特征,这可以通过比较表12中两种策略的注意力权重来加以说明。

image.png

结论

本文旨在通过引入一个面向目标的对话框的新数据集,以及与每个对话框关联的用户配置文件,弥合神经对话代理研究领域的空白。 该数据集充当端到端目标导向型会话代理的培训和分析的试验台,其必须基于用户简档中的属性个性化与用户的对话。 面向目标的对话的关键方面已被分解为各种综合生成的任务,以便在将模型应用于实际数据之前,以系统的方式评估模型的优缺点。 尽管这些任务的语言和场景是人为的,但我们相信建立可以解决这些任务的机制是开发诸如餐厅预订,客户服务或数字助理等领域的复杂个性化对话系统的合理起点。

另外,我们演示了如何使用我们的任务来分解基于内存网络的对话系统。 该模型无法执行组合推理或个性化来解决任务,表明需要对这些方面的学习方法进行进一步的工作。 为实现这一目标,我们提出了一种分离式内存架构,用于端到端训练的对话代理,从而提高整体性能。

最后,我们展示了将对话中的个性化作为多任务学习问题而不是为各种用户配置文件训练单独模型的优势。 我们发现,联合训练模型明显优于特定于个人资料的模型,并且能够利用各种对话样式之间的共享特征和关系。

上一篇下一篇

猜你喜欢

热点阅读