论文题目:Continual Sequence Generation with Adaptive Compositional Modules
论文来源:ACL2022
论文链接:https://aclanthology.org/2022.acl-long.255.pdf
代码链接:GitHub - SALT-NLP
0 摘要
当需要快速地使模型适应新的任务,而不忘记旧任务的知识时,持续学习这个任务是很重要的。现有的连续序列生成工作要么总是重用现有参数来学习新任务,而新任务在不同任务上容易发生灾难性遗忘,要么盲目地为每个新任务添加新参数,这可能会阻止相似任务之间的知识共享。
在这项工作中,提出使用自适应组合模块进行连续序列生成,以在transformer架构中自适应地添加模块,并为新任务组成新旧模块。还结合了伪经验回放,以促进这些共享模块中的知识转移。对不同生成任务序列的实验结果表明,我们的框架可以基于任务相似性自适应地添加模块或重用模块,在性能和参数效率方面都优于最先进的基线。
1 引言
目前最先进的语言生成模型可以在广泛的序列生成任务上实现良好的性能与静态数据分布。然而,现实世界的场景经常发生变化,这需要模型使用动态数据分布进行学习。在这种数据分布发生变化的情况下,现在的模型经常遭受灾难性的遗忘:模型在学习新信息时突然忘记以前学到的信息。持续学习(CL)已经被引入来通过减少遗忘和促进知识转移来提高模型在stream中学习任务的能力,然而,持续序列生成的研究相对较少。
与对文本分类和QA的持续学习相比,连续的序列生成更具挑战性,因为输出不再是离散的标签,而是不同风格/领域的连续文本数据。如何在学习新任务的同时保留旧知识,现有的连续序列生成方法可以分为两类。
- 第一个是不断学习旧参数上的新任务(图1a),通过经验回放和正则化来保持旧知识。然而,由于所有任务共享相同的参数,任务之间一定程度的干扰是不可避免的。
- 另一种是不断地将新的特定于任务的模块插入到每个新任务的每个transformer层中,同时冻结旧任务使用的预先训练的模型和模块(图1b),这可能会阻止任务之间的知识转移,并引入可能的参数冗余。
我们的目标是两全其美:即如何鼓励模型尽可能地重用以前任务中的模块,并且只在需要时添加新模块? 为此,提出使用自适应组合模块进行连续序列生成,如图1c所示。
即为每一个即将到来的新任务引入了两个阶段的过程:决策阶段和训练阶段。
- 在决策阶段,我们将决定要重用哪些模块,以及我们是否需要添加一个新的模块。
- 在训练阶段,确定并固定模型的体系结构。
通过伪经验重放来增强新任务的训练过程,以进一步减少遗忘,并促进这些共享层中的知识转移。我们的模型体系结构是自适应的,因为它可以自动地为不同的任务添加新的模块,并为相似的任务重用模块,从而使其对不同的持续学习场景具有鲁棒性。此外,它是组合性的,因为对于每一个新任务的新体系结构都是由来自旧任务的重用模块和新添加的模块组成的,这允许知识的重用和转移。
为了评估上述自适应组合框架,我们在之前的工作之后,实验了四个具有代表性的序列生成任务:自然语言生成、SQL查询生成、摘要和面向任务的对话进入stream中。与之前只在极短任务序列上测试的方法工作不同,我们在包含不同相似度的不同任务的长序列上验证了我们的方法。
我们认为,这是可以用来来验证该模型减轻遗忘的能力和它促进知识转移的能力。
总之,这项工作做出了两个关键的贡献:
- 提出使用自适应组合模块进行连续序列生成,通过模块重用来最大限度地转移知识,同时自适应地添加新模块,以减轻任务干扰和灾难性遗忘。
- 对更长和更多任务序列的实验表明,我们的方法以更高的参数效率优于基线。
2 相关工作
持续学习
在没有为新任务分配新参数的情况下,之前的工作主要利用经验回放和正则化来减轻灾难性遗忘。在经验回放中,模型在学习新任务的同时,对以前任务中的旧例子进行重新训练。这些旧例通常存储在一个固定的大小或扩展内存缓冲区。除了replaying旧例外,还可以进一步添加隐藏状态的正则化或参数,以防止严重失真。
另一件工作线是为新任务创建新的参数,同时冻结旧任务使用的参数。在计算机视觉中,渐进式神经网络不断地为具有横向连接的新图像分类任务添加新的参数分支,以促进前向知识转移。动态可扩展网络通过使用正则化来限制添加的神经元的数量,在神经元水平上扩展了神经网络。在提前分配一个大网络的同时,PackNet通过网络剪枝不断地为每个任务分配一个参数子集。也可以采用神经结构搜索在学习新任务之前对新任务的结构进行优化。
在语言领域,之前的工作经常使用adapter,即插入到冻结transformer层的具有特定任务的mlp。但是,由于所有adapter模块只为一个特定任务设计,在这种情况下不允许直接知识转移。额外的模块,如注意力模