一起读论文 | 文本分类任务的BERT微调方法论

导读:今天为大家解读一篇复旦大学邱锡鹏老师课题组的研究论文《How to Fine-Tune BERT for Text Classification?》。这篇论文的主要目的在于在文本分类任务上探索不同的BERT微调方法并提供一种通用的BERT微调解决方法。这篇论文从三种路线进行了探索:(1) BERT自身的微调策略,包括长文本处理、学习率、不同层的选择等方法;(2) 目标任务内、领域内及跨领域的进一步预训练BERT;(3) 多任务学习。微调后的BERT在七个英文数据集及搜狗中文数据集上取得了当前最优的结果。作者们发布了实现代码,有兴趣的朋友也可以跑一跑实验。

点评:这篇论文从实战上为大家提供了宝贵的BERT微调经验及方法论,当需要应用BERT到具体的现实任务上时,可以参照这篇论文提供的调参路线进行优化。推荐大家读一读这篇论文。

在这里插入图片描述

研究背景及目的

大量任务表明在大规模语料库上预训练的模型对于文本分类及其他NLP任务的性能提升非常有帮助。其中一种预训练模型是词向量,如word2vec、GloVe等静态词向量以及CoVe、ELMo等语境化词向量。另一种预训练模型是句子级别上的向量化表示,如ULMFiT。其他的还有OpenAI GPT及BERT。

虽然BERT在许多自然语言理解任务上取得了惊人的成绩,但是它的潜力还尚未被完全探索出来。很少有研究来进一步改进BERT在目标任务上的性能。这篇论文的主要目的就是通过探索多种方式最大化地利用BERT来增强其在文本分类任务上的性能。

这篇论文的主要贡献在于:

  • 提出了一种通用的微调预训练BERT模型的解决方法,有三个步骤:(1)进一步在任务内训练集或领域内数据集上预训练BERT;(2)在有多个相关任务的情况下用多任务学习方法微调BERT;(3)在目标任务上微调BERT
  • 探索了在目标任务上BERT的微调方法:长文本预处理,BERT层选择,分层学习率,灾难性遗忘,low-shot学习问题
  • 在一个中文新闻分类数据集上及7个英文分类数据集上取得了当前最优的结果

研究内容、方法及结果分析

这篇论文主要按照以下三种方式对BERT进行了微调,路线如下图所示:
在这里插入图片描述

微调策略

采用多种方式在目标任务上微调BERT显然是非常有必要的。BERT不同的层可以捕获到不同级别的语法及语义信息,哪些信息是目标任务所需要的呢?如何选择优化算法以及学习率呢?当把BERT适应到某个目标任务时,需要考虑到因素有:(1)长文本序列的预处理(BERT最大序列长度为512);(2)选择哪些BERT层;(3)过拟合问题。

这篇论文分别对这三个因素进行了实验分析:

1. 处理长文本

BERT能够处理的最大序列长度是512,把BERT应用到文本分类任务上面临的第一个问题就是如何处理长度大于512的文本。这篇论文尝试的方法有:

  • 截断法 (truncation methods):(1) head-only: 只保留前510个tokens;(2) tail-only: 只保留尾510个tokens;(3) head+tail: 根据经验选择前128个tokens与后382个tokens。
  • 层次法 (hierarchical methods): 输入文本首先被分割成 k = L / 510 k=L/510 k=L/510 个切片,然后输入到BERT中得到 k k k 个切片的表征。每个切片的表征就是最后一层的 符号 [CLS] 的隐藏层状态。可以使用 mean pooling、max pooling与self-attention的方式把所有的切片的表征合并起来。

在这里插入图片描述

上表的结果显示,head+tail的截断法在IMDb和Sogou数据集上表现最好。后续的实验也是采用这种方式进行处理。

2. BERT不同层的特征

BERT的每一层能够捕获到输入文本的不同特征。这篇论文探索了不同层的特征的有效性,实验结果如下表所示:
在这里插入图片描述
3. 灾难性遗忘

Catastrophic forgetting的意思是在学习新知识的过程中,已习得的知识会丢失。这个问题在迁移学习中非常普遍。这篇论文探索了BERT是否也会遭遇这个问题。验证方法是用不同的学习率微调BERT。结果如下图所示:
在这里插入图片描述
实验结果表明:更低的学习率,如 2e-5,能够使得BERT克服这个问题。学习率越大,如 4e-4,导致无法收敛。

4. 逐层降低学习率

为不同的BERT设置不同的学习率及衰减因子,BERT的表现如何?把参数 θ \theta

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值