1 介绍
年份:2020
期刊: arXiv preprint
引用量:111
本文提出了一种基于残差适配器的架构方法,用于任务型对话系统中的持续学习,通过在预训练的语言模型上添加可训练的适配器参数来实现新任务的学习,同时使用基于困惑度的分类器在测试时选择最合适的适配器。
Madotto A, Lin Z, Zhou Z, et al. Continual learning in task-oriented dialogue systems[J]. arXiv preprint arXiv:2012.15504, 2020.
2 创新点
- 首个持续学习基准测试:提出了首个针对任务型对话系统(ToDs)的持续学习基准测试,包含37个不同领域,这些领域在模块化和端到端学习设置中被连续学习。
- 残差适配器架构:提出了一种基于残差适配器的简单而有效的架构方法,该方法可以在测试时不需要任务分类器,即可连续学习新任务。
- 困惑度分类器:提出了一种基于输入序列困惑度的分类器,用于在测试时选择最合适的适配器,以生成输出序列。
- 性能与资源权衡分析:分析了不同持续学习方法在参数使用、内存大小和训练时间方面的权衡,这对于设计任务型对话系统非常重要。
- 与多任务学习性能对比:提出持续学习的性能上限应等同于当所有领域的数据同时可用时的多任务学习性能,并在实验中验证了这一点。
- 高效的新领域学习:实验表明,所提出的架构方法和简单的基于重放的策略在学习新领域时,比其他持续学习技术表现得好很多,且学习速度比多任务学习快20倍。
- 开源基准测试:为了促进这一方向的更多研究,作者发布了所提出的基准测试。
3 相关研究
- 任务型对话系统(ToDs)的持续更新:
- 介绍了任务型对话系统根据用户需求持续更新新功能,例如添加新的槽位(slots)和意图(intents),或完全新的领域。这是通过持续学习(CL)实现的,以减少每次重新训练整个系统所需的高昂成本。
- Sebastian Thrun and Lorien Pratt. 2012. Learning to learn. Springer Science & Business Media.
- 持续学习的方法:
- 提到了三种通常用来克服灾难性遗忘的方法:损失正则化(loss regularization)、重放(rehearsal)和架构方法(architectural methods)。
- 任务型对话系统中的持续学习:
- 指出任务型对话系统中的持续学习大多未被探索,或者只在有限的设置中被研究过。
- Sungjin Lee. 2017. Toward continual learning for conversational agents. arXiv preprint
- Fei Mi, Liangwei Chen, Mengjie Zhao, Minlie Huang, and Boi Faltings. 2020. Continual learning for natural language generation in task-oriented dialog systems. arXiv preprint arXiv:2010.00910.
4 算法
4.1 算法原理
本文提出的算法主要关注于任务型对话系统(Task-Oriented Dialogue Systems, ToDs)中的持续学习(Continual Learning, CL)。持续学习的目标是让系统在部署后能够逐步添加新的领域和功能,而不需要每次都重新训练整个系统。
- 残差适配器(Residual Adapters):
- 残差适配器是一种参数高效的方法,它通过在预训练的语言模型(如GPT-2)的每个Transformer层上添加可训练的参数来调整模型的输出分布,而不需要修改模型的原始权重。
- 每个适配器由层归一化(Layer Normalization)和两个具有残差连接的线性层组成。这种结构允许模型在不影响原有参数的情况下,为每个新任务学习特定的参数。
- 困惑度分类器(Perplexity-Based Classifier):
- 在测试时,由于没有提供任务ID,模型需要预测使用哪个适配器来完成任务。本文提出使用每个适配器在输入序列上的困惑度作为不确定性的度量,选择困惑度最低的适配器,即最有信心生成输出序列的模型。
- 困惑度是衡量语言模型对输入序列的预测准确性的一个指标,计算为输入序列的每个词的预测概率的倒数的乘积。
4.2 算法步骤
- 预训练语言模型:
- 使用如GPT-2这样的预训练语言模型作为基础模型。这个模型将作为持续学习过程的起点。
- 定义残差适配器:
- 对于每个新任务,定义一个残差适配器。适配器由层归一化和两个线性层组成,中间有一个ReLU激活函数,并带有残差连接。适配器的参数是可训练的,而基础模型的权重保持不变。
- 任务特定适配器训练:
- 对于每个新任务,训练其对应的适配器参数。这是通过最小化任务的数据集上的负对数似然损失来实现的,同时保持基础模型的权重固定。
- 困惑度计算:
- 在测试阶段,对于每个输入序列,使用所有已训练的适配器计算困惑度。困惑度是衡量模型对输入序列预测不确定性的指标。
- 适配器选择:
- 基于困惑度,选择具有最低困惑度的适配器。这意味着选择最有信心生成输出序列的适配器。
- 输出生成:
- 使用选定的适配器和基础模型来生成给定输入序列的输出。
5 实验分析
(1)数据集
本文采用的数据集包括以下几个任务型对话系统领域的数据集,构建了一个包含37个不同领域的学习课程,以评估和比较不同的持续学习方法。这些领域的对话数据被分别用于意图识别(Intent Recognition)、对话状态跟踪(Dialogue State Tracking)、自然语言生成(Natural Language Generation)和端到端(End-to-End)的任务设置。:
- TaskMaster 2019 (TM19): 这是一个任务型对话数据集,旨在模拟真实世界的对话场景,包含多个领域的对话,如电影、餐厅、出租车等。
- TaskMaster 2020 (TM20): 这是TaskMaster数据集的扩展,包含了更多的领域和对话,例如航班、酒店、音乐等。
- Schema Guided Dialogue (SGD): 这个数据集是为了构建可扩展和可定制的对话系统而设计的,包含了多个领域的对话,如餐厅、媒体、事件等。
- MultiWoZ (MWoZ): 这是一个大规模的多领域对话数据集,包含了多个领域的对话,如出租车、火车、餐厅、酒店等。
(2)评价指标
- 意图识别(Intent Recognition):
- 准确率(Accuracy):衡量生成的意图与真实意图之间的匹配程度。
- 对话状态跟踪(Dialogue State Tracking, DST):
- 联合目标准确率(Joint Goal Accuracy, JGA):衡量对话状态跟踪的准确性,即模型输出的对话状态与真实状态之间的一致性。
- 自然语言生成(Natural Language Generation, NLG):
- BLEU分数:一种评估机器翻译质量的指标,通过计算机器生成的文本与一组参考翻译之间的重叠程度来衡量生成文本的质量。
- 槽错误率(Slot Error Rate, EER):衡量生成的响应中未正确填充的槽位数量与总槽位数的比率。
- 持续学习特定指标:
- 平均指标(Average Metric, Avg. Metric):衡量模型在所有任务上的综合表现,通过在每个任务的测试集上评估模型性能并计算平均值得到。
- 向后转移(Backward Transfer) 和 向前转移(Forward Transfer):衡量模型在学习新任务时对旧任务性能的影响,以及在学习旧任务时对新任务性能的影响。
(3)结果分析
- 整体性能比较:
- 正则化方法(如L2和EWC)和一些复演方法(如AGEM和LAMOL)在持续学习过程中无法避免灾难性遗忘。
- REPLAY和AdapterCL在意图识别(Intent)和对话状态跟踪(DST)任务上表现相当好。
- 在自然语言生成(NLG)任务上,REPLAY表现最好,表明在任务间转移知识是必要的。
- 与多任务学习基线的差距:
- 没有任何一种持续学习方法能够达到多任务学习(MULTI)基线的性能,特别是在对话状态跟踪(DST)任务上。
- 适配器选择的准确性:
- 基于困惑度的适配器选择在不同的任务上表现出了高准确性,例如在E2E设置中为95.44%,在意图识别中为98.03%,在DST中为98.19%,在NLG中为93.98%。
- 学习动态分析:
- 通过绘制平均指标(Avg. Metric)随任务学习的变化,发现REPLAY和AdapterCL在所有基线中表现突出,而LAMOL在前12个任务上与REPLAY表现相当。
- 训练时间分析:
- 复演方法(如REPLAY和LAMOL)添加新领域所需的训练时间随着任务数量的增加而线性增加,而AdapterCL和VANILLA的训练时间在课程中保持恒定。
- 资源与性能的权衡:
- 在REPLAY和AdapterCL中,随着任务数量的增加,所需的资源(例如,REPLAY中的样本存储和AdapterCL中的参数数量)也线性增加。
- 复演记忆大小的影响:
- 通过分析不同大小的复演记忆(episodic memory)对模型性能的影响,发现存储每个任务的少量样本(10-50)会导致严重的灾难性遗忘,而存储大约500个样本时,性能更接近多任务学习基线。
这些结果表明,虽然AdapterCL和REPLAY在持续学习任务型对话系统中表现良好,但仍存在资源使用和性能之间的权衡。此外,实验结果强调了在持续学习中避免灾难性遗忘的挑战,并指出了不同方法的优缺点。
6 思考
(1)我的理解是,在每一transformer层的后面加一个残差网络,这个残差网络用于指定学习某个任务。
(2)本文算法和Progressive neural network的区别?
本文提出的算法(AdapterCL)与Progressive Neural Networks (Progressive Nets)都是针对持续学习(Continual Learning, CL)中的问题,特别是灾难性遗忘(Catastrophic Forgetting)提出的解决方案。它们都旨在使模型能够连续学习新任务,同时保留先前学到的知识。尽管目标相似,但这两种方法在实现上存在一些关键区别:
- 架构方法 vs. 渐进式扩展:
- AdapterCL:基于残差适配器的架构方法,通过在预训练的语言模型上添加可训练的适配器参数来实现新任务的学习。适配器是任务特定的,可以看作是在模型中插入的小型模块,它们不会改变原有模型的权重。
- Progressive Nets:这种方法通过逐渐增加网络的容量来学习新任务,同时保留旧任务的知识。这通常涉及到增加新的神经元或网络层,并且新增加的部分专门用于学习新任务,而旧部分保持不变。
- 参数效率:
- AdapterCL:适配器参数是参数高效的,因为它们只增加了少量的参数来适应新任务,而不需要对整个网络进行大规模的调整。
- Progressive Nets:由于需要增加新的网络层或神经元,可能会涉及到更多的参数调整,这可能导致更高的计算成本。
- 测试时的复杂性:
- AdapterCL:在测试时,需要一个额外的步骤来选择哪个适配器最适合当前的任务。这是通过计算输入序列的困惑度并选择具有最低困惑度的适配器来实现的。
- Progressive Nets:通常不需要在测试时进行额外的任务选择步骤,因为模型已经通过其结构自然地分离了不同任务的表示。
- 适用性:
- AdapterCL:特别适用于任务型对话系统,这些系统通常基于序列到序列的生成模型,并且需要在不同的对话领域之间进行切换。
- Progressive Nets:更通用,可以应用于各种类型的持续学习任务,包括但不限于对话系统。
(3)残差适配器的作用是什么?适配什么?
残差适配器(Residual Adapters)的作用是在持续学习(Continual Learning, CL)的背景下,使模型能够适应新任务,同时最大限度地减少对之前学到的知识的遗忘,即灾难性遗忘(Catastrophic Forgetting)。
- 适配新任务:
- 残差适配器为每个新任务提供了一组可训练的参数,这些参数被添加到预训练模型的每个Transformer层上。这样,每个新任务都可以有自己的适配器,而不需要修改基础模型的原始权重。
- 保持原有知识:
- 由于适配器只添加了少量的可训练参数,并且这些参数是独立于基础模型的,因此基础模型的权重保持不变。这意味着模型在新任务上的训练不会对已有的知识造成太大的干扰,从而有助于保持对先前任务的记忆。
- 参数效率:
- 适配器的设计是参数高效的,因为它们只需要为每个新任务添加少量的参数,而不是扩展整个模型的参数空间。这使得模型能够以较小的计算成本适应新任务。
- 灵活性:
- 适配器提供了一种灵活的方式来适应新任务,因为它们可以针对不同的任务进行定制。例如,对于复杂的任务,可以选择增加适配器的容量(例如,通过增加瓶颈层的维度)。
- 易于集成:
- 适配器可以很容易地集成到现有的预训练模型中,如GPT-2,而不需要对模型架构进行重大更改。这使得它们可以被广泛地应用于各种不同的NLP任务。
- 选择适配器:
- 在测试时,由于没有提供任务ID,模型需要预测使用哪个适配器来完成任务。这通常通过基于输入序列的困惑度来实现,选择具有最低困惑度的适配器,即最有信心生成输出序列的模型。