【Lifelong learning】Continual Learning with Knowledge Transfer for Sentiment Classification

本文提出了一种名为KAN(Knowledge Accessibility Network)的连续学习模型,专为情感分析任务设计。KAN通过可访问性网络(AC)和主要持续学习网络(MCL)实现知识的前向和后向迁移,解决了连续学习中的知识遗忘问题。AC网络根据任务数据确定可共享的知识,MCL则存储所有任务的知识,通过AC的掩码机制实现知识的访问和更新。实验表明,KAN在情感分析任务中表现出优越的性能,有效地利用了不同任务之间的共享知识,提升了整体的准确性和持续学习能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

链接:http://arxiv.org/abs/2112.10021

简介

这是一篇在情感分类Sentiment Classification运用连续学习Continual Learning的paper,提出了KAN。
连续学习一般有两种setting:

  • Class continual learning (CCL):在CCL中,每个任务由一个或多个要学习的类组成。在这个阶段,所有的类都只建立了一个模型。在测试中,可以将来自任何类的测试实例呈现给模型,让它进行分类,而不给它任何训练中使用的任务信息。
  • Task continual learning (TCL):在TCL中,每个任务都是一个单独的分类问题(例如,一个任务对不同品种的狗进行分类,另一个任务对不同类型的鸟进行分类)。TCL在一个神经网络中构建一组分类模型(每个任务一个)。在测试中,系统知道每个测试实例属于哪个任务,只使用任务的模型对测试实例进行分类。

本文在TCL的情况下进行情感分析的连续学习任务,
通常,一家SA(情感分析)公司必须为许多客户工作,而每个客户都希望研究公众对其产品/服务的一个或多个类别及其竞争对手的产品/服务的看法。
对每一类产品/服务进行情感分析是一项任务。出于保密性,客户通常不允许SA公司与任何其他客户共享其数据或将其数据用于任何其他客户。因此,连续学习很适合这项工作。
在本例中,我们还希望在不违反机密性的情况下,随着时间的推移提高SA准确性。这就提出了两个关键的挑战:

  • (1)如何在不使用前一个任务数据的情况下,将从前一个任务中学到的知识转移到新的任务中,帮助新任务更好地学习;
  • (2)如何在不使用CF的情况下,对前一个任务的旧模型进行改进。在[15]中,作者发现CL有助于提高文档级情感分类(SC)的准确性,SC是SA[13]的子问题。

在本文中,我们提出了一个更好的模型,称为KAN (Knowledge Accessibility Network)。注意,这里的每个任务都是一个两类SC问题,也就是说,对一个产品的评论是正面的还是负面的进行分类。

我之前阅读的终身学习paper大多将重心放在抵抗遗忘catastrophic forgetting,但本文的重心在于知识迁移Knowledge Transfer:之前学过的任务能不能帮助解决以后学的任务;后学的任务能不能巩固增强之前学过的任务。
这是情感分析的特殊性导致的:情感分析是一个二分类问题,不同的任务之间相似度很大(电影评论和美食评论虽然是两个任务,但两者的情感词是基本一样的),也就是说不同任务之间有很多相通的知识,并不会产生较为严重的遗忘。所以工作的重心要放在知识迁移上。

为此,本文提出了KAN,包含两个部分:主要持续学习网络(main continual learning,MCL)和可访问性网络(accessibility,AC)。

  • MCL的主要组成部分是知识库(Knowledge Base,KB),用于存储从所有训练任务中学习到的知识。
  • 在学习每一个新任务时,AC网络决定过去的哪一部分知识对新任务有用并可以共享。
  • 也就是说,每学习一个新任务,共享知识就会被增强一次,从而使得知识既可以向前迁移,也可以向后迁移。

Related Work

在此之前,只有一个工作是将连续学习运用到情感分类:SRK。但是SRK在学习新任务的时候保护过去的知识,只能向前迁移不能向后迁移,并且他的向后迁移也很差。相比起来KAN就能前后迁移。
同时,SRK也指出:情感分类任务不怕遗忘,因为任务相似度太高了。

KAN

KAN受人脑的启发:我们的大脑会记录知识的可访问性。如果我们之前的一些知识对新任务有用(即,新任务和之前的一些任务之间的共享知识),我们的大脑将这些部分设置为可访问的,以实现前向知识转移。这也使落后的知识转移成为可能,因为它们现在是可访问的,我们有机会根据新的任务数据加强它们。对于以前的知识中那些无用的部分,它们被设置为不可访问,从而保护它们不被更改。
受到这个想法的启发,本文设计了一个内存和可访问性机制。

我们需要解决两个关键问题:

  • (1)如何决定知识的可访问性,即识别出之前的知识中对新任务有用的部分;
  • (2)如何利用识别出的有用/共享知识来帮助新任务学习,同时又保护其他部分。

KAN结构如图所示:
在这里插入图片描述

整体结构

KAN包含两部分:MCL网络(紫色)和AC网络(黄色)。MCL在持续学习和测试阶段都使用(AC在测试中不使用,除了从任务ttt生成的掩码ata_tat)。
我们来看看MCL的结构:
首先最上面是情感分类头(Pos/Neg),每个任务特制一个;
下面是稠密层(dense layers);
在下面是知识库KB,因为本文用了RNN(内部是GRU),所有叫KB-RNN。注意:知识库包含所有的知识,分为任务特定的知识和共享的知识。

