不平衡或小数据集的 BERT 分类
BERT classification on imbalanced or small dataset
我有一个很大的语料库,没有标签。我训练了这个语料库以获得我的 BERT 分词器。
然后我想构建一个 BertModel
来对标记的数据集进行二元分类。然而,这个数据集是高度不平衡的,1:99。所以我的问题是:
- BertModel 在不平衡数据集上是否表现良好?
- BertModel 在小数据集上表现好吗? (小到不到 500 个数据点,我敢打赌它不是..)
使用预训练模型的迁移学习 objective 部分回答了您的问题。 BertModel
在大型语料库上进行预训练,当适应特定任务的语料库时,通常比非预训练模型表现更好(例如,为分类任务训练简单的 LSTM)。
BERT 已经表明,它在针对特定任务的小型语料库进行微调时表现良好。 (这回答了你的问题 2.)。但是,改进的程度还取决于您要执行的领域和任务,以及用于预训练的数据与您的目标数据集的相关程度。
根据我的经验,当数据集高度不平衡时,预训练的 BERT 在针对目标任务进行微调时比其他 DNN(例如 LSTM 和 CNN)表现得更好。然而,这又取决于任务和数据。 1:99确实是一个巨大的不平衡,可能需要数据平衡技术。
我有一个很大的语料库,没有标签。我训练了这个语料库以获得我的 BERT 分词器。
然后我想构建一个 BertModel
来对标记的数据集进行二元分类。然而,这个数据集是高度不平衡的,1:99。所以我的问题是:
- BertModel 在不平衡数据集上是否表现良好?
- BertModel 在小数据集上表现好吗? (小到不到 500 个数据点,我敢打赌它不是..)
使用预训练模型的迁移学习 objective 部分回答了您的问题。 BertModel
在大型语料库上进行预训练,当适应特定任务的语料库时,通常比非预训练模型表现更好(例如,为分类任务训练简单的 LSTM)。
BERT 已经表明,它在针对特定任务的小型语料库进行微调时表现良好。 (这回答了你的问题 2.)。但是,改进的程度还取决于您要执行的领域和任务,以及用于预训练的数据与您的目标数据集的相关程度。
根据我的经验,当数据集高度不平衡时,预训练的 BERT 在针对目标任务进行微调时比其他 DNN(例如 LSTM 和 CNN)表现得更好。然而,这又取决于任务和数据。 1:99确实是一个巨大的不平衡,可能需要数据平衡技术。