王 松,买日旦·吾守尔,古兰拜尔·吐尔洪,段淑敏
(新疆大学 信息科学与工程学院,新疆 乌鲁木齐 830046)
机器学习指计算机在数据中自动学习,获取某种知识[1]。机器学习方法通过样本X,Y~P估计固定概率分布P,P称为一个任务,方法从样本中学习到关于P的参数θ被称为知识,利用学到的知识可以构建模型f。一个模型对应一个任务成为机器学习主流范式,但这种学习范式难以适应持续的学习过程: 知识无法在学习新任务时逐渐积累,也难以在不同任务间迁移利用,因此被称为孤立学习[2]。而人能够持续学习,积累并利用知识帮助学习新任务。受此启发Thrun等人[3]提出终身学习(Lifelong Learning,LL)概念。旨在顺序地学习一系列任务,每学习一个任务之后,知识被保留下来,用于帮助后续新任务的学习[2-3]。
终身学习方法很适合运用在自然语言处理(Natural Language Processing,NLP)任务中[2]。从自然语言本身特性看: 语言的含义、句法和语法在大多数领域和任务中是相似的;NLP任务大都以文字为载体,不同的任务之间也存在相关的语义、语法、句法信息。终身学习方法能够在不同任务间积累和利用这些相关信息,实现知识积累与迁移。从NLP应用场景看: 现实中热点事件、话题不断产生,表达方式、词义也在不断变化。情感分类的数据集通常来自社交媒体或电商平台,这种现象更加显著。孤立学习方法在模型训练完成后难以持续更新,终身学习方法能够不断学习以应对变化。Xia[4]提出终身投票方法LLV(Lifelong Voting),Chen[5]提出终身情感分类方法LSC(Lifelong Sentiment Classification),Hong[6]提出半监督终身情感分类方法,这些方法都在一定程度上克服了传统孤立情感分类方法的局限,实现了任务的持续学习和知识积累与迁移。但以上方法仅能实现从旧任务到新任务的知识迁移,即正向知识迁移。同时我们注意到中文领域尚无终身情感分类研究。针对上述问题,本文构建了中文终身情感分类数据集,该数据库包含21个不同领域的商品评论,作为21个不同的情感分类任务,并将具备双向知识迁移能力的终身情感分类算法LNB[7]用于中文情感分类。本文提出领域注意力概念,用于改进LNB算法,根据任务间的情感相似度为知识库中的知识赋予不同权重,改进知识迁移能力,改进后的方法记为LNB-DA。
与孤立学习方法一个任务一个模型的设定不同,终身学习研究任务间的知识迁移,故将不同领域的情感分类任务组成一个任务序列S1,S2,…,St-1,St,其中每个任务Si~Pi,对序列中的任务依次进行学习。这些任务间存在相关的语义信息,但部分词也存在情感倾向的差异,例如,“快”这个字在“电脑运行快”和“电池消耗快”两句评价中情感倾向是不同的。孤立学习方法会为每个任务单独构建分类器,任务间的相关信息无法被利用。LNB则依次学习序列中的每一个任务,将学习过程中获得的相关信息存储起来,并从中搜寻合适的知识来帮助新任务学习(正向知识迁移)。知识在学习过程中不断积累,使得旧任务的性能也进一步提升(反向知识迁移)。实验表明,LNB在中文数据集上能够积累知识并实现正向知识迁移和反向知识迁移。本文方法LNB-DA在新任务评估中负类F1值提升了0.15%~23.41%。
本文贡献: ①介绍了终身学习的相关概念和研究现状; ②建立了一个中文终身情感分类数据集; ③将LNB用于中文,并提出本文方法LNB-DA; ④在实验中对比了多种深度学习方法并指出其中的不足。
关于知识分享、迁移的研究已经开展多年并形成了几个独立的领域,如图1所示。
图1 四种学习范式示意
(1) 迁移学习[图1(d)]是目前机器学习中一个热门研究主题,通常涉及源领域和目标领域: 源领域有大量的训练数据而目标领域训练数据较少。迁移学习利用源领域数据帮助目标领域学习[8]。与终身学习的不同在于: 迁移学习只进行从源领域到目标领域的一次知识迁移,其中并不涉及知识积累,这个迁移通常是单向的。终身学习则能够积累知识,并将知识在任务间双向迁移[9]。
(2) 多任务学习[图1(c)]能同时学习几个相关联的任务,利用任务间的相关信息提升性能[10]。它和终身学习都希望利用任务间的相关信息提升学习性能,但多任务学习仅研究一次性学习多个任务的情况,而终身学习则要求持续地学习新任务。
(3) 在线学习[图1(b)]是相较离线学习而提出的学习范式。离线学习中数据集通常在训练开始前全部准备好,在线学习则在一个持续产生新数据的数据流上进行学习,模型在学习中根据数据流的变化进行持续调整[11]。它假设所有的数据均来自一个分布(任务),终身学习则能学习多个任务。
终身学习方法根据任务形式可分两类[12]:
(1)类增加方法: 如图2(a)所示,假设有一个数据流,它从一个会随时间缓慢或突然变化的分布P上采样,训练阶段需要持续地在数据流上进行学习。
图2 终身学习方法中不同的任务形式
(2)任务增加方法: 如图2(b)所示,假设有一个任务序列,其中每个任务的分布P都不同。训练阶段依次学习任务序列上的每个任务。
终身学习又被深度学习研究者称为持续学习(Continual Learning,CL)。当神经网络持续地学习任务时,新任务会调整网络权重,从而影响网络对旧任务的表示,降低网络在旧任务上的性能,这种现象称为灾难遗忘(Catastrophic Forgetting,CF)[13-14]。
很多终身学习方法都致力于减轻CF现象: Rebuffi等人[15]提出类增加方法iCaRL(Incremental Classifier and Rerpreseneation Learning),在学习过程中将每个类中有代表性的样本存储下来,并将存储的样本与新任务样本一同训练。此类方法仅存储了训练样本,没有显式的知识积累,这类方法性能上限是将所有原始数据联合训练,同时仅存储部分样本时容易出现过拟合。Shin等人[16]提出类增加方法DGR(Deep Generative Replay),它不存储训练样本,而是利用任务样本训练生成器,再用生成器生成伪样本,与新任务样本一同训练。但随着任务数量增加,训练生成器会变得越发复杂。Lopez-Paz等人[17]提出任务增加方法GEM(Gradice Episodic Memory),通过将新任务梯度更新方向限制在旧任务梯度划定的范围内,约束新任务的参数更新尽量不影响旧任务。Li等人[18]提出类增加方法LwF(Learning without Foryeetry),通过知识蒸馏来增加输出的稳定性,在学习新任务的同时保持模型在旧任务上的准确率。Kirkpatrick等人[19]提出EWC(Elastic Weight Consolidation),它对损失函数进行改进,在学习过程中记录每个参数的费雪信息,在学习新任务时根据费雪信息有选择地对重要的参数进行约束从而减轻对旧任务的遗忘。Rusu等人[20]提出任务增加方法PNN(Progressive Neural Networks),通过动态调整网络结构的方式将参数的不同子集分配给不同的任务。
另一些终身学习研究则聚焦于知识迁移,通过显式地构造出各个模块,实现知识积累、知识挖掘等功能: Chen等人[5]提出任务增加方法LSC(Lifelong Sentiment Classification),用于情感分类,构建了知识库、知识挖掘器、基于知识的学习器三大组件,实现知识的积累与利用,但LSC只能实现正向知识迁移。Wang等人[7]提出任务增加方法LNB(Lifelong Naive Bayes),它在LSC基础上改进知识挖掘策略,具有正向知识迁移和反向知识迁移能力。Hong等人[6]提出任务增加方法SLLSC(Lifelong Semi-supervied Learning for Sentiment Classification),充分利用终身学习架构,在新任务上实现了半监督学习。Lv 等人[21]提出了任务增加方法SRK(Sentiment Classification by Leveraging the Retained Knowledge),利用GRU分别构建出知识保留网络和特征提取网络,利用融合组件进行知识可塑性和稳定性权衡。Ke等人[12]提出任务增加方法KAN,它包含持续学习网络和可达性网络,知识存储在持续学习网络中,可达性网络根据任务决定哪些知识将被使用。
近几年,终身学习方法运用于情感分类,取得了相当的进展: Xia等人[4]提出基于单任务分类器投票的LLV方法,用于大规模社交媒体情感分析,同时作者发现在大规模社交媒体情感分析上并不是训练数据越多模型性能越好。Sun等人[22]提出任务增加方法LAMOL,在预训练语言模型上应用终身学习方法,通过在训练新任务时加入生成的伪样本,使BERT能同时在情感分类、阅读理解、机器问答任务上保持良好性能,仅比理论性能上限(多任务学习)低2%~3%。本节介绍的EWC 、LSC、LNB、SLLSC、SRK、KAN也都能够用来解决情感分类问题。与传统情感分类方法相比,终身学习情感分类研究相对较少。但在“如何让机器持续地学习”这一全新的命题下,终身学习概念与主流方法飞速融合,涌现出一批全新的架构、方法。这些终身学习方法探索着情感分类的发展方向,为情感分类中可能出现的挑战做好了准备。
LNB由Wang[7]于2019年提出并应用在英文领域,是一种任务增加的终身学习方法,将各品类的商品评价视为不同的情感分类任务依次学习,重点研究任务间的知识迁移,使用Chen等人[2]提出的终身学习架构来解决知识的获取、存储、搜索、利用。该架构包含三个组件: 基于知识的学习器、知识库、知识挖掘器。其中,学习器实现知识获取使用,知识库负责存储,知识挖掘器搜寻对当前学习有帮助的知识。
2.1.1 任务管理器
现有任务序列S1、S2、…、St-1、St,其中每个任务代表一个品类的商品评论;在训练样本X、C中,X代表一条用户评论;词汇表Vi为X中不相同词w的集合,C为评论的情感标签,本文探讨二分类情感分类,C∈+,-,分别代表积极情感与消极情感。任务序列中的任务S依次输入基于知识的学习器。当前正在学习的任务St称为新任务或当前任务,而学习过的任务Sp(1≥p≥n-1)称为旧任务或历史任务。
2.1.2 基于知识的学习器
基于知识的学习器(Knowledge Based Learner,KBL)采用朴素贝叶斯文本分类(Naïve Bayesian,NB)算法[23],它与终身学习有着天然的契合。通过计算每个词w∈V在情感类别c中的条件概率P(w|cj)和每个类的先验概率P(cj),得到一个基于多重正态分布的分类器,如式(1)所示。
(1)
其中,d为一个样本,条件概率P(w|cj)由当前任务中词计数进行估计,如式(2)所示。
(2)
其中,λ用于平滑以解决零频词问题,Nc,w是词w在c类中出现次数,通过这种统计,我们可以知道每个词在各情感类别中出现的次数,从而得知其情感倾向。Nc,w是构建分类器的关键参数,LNB通过调整Nc,w使其他任务中的词计数能够以先验的形式传递给当前任务。
2.1.3 知识库
知识库(Knowledge Base,KB)是LNB的关键组件,每个任务在训练时学到的知识被存储进知识库,知识库中包含了当前任务知识和历史任务知识。当前任务St的训练数据到达KBL,KBL在训练中统计两类信息作为当前任务的知识并存储:
(1) 训练数据中每一个词w∈Vt在正类和负类中的词计数N+,w、N-,w;
2.1.4 知识挖掘器
KM在知识库的基础上进一步搜寻三种知识:
(3)
(4)
KM将利用以上三种知识找出两类情感词:
表1 知识挖掘器调整词计数过程
2.1.5 LNB学习过程
相关研究[24-26]已经证明了注意力机制在情感分类任务中的有效性。本文利用领域注意力机制对LNB进行改进,提出基于领域注意力机制的终身朴素贝叶斯LNB-DA。
我们注意到,在知识挖掘时LNB为每个领域(不同领域的情感分类任务)的知识赋予相同的权重,但在实际中领域间的相似度也存在差异,而相似的领域间可共享的知识较多,反之较少。例如,手机和电视较为相似,其评价的用词与表达也较为相似,而冷冻食品和化妆品间不相似,二者评论差异较大。因此可以在知识挖掘时为每个领域的知识根据与当前领域的相似度分配对应权重,这种做法类似于注意力机制,因此我们称其为领域注意力机制。
LNB-DA在KB和KM之间加入了领域注意力模块(Domain Attention,DA),如图4所示。KB将知识传递给DA,DA分别计算当前任务知识和每个历史任务知识的相似度,并以此为每个历史任务知识分配权重。
2.2.1 情感分布
最后,两个任务SD间的余弦相似度,式(5)可以视为相似度。
(5)
2.2.2 领域注意力
本文将知识库中当前任务知识与历史任务知识分别比较相似度,若某个历史任务SD与当前任务SD差较大,那么这个历史任务的参考价值较小;反之某个历史任务SD与当前任务SD相差较小,那么这个历史任务的参考价值较大,因此根据SD相似度为每个历史任务知识分配权重αi,t,如式(6)所示。
αi,t=Sim(SDi,SDt)
(6)
本文构建了一个适用于终身学习设定的中文情感分类数据集(1)https://github.com/ws719547997/LNB-DA: 数据采集自京东网21个不同品类的商品评论,作为21个不同领域的二分类情感分类任务。每个任务的评论数、长度分布、差评占比见表2与图5。
表2 数据集信息
图5 数据集评论字数分布
数据集利用商品评分作为标签,根据网民的评价特点,将一三星标记为消极,四星和五星标记为积极,数据采集于2020年8—9月和2021年3—4月,预处理使用Jieba工具分词后人工校准,去除标点、英文、数字、特殊符号与表情,只保留汉语字符。在品类选择中,既选择了智能手机、笔记本电脑这样相近的领域,也选取了食品、日用品这样差距较大的领域,方便对领域之间的关系做进一步研究。数据集保留了网络商品评论的特点: 字数较少且正负类不均衡。
为全面对比LNB和本文方法LNB-DA的学习效果,本文设置新任务评估和旧任务评估两项实验,分别评估前向知识传递能力和反向知识传递能力。
实验与机器学习方法NB、SVM[27],深度学习方法FastText[28]、TextCNN[29]、TextRNN[30]、DPCNN[31]、Transformer[32],终身学习方法EWC、LLV、LSC、SRK进行对比。
3.2.1 针对中文语料库的调整
不同于英文,中文在词与词之间没有显式的分隔,需要用启发式的分词方法对句子进行切割。在LNB和本文方法上的实验结果显示以词为单位比以字为单位准确率提升4%。
同时本文针对中文商品评论中字数少、词汇含义多的特点,通过网格搜索调整了知识挖掘器中的历史情感词阈值σ=6、领域情感词阈值γ=5。
3.2.2 参数设置
在机器学习方法中: NB参数设置同本文方法,SVM参数设置遵循文献[5]。在神经网络方法中: FastText隐藏层节点数为256,提取unigram、bigram、trigram作为特征。其余神经网络方法均采用预训练词向量[33](sgns.char.300d),Dropout设为0.5。TextCNN设置256个卷积核,长度分别为2、3、4以捕捉上下文信息。TextRNN隐藏层节点为128个,DPCNN为3层,250个卷积核,Transformer使用5个注意力头,两个编码器单元。
在终身学习方法中,EWC损失函数的费雪信息正则项权重设置为0.4,LLV参数设置遵循文献[5],LSC参数设置同本文方法,SRK采用与上文相同的预训练词向量。
在新任务评估中,对于终身学习方法: 将数据集中21个任务分别作为当前任务,其余20个任务作为历史任务依次进行学习。分别计算模型在当前任务测试集上的准确率和负类F1值,将平均值作为结果。因数据集正负样本数不平衡,因此相比准确率,负类F1更具参考价值。
对非终身学习方法: 为了对比分析,在实验中的训练数据做了三种划分:
源领域(Source domain,S): 仅使用当前任务的训练集,可视为常规的孤立学习。
目标领域(Target domain,T): 使用所有历史任务的训练集。
目标领域和源领域(Source domain and Target domain,ST): 使用当前任务和所有历史任务的训练集,可视为一种特殊的样本重复的终身学习方法。
新任务评估实验结果见表3,分析结果得到如下结论:
表3 新任务评估实验结果 (单位: %)
(1) LNB与仅使用T训练数据的方法对比,负类F1提升了1.94%~14.17%。特别是LNB优于NB-T,说明LNB架构内知识库的知识能够帮助当前任务的学习,实现了前向知识迁移。
(2) LNB将历史任务的知识存于知识库中,使用ST训练数据的对比方法则可以视作保存了全部历史任务训练样本的终身学习方法,LNB的负类F1比FastText-ST低0.04%,优于其他ST方法0.13%~9.82%,特别是LNB优于NB-ST,说明LNB的架构能够在历史任务中积累和挖掘有用知识。
(3) 本文方法LNB-DA与LNB方法对比(2)在文献[5]的英文数据集上,LNB-DA负类F1比LNB提升0.22%。,负类F1提升0.15%,说明领域注意力机制能够进一步提升模型前向知识迁移的能力。新任务评估实验中领域注意力组成的矩阵见图6(序号见表2),领域注意力机制能够度量历史任务知识与当前任务知识间的相关性。
(4) 本文方法LNB-DA的负类F1高于对比终身学习方法0.15%~23.41%,比使用ST训练集的方法高0.11%~9.97%。
为衡量学习新任务时是否影响模型在旧任务上的表现,文献[17]提出评价指标BWT(Backward Transfer,BWT)。假设我们能接触到任务序列中所有任务,每当学习完一个任务后测试该模型在所有任务测试集上的性能表现,直至任务序列中的T个任务全部学习完成,可以得到一个矩阵R∈RT×T,矩阵中的每一项Ri,j代表学习完任务S1至Si后模型在任务Sj测试集上的准确率,BWT定义如式(6)所示。
(6)
其中,RT,i表示模型已经学习完全部的T个任务在Si上的准确率。Ri,i表示模型学习完S1至Si后,在Si上的准确率。BWT度量了模型在首次学习任务Si和学完全部任务后,在Si测试集上的性能变化。若BWT为负,说明学习新任务降低了模型在旧任务上的性能,也就是发生了灾难遗忘。若BWT为正,说明学习新任务提升了模型在旧任务上的性能,称之为发生了反向知识迁移。
在旧任务评估中,实验将评估每种方法在学习同一个任务序列时的反向知识迁移能力,BWT结果如表4。实验中未加入机器学习方法NB、SVM,LSC因不具备反向知识迁移能力未加入实验。
LNB的BWT为0.115%,本文方法LNB-DA为0.284%,大于0说明在学习完新任务后,模型能够利用新任务知识改善旧任务性能,具备反向知识迁移能力。由于领域注意力机制的加入,本文方法的反向知识迁移能力强于LNB。作为对比,神经网络方法的BWT均为负值,说明发生了不同程度的灾难遗忘现象,学习新任务影响了模型在旧任务上的表现。终身学习方法LLV和SRK的BWT大于传统神经网络,减轻了灾难遗忘现象。同时注意到EWC发生了严重的灾难遗忘,说明仅凭借简单的参数约束方法难以在复杂的模型和任务上达到理想效果。
在介绍新任务评估的3.3节中,结论(1)、结论(2)验证了LNB模型终身学习架构的前向知识迁移能力,结论(3)、结论(4)说明了本文方法LNB-DA的优势。在介绍旧任务评估的3.4节中,实验结果证明了LNB具备反向知识迁移能力和本文方法LNB-DA的提升,验证神经网络方法在持续学习时出现的灾难遗忘现象,证明终身学习方法能够减轻灾难遗忘,但仅仅通过参数更新时的约束无法在复杂任务中取得好的效果。
通过两组对比实验证明了LNB在中文终身情感分类任务上的可行性,LNB架构能够实现知识的存储与迁移,具备前向知识迁移、反向知识迁移能力,本文提出的方法LNB-DA在领域注意力机制的作用下性能进一步提升。
在情感分类领域,很多研究都围绕终身学习架构展开,LNB作为本文的基础方法,使用任务管理器、学习器、知识挖掘器、知识库四个组件构成了一种终身学习架构,有利于帮助研究者理解终身学习的概念。同时因为其属于非神经网络方法,知识库中的内容、知识挖掘的参数都是直观的,具备良好的可解释性。
同时我们发现,在终身学习领域,中外研究存在很大的差距。为了减少这种差距,本文简单介绍了终身学习概念、类别、面临的问题和解决方法。创建了一个适用于终身学习的多领域中文情感分类数据集,验证了终身学习方法LNB在中文情感分类任务上的可行性,并根据LNB提出基于领域注意力机制的改进方法LNB-DA,进一步提升了性能。