返回列表

42th Place Solution

519. Feedback Prize - English Language Learning | feedback-prize-english-language-learning

开始: 2022-08-30 结束: 2022-11-29 智能评测 数据算法赛
第42名解决方案

第42名解决方案

作者:tsuzuk1 | 排名:42nd

首先,感谢主办方举办这次比赛。
我在这次比赛中学到了很多关于NLP的知识。
祝贺获奖者们!

概述

  • 我使用了11个模型(4折模型 x 4 和 10折模型 x 7)。
    • 首先,我在4折模型中使用了LGBM(配合Optuna)。
      ※ 我没有在10折模型中使用LGBM,因为实验未能在比赛截止日期前完成..
    • 其次,我进行了加权集成。
  • CV=0.4426811 / Public LB=0.435475 / Private LB=0.435906
  • 10折模型是开源模型(链接1链接2)。所以我只分享4折模型的CV得分详情。
模型 CV得分
(*1,4,5) deberta-v3-base (伪标签 fb1,2) 0.4528044
(*4,5) deberta-v3-large 0.4568590
(*2,4,5) deberta-v3-base (主题) 0.4537212
(*3,4,5) deberta-v3-base (原始损失) 0.4564600

※ (*1,4,5) 使用了「伪标签」、「拼接最后四层隐藏层」和「Dropout」。

有效的方法

  • 伪标签 (*1)
    • 我使用了fb1和fb2的所有数据。
    • 我使用MultilabelStratifiedKFold对数据集进行划分。
  • 添加主题 (*2)
    • 我参考了这段代码并预测主题。
    • 我将预测的主题添加到文本中。(例如:[1_students_online_school_classes]I think that~)
  • 原始损失函数 (*3)
    • 这次比赛的大部分数据集中在3左右。所以我更改了损失函数,使其对异常值更鲁棒。
    • 示例如下:
    self.mse = nn.MSELoss(reduction='none')
    l = self.mse(y_pred, y_true) + eps # eps=1e-9
    loss = torch.mul(torch.pow(l,alpha),torch.sqrt(l))
    # soft→alpha=1, hard→alpha=2
    
  • 拼接最后四层隐藏层 (*4)
    • MLP模型在最后四层隐藏层中包含了重要信息。
    • 我参考了这段代码
  • Dropout (*5)
    • Dropout可以减少过拟合。
    • 示例如下:
    self.dropouts = nn.ModuleList([nn.Dropout(0.2) for _ in range(5)])
    output = sum([self.fc(dropout(feature)) for dropout in self.dropouts])/5
    
  • LGBM
    • 我制作了6个LGBM模型来预测「cohesion」、「syntax」、「vocabulary」、「phraseology」、「grammar」和「conventions」。
    • 我使用了2阶段堆叠。

无效的方法