文章目录
一、基于prompt的文本分类
二、什么是样本不均衡问题
样本不均衡问题就是指在做文本分类时发现,训练数据中的样本类别分布差异极大,有的类别占比超过90%,有的类别占比连0.01%都不到。
三、样本不均衡会导致什么问题
由于模型训练的本质是最小化损失函数,当某个类别的样本数量非常庞大,损失函数的值大部分被样本数量较大的类别所影响,导致的结果就是模型分类会倾向于样本量较大的类别。
三、如何解决样本不均衡问题
- 模型层面:通过加权Loss,包括基于类别Loss、Focal Loss和GHM Loss三种加权Loss函数
- 数据层面:通过人为控制正负样本的比例,可以使用欠采样或过采样两种方法。
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
七、如何提高模型的鲁棒性
- 对抗训练
通过在原始输入上增加对抗扰动,得到对抗样本,再利用对抗样本进行训练,从而提高模型的表现。由于自然语言文本是离散的,一般会把对抗扰动添加到嵌入层上。为了最大化对抗样本的扰动能力,利用梯度上升的方式生成对抗样本。为了避免扰动过大,会将梯度做归一化处理。 - 知识蒸馏
知识蒸馏这个概念最早由Hinton在2015年提出。一开始,知识蒸馏通往往应用在模型压缩方面,利用训练好的复杂模型(teacher model)输出作为监督信号去训练另一个简单模型(student model),从而将teacher学习到的知识迁移到student。Tommaso在18年提出,如果student和teacher的模型完全相同,蒸馏后则会对模型的表现有一定程度上的提升。 - L1和L2正则化
L1正则化可以得到稀疏解,L2正则化可以得到平滑解。 - Dropout
- 数据增强
- Early stopping
- 交叉验证
- Batch Normalization
- 选择合适的网络结构
通过减少网络层数、神经元个数、全连接层数等降低网络容量 - 多模型融合
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