返回列表

26 place solution

362. Google QUEST Q&A Labeling | google-quest-challenge

开始: 2019-11-22 结束: 2020-02-10 自然语言处理 数据算法赛
第26名方案

第26名方案

作者:Takamichi Toda | 比赛:Google Quest Challenge

恭喜所有的获奖者!也感谢主办方!
这次比赛对我来说非常非常困难,但幸运的是我获得了第26名。
在此分享我学到的知识。

建模

我使用了 Huggingface Transformer 并自定义了模型的头部。

模型结构图

如你所见,我模仿了 Jigsaw 比赛 第一名的方案。

BERT-base-cased、BERT-base-uncased 和 XLNet-base-case 使用该头部结构的权重比例为 2:4:4。

参数

  • 10 GroupFold(分组交叉验证)
  • epoch: 3
  • batch size: 8
  • optimizer: AdamW
    • OneCycleLR
    • max_lr=5e-5 (decay*0.9)
  • loss: BCE + MSE(MSE 通过标签频率加权)

Token(词元)

我添加了类别 token,如下所示:

[CLS] [CATEGORY_TOKEN] question_title [SEP] question_body [SEP] ansewr [SEP]

这使我的 CV(交叉验证分数)提高了 0.05。

优化分箱

我阅读了这篇讨论
我计算了公分母并对预测值进行了分箱。
使用类似 OptimizeRounder 的特征进行了优化分箱。

对我无效的方法

  • 伪标签
  • MultiSample Dropout
  • SWA (随机权重平均)
  • AdaBound
  • FocalLoss
  • RoBERTa, ALBERT
  • 针对每个目标的特殊 token 预测

我的代码

谢谢!!

同比赛其他方案