文章目录

  • 一、基于prompt的文本分类
  • 二、什么是样本不均衡问题
  • 三、样本不均衡会导致什么问题
  • 三、如何解决样本不均衡问题
  • 四、基于bert的文本分类模型是咋做的
  • 五、bert模型中的[CLS]、[UNK]、[SEP]是什么意思?
  • 六、bert跟下游任务的关系可以是pipeline,也可以是end-to-end
  • 七、如何提高模型的鲁棒性

一、基于prompt的文本分类

二、什么是样本不均衡问题

样本不均衡问题就是指在做文本分类时发现,训练数据中的样本类别分布差异极大,有的类别占比超过90%,有的类别占比连0.01%都不到。

三、样本不均衡会导致什么问题

由于模型训练的本质是最小化损失函数,当某个类别的样本数量非常庞大,损失函数的值大部分被样本数量较大的类别所影响,导致的结果就是模型分类会倾向于样本量较大的类别。

三、如何解决样本不均衡问题

  1. 模型层面:通过加权Loss,包括基于类别Loss、Focal Loss和GHM Loss三种加权Loss函数
  2. 数据层面:通过人为控制正负样本的比例,可以使用欠采样或过采样两种方法。
    a. 过采样:重复正例数据,实际上没有为模型引入更多数据,过分强调正例数据,会放大正比例噪音对模型的影响。由于随机过采样采取简单复制样本的策略来增加少数类样本,因此存在过拟合风险,最好搭配使用正则化模型。可以通过数据增强的方法(包括回译技术、替换技术、随机噪声引入技术等方法),避免每次重复同样的正例数据。也可以通过从文本生成的角度来增加正样本,例如:基于BERT的有条件生成任务和基于SIMBERT来生成相似文本任务。
    b. 欠采样:如果直接丢弃有点浪费的话,那就每次迭代模型训练时,使用不同的一小部分。如下图所示:

    There are several ways to deal with imbalanced data, including:
    • Randomly oversample the minority class.
    • Randomly undersample the majority class.
    • Gather more labeled data from the underrepresented classes.

四、基于bert的文本分类模型是咋做的

基于BERT的文本分类模型就是在原始的BERT模型后再加上一个分类层即可

五、bert模型中的[CLS]、[UNK]、[SEP]是什么意思?

BERT 的输入可以包含一个句子对 (句子 A 和句子 B),也可以是单个句子。此外还增加了一些有特殊作用的标志位:

[CLS] 标志放在第一个句子的首位,经过 BERT 得到的的表征向量 C 可以用于后续的分类任务。[CLS]就是classification的意思,可以理解为用于下游的分类任务。对于文本分类任务,BERT模型在文本前插入一个[CLS]符号,并将该符号对应的输出向量作为整篇文本的语义表示,用于文本分类。可以理解为:与文本中已有的其它字/词相比,这个无明显语义信息的符号会更“公平”地融合文本中各个字/词的语义信息。
[SEP] 标志用于分开两个输入句子,例如输入句子 A 和 B,要在句子 A、B 之间增加 [SEP] 标志。
[UNK]标志指的是未知字符
[MASK] 标志用于遮盖句子中的一些单词,将单词用 [MASK] 遮盖之后,再利用 BERT 输出的 [MASK] 向量预测单词是什么。

六、bert跟下游任务的关系可以是pipeline,也可以是end-to-end

一般我们就用训练集出一个模型,然后可以在其他的代码里读取这个模型来使用。其他的代码就是所谓的下游任务(比如·什么分类、NER什么的)。BERT只是出一个词向量,这个向量不接任务你也看不出什么东西。这种分开训的就叫pipeline,如果bert和下游任务一起训就叫end-to-end

七、如何提高模型的鲁棒性

  1. 对抗训练
    通过在原始输入上增加对抗扰动,得到对抗样本,再利用对抗样本进行训练,从而提高模型的表现。由于自然语言文本是离散的,一般会把对抗扰动添加到嵌入层上。为了最大化对抗样本的扰动能力,利用梯度上升的方式生成对抗样本。为了避免扰动过大,会将梯度做归一化处理。
  2. 知识蒸馏
    知识蒸馏这个概念最早由Hinton在2015年提出。一开始,知识蒸馏通往往应用在模型压缩方面,利用训练好的复杂模型(teacher model)输出作为监督信号去训练另一个简单模型(student model),从而将teacher学习到的知识迁移到student。Tommaso在18年提出,如果student和teacher的模型完全相同,蒸馏后则会对模型的表现有一定程度上的提升。
  3. L1和L2正则化
    L1正则化可以得到稀疏解,L2正则化可以得到平滑解。
  4. Dropout
  5. 数据增强
  6. Early stopping
  7. 交叉验证
  8. Batch Normalization
  9. 选择合适的网络结构
    通过减少网络层数、神经元个数、全连接层数等降低网络容量
  10. 多模型融合
    Baggging &Boosting,将弱分类器融合之后形成一个强分类器,而且融合之后的效果会比最好的弱分类器更好,三个臭皮匠顶一个诸葛亮。