再来看AC的结构:
输入任务的id ttt,进入AC-EMB,得到任务的embedding。其中AC-EMB是一个随机初始化的embedding layer。
然后产生一个任务掩码ata_tat,来决定知识库中的哪一部分知识(或单元)可以被当前任务ttt访问。

总结起来,KAN的输入是任务的id ttt和文档ddd。它们被用于通过掩码ata_tat{ hiKB}\{h_i^{KB}\}{ hiKB} (KB-RNN中的hidden state)链接训练这两个组件。

AC Training

在AC训练阶段,只有任务embedding(Task Embedding, AC- emb)、AC- RNN等黄色框中的内容是可训练的。
假设知识库已经保留了从任务0…t−10…t-10t1中学习到的知识。当新的任务ttt到达时,我们首先训练AC部分,来生成一个二进制的任务掩码ata_tat(一个与KB { hiKB}\{h_i^{KB}\}{ hiKB}大小相同的矩阵),以指示KB- RNN中的哪些单元可以被新的/当前的任务ttt访问。
由于掩码是基于新的任务数据进行训练的,KB-RNN中之前的知识是固定的,所以那些没有被屏蔽的KB-RNN单元(意味着它们对新任务是有用的)就是条目在ata_tat中为1的可访问单元(未屏蔽)。其他单元是不可访问的,它们的条目在ata_tat中为0(屏蔽)。

MCL Training

AC训练结束后,我们开始MCL训练。在这个阶段,只有KB-RNN和紫色框中的其他部分是可训练的。训练后的二进制的任务掩码ata_tat以元素为单位乘以KB-RNN的输出向量。这个操作保护了那些不可访问的单位,因为没有梯度流穿过它们,同时允许那些可访问的单位被更新,因为掩码不会停止它们的梯度。

Continual Learning in KAN

在这里插入图片描述

在算法1中给出了KAN中持续学习的算法。
对于每个新任务,首先进行AC训练,然后进行MCL训练。
一个例外是在第一个任务(算法1的3-4行),一开始KB没有知识,AC没有什么可以使用的,所以我们在AC之前训练MCL(和KB)先获得一些知识。但是,在第一个任务之后,对于每个新任务,AC总是在MCL(和KB)之前训练(第6-7行)。

Details of Accessibility Training

在这里插入图片描述
AC训练的目的是检测在给定新的任务数据的情况下,知识库中保留知识的可访问性。
如图1和算法2所示,它以训练示例ddd和训练后的知识库KB-RNN Wt−1KB−RNNW^{KB-RNN}_{t-1}Wt1

### 关于神经信息检索中的持续终身学习 #### 定义 在神经信息检索领域,持续终身学习(Continual Lifelong Learning, CLL)是指模型能够在不断变化的环境中通过连续获取新知识来改进自身的性能,而不会遗忘之前学到的知识。这种能力对于构建能够适应长期动态环境的信息检索系统至关重要[^1]。 #### 数据集 为了支持CLL的研究,在该领域内存在多种专门设计的数据集用于训练和测试算法的效果。这些数据集通常具有时间维度上的特性,即随着时间推移会有新的查询模式或文档集合加入进来。例如TREC Dynamic Domain Track提供了逐年更新的主题与相关性判断,可用于模拟真实世界中逐渐演变的信息需求场景;WikiPassageQA则是一个基于维基百科文章片段创建的问题回答型数据集,它允许研究人员探索如何让机器阅读理解能力随着更多样化的文本输入得到提升[^4]。 #### 框架 针对CLL问题提出的解决方案往往涉及到特定的学习策略和技术手段组合而成的方法论体系。一种常见的做法是在传统深度学习架构基础上引入记忆机制或者正则化项以防止灾难性遗忘现象发生。此外还有些工作尝试利用元学习的思想实现快速迁移至未知任务的能力。比如Replay-based方法会保存过往经历样本并周期性重放给当前网络参数调整提供额外监督信号;EWC(弹性权重巩固)通过对重要连接施加惩罚从而保持旧技能的同时接纳新鲜事物;MAML(Meta-Learning Algorithm with Fast Adaptation)旨在寻找一组初始状态使得少量梯度步即可完成对任意目标任务的良好拟合[^2]。 #### 实证评估 实验证明上述提到的各种技术确实能在不同程度上缓解因顺序呈现不同分布批次而导致的表现下降情况。然而值得注意的是,目前还没有统一标准衡量CLL效果好坏的最佳方式。大多数情况下还是依赖于具体应用场景下的定制指标来进行比较分析。除了准确率之外,还需要考虑计算效率、泛化能力和鲁棒性等多个方面因素综合评判一个方案是否优越。部分论文也指出了一些潜在挑战如过拟合风险增加以及跨域推广困难等问题有待进一步探讨解决[^3]。 ```python # Python代码示例展示了一个简单的Elastic Weight Consolidation (EWC)实现思路 import torch.nn.functional as F from torch import nn class Net(nn.Module): def __init__(self): super().__init__() self.fc1 = nn.Linear(input_size, hidden_size) self.fc2 = nn.Linear(hidden_size, output_size) def ewc_loss(model, fisher_dict, opt_params, lam=0.5): loss = 0. for name, param in model.named_parameters(): _loss = fisher_dict[name] * ((param - opt_params[name]) ** 2) loss += _loss.sum() return (lam / 2.) * loss output = net(inputs) ce_loss = F.cross_entropy(output, targets) ewc_penalty = ewc_loss(net, old_fisher_info, previous_weights) total_loss = ce_loss + ewc_penalty optimizer.zero_grad() total_loss.backward() optimizer.step() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值