论文笔记:《任务导向对话系统中的持续学习》

论文标题:《Continual Learning in Task-Oriented Dialogue Systems》

发表会议:EMNLP 2021
作者:Andrea Madotto等

创新点:
①持续学习基准:论文提出了一个针对任务导向对话系统(Task-Oriented Dialogue Systems, ToDs)的持续学习基准,包含37个领域,这些领域需要在四种设置下连续学习,包括意图识别、状态跟踪、自然语言生成和端到端。这种基准为研究者提供了一个全面的测试平台,用于评估和比较不同的持续学习方法。
②多任务学习基准:论文还提出了一个简单的多任务学习基准,其中所有数据同时展示给模型,作为持续学习方法的性能比较基准。这有助于理解持续学习在任务导向对话系统中的挑战性。
③残差适配器架构方法:论文提出了一种基于残差适配器(Residual Adapters)的简单而有效的架构方法,用于持续学习。这种方法允许模型在不增加额外参数的情况下,通过训练特定任务的适配器来学习新任务,从而避免了灾难性遗忘。
④性能、参数使用和记忆大小的权衡分析:论文揭示了不同持续学习方法在参数使用和记忆大小方面的权衡,这对于设计任务导向对话系统非常重要。通过实验,论文展示了如何在持续学习设置中平衡这些因素,以提高模型的性能。
⑤基准和基线的发布:论文将提出的基准和几个基线一起发布,以促进该方向的更多研究。这为研究者提供了一个共享的测试平台,可以用来比较和评估不同的持续学习方法。

一、摘要部分

在面向任务的对话系统中持续学习可以允许我们随着时间的推移添加新的领域和功能,而不会导致整个系统重新培训的高成本。
本文主要工作如下:
1)提出了一个面向任务的对话系统的持续学习基准,该系统具有37个领域,可以在意图识别、状态跟踪、自然语言生成和端到端等四种设置下连续学习。
2)实现并比较了多个现有的持续学习基线,并提出了一种基于残差适配器的简单而有效的体系结构方法。
3)实验表明,所提出的架构方法和一个简单的基于重播的策略表现相当好,但它们的表现都不如多任务学习基线,在多任务学习基线中,所有数据都是一次显示的,这表明在面向任务的对话系统中持续学习是一项具有挑战性的任务。
4)揭示了在参数使用和内存大小方面不同连续学习方法之间的权衡,这在面向任务的对话系统的设计中是重要的。拟议的基准与几个基线一起发布,以促进该方向的更多研究。

二、引言部分

面向任务的对话系统(ToDs)要么是模块化的(每个模块依次为自然语言理解(NLU),对话状态跟踪(DST),对话策略(DP)和自然语言生成(NLG)),要么是端到端的,其中单个模型隐式地学习如何发布api(即NLU+DST)和系统响应(即NLG)。
这些系统经常根据用户需要更新新的功能,例如,增加新的插槽和意图,甚至是全新的域。
然而,现有的对话模型是基于固定邻域为前提开始训练(即使用该领域的固定数据集训练),且不会随着时间的推移添加新的领域和功能,因此不会产生整个系统再训练的高成本。但让系统拥有持续获取新知识的能力,即持续学习(CL)在对话系统的设计中是至关重要的。在持续学习中,模型一次训练一个数据集,下图展示了在任务导向对话(ToDs)中连续学习(CL)的高层次直观理解(图中模型首先在来自酒店域D_Hotel的数据上进行训练,然后在出租车域D_T计程车上进行训练,以此类推。基于损失函数L,对模型参数进行顺序更新):
在这里插入图片描述