参考文献:

  • https://m.thepaper.cn/baijiahao_13867755
  • https://www.1024sou.com/article/321102.html
  • https://www.ylkz.life/deeplearning/p10979382/
  • https://blog.csdn.net/weixin_43797818/article/details/107352565
  • https://blog.csdn.net/weixin_43977748/article/details/118071000
  • https://zhuanlan.zhihu.com/p/422538072
  • https://jishuin.proginn.com/p/763bfbd5e037 (加权loss讲得很详细)
  • https://mp.weixin.qq.com/s?__biz=MzIyNTY1MDUwNQ==&mid=2247484242&idx=1&sn=c439a0761a617cac3c496e841ccd1324&chksm=e87d3174df0ab8628ce4822107ab0008fd0355e23246c90c18be09eb343b51d3cd2b1b8b23d4&scene=21#wechat_redirect
  • https://blog.csdn.net/u013250861/article/details/114241270
  • https://zhuanlan.zhihu.com/p/67099007

基于bert的分类笔记相关推荐

  1. 基于Bert文本分类进行行业识别

    NLP学习之Bert文本分类 行业识别--基于Bert 项目介绍 数据集: 数据迭代器: 项目结构: 总入口: 模型搭建和配置 配置类: config 模型搭建:model 数据预处理: 数据预处理 ...

  2. 【文本分类】基于BERT预训练模型的灾害推文分类方法、基于BERT和RNN的新闻文本分类对比

    ·阅读摘要: 两篇论文,第一篇发表于<图学学报>,<图学学报>是核心期刊:第二篇发表于<北京印刷学院学报>,<北京印刷学院学报>没有任何标签. ·参考文 ...

  3. 《机器学习实战》笔记(04):基于概率论的分类方法 - 朴素贝叶斯分类

    基于概率论的分类方法:朴素贝叶斯分类 Naive Bayesian classification 这大节内容源于带你理解朴素贝叶斯分类算法,并非源于<机器学习实战>.个人认为<机器学 ...

  4. 自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 基于BERT模型微调实现句子分类

    自然语言处理NLP星空智能对话机器人系列:深入理解Transformer自然语言处理 基于BERT模型微调实现句子分类 目录 基于BERT模型微调实现句子分类案例实战 Installing the H ...

  5. 基于 BERT 实现的情感分析(文本分类)----概念与应用

    文章目录 基于 BERT 的情感分析(文本分类) 基本概念理解 简便的编码方式: One-Hot 编码 突破: Word2Vec编码方式 新的开始: Attention 与 Transformer 模 ...

  6. 基于 BERT 掩码语言的指代消解--论文笔记

    BERT Masked Language Modeling for Co-reference Resolution 基于 BERT 掩码语言的指代消解 [原文地址](https://www.aclwe ...

  7. 复盘:基于attention的多任务多模态情绪情感识别,基于BERT实现文本情感分类(pytorch实战)

    复盘:基于attention机制的多任务多模态情绪情感识别(pytorch实战),基于BERT实现文本情感分类 提示:系列被面试官问的问题,我自己当时不会,所以下来自己复盘一下,认真学习和总结,以应对 ...

  8. Machine Learning in Action 读书笔记---第4章 基于概率论的分类方法:朴素贝叶斯

    Machine Learning in Action 读书笔记 第4章 基于概率论的分类方法:朴素贝叶斯 文章目录 Machine Learning in Action 读书笔记 一.基于贝叶斯决策理 ...

  9. 我的实践:pytorch框架下基于BERT实现文本情感分类

    当前,在BERT等预训练模型的基础上进行微调已经成了NLP任务的一个定式了.为了了解BERT怎么用,在这次实践中,我实现了一个最简单的NLP任务,即文本情感分类. 文章目录 1.基于BERT进行情感分 ...

最新文章

  1. Activity缓存方法。
  2. 隔空投送找不到_嗑技热点对标苹果AirDrop,安卓终于也能隔空投送
  3. 写了多年代码,你会 StackOverflow 吗
  4. invoke 按钮点击_h5+ app内点击按钮实现复制功能 实现方法
  5. html的id不能有.吗,html – 哪些DOM元素不能接受id?
  6. 前端笔记-vue cli中v-bind动态数据实时更新
  7. matlab table中的文字转string_el-table 滚动条美化
  8. 【Java】JDK1.8新特性Date类----日期/时间改进
  9. 理解C++ dynamic_cast
  10. python怎么存为动图_Python将视频或者动态图gif逐帧保存为图片的方法
  11. java 第几周_java获取第几周
  12. 3月11日Linux课程笔记
  13. 常用的字符串对象方法
  14. Atitit.编程语言的基础句型and汉语英文比较
  15. Visual SourceSafe 2005(Vss2005)使用经验总结
  16. Exception: java.io.IOException: Keystore was tampered with, or password was incorrect
  17. Navicat Premium11.0.16 for mac 破解
  18. 开发过程中swagger-ui快速集成详解
  19. Python教程:去除背景,我保证不动她一根头发(附多种方式)
  20. HTML5 FileReader

热门文章

  1. 2021年计算机保研夏令营(从双非到南大软件学院)
  2. Unity3d基础知识之Texture纹理、Shader着色器、Material材质、Rendering Mode
  3. python两个乘号什么意思_python两个乘号_关于Python中*号的用法
  4. 基于OpenHarmony的智能电饭煲
  5. 华为设备WLAN基本业务配置命令
  6. ansible配置文件介绍
  7. word文档打开时出现错误提示是什么原因
  8. 【思维题】Mismatched Socks
  9. 关于Autodesk View and Data API的一些问题
  10. 超越自身定位玩跨界:移动App如何求生?