返回列表

13th Place Solution Part I. My first gold medal

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

开始: 2020-03-23 结束: 2020-06-22 内容安全 数据算法赛
第13名解决方案第一部分:我的第一枚金牌

第13名解决方案第一部分:我的第一枚金牌

作者:Striderl | 发布时间:2020-06-26

首先,非常感谢我的队友 @euclidean@nullrecurrent@luohongchen1993@sherryli94,你们是如此富有创造力和勤奋,我从你们每个人身上都学到了很多东西。这枚金牌是我们所有人的第一枚金牌,我很荣幸能与你们分享这段经历。干杯!

同时祝贺所有的奖牌获得者 :)

大多数顶尖获奖者已经涵盖了许多我们的“有效方法/无效方法”,我想用这篇文章来记录一些我认为我们做法不同的地方。

流程(Pipeline)

我们最终的流程是:

  1. 在训练集的选定部分上进行训练
  2. 在训练集的另一部分 + 测试集上的伪标签(PL)进行训练
  3. 在验证集上进行5折交叉验证(5cv) + 验证集的数据增强(感谢 @shonenkov 的内核)

在5折交叉验证中,使用软标签(验证集预测值 + 验证集真实标签)/ 2 改善了5折交叉验证的效果。一些非常有争议的标签变成了约0.5,这对我来说很直观。

此外,在5折交叉验证中随机化样本的顺序,同时将相同的评论(原始评论及其增强版本)保持在同一个批次中,有助于增加额外的多样性。我们的增强评论与原始评论的数量比例为 1:1。更多的增强并没有在我们的公共排行榜(LB)上起到帮助作用。

训练多样性

我们在训练中使用学习率衰减、余弦退火、随机权重平均(SWA)、类别权重、样本权重(针对增强/语言)、使用预训练模型、冻结嵌入层/编码层等方法增加了许多变数。除了 XLMR,我们还尝试了 LSTM 等。这些模型单独使用可能效果不佳,但这种多样性在我们的堆叠阶段非常有帮助。

堆叠

我们在堆叠中最终得到了 1900 多个一级特征,这相当惊人。我们最终将 2 个 StackNet 模型和 1 个前向选择模型(LB分数均为 9494)传递到后处理阶段。

最初,基于贪心的前向选择集成在验证集 AUC 上严重过拟合。但是添加随机初始化,并在 AUC 标准中加入 logloss 标准,有助于获得一个平衡良好的融合结果。

后处理

我们提高了包含不同语言脏话的评论的预测概率。这为每个堆叠模型提高了约 3 个基点,它们的排名均值最终将我们送到了金牌区的边缘。

对我来说无效的方法

  • 使用嵌入的主成分分析(PCA)来构建与验证集和测试集相似的训练集。
  • 使用 PCA 选定的训练集来替代验证集。
Team Photo
同比赛其他方案