1. 正负样本不平衡问题如何解决?
- 过采样、欠采样的方式对不平衡的正负样本进行采样。
- 正负样本各自在进行训练时,设置不同的惩罚系数。
- 集成的方式:例如,在数据集中的正、负例的样本分别为100和10000条,比例为1:100。此时可以将负例样本(类别中的大量样本集)随机分为100份(当然也可以分更多),每份100条数据;然后每次形成训练集时使用所有的正样本(100条)和随机抽取的负样本(100条)形成新的数据集。如此反复可以得到100个训练集和对应的训练模型。
- 若极其不平衡,不如把任务转换成异常检测问题。
- 选择对数据倾斜相对不敏感的算法。如树模型等。
- 评价指标上ROC、AUC等可以无视样本不平衡问题。
- 加入Focal Loss学习难学样本
2. 长尾问题如何解决?
由于我自己的研究方向大规模文本分类任务本身就会遇到比较严重的长尾问题,所以我就这个问题说一下我的一些经验。首先在工业界数据很重要,所以如果能够保证数据的完善,长尾问题是能够得到较好的解决的;但是如果数据不能保证的话,长尾问题很严重,而且这种大规模文本分类任务本身的标签集规模是比较庞大的,那么便可以通过标签聚类分区进行解决:我们利用标签特征对标签集进行聚类分区后,头部标签由于训练数据充足,其在语义空间中的建模是很清晰的;而尾部标签在语义空间中是模糊的。当长尾和头部标签被聚类分区到一个簇内时,同一个簇中的头部标签可以辅助尾部标签的语义建模,浅显一点说,就是提高了尾部标签的预测几率,从而缓解长尾问题。
3. 训练数据不足问题如何解决?
(1)数据增强的手段:
-
图片:翻转,滤波器。
-
文本:
– 常规增强:随意删除某一字,调整字的顺序,同义词替换,随机替换(增强它的鲁棒性)。
– 生成的算法:比如和GBT模型做些文本生成任务。
(2)可以先引入预训练模型,或者自己先预训练模型。
(3)其实上述做法提升是有限的,但是每次做的是一个业务,其实真正提升的还是对业务理解,从而补充的数据。包括数据补充也可以和其他BU进行沟通,看看可否更多的补充进去数据。