在这种情况下,主要的挑战是灾难性遗忘。之所以会出现这种现象,是因为学习策略中任务之间的分配发生了变化,导致灾难性地忘记了以前获得的知识。为了克服这一挑战,通常采用三种方法:
①损失正则化,以避免干扰先前学习的任务
②重演(rehearsal),使用情景记忆来回忆先前学习的任务
③架构,为每个学习的任务添加任务特定的参数
然而,架构方法通常不被视为基线,特别是在序列到序列的生成任务中,因为它们通常需要在测试期间进一步选择用于给定任务的参数
本文贡献如下:
①提出了ToDs持续学习的基准,在4个设置中连续学习37个任务
②提出了一种简单而有效的基于残差适配器的CL(持续学习)架构方法,该方法可以在不需要任务分类器的情况下连续学习任务
③分析了三种主要CL方法(即正则化,重演(rehearsal),架构)的性能,参数数量和情景记忆大小之间的权衡
在(三、背景部分)中,介绍了整个论文中使用的基本概念和符号,用于任务导向的对话建模和持续学习,在(四、AdapterCL)中,介绍了本文提出的架构CL方法,在(五、实验设置)中,描述了数据集,基线,评估指标和实验设置,在(六、结果与分析)中描述了论文的主要发现。

三、背景部分

1、面向任务的对话建模

在本文中,将面向任务的对话系统建模为seq2seq生成任务,即生成api调用和响应。模型使用对话历史生成api调用,即用户意图和当前对话状态的连接,然后使用其返回值(可以是空的,也可以是系统语言行为)生成系统响应,如下图所示:
在这里插入图片描述

这种建模选择是由现有的注释对话数据集指导的,这些数据集提供了用户在每个回合的意图和对话状态,以及系统的语言行为;它允许我们定义四种不同的设置来研究持续学习,即意图识别(Intent)、对话状态跟踪(DST)、自然语言生成(NLG)和端到端(E2E)。在接下来的段落中,将正式地将四种设置描述为seq2seq模型的不同输入输出对。
1)数据格式化:
首先,在不失一般性的前提下,通过输入输出对定义了三种模块化设置:
在这里插入图片描述

H:历史对话
I:意图或者说api名
s_i:槽名 v_i:槽值
S_OUT:返回的语言行为
S:输出,即最后一个系统话语
以上分别为意图模块(INTENT)、对话状态跟踪模块(DST)、自然语言生成模块(NLG)。意图模块通过历史对话生成意图(I),对话状态跟踪模块根据历史对话和意图模块得到槽值对(s_i - v_i),自然语言生成模块通过前两个模块的结果生成输出(S)
其次,定义了一个api调用,如下:
在这里插入图片描述

该api通过意图(I)和槽值对(s_i - v_i)生成输出,该api调用的返回值要么是一个空字符串(模型直接使用对话历史生成响应),要么是一个语言行为(S_OUT)
此外,与对话历史类似,定义了两个特殊的tokens API:S_API和S_OUT:分别用于触发模型生成API调用和区分API的返回和对话历史。在此预处理的基础上,定义了本文使用的四种设置。
其中端到端(E2E)设置为:
在这里插入图片描述

以上通过历史会话生成意图(I)和槽值对(s_i - v_i),即api生成语言行为(S_API),通过历史会话和语言行为(S_OUT)生成输出(S)
通常,SOUT是空的,因此模型将对话历史直接映射到响应(H—>S)

2)模型:
采用了仅解码器的语言模型(例如GPT-2),给定输入序列X = {x_0,……,x_n} 输出序列Y = {x_n+1,……,x_m},使用概率链式法则计算条件语言模型分布为:
在这里插入图片描述

其中,θ为模型参数。模型的参数被训练成最小化输入输出对的数据集D上的负对数似然,在我们的例子中是四个设置的数据。n + m为数据集D中的最大序列长度,在推理时,给定输入序列X,由θ参数化的模型自回归生成输出序列Y
损失函数Lθ定义如下:
在这里插入图片描述

D:T领域下的学习策略有序集合(D={D_1,…,D_k ,…,D_T})
D_k:k邻域下的数据集(K为所考虑的对话域(如酒店、餐厅等))
θ_K:学习任务K的模型参数

2、持续学习

