Bert遇到文本分类:如何用好Bert这把刀
来自:NLP从入门到放弃
今天分享的论文主要是讲Bert如何在文本分类上获得比较好的效果,比较简单:How to Fine-Tune BERT for Text Classification?[1]:不涉及什么复杂公式,也比较早了,里面很多东西对于当下已经司空见惯,我就直接就分享论文结论,攒个思路。
1. 如何处理长文本
我比较感兴趣的是一点是Bert处理长文本的思路。
首先数据集是IMDB,文本分类任务,超过512个token的12.69%,最大长度为3045;
1.1 截断方法:
保留头部:保留头部最开始的510个tokens
保留尾部:保留最后的610个tokens
头部加尾部:头部128+尾部382
1.2 分层的方法:
简单来说就是把文本分为 k = L/510个小段落,每个都喂进去Bert,然后得到的K个【CLS】的输出向量,我们对这个K个向量做:
mean pooling
max pooling
self-attention
直接看结果:
看结果,我们知道,头部加尾部会获得更好的结果。
2. 其他结论
BERT 顶层对于文本分类任务更加有效
每层适当的逐层降低学习速率,可以提高文本分类效果
任务内和领域内(和任务内数据分布相似)的进一步预训练可以提升文本分类效果
对于第二点,降低学习率来说,论文中是从顶层到底层逐渐降低,越靠近输出学习率越高,越靠近输入层,学习率越低,这一点还是挺有意思的。
对于第三点,任务内数据和领域内数据,对提升效果都有用,通用领域基本没啥用,因为Bert本来就是在通用领域训练的。
还有意思的一点是,并不是在任务内的数据训练的越多step越好,直接看图:
也就是说,在任务领域数据预训练可以提升效果,但是也有注意预训练的步数,不能是过分(有点过拟合的感觉,但是感觉说过拟合有点不准确)。
3. 总结
掌握以下几点:
如何处理长文本:head/tail/combine two
不同层不同学习率提升效果,越靠近输入层学习率应该越低
领域内和任务内数据进一步预训练提升效果:注意进一步预训练步数控制
参考资料
[1]
How to Fine-Tune BERT for Text Classification?: https://arxiv.org/abs/1905.05583,
Bert遇到文本分类:如何用好Bert这把刀相关推荐
- 【直播】闫强:文本分类上分利器 -- Bert微调技巧大全
文本分类上分利器 – Bert微调技巧大全 直播信息 主讲人:ChallengeHub成员,中国人民大学硕士. 直播时间:2021年07月25日 15:00~16:00 直播内容: 经典论文介绍与解读 ...
- 【NLP】Kaggle从零到实践:Bert中文文本分类
Bert是非常强化的NLP模型,在文本分类的精度非常高.本文将介绍Bert中文文本分类的基础步骤,文末有代码获取方法. 步骤1:读取数据 本文选取了头条新闻分类数据集来完成分类任务,此数据集是根据头条 ...
- 【NLP】如何在文本分类任务中Fine-Tune BERT
问 题 BERT在许多自然语言理解(NLU)任务中取得了惊人的成果,但它的潜力还有待充分挖掘.目前很少有如何能进一步提高BERT性能的研究,因此,如何通过一些技巧和方法最大限度的提升BERT在文本分类 ...
- php文本域输出_如何在文本分类任务中Fine-Tune BERT
问 题 BERT在许多自然语言理解(NLU)任务中取得了惊人的成果,但它的潜力还有待充分挖掘.目前很少有如何能进一步提高BERT性能的研究,因此,如何通过一些技巧和方法最大限度的提升BERT在文本分类 ...
- 【论文解读】文本分类上分利器:Bert微调trick大全
论文标题:How to Fine-Tune BERT for Text Classification? 中文标题:如何微调 BERT 进行文本分类? 论文作者:复旦大学邱锡鹏老师课题组 实验代码:ht ...
- 文本分类上分利器: Bert微调trick大全
点击下面卡片,关注我呀,每天给你送来AI技术干货! 来自:ChallengeHub 论文标题:How to Fine-Tune BERT for Text Classification? 中文 中文标 ...
- Bert实战--文本分类(一)
使用Bert预训练模型进行文本分类 bert做文本分类,简单来说就是将每句话的第一个位置加入了特殊分类嵌入[CLS].而该[CLS]包含了整个句子的信息,它的最终隐藏状态(即,Transformer的 ...
- 二分类问题:基于BERT的文本分类实践!附完整代码
Datawhale 作者:高宝丽,Datawhale优秀学习者 寄语:Bert天生适合做分类任务.文本分类有fasttext.textcnn等多种方法,但在Bert面前,就是小巫见大巫了. 推荐评论展 ...
- pytorch bert文本分类_一起读Bert文本分类代码 (pytorch篇 四)
Bert是去年google发布的新模型,打破了11项纪录,关于模型基础部分就不在这篇文章里多说了.这次想和大家一起读的是huggingface的pytorch-pretrained-BERT代码exa ...
- tensorflow 加载bert_用NodeJS/TensorFlowJS调用BERT实现文本分类
题图 "JavaScript Logo"byb0neskullis licensed underCC BY-NC-SA 2.0 几个提前知识 TensorFlowJS可以简单认为有 ...
最新文章
- 优秀代码的必知必会(一)?
- 【mybatis】mybatis中 的# 和 $的区别
- python爬虫招聘-Python爬虫-爬取招聘网站信息(一)
- Ubuntu 11.10 安装Adobe Air 和卸载Air中的软件
- java集合:LinkedList
- 数据库ORA-03113排查
- HDU 4787 GRE Words Revenge
- java executequery,JDBC中的execute(),executeQuery()和executeUpdate()方法有什么区别?
- Java学习笔记10(面向对象三:接口)
- Prometheus 结合cAdvisor、AlertManager、node-exporter 监控容器并实现邮箱告警
- 星际争霸、魔兽争霸3、红色警戒之完全对比
- 2014年中国行地产排行
- andriod 无网络逻辑设置和判断
- 深入理解计算机网络-4信号编码与调制2
- cygwin中安装apt-cyg管理工具注意事项
- iPhone 和iPad的Icon大小和设置
- 无人出租赛道洗牌开启?这家公司为什么会黄?
- 一元购抽奖号码 thinkphp php
- android 实现打印功能,Android通过OTG线连接打印机实现打印功能
- 10个python接私活的平台,整整10个,总有适合你的,你有技术就有钱