返回列表

6th place solution

387. Jigsaw Multilingual Toxic Comment Classification | jigsaw-multilingual-toxic-comment-classification

开始: 2020-03-23 结束: 2020-06-22 内容安全 数据算法赛
第6名解决方案

第6名解决方案

作者: nzholmes, toxu | 排名: 第6名

感谢 Jigsaw 举办了如此精彩的比赛!同时也感谢我的队友 @tonyxu 的勤奋和 brilliant 的想法。这是我们参加的第二次 Jigsaw 比赛,也是第一次参加这种多语言 NLP 比赛。

简要总结

在团队合并之前,我主要专注于如何训练具有良好性能的单个模型,而我的队友则致力于训练多样化的模型,特别是针对单一语言数据进行训练并将它们组合在一起。合并前,我们在公开排行榜上都达到了 0.9487 的分数。如你所见,我们在相对不同的方向上努力,团队合并后分数立即达到了 0.9499。团队合并后,我们专注于训练更多样化的模型以增加多样性,这给了我们很大的提升,但也导致我们忽略了大多数顶级获胜者发现的“后处理技巧”。

详细总结

数据采样

我们使用了英语训练数据及其公开分享的翻译版本。由于有大量的训练数据可用,主要问题不是太少而是太多。我主要采用硬采样技术来采样训练数据。

首先,我包含了所有正样本并随机采样负样本来训练一个 XLM-Roberta Large 模型,然后用它对所有训练数据(包括所有英语数据和翻译后的 Jigsaw 有毒评论)进行预测。

然后对于英语数据,我们为负样本设置了一个阈值,而由于数据不平衡,我们保留了所有正样本。预测概率与标签之间的差距大于阈值的数据全部保留,差距较小的数据则进行采样。对于翻译数据,除了阈值设置外,逻辑相同。单一阈值可能会导致问题,因为翻译会导致信息丢失。所以我设定了一个值范围,比如 [0.3, 0.7],该范围内的任何数据都被保留。我没有将软标签转换为硬 0/1 标签,因为在上一届 Jigsaw 比赛中这样效果更好。训练数据的数量约为 934k。在此数据上训练的 XLM-Roberta Large 在公开 LB 上达到 0.9469,在私有 LB 上达到 0.9458。

多语言模型

我们的多语言模型主要包括 XLM-Roberta-LargeXLM-Roberta-baseBert-multilingual-base-uncased。我的队友还在 jigsaw-unintended-bias 数据上进行了语言模型微调。我们不知道最终集成中每个模型的确切数量,但它们最好的公开分数分别是 0.9469、0.9364 和 0.9325。

在模型结构方面,我在倒数第二层的 CLS token 或最后四层的拼接上使用了一个普通的分类头,而我的队友采用了上一届 Jigsaw 比赛中获胜模型的架构

单语言模型

就在截止日期前一周,我们在 huggingface 社区发现了单语言语言模型。我们在相应的翻译语言上训练了下面列出的模型,这使我们在公开 LB 上从 0.9507 提升到了 0.9512。