赵基藤,李国正,汪 鹏,柳沿河
(东南大学 计算机科学与工程学院,江苏 南京 211189)
人和动物拥有在其一生中不断地获得和迁移知识的能力,这种能力被称为终身学习(Lifelong Learning)或持续学习[1-3](Continual Learning, CL)。持续学习近年来在人工智能领域得到了越来越多的关注,其在生物和神经学领域的主要理论依据为互补学习系统(Complementary Learning System, CLS)理论[4]。该理论认为大脑的工作有学习和记忆两项;大脑的海马体表现出短期的适应力,允许快速学习新信息,这些新信息将随着时间的推移回放到新皮层以实现长期记忆。
在传统的机器学习中,模型只学习单个静态任务的数据分布,模型训练好后其结构和参数通常不变。但在现实应用中,从非平稳的数据分布中不断递增地获取可用信息通常会导致灾难性遗忘[1](Catastrophic Forgetting),即用新数据训练模型的时候会干扰先前学习的知识。在现实场景的自然语言处理(Natural Language Processing, NLP)应用中,这些应用每天要和不同的用户打交道,语言用法也在时刻更新;在知识图谱(Knowledge Graph, KG)系统的构建中也常常出现新知识,系统应具备不断处理新出现的知识资源的能力。因此在自然语言处理及知识图谱系统中运用持续学习非常重要。
关系抽取[5, 6](Relation Extraction, RE)是信息抽取、句法分析、智能问答等众多任务的重要基础工具。传统的关系抽取方法通常需要一组固定的预定义关系。这种要求在许多实际应用中很难满足,尤其是当每次出现新的数据和关系时,存储所有数据并重新训练整个模型的计算成本很高,并且当存储限制或安全问题限制了对该数据的访问时,为新的关系类型重新注释原始训练数据的代价可能是昂贵的;随着类型的增多,为所有关系注释新的数据集变得不切实际。
为了适应这种情况,最近的一些研究提出了持续关系抽取[7-8](Continual Relation Extraction, CRE)。与传统的RE相比,CRE更侧重于帮助模型在学习新关系的同时保持对旧关系的稳定理解,即随着新关系对应的数据不断引入,CRE模型依然能够在旧关系对应的数据上展现较为稳定的效果。现有的CRE方法主要是通过选择每个任务中具有代表性的样本和计算关系原型[8](Relation Prototype),再通过在训练新任务的同时重放旧任务的样本,使得模型具备记忆旧知识的能力。这些方法能在一定程度上缓解传统关系抽取中的灾难性遗忘,但在整个训练过程中依然存在最近任务偏倚等问题。因此,开展进一步的研究是很有必要的。
当前持续关系抽取任务的主要难点在于特征嵌入不相容的问题和最近任务偏倚(Task-recency Bias)问题。EA-EMR[7]提出,在新任务上训练模型时,嵌入空间可能会发生扭曲,或者说当新的关系出现时,存在特征嵌入不相容的问题。具体地说,新关系所对应的样本嵌入会覆盖旧关系,导致模型对于以前的任务变得不可行。同时,在单个关系抽取任务中,基本的关系抽取模型通常采用编码器和softmax分类器进行分类,现有的基于重放的持续关系抽取方法大多也沿用这种组合。但在持续学习的设置下,模型的分类预测往往倾向于最近的任务。这是因为传统的交叉熵损失主要是通过在全连接(Fully-connected, FC)层用softmax函数和标签的值来训练模型,但在持续学习设置下需要不断地增加FC层的权值数量。Mai等人[9]观察到FC层在新类上的权重值往往较高,这也是造成分类任务中灾难性遗忘的一个重要原因。
这些问题可以通过在持续学习过程中不断学习一个区分性较好的嵌入空间来缓解。本文受到度量学习和对比学习的启发,主要从以下两个方面进行研究:
(1) 研究一种基于监督对比重放的持续关系抽取方法。利用监督对比损失[10],首先设计一种基于逐实例监督对比学习的重放机制。同时,在对比学习的框架下将一般关系分类中使用的softmax分类器改进为最近类均值(Nearest Class Mean, NCM)分类器。
(2) 研究利用原型增强的监督对比重放方法。该方法在上述方法的基础上,为解决逐实例监督对比重放中可能出现过拟合的问题,将关系原型加入到监督对比损失函数中。同时设计了一个可学习的密度参数来调整各个簇的松散程度,以学习一个更一致和均匀的嵌入空间。
本文在FewRel和TACRED两个数据集上评估所提出方法的效果。实验结果表明,本文所提出的方法能够达到与当前最先进的持续关系抽取模型相当的效果。并且,随着任务数量的增加,在训练至5个任务以后,本文模型比最先进的模型效果高约1%。本文的方法可以有效缓解持续关系抽取中的特征嵌入空间不相容和最近任务偏倚等问题。
持续学习研究从连续的数据流中不断学习新知识。与迁移学习等其他领域相比,持续学习更强调解决模型训练时对旧知识的灾难性遗忘问题。目前,持续学习领域主要有三类主流的方法,分别为: 基于正则化的方法、基于网络架构的方法和基于重放的方法。
(1) 基于正则化的方法[1, 11]通过在损失函数中添加正则项来约束模型参数更新,得到在新旧任务上同时取得较好性能的参数。
(2) 基于网络架构的方法将模型参数的不同子集分配给不同的任务,使每个任务拥有部分其对应的网络,具体操作分为固定网络大小[12]和扩展网络结构[13]两种。
(3) 基于重放的方法的理论依据主要为James L. McClelland于1995年提出的互补学习系统理论[4]。该理论认为人脑学习是两个互补学习系统的综合产物,一个是大脑新皮质学习系统,通过接受体验,慢慢地对知识与技能进行学习;另一个是海马体学习系统,记忆特定的体验,并让这些体验能够进行重放,从而与新皮质学习系统有效集成。基于重放的持续学习方法[2, 3]借鉴CLS理论,在模型训练中增加情景记忆模块,存储从过去任务中采样的数据,在对新任务进行训练的同时重放过去任务的数据,从而达到缓解遗忘的目的。
现有的一些工作已经表明,在NLP领域,基于重放的方法是较为有效的持续学习方法[14]。LAMOL[15]提出了一种简单而有效的基于语言建模的终身语言学习方法;其重放以前任务的伪样本,而不需要额外的存储或模型容量。除此之外,在持续学习中运用知识蒸馏的方法也是一个热门趋势。L2KD[16]受到知识蒸馏的启发,在LAMOL的基础上将来自不同任务的知识压缩到一个紧凑的单一模型中。在知识抽取领域,Monaikul等人[17]将知识蒸馏的框架运用到命名实体识别任务的持续学习中。
EA-EMR[7]最先提出了终身关系抽取(即持续关系抽取)这样一个具有挑战性的问题。首先提出了一个修正版本的带有重放记忆的随机梯度方法,然后进一步利用一个显式对齐模型来减轻模型的句子嵌入失真,通过锚定句子的嵌入空间来缓解灾难性遗忘问题。EMAR[8]将情景记忆激活和再巩固引入到持续关系学习中。在对当前任务进行初始训练和重放训练后,利用关系原型进行记忆再巩固训练,以改善重放导致的对选中样本的过拟合。RP-CRE[18]在EMAR的基础上,提出一个基于注意力的记忆网络,将原型用于改进CRE中的样本嵌入,从而恢复训练任务造成的样本嵌入空间的损坏。CML[19]提出了一种课程元学习方法,将元学习和课程学习相结合,以快速调整模型参数适应新任务,并减少先前任务对当前任务的干扰。IncreProtoNet[20]是第一个关注增量少样本关系抽取的工作,提出了一个具有原型注意对齐和三元损失的两阶段原型网络。该网络能够在只需要少量支持实例的情况下动态识别新关系,同时不会忘记基本关系。
对于任务序列,CRE模型应当具备在学习完第k个任务后,尽可能维持其在前k-1个任务上的性能的能力。对于第k个任务Tk,其训练集为Dk,查询集为Qk,关系集合为Rk,且对任意j≠k,Rk∩Rj=∅。Dk中每个训练样本表示为(xi,ti,ri),其中ti为文本xi所包含的实体对,ri表示文本xi中实体对ti之间的关系,且ri∈Rk。训练时将(xi,ti)进行编码得到特征表示,将ri作为目标。在测试阶段,对于查询集合Qk中的每个样本qi,判断其是否属于已见关系中的某一类别。
本文提出的基于监督对比学习的持续关系抽取的整体框架如图1所示,此图展示的是在第k个任务阶段模型执行的操作。训练和测试流程具体可以分为以下几个阶段:
图1 模型训练和测试流程
新任务训练对于每个新任务Tk,在基于BERT的编码器E(预训练过的语言模型)上用Dk中的样本进行微调训练。
(1)
监督对比重放训练将目前存储器中的所有样本通过监督对比学习的方式训练编码器E。将同类样本作为正样本对,不同类样本作为负样本对,通过最小化监督对比损失,使得同类样本之间的距离更近,不同类样本之间的距离较远。关于这部分的具体原理将在2.3节和2.4节中展开介绍。
最近类均值分类在每一个新任务训练及重放训练结束后,获得当前编码器E的权重下各个关系类别对应样本嵌入的均值,即关系原型pi。对于查询集Qk中的每个样本qi,计算其到各个关系原型的距离。最小距离所对应的关系原型的类别即被标记为该查询样本的类别。
Google在2020年提出的监督对比学习[10]中指出,对比损失函数是一个具备困难负样本自发现性质的损失函数,其含义是对比损失能够使分类边界上的负样本远离正样本,从而能够学习到一个区分性较强的嵌入空间。
经典的对比损失函数InfoNCE[21]的形式如式(2)所示。
(2)
如果忽略τ,那么InfoNCE损失其实就是交叉熵损失。唯一的区别是,在交叉熵损失中,k指的是数据集里类别的数量,而在对比学习的InfoNCE损失中,k指的是负样本的数量。在公式(2)中,分母的求和是在1个正样本和k个负样本上做的。InfoNCE损失其实做的是一个k+1类的分类任务,目的就是把q这个实例分到k+1这个类。
在本文模型中我们首先提出一个逐实例的监督对比损失如式(3)所示。
(3)
其中,B(i)为除了zi以外的样本嵌入的下标集合,zs代表标签与zi相同的样本嵌入,S(i)={s∈B(i):ys=yi}。τ代表温度参数,这是一个超参数,用于调节对比学习过程中对困难样本的关注程度。温度系数小则代表将正样本和最相似的困难负样本分离开,对比损失则会自动地给距离更近、相似度更高的负样本更多的惩罚。而如果温度系数设得过大,那么对比损失会对所有的负样本没有区分度,导致模型学习没有轻重。
逐实例对比学习利用逐个样本之间的相似度度量来学习特征空间。然而其在持续学习设置下可能存在一些问题。由于每个类别重放的样本数量相对较少,随着任务数量的不断增加,可能会导致模型越来越趋近于过拟合存储器中的样本。因此,本文在监督对比重放训练阶段加入关系原型来进行辅助增强,目的是学习到各个关系类别的整体特征,以解决逐实例对比学习的缺陷。
除此之外,由于在逐实例对比学习中,损失函数的作用主要是拉开不同类别样本之间的距离。为了学习一个全局更均匀的特征空间,动态调整簇的松散程度,本文在加入原型对比损失时,将逐实例对比损失中的温度参数τ替换为一个可学习的密度参数φ,它表示各个原型所对应类别的样本在嵌入空间中分布的松散程度。基于关系原型的监督对比损失如式(4)所示。
(4)
其中,P为原型嵌入的集合,ps代表标签与zi相同的原型嵌入,φ是一个用于调整簇松散度的动态更新的可学习参数,通过计算每个簇的密度得到:
(5)
其中,α是一个平滑参数,用以确保φi的值不会过大。
最终,本文得到的损失函数如式(6)所示,用于最终的模型训练。
(6)
尽管基于Softmax函数和交叉熵损失的分类器已成为神经网络分类任务中的标准方法,但是在持续学习任务中,Softmax分类器可能会存在一些问题: ①当训练新的任务时,会引入未见过的新类别,由此需要在全连接层中增加新的权重以适应新的类别;②全连接层中新类的权重大大高于旧类,导致模型预测时更倾向于新类别,即最近任务偏倚问题。因此,本文工作使用最近类均值分类器,利用NCM分类器进行预测的函数如式(7)所示。
(7)
由于NCM分类器是将测试样本的嵌入和原型进行比较,因此它不需要额外的全连接层,持续学习过程中可以在不修改模型架构的情况下添加新类别。与此同时,NCM分类器也可以避免FC层中的权重偏差而导致的任务偏倚。NCM分类器的优势在于规避了传统神经网络中需要提前设置好类别数的问题,直接利用模型输出的特征向量,按照相似度度量分类给最近的类别。
本文在以下两个关系抽取的数据集上进行CRE实验:
FewRelFewRel是为少样本关系抽取(关系分类)提出的数据集,该数据集由Wikipedia上的100种关系中的70 000个样本组成,并由众包工作者进行注释。在持续关系抽取的设置中,FewRel被分成10个关系簇,作为持续学习的10个任务,每个关系只属于其中一个任务。我们使用已经用于CRE的80个关系的版本,每个关系包含700个样本,形成训练集和测试集。
TACREDTACRED是由StanfoldNLP开发的一个大规模关系抽取数据集,包含42个关系和21 784个样本。这些样本构建于英语新闻专线和网络文本之上。与FewRel类似,将TACRED分成10个关系簇来构建10个任务。为了控制TACRED样本的不平衡,将每个关系的训练样本数量限制在320个,每个关系的测试样本数量限制在40个[18]。
本文工作的软件环境为64位Ubuntu 16.04.7 LTS操作系统以及基于Anaconda的Python环境,硬件环境为GeForce RTX 2080Ti显卡。
实验中每个类别记忆样本的数量设置为20个,温度参数设置为0.1,密度参数初始化为0.1。
3.2.1 基线模型和评价指标
本实验对EA-EMR、EMAR、CML和RP-CRE等几种持续关系抽取方法进行了对比。并且,由于本文提出的方法涉及度量学习及关系原型的思想,因此在对比时加入了基于原型网络[22-23](Prototypical Network)的方法,在基于CNN和基于BERT的原型网络模型上都进行了持续关系抽取的对比实验。此外,也比较了IncreProtoNet这一增量少样本关系抽取的方法。
由于持续关系抽取关注的是灾难性遗忘的缓解程度以及模型在接受新任务训练后对旧关系理解的稳定性,本文使用的评价指标主要为模型在学习当前任务阶段所有已观察到的关系的分类准确率。在第k个任务训练完成后,模型在所有k个任务上已见关系的测试准确率如式(8)所示。
(8)
其中,Ak为第k个关系对应的查询集合中分类准确的样本集合。
3.2.2 灾难性遗忘验证实验
为了验证灾难性遗忘在关系抽取的一般模型中的确存在,证明研究持续关系抽取的必要性,本文在编码器加Softmax分类器的模型结构下进行了持续学习设置的关系抽取的实验。图2展示了分别使用BiLSTM和BERT两个编码器在FewRel和TACRED数据集上的实验结果。
图2 灾难性遗忘验证实验
从实验结果中可以看出,利用BiLSTM作为编码器时,模型效果下降的情况是很显著的,在进行第二个任务的训练后,模型对第一个任务的遗忘程度就已较大。而当编码器使用的是BERT时,可以观察到尽管依然有遗忘现象的存在,但在大规模预训练模型的加持下,在训练几个任务以后,关系抽取模型在所有已观察到的关系上依然能维持一个不太差的效果;从某种程度上来说,BERT加Softmax分类器在做持续关系抽取时,遗忘并不算是灾难性的。一方面这是由于BERT在大量语料库上预训练过,另一方面是因为在本实验中各个任务使用的是同一领域的数据集。
3.2.3 模型性能实验
本文提出的基于监督对比重放(SCR)原型增强的监督对比重放(Proto-enhanced SCR)的持续关系抽取以及与其他方法对比的实验结果如表1和表2 所示,准确率用百分比表示。其中Proto(CNN)、Proto(BERT)和IncreProtoNet的实验结果通过运行公开源码得到,其余持续关系抽取方法的实验结果来自Cui等人[18]。
表1 模型在FewRel上的实验结果 (单位: %)
表2 模型在TACRED上的实验结果 (单位: %)
从表1和表2的实验结果可以看出,在训练完10个任务以后,本文模型在FewRel和TACRED数据集上依旧分别能维持83.6%和78.2%的准确率,说明Proto-enhanced SCR能够很好地缓解持续关系抽取过程中的灾难性遗忘。本文的模型与最先进的RP-CRE相比,能够达到与之相当的效果,并且在训练一半数量的任务后优于RP-CRE。
同时可以看出,编码器基于BERT的关系抽取模型相比于其他编码器在持续学习设置中能够对结果有一个稳定的提升,并且能在很大程度上减缓模型灾难性遗忘的趋势。模型在TACRED数据集上的效果FewRel上差一些,从训练完第五个任务开始,模型在TACRED上的分类准确率大约比FewRel低6%~7%。这是因为TACRED是一个不平衡的数据集。
同时,为了表明我们的模型具有学习到较好的嵌入空间的能力,本工作在前两个任务训练结束后各取两个关系类别,并用t-SNE将这些类别对应的记忆样本集合进行降维,对样本的嵌入空间进行可视化展示。如图3所示,其中虚线框出的数据点对应第一个任务中的两个类别,实线框出的数据点对应第二个任务中的两个类别。
图3 降维后的嵌入空间可视化
从图3中可以看出,利用监督对比重放的方法得到的嵌入空间可以有效地拉开不同类别的样本之间的距离,而不会再出现不同类别的样本分布有重合的情况,但是不同任务对应的簇的松散程度仍有所差异,而原型增强的监督对比重放方法可以有效地调整簇的松散程度,使得各个关系类别对应的样本嵌入分布的差异较小,整体的嵌入空间较为均匀。这说明,此方法在一个已学习好的嵌入空间上能够达到预期的效果。
3.2.4 消融实验
为了观察使用密度参数φ来调整各类别嵌入松散程度对模型效果的影响,本文设计了一个消融实验,在公式(4)中用τ替代φ,即仅仅进行原型的重放而不调整簇密度来进行实验,观察到模型效果下降了1.7%~1.8%(如表3所示)。这说明使用一个可调整的密度参数能够提升模型效果。
表3 消融实验结果 (单位: %)
本文针对持续关系抽取问题中面临的特征空间不相容和最近任务偏倚问题,提出了一种基于监督对比重放的持续关系抽取方法,并利用关系原型进行辅助增强。此方法基于对比学习的特点,结合NCM分类器,能够达到在持续关系抽取任务中学习一个区分能力强、分布均匀一致的嵌入空间的目的。本文的方法在训练任务数量增多时性能优于最先进的方法。