504. Feedback Prize - Predicting Effective Arguments | feedback-prize-effectiveness
首先,感谢主办方举办了这场有趣的比赛,也感谢社区分享的那些精彩想法,给了我很多启发。
1. 将同一篇文章中不同的 discourse_id 拼接起来,并预测标签的 token 概率:
[CLS LEAD] lead discourse [END LEAD] [CLS POSITION] position discourse [END POSITION] ...
2. 直接预测文章中 [CLS] 和 [END] 标签的 token 概率:
essay.... [CLS CLAIM] I think that the face is a natural landform because there is no life on Mars that we have descovered yet [END CLAIM] essay ...
就我而言,使用完整文章训练模型比不使用文章(如特征 1)效果更好,但这同时也增加了一些多样性。
3. 添加分类器标签:
essay.... [CLS CLAIM] [Ineffective] [Adequate] [Effective] I think that the face is a natural landform because there is no life on Mars that we have descovered yet [END CLAIM] essay ...
这一次,预测的概率不是 [CLS] 和 [END],而是 [Ineffective]、[Adequate] 和 [Effective]。激活函数使用的是 Sigmoid 而不是 Softmax。然后这3个标签的概率会被缩放到1。这也能增加多样性。
4. 预测一个片段中的所有 token,并取平均值作为话语概率。
我使用 feedback-2021-data 进行模型预训练,这可以将模型性能提升约 0.003。
我在伪标签上花了很多时间,特别是在使用伪标签(额外的更多数据)训练模型时。
在早期阶段,我尝试了硬标签,但没有带来任何提升。最终,概率的软标签在模型性能上带来了一些提升(损失函数使用的是 soft cross entropy)。
就我而言,在模型融合时,KD 比伪标签效果更好。我发现蒸馏损失权重越高,CV(交叉验证)分数越好,但 LB(排行榜)分数越差。因此,我在训练早期采用较高的蒸馏损失权重,在后期降低权重,这可以同时提升 CV 和 LB。
我没有额外的时间去探索后处理方法,所以我只使用了加权平均。
总之,在这场比赛中单打独斗有点难。还有很多事情我还没来得及尝试。