来自:NLP从入门到放弃

今天分享的论文主要是讲Bert如何在文本分类上获得比较好的效果,比较简单:How to Fine-Tune BERT for Text Classification?[1]:不涉及什么复杂公式,也比较早了,里面很多东西对于当下已经司空见惯,我就直接就分享论文结论,攒个思路。

1. 如何处理长文本

我比较感兴趣的是一点是Bert处理长文本的思路。

首先数据集是IMDB,文本分类任务,超过512个token的12.69%,最大长度为3045;

1.1 截断方法:

  1. 保留头部:保留头部最开始的510个tokens

  2. 保留尾部:保留最后的610个tokens

  3. 头部加尾部:头部128+尾部382

1.2 分层的方法:

简单来说就是把文本分为 k = L/510个小段落,每个都喂进去Bert,然后得到的K个【CLS】的输出向量,我们对这个K个向量做:

  1. mean pooling

  2. max pooling

  3. self-attention

直接看结果:

Bert处理长文本

看结果,我们知道,头部加尾部会获得更好的结果。

2. 其他结论

  1. BERT 顶层对于文本分类任务更加有效

  2. 每层适当的逐层降低学习速率,可以提高文本分类效果

  3. 任务内和领域内(和任务内数据分布相似)的进一步预训练可以提升文本分类效果

对于第二点,降低学习率来说,论文中是从顶层到底层逐渐降低,越靠近输出学习率越高,越靠近输入层,学习率越低,这一点还是挺有意思的。

对于第三点,任务内数据和领域内数据,对提升效果都有用,通用领域基本没啥用,因为Bert本来就是在通用领域训练的。

还有意思的一点是,并不是在任务内的数据训练的越多step越好,直接看图:

领域内数据进一步预训练

也就是说,在任务领域数据预训练可以提升效果,但是也有注意预训练的步数,不能是过分(有点过拟合的感觉,但是感觉说过拟合有点不准确)。

3. 总结

掌握以下几点:

  1. 如何处理长文本:head/tail/combine two

  2. 不同层不同学习率提升效果,越靠近输入层学习率应该越低

  3. 领域内和任务内数据进一步预训练提升效果:注意进一步预训练步数控制

参考资料

[1]

How to Fine-Tune BERT for Text Classification?: https://arxiv.org/abs/1905.05583,

Bert遇到文本分类:如何用好Bert这把刀相关推荐

  1. 【直播】闫强:文本分类上分利器 -- Bert微调技巧大全

    文本分类上分利器 – Bert微调技巧大全 直播信息 主讲人:ChallengeHub成员,中国人民大学硕士. 直播时间:2021年07月25日 15:00~16:00 直播内容: 经典论文介绍与解读 ...

  2. 【NLP】Kaggle从零到实践:Bert中文文本分类

    Bert是非常强化的NLP模型,在文本分类的精度非常高.本文将介绍Bert中文文本分类的基础步骤,文末有代码获取方法. 步骤1:读取数据 本文选取了头条新闻分类数据集来完成分类任务,此数据集是根据头条 ...

  3. 【NLP】如何在文本分类任务中Fine-Tune BERT

    问 题 BERT在许多自然语言理解(NLU)任务中取得了惊人的成果,但它的潜力还有待充分挖掘.目前很少有如何能进一步提高BERT性能的研究,因此,如何通过一些技巧和方法最大限度的提升BERT在文本分类 ...

  4. php文本域输出_如何在文本分类任务中Fine-Tune BERT

    问 题 BERT在许多自然语言理解(NLU)任务中取得了惊人的成果,但它的潜力还有待充分挖掘.目前很少有如何能进一步提高BERT性能的研究,因此,如何通过一些技巧和方法最大限度的提升BERT在文本分类 ...

  5. 【论文解读】文本分类上分利器:Bert微调trick大全

    论文标题:How to Fine-Tune BERT for Text Classification? 中文标题:如何微调 BERT 进行文本分类? 论文作者:复旦大学邱锡鹏老师课题组 实验代码:ht ...

  6. 文本分类上分利器: Bert微调trick大全

    点击下面卡片,关注我呀,每天给你送来AI技术干货! 来自:ChallengeHub 论文标题:How to Fine-Tune BERT for Text Classification? 中文 中文标 ...

  7. Bert实战--文本分类(一)

    使用Bert预训练模型进行文本分类 bert做文本分类,简单来说就是将每句话的第一个位置加入了特殊分类嵌入[CLS].而该[CLS]包含了整个句子的信息,它的最终隐藏状态(即,Transformer的 ...

  8. 二分类问题:基于BERT的文本分类实践!附完整代码

    Datawhale 作者:高宝丽,Datawhale优秀学习者 寄语:Bert天生适合做分类任务.文本分类有fasttext.textcnn等多种方法,但在Bert面前,就是小巫见大巫了. 推荐评论展 ...

  9. pytorch bert文本分类_一起读Bert文本分类代码 (pytorch篇 四)

    Bert是去年google发布的新模型,打破了11项纪录,关于模型基础部分就不在这篇文章里多说了.这次想和大家一起读的是huggingface的pytorch-pretrained-BERT代码exa ...

  10. tensorflow 加载bert_用NodeJS/TensorFlowJS调用BERT实现文本分类

    题图 "JavaScript Logo"byb0neskullis licensed underCC BY-NC-SA 2.0 几个提前知识 TensorFlowJS可以简单认为有 ...

最新文章

  1. 优秀代码的必知必会(一)?
  2. 【mybatis】mybatis中 的# 和 $的区别
  3. python爬虫招聘-Python爬虫-爬取招聘网站信息(一)
  4. Ubuntu 11.10 安装Adobe Air 和卸载Air中的软件
  5. java集合:LinkedList
  6. 数据库ORA-03113排查
  7. HDU 4787 GRE Words Revenge
  8. java executequery,JDBC中的execute(),executeQuery()和executeUpdate()方法有什么区别?
  9. Java学习笔记10(面向对象三:接口)
  10. Prometheus 结合cAdvisor、AlertManager、node-exporter 监控容器并实现邮箱告警
  11. 星际争霸、魔兽争霸3、红色警戒之完全对比
  12. 2014年中国行地产排行
  13. andriod 无网络逻辑设置和判断
  14. 深入理解计算机网络-4信号编码与调制2
  15. cygwin中安装apt-cyg管理工具注意事项
  16. iPhone 和iPad的Icon大小和设置
  17. 无人出租赛道洗牌开启?这家公司为什么会黄?
  18. 一元购抽奖号码 thinkphp php
  19. android 实现打印功能,Android通过OTG线连接打印机实现打印功能
  20. 10个python接私活的平台,整整10个,总有适合你的,你有技术就有钱

热门文章

  1. 与你邂逅——软件工程
  2. 2015年 不可不知的五大热点话题
  3. vector 内部方法大全 学习(初学者的参考资料)
  4. WP7开发平台介绍及开发注意事项【WP7学习札记之二】
  5. 【linux】IP最大可传65535而以太网最大只能传1500问题解析
  6. ABP .Net Core 部署到IIS 问题汇总
  7. 数学趣题——猴子吃桃问题
  8. 仰空以忧繁星,我将君心聆听,我听君心似水清,清冷好似寒冰
  9. 跟bWAPP学WEB安全(PHP代码)--SSL(Server-Side-Include)漏洞
  10. 如何使用JSTL及JSTL标签库