如何改进语言模型前:BERT 训练中看不见的文本?

数据挖掘 分类 nlp 文本挖掘 伯特 拥抱脸
2022-03-06 05:40:08

我正在使用预先训练的语言模型进行二进制分类。我通过对下游任务的数据进行训练来微调模型。结果几乎是 98% F-measure。

但是,当我从训练数据中删除一个特定的相似句子并将其添加到我的测试数据中时,分类器无法预测该句子的类别。比如情感分析任务

“我更喜欢这部电影,特别是演技很棒”

我从训练中删除了所有包含“更具体”的句子,令人惊讶的是,在测试集中它们都被错误分类,因此精度大幅下降。

关于如何进一步微调/改进我的模型以更好地处理训练中看不见的文本以避免我上面描述的问题的任何想法?(当然没有在包含“更具体”这个词的句子上输入模型

注意:无论使用何种语言模型(BERT、RoBERTa 等),我都观察到了相同的性能。

2个回答

为了使您的模型对不同的措辞更加稳健,您可以尝试使用数据增强技术,即创建句子的变体并将它们添加到与原始句子具有相同标签的训练集中。

有像TextAttack这样的框架提供了多种文本增强技术。另一种选择是使用反向翻译(即将你的句子翻译成第二语言,然后再翻译成英语),可以在本地使用公开可用的机器翻译模型,也可以通过一些 API,如谷歌翻译。

请注意,使微调的语言模型能够抵抗此类(常见)问题是一个活跃的研究领域。有关最新进展,您可以查看这篇 NeurIPS'21 文章

您的模型似乎无法概括。

一种选择是增加训练数据的数量和质量。

其他选项包括大规模语言模型特定的正则化,例如mixoutAUBER