持续学习(CL)的目的是学习一组任务,而不会灾难性地忘记以前学过的任务。在面向任务的对话系统中,我们将CL描述为按顺序学习一系列领域。
根据最近定义的CL分类,本文研究了在训练期间而不是测试期间提供任务ID的设置。也就是说,在训练期间,模型知道当前正在学习哪个领域,但是在测试期间,模型在没有指定对话领域的情况下进行评估。这个假设使CL设置更具挑战性,但也更现实,因为在测试期间,用户没有明确指定他们想要在哪个域中操作。
在本文中,考虑了三种持续学习方法:正则化、重演(rehearsal)和架构,如下:

1)正则化方法为当前学习到的θ_t增加了一个正则化项,以避免干扰之前学习到的θ_(t−1)。任务t的损失形式为:
在这里插入图片描述

其中,θ*_(t−1)是在此阶段冻结的先前学习参数的副本。在实验中,考虑使用两种正则化:
①恒等函数(L2):恒等函数将输入值直接映射到相同的输出值,即对于任何输入 x,输出 f(x)=x。L2是一种防止过拟合的技术
②费舍尔信息矩阵(EWC):一个统计概念,用于衡量参数估计的不确定性。在机器学习中,特别是在连续学习的背景下,它被用来衡量模型参数的敏感性,以防止在学习新任务时遗忘旧任务的知识

2)重演(rehearsal):使用情景记忆M来存储以前学习过的领域中的示例,并在学习新任务时重用它们。
①最直接的方法是将记忆M的内容添加到当前任务数据D_t中。这种方法称之为REPLAY。
②另一种重演方法是约束梯度更新,使内存中的样本损失永远不会增加。具体为:
在这里插入图片描述

在这种情况下,梯度情景记忆(GEM)通过二次规划求解器计算梯度约束,该求解器随模型参数的数量缩放。然而,对于大型语言模型使用GEM是不切实际的,因为它们有数百万个参数,并且为每个批计算约束。为了应对这种计算复杂性,Chaudhry等人提出了一种有效计算梯度约束的A-GEM,同时在CL任务中有效。
③最后,针对语言的训练方法是LAMOL,它不是将样本存储在M中,而是学习一个同时学习解决任务和生成训练样本的模型。

3)架构:方法将特定于任务的参数添加到每个任务的现有基本模型中。在这类模型中,已经提出了多个模型,如Progressive Net,dynamic extenable Networks (DEN) 和learn - grow。另一方面,有固定容量方法,不添加特定参数,但它们学习参数掩码,通常是二进制,以选择特定于任务的子网络。然而,这些模型主要是在计算机视觉任务上进行测试的,它们不能轻易地处理持续学习设置(即,在测试期间没有任务ID)。

四、AdapterCL

由于在序列到序列建模中缺乏CL的架构基线,作者提出了一种新的架构方法,称为AdapterCL。该方法使用残余适配器,对每个任务进行参数化,并使用基于熵的分类器在测试时选择要使用的适配器。这种方法是为大型预训练语言模型而设计的。如GPT-2,只有特定于任务的参数被训练,而原始权重被冻结。

1、残差适配器:

在每个Transformer层的顶部添加可训练参数,这些参数在不修改原始权重的情况下控制预训练模型的输出分布。适配器块由层归一化组成,然后是带有残余连接的两个线性层。如下图:
在这里插入图片描述

残差适配器计算为:
在这里插入图片描述

µ_i:L层模型的Adapter_i参数集,具体表示为:{W E_0,W D_0,……,W E_L,W D_L}
W:可训练的参数
W E_l:编码器的权重,维度为d×b的可训练参数
W D_l:解码器的权重,维度为b×d的可训练参数
H:给定Transformer的隐藏层表示
该式子中,首先对输入x进行层归一化(LN),通过与训练参数运算(进行线性变换)、激活(RELU)后,累加上隐藏层表示(H)(将变换后的特征与原始输入特征结合起来,以保留原始输入的某些信息)得到结果,简单而言,它将输入 H 通过一系列变换来适配特定的上下文或任务
为了不断学习新的任务,首先生成一个新的适配器,参数化为µ,然后训练它的参数,具体损失定义同公式(3)。如,在给定数据集D_t和模型及其对应的适配器µ_t,损失定义为:
在这里插入图片描述

