446. CommonLit Readability Prize | commonlitreadabilityprize
在这次比赛中,我们的团队 "3 of a kind" (@steubk @pietromarinelli @lucamassaron) 使用了堆叠策略,并试图在(比赛环境特殊的)情况下尽可能保持解决方案的简单性。
我们使用了基于目标分布的分层的 5 折交叉验证策略,目标分布通过 pd.cut 分为 25 个部分。我们的本地 CV 分数始终紧跟 LB(排行榜)的提升,最终在选择 LB 还是本地 CV 的问题上我们没有产生任何怀疑。我们根据多样性决定了最后的两次提交。我们记录了每个模型的 OOF(Out-of-Fold)预测,并保存了每一折的模型。
我们尝试了不同的模型,发现 Roberta-base, Roberta-large, Studio Ousia Luke-large, MS Deroberta-large 在这个问题上表现更好。以下是我们最好的模型及其 OOF RMSE:
| 模型 | OOF RMSE |
|---|---|
| clrpdebertalargeppln4attheadwd | 0.47696 |
| robertalarge-read2vec | 0.50651 |
| litmodel-dataset | 0.47092 |
| clrp-roberta-large-1h-att-head-readability-pt | 0.49076 |
| lightweight-roberta | 0.47214 |
| clrp-deberta-large-4-se-wd | 0.48815 |
| litmodel-deroberta | 0.47007 |
| clrp-roberta-large-2f-se | 0.48927 |
| clrp-deberta-large-ppln4-atthead | 0.48395 |
| clrprobertalargeppln4attheadwdr3l | 0.48865 |
| clrp-deberta-large-4-se | 0.49059 |
| litmodel-luke | 0.47827 |
| deroberta-read2vec | 0.50054 |
| clrp-roberta-large-2h-atthead-se | 0.49703 |
| clrp-deberta-large-2-se | 0.48962 |
| litmodel-roberta-large | 0.48182 |
| roberta-large-outlier-trim | 0.50249 |
| litmodel-deroberta2 | 0.47150 |
| studioousialukelarge | 0.49649 |
我们尝试了预训练,但结果并没有改善(可能我们需要一个更大且经过更好筛选的数据集),所以我们放弃了在这方面继续坚持。
我们仅使用了两种不同的方法来处理 Transformer 模型的输出(如你在公共 Kernel 中看到的 CRLP 和 Lightweight),使用了单个或多个注意力头,但在设计模型头部时我们发挥了创造力。我们发现将一些可读性指标通过管道输入到最后的全连接层中对结果有一点帮助。我们在对 OOF 进行残差分析后想到了要拼接这些特征,发现它们仍然与 Kincaid、FleschReadingEase、GunningFogIndex、SMOGIndex 等指标以及简单的测量值(如音节数或复杂词占总词数的比例)相关。我们还尝试从训练中排除某些样本,以获得更多样化的模型。
我们尝试了不同的学习率并尝试冻结部分层:我们使用 AdamW 优化器获得了最佳结果,先进行一个 warm-up epoch,然后使用余弦调度器降低学习率再升高。在第一个 epoch 之后,我们开始混合目标值,根据提供的标准误差为部分目标抽取另一个值。
鉴于最佳 epoch 通常在 2 到 5 之间,我们经常在这个阶段进行评估,并保留验证效果最好的