362. Google QUEST Q&A Labeling | google-quest-challenge
我们在这次比赛中使用了一些“魔法”技巧。
一部分是问题部分,另一部分是回答部分。问题部分包含21个目标,回答部分包含9个目标。我们训练了两个模型来分别预测这两部分。这让我们在比赛初期就获得了较高的分数(0.39x)。
我们为Transformer尝试了许多预处理方法,但只有一种有效:
def cln(x): return " ".join(x.split())
这个非常简单的函数让RoBERTa base的LB分数提高了0.005。
数据来源于 https://www.kaggle.com/stackoverflow/stackoverflow。
我们的灵感来自论文《Self-training with Noisy Student improves ImageNet classification》。教师模型为学生模型提供大量的弱伪标签,学生模型使用这些弱伪标签进行训练。首先,我们使用一个模型预测未标记数据的伪标签,然后我们使用这些伪标签来训练我们的模型。
我们没有太多时间来训练更强大的学生模型。
这是本次比赛的一大“魔法”。
没有后处理时,我们的RoBERTa large模型LB得分为0.411。当我们使用简单的取整后处理时,分数跃升至0.448。
然后我们结合了几种优化方法进行后处理,这使得RoBERTa large的LB分数跃升至0.46x。提升非常大!
再次感谢我的队友们。你们是天才。
我们集成了6个模型(RoBERTa large, RoBERTa base, BERT base 和 XLNet。最好的单模是RoBERTa base,LB分数0.415)。我们对它们使用了后处理并得到了最终分数。