µ_t:适配器
重要的是,损失在适配器µ_t上进行了优化,以保证每个任务都是独立学习的。

2、基于困惑度(Perplexity-Based)的分类器

在CL设置中,任务ID是在训练期间提供的,因此每个适配器µ_t是在数据集D_t上优化的。相反,在测试期间,没有提供task-id,因此模型必须预测使用哪个适配器来完成任务。在正则化和重演方法中不需要这个步骤,因为在训练期间优化了一组参数。
建议利用每个适配器对输入X的困惑度作为不确定性的度量。因此,通过选择复杂度最低的适配器,以及最自信的模型来生成输出序列。输入序列X = x_0,……,x_n的困惑度定义为:
在这里插入图片描述

公式解释:对于序列中的每个符号,我们计算模型在给定之前所有符号的条件下生成该符号的概率的倒数,然后将这些倒数相乘,最后取n 次方根。这个值越大,表示模型对序列的预测能力越差;反之,值越小,表示模型的预测能力越好。
因此,给定以µ_0,……,µ_n参数化的适配器集合(分别用D_0,……,D_n数据集训练)和一个输入样本X,计算α_t(适配器t对输入X的置信度):
在这里插入图片描述

最后,任务id t由以下公式计算得到:
在这里插入图片描述

基于困惑度的选择器需要相对于适配器数量的线性转发数(公式9),但它的优点是不需要进一步的分类器,因为分类器本身会遭受灾难性的遗忘,并且需要情景记忆。

五、实验设置

本节包括
①用于创建学习策略的数据集
②用于评估不同设置的评估指标
③实验设置

1、数据集

在具有大量需要持续学习的任务和多个训练设置的对话系统中,目前没有CL(持续学习)的基准。最接近该篇文章的工作的是Mi等人,他们在NLG设置中不断学习5个域。一般来说,持续学习的NLP基准使用的任务不超过10个。因此,在本文中,提出了一个持续学习基准,通过联合预处理四个面向任务的数据集,如Task-Master 2019 (TM19) 、Task-Master 2020 (TM20)、模式引导对话(SGD)和MultiWoZ 。
这就形成了37个领域的策略,需要在INTENT分类、DST、NLG和E2E等四种设置下连续学习。这是可能的,因为这四个数据集为用户和系统转换以及对话状态提供了语言行为注释。
为了避免任何域重叠,只选择具有单个域的对话,并且不合并具有相似/相同名称或语义的域。例如,餐厅域出现在TM19、TM20和MWOZ中,具有不同的槽名和值。因此,研究过程中有意将这些数据样本分开,以便在同一领域中有多个api可用的建模场景。
最后,按照(三中的第1点面向任务的对话建模)对数据集进行预处理,形成四项任务。如下表所示:
在这里插入图片描述

由观察到的样本数量可知,不同的域有不同的样本大小,从几百个样本(例如,SGD-travel)到15K(例如,TM19-flight)。重要的是,由于不是所有的数据集都提供了非规范化版本的响应,所以实验中保留所有数据集的纯文本形式。

2、评价指标

