返回列表

16th Solution Ensemble + Pseudo-labeling

446. CommonLit Readability Prize | commonlitreadabilityprize

开始: 2021-05-03 结束: 2021-08-02 智能评测 数据算法赛
第16名方案:集成学习 + 伪标签

第16名方案:集成学习 + 伪标签

作者:Kramarenko Vladislav (Grandmaster) | 比赛排名:第16名

感谢主办方举办了这场有趣的比赛,同时也感谢 @andretugan@rhtsingh 提供的基线代码。

模型

我的解决方案基于几种不同架构的集成。主要使用了 roberta-large、deberta_large 和 electra_large。其他模型的效果稍逊一筹。

模型 Public 成绩 Private 成绩
roberta-large-mnli 455-458 465-470
roberta-large 459 462
deberta_large 464-466 457-459
electra_large 466-467 470-474
集成模型 446-450 449-450

训练

训练流程如下:

  1. 训练 roberta-large 模型。
  2. 使用该模型预测 Wikipedia 文本的目标值(共20,000行,如果数量更多,分数会下降)。
  3. 训练不同的模型。
  4. 预测测试集。

细节

对 BERT 层使用了差异化学习率。

尝试了不同的方法,但效果都差不多:

last_layer_hidden_states = roberta_output.hidden_states[-1]

或者

last_layer_hidden_states = roberta_output.hidden_states[-2]

或者

layer_hidden_states1 = roberta_output.hidden_states[-1]
layer_hidden_states2 = roberta_output.hidden_states[-2]
last_layer_hidden_states = torch.cat((layer_hidden_states1, layer_hidden_states2), 2)

以及

weights = self.attention(last_layer_hidden_states)
y = torch.sum(weights * last_layer_hidden_states, dim=1)

或者

y = torch.mean(last_layer_hidden_states, 1)

等等。

特征工程和重新初始化层参数的方法也没有奏效。

同比赛其他方案