一、 学习范式
1. 什么是持续学习?
持续学习的目标是能够将一个任务的知识运用到另一个任务上,并且学习后一个任务时也不会忘记如何做前一个任务,即跨时间学习。为了避免灾难性遗忘问题,持续学习在对持续数据流进行学习的同时,也会重复使用已经学习到的知识。
下表列出了持续学习不同属性的定义:
现有的持续学习模型通常是离线,使用大量的标记数据进行的有监督学习。并且,模型通常需要在一开始就得知任务的数量和性质。目前的挑战是小样本、无监督以及自监督学习。
2. 相关的机器学习范式
3. 持续学习方法
现有的持续学习方法倾向于将单一的模型应用于所有的任务上,通常分为以下三大类:
Rehersal methods: 保留先前任务的部分训练数据,应用在之后的任务中。经典模型例如iCaRL模型,是一种增量类的学习方法。但Rehersal方法的缺点是每个任务都要保留训练样本,在后期学习模型是再次使用,回到模型计算量过大。解决方法有latne replay(潜在重放)或者pseudo-rehersal(伪排练)方法。
Pseudo-rehearsal methods:伪排练模型不直接使用历史训练数据,而是通过之前任务的概率分布来生成样本,具体方法包括生成式自动编码器和基于生成式对抗网络的模型。
Regularization methods:单模型方法,通过在固定的模型容量上增添附加的损失项,在学习后续任务和数据时帮助知识整合。具体说,该方法的目的是通过调整损失函数来减少遗忘。
Memory methods:是Regularizatin(正则化方法)的一种特例,可分为synaptic regularization和episodic memory。前者通过调整学习率来减少合并知识对于先前学习的模型参数的干扰;后者存储先前的训练数据,在后续的训练中允许学习新的类别。比较景点的模型包括GEM,A-GEM,MER,NLP-MBPA++。
Knowledge distillation methods:与episodic memory很像,但与其保持对过去任务的预测不变,该方法将知识从大型网络模型(teacher)转移到新的小的网络模型(student)中。学生模型学习到的是对教师模型的预测。知识蒸馏方法被证明特别适合于神经机器翻译模型,以此来减小模型大小。
Architectural methods:通过更改网络结构、增添模块来引入特定任务的参数和防止遗忘。典型的方法是,先前任务的参数被固定或者mask,新的层作为附加模块动态引入来增强模型。
二、评估方法
目前在NLP领域,并没有统一的针对CL的数据集和benchmark评估方法。
1. 评价指标
原则上,CL模型不仅应该根据传统的性能指标(如模型的准确性)进行评估,衡量模型重用先验知识的能力也很重要。类似的,评估模型学习新任务的速度在CL设置中也很重要。以及对于灾难性遗忘(CF)的评估问题。以下为一篇论文提出的三个评价指标:
-
Average Accuracy:A∈[0,1],评估第一个任务到第T个任务的增量训练后的平均精度:
- Forgetting Measure:F∈[-1,1],从第一个任务到T增量训练后的平均遗忘度:
其中,fij为模型训练到任务tj后对任务ti的遗忘,计算为:
-
Learning Curve Area:LCA∈[0,1],LCA是Zb曲线下的面积,它捕获了学习者在所有T任务上的表现。Zb为观察第b批小批量后的平均精度,定义为:
其中,b表示最小的批号。
更多的评估指标见原论文。
2. 评价数据集
评估多任务和CL方法的主要NLP基准数据集:
三、不同NLP任务中的持续学习
1. 词表示和句表示
2. 语言模型
3. 问答系统
4. 情感分析和文本分类
5. 机器翻译
ps:原论文列出了不同任务中的相关论文,如有需要,可从原论文查阅。