端到端面向任务的对话系统的自动评估具有挑战性,特别是对于响应生成而言。为了克服这个问题,在本文中使用了基于三个模块化设置的定义良好的度量。在这三个子任务中,分别定义了以下四个指标:
1)意图:使用生成的意图和真实标签之间的准确性来评估识别
2)DST(对话状态跟踪):在真实对话状态上使用联合目标精度(JGA) 进行评估。
3)NLG(自然语言生成)使用BLEU分数和槽错误率(EER) 进行评估,该错误率由槽总数与响应中未出现的值之间的比率计算。在SGD等数据集中,槽具有二进制值,例如yes或no,因此将其从Kale和Rastogi(2020)中的计数中排除。在E2E设置中,如果api输出(Xout)为空,则依赖BLEU分数。
独立于度量,我们计算持续学习的特定度量,如Lopez-Paz和Ranzato(2017)的平均度量思考时间(Avg. metric)。我们考虑访问每个T任务的测试集,在模型完成学习任务t_i后,我们评估模型在策略中所有任务上的测试性能。
这样,我们构造矩阵R,其中R_i;j是在观察任务t_i的最后一个样本后,模型在任务t_j上的测试度量(例如BLEU, JGA)。那么平均精度定义为:
在这里插入图片描述

Avg. Metric分数对于理解不同基线的学习动态思维时间是有用的。进一步的指标,如Backward-Transfer和Forward-Transfer 可用于区分具有相似平均度量分数的基线,但在本文中,将评估限制在该指标上,因为不同基线之间存在很大差距。最终,为了评估适配器选择,使用真实任务id上的准确度。

3、基线和设置

本文的主要目的是比较不同CL方法的性能,并了解它们之间的权衡。
因此,根据(三中2、持续学习部分)提供的定义,比较了①EWC(费舍尔信息矩阵)和L2(正则化)② A-GEM, LAMOL和REPLAY(重演(rehearsal)),以及③AdapterCL。
此外,提供了一个在任务上连续训练的基线,即VANILLA,没有任何正则化或记忆,以及一个多任务基线(MULTI),它同时在策略中的所有数据上进行训练。
在L2, EWC和A -GEM中,在0.0001到100的范围内调整不同的λ,并且在基于排练的方法中,例如REPLAY和GEM,每个任务保留50个样本,在策略结束时M中总共有1850个样本。这一点尤其重要,因为如果将所有已见任务的样本存储在内存中,模型需要很高的训练成本。可以说,如果每个任务的样本量很小,这可能是一种选择,但在大型语言模型中,这并不总是可能的。因此,最小化内存中样本数量的假设是有效的,并且在CL文献中被广泛使用。最后,对于AdapterCL,将瓶颈大小b调优到10、50、100和200之间。在持续学习中,模型无法决定任务的顺序,因此,通过随机排列37个任务来创建5个学习策略。

六、结果和分析

主要结果如下表(其中+Param表示额外的参数,Mem表示过去的记忆):
在这里插入图片描述

由数据可知
①基于正则化的方法(L2/EWC)和一些基于重演的方法(AGEM/LAMOL)在任务中表现都很差
②REPLAY和AdapterCL在意图和DST(对话状态跟踪)度量中表现相当好
③REPLAY在NLG(自然语言生成)任务中表现最好,表明需要在任务之间迁移学习
④没有一种CL方法可以达到多任务基线(MULTI),特别是在DST(对话状态跟踪)任务中。
此外,基于式(10)的适配器选择精度,端到端为95.44±0.2%,意图识别为98.03±0.1%,DST(对话状态跟踪)为98.19±0.1%,93.98±0.1%。
虽然这些数字很有意义,但它们并不能描述策略的整个学习历史。为了更好地理解这种动态,在每个任务被学习后,在方程(11)中绘制平均度量(即方程中的t=T)。如下图:
在这里插入图片描述

通过观察可知,LAMOL在前12个任务中的表现与REPLAY一样好。这是因为LAMOL学习生成训练样本而不是使用外显记忆,因此当显示的任务越来越多时,生成变得越来越困难。这进一步加强了制定长策略基准的动机。

1、没有免费的午餐

