446. CommonLit Readability Prize | commonlitreadabilityprize
感谢社区举办了这次比赛!
注意:我在这篇文章中会报告我的 Public 分数,因为 Public / Private 的差异仅在 0.001 左右。
我在前半程花了大部分时间尝试不同的方法(分类任务、自定义损失)以及学习如何使用 Huggingface 的 TF 和 Pytorch。但我当时不太懂原理,所以所有的实验都不可复现,而且将其转化为分类问题基本上丢弃了所有的序数信息,所以效果不佳。
在熟悉了 Pytorch 和 Huggingface 之后,我在训练集上训练了 TF 模型,数据向左平移,因为 TF 模型在验证集上预测值偏高。将 roberta-large 和 xlnet-large 集成后,我的 LB 分数达到了 0.462。加入 Pytorch 模型和通过 torch 的精彩脚本 训练的注意力头后,分数提升到了 0.458。
此时,我单个最好的 5 折模型分数仅为 0.468。
阅读了 Self-training with Noisy Student improves ImageNet classification 后深受启发。
我主要使用了 CMU 的书籍摘要、电影摘要 以及少量的 Mark Wijkhuizen 的维基百科摘要。数据集是通过清洗和混合不同的数据集创建的。我用当时最好的集成模型生成了伪标签。大多数数据集包含 16k 到 26k 个摘录。
模型使用 80% 的训练数据(第一折)与新数据集拼接进行训练。这帮助我将 roberta-large 的单模型(1个文件)分数提升到了 0.465。
在此之后,我花了两周时间苦苦寻找什么才算是一个好的数据集,我最终创建了 20 多个不同的数据集,但由于知识匮乏,仍无法弄清楚。
比赛的最后两周,我决定只使用表现最好的 3 个数据集,并简单地加入了 xlnet-large, electra-large, deberta-large,我的最佳分数变成了 0.455(4个文件)。加入 SVR 后分数为 0.454(4个文件)。将新数据集分成 4 折并集成 deberta-large 和 electra-large 后,分数达到了 0.452(8个文件)。
几点发现:
注意:我不是该领域的专家,可能存在后见之明偏差,请随时指正。