返回列表

1st solution with code(cv:0.748 lb:0.742)

478. Feedback Prize - Evaluating Student Writing | feedback-prize-2021

开始: 2021-12-14 结束: 2022-03-15 智能评测 数据算法赛
第一名方案分享(含代码,CV: 0.748 LB: 0.742)

第一名方案分享(含代码,CV: 0.748 LB: 0.742)

作者:(⊙﹏⊙) | 排名:第1名 | 发布时间:2022-03-16

首先,我要感谢比赛主办方举办了这场精彩的比赛。同时,我非常感谢许多伙伴提供了非常优秀的 Notebooks 和讨论。我从中学到了很多,并将它们应用到了我们的最终方案中。

在本次比赛中,因为需要将每个 Token 组合成句子作为最终结果,为了减少后处理工作,我们将方案分为两个阶段。

阶段 1:BERT Token 预测

首先感谢 @cdeotte@abhishek@hengck23 和其他人提供的优秀 Notebooks 和讨论。

我们尝试了各种预训练模型。由于某些模型的最大长度为 512,对于这些模型,我们选择了分段预测和拼接的方法。最终我们选择了 longformer-large、roberta-large、deberta-xxlarge、distilbart_mnli_12_9、bart_large_finetuned_squadv1 进行集成。此阶段在线耗时 7 小时,经过后处理,CV 分数为 0.712LB 分数为 0.706

以下是各个预训练模型的 CV 分数:

模型 CV 分数
Longformer0.671
Roberta0.663
Deberta0.682
Distilbart0.642
Bart0.640

我们将 BERT 训练代码放在了这里。因为 Kaggle 在线资源不足,你需要将其复制到自己的机器上进行训练。

阶段 2:LGB 句子预测

感谢 @chasembowers 提供的优秀 Notebook。

我们首先通过降低阈值尽可能多地召回候选样本。在训练集上,我们召回了三百万个样本,实现了 95% 的平均召回率。各类别的召回率如下:

类别 召回率
Claim0.938
Concluding Statement0.972
Counterclaim0.906
Evidence0.974
Lead0.970
Position0.928
Rebuttal0.895

此外,在获得召回样本后,我们选择具有高边界阈值的样本,并选择当前类别概率最高的 65% 长度作为一个新样本,该方法可以帮助提高约 0.008 的分数。最后,我们为 LGB 训练制作了约 170 个特征,并选择部分样本作为最终提交。此阶段在线耗时 1.5 小时,CV 分数为 0.748LB 分数为 0.742

我们在 5 折 Longformer 模型上测试了我们的 LGB,分数从 0.697 提高到了 0.727。因为 LGB 没有在这个预测上进行训练,提升幅度会低于实际情况。同时,我们上传了模型集成结果这里。如果你感兴趣,可以用自己的预测结果替换,看看 CV 分数能提高多少。

总结

同比赛其他方案