返回列表

43rd place. Sampling with Adversarial Validation

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

开始: 2020-03-23 结束: 2020-06-22 内容安全 数据算法赛
第43名:使用对抗验证进行采样

第43名:使用对抗验证进行采样

作者: isa k [dsmlkz] - Issagali Konysbayev 及团队
比赛排名: 第43名

感谢 Kaggle 以及所有慷慨分享专业知识的 Kagglers。丰富的学习经验得益于以下资源:

对抗验证

该解决方案的主要区别在于训练集和验证集的采样方式。我在这个 kernel (previous version) 中使用了对抗验证,对 Michael Kazachok 的 translations 进行采样,以挑选“与测试集最相似”的样本(训练集 280k-480k 样本,验证集 4k 样本(+8k 原始 validation.csv)。对抗验证是 Kaggle 上经常成功使用的一个想法(例如 Quora Adversarial ValidationAdversarial validation)。

  • 至少,通过这种方式选择样本,并没有比随机采样的幸运选择表现更差。

其他细节

最佳提交是 6 个模型预测结果的融合,所有模型均为 Roberta-XLM-large MLM,其中 3 个基于 Dezso Ribli (@riblidezso) 在测试集上微调过的 MLM (link)。

模型的多样性来自于不同的损失函数(除了 BCE,还使用了 focal loss 和 MSE(带软标签)),3 个模型连接了顶部 4 个隐藏层的输出,1 个模型对这 4 层求和。3 个模型对头部和 Transformer 使用了差异化学习率,如 this kernel 所示,不同的长度 192 和 256,对于超过 max_len=192 的样本,将文本最后 25%*max_len 的文本连接到文本开头。还有 Alex Shonenkov 的 kernel 增加了 opensubtitles 数据,训练包含英文文本和不包含英文文本的情况,使用从 200k 到 480k 的训练数据,并根据与测试集的相似度和/或语言分布相似度和/或“有毒”目标分布相似度进行过滤。

所有模型均仅在 TPU 上使用 tensorflow 和 keras 运行。GPU 仅用于预测,或者在对抗验证中使用较小的 Roberata-base 模型时使用。

同比赛其他方案