最后,根据结果,特别是根据每种方法所使用的资源,得出结论,就避免灾难性问题所需的资源而言,没有免费的午餐(即在所有可能的问题分布上,没有一种算法在所有情况下都是最优的)。更详细地说,在REPLAY和AdapterCL中,所使用的资源随着任务的数量线性增长,即,在REPLAY中,存储在情景记忆中的样本数量线性增长(即,任务数量的50倍),而在AdapterCL中,参数数量线性增长(即,适配器参数数量乘以任务数量)。
因此,给定一个资源预算,在内存或参数方面,不同的基线是可取的。使用基于记忆的方法(例如,REPLAY)的主要优点是不添加任何参数,因此生成的模型更接近多任务基线,但它的缺点是失去了原始预训练模型的权重。
这对于大型预训练的LMs来说尤其重要,因为它们为调整新任务提供了一个很好的起点。另一方面,参数隔离方法(例如AdapterCL)的主要优点是能够保留原始权重,并且能够在给定某个输入时控制触发对应的任务。后者在只向用户显示域子集的场景中很重要(例如,只有一个特定的餐馆api)。相反,主要的缺点是缺乏任务之间的知识转移,因为每个任务的数据集是孤立训练的

2、分析:情景记忆大小

在本节中,分析了增加情景记忆容量对回放方法的影响。
简单地说,通过在内存中包含所有训练样本,最后一个任务的模型收敛到多任务基线。那么,为了避免灾难性遗忘,每个任务应该保留多少样本的问题就很重要了。如下图:
在这里插入图片描述

通过观察在不同情景记忆大小在DST任务中的表现,得出:通过每个任务仅存储少量样本(即10-50),模型仍然严重遭受灾难性遗忘,而在我们的设置中,大约有500个样本,相当于总共18500个样本,性能更接近多任务基线(即可能的上限)。

七、相关工作

持续学习方法通常是在计算机视觉任务上开发和测试的。感兴趣的读者可以参考Mundt et al (2020);Parisi等人(2019);De Lange等人(2019)对现有方法的概述,以及(三中2、持续学习部分)对本文研究的三种主要CL方法的更多详细信息。另一方面,持续学习也被研究在长期学习(LLL)场景中,学习者不断积累知识并在未来使用它。
在本文中,研究了连续学习一系列任务的环境。
1)NLP的持续学习:已经在分类任务和生成任务中进行了探索
例如,Sun et al (2019);Chuang等人(2020)提出了LAMOL,将其作为基准,并研究了其在DecaNLP子集中的有效性。另一方面,d ’ autumn等人(2019)的工作;Sprechmann等人(2018)表明不适合将交互系统作为对话系统,因为它们需要在推理过程中进行局部适应(即微调步骤)。最后,持续学习被用于句子编码器、作文语言学习和关系学习。然而,这些方法是非常特定于特定的NLP应用程序。
2)对话系统中的持续学习:关于面向任务的对话的CL的早期工作来自Lee,其中EWC用于避免顺序学习的三个领域的灾难性遗忘。持续学习已经在NLG环境中进行了研究,其中单个模型被训练为在MWoZ(用于研究和开发对话系统和任务导向的对话模型的大型多领域对话数据集)中一次学习一个领域。作者运用情景记忆法结合EWC复述了这个例子。
在本文中,在一个大型基准测试中比较了类似的基线,该基准测试还包括MWoZ和NLG设置。在Wu等人使用MWoZ的DST设置中也研究了持续学习,其中比较了L2, EWC和GEM等几个基线。不同的是,Li等人利用CL来评估聊天机器人模型的质量,He等人研究了聊天系统中的灾难性遗忘问题。最后,Shuster等人表明,通过在开放域幻想世界游戏中训练人机对话模型,通过自动指标和在线参与度得分来衡量,模型会逐步改进。

八、结论部分

在本文中,提出了面向任务的对话系统中持续学习的基准,在意图识别、对话状态跟踪、自然语言生成和端到端等四种设置下连续学习37个任务。然后,实现了三种不同的持续学习方法,如正则化、预演和架构。而后,提出了一种基于残差适配器的简单而有效的方法,并使用基于熵的分类器在测试时选择使用哪个适配器。最后,分析了评估基线的性能、参数数量和情景记忆大小之间的权衡,揭示了在所有可能的问题分布上,没有一种算法在所有情况下都是最优的。

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值