返回列表

Public 5th & Private 24th Place Solution (CV = LB)

574. CommonLit - Evaluate Student Summaries | commonlit-evaluate-student-summaries

开始: 2023-07-12 结束: 2023-10-11 智能评测 数据算法赛

祝贺所有获奖者和为本次比赛付出大量努力的人,也感谢 Kaggle 及主办方组织本次比赛。尽管我们团队在 Private Leaderboard 上出现了下滑,但我们并不认为这是真正的“下滑”。因为我们的 CV 分数与 Leaderboard(Public + Private)非常接近,而且我们已经选出了几乎最佳的提交结果。我们的最终方案完全基于最佳 CV 分数。

1 概述

1.1 关键点

  • ● 使用“prompt_text”和“text”之间的公共单词、短语等作为输入。
  • ● 结合多种池化的自定义头部。
  • ● 对回译文本进行伪标签标注。
  • ● 加权损失。
  • ● 基于大 alpha 岭回归的集成权重。

1.2 我们的提交(3 个最终提交和最佳提交)

提交 CV Public LB Private LB
① 最佳 Public LB 0.4596 0.420 0.463
② 最佳 CV 0.4566 0.423 0.463
③ 其他 0.4579 0.422 0.464
(最佳 Private LB) 0.4601 0.420 0.462

CV 大致等于 LB:0.457 = 0.420×0.13(Public)+ 0.463×0.87(Private)

2 详细信息

2.1 各种输入

我们将“prompt_text”和“text”之间的公共单词、短语等内容添加到输入文本的末尾。(当加入 2-gram 和 3-gram 重叠时,第二阶段 LGB 模型不再有效,至少对 Jie 的模型而言如此。)

  • ● 重叠单词
  • ● 重叠 N-gram(N=2,3)
  • ● 重叠短语
  • ● 使用 Rake 方法提取的重叠关键词组

2.2 自定义头部

我们创建了多个自定义头部,将不同池化的输出进行拼接。

  • ● CLS 输出
  • ● 平均池化
  • ● 最大池化
  • ● GeM 池化
  • ● 注意力池化
  • ● 平均-最大-注意力池化 (MMA)
  • ● 平均-最大-GeM 池化 (MMG)
  • ● GeM-注意力池化 (GA)

示例:GA 池化

gemtext_out = self.gempooler(lasthiddenstate, attention_mask)
attpool_out = self.attpooler(lasthiddenstate, attention_mask)
context_vector = torch.cat((gemtext_out, attpool_out), dim=-1)

2.3 回译文本的伪标签

数据增强与伪标签:将摘要文本翻译成中文,再翻译回英文,然后使用一个训练好的模型进行伪标签标注。

2.4 加权损失

我们根据内容与措辞之间的 RMSE 比率,为措辞和内容创建了一个加权损失,具体如下:

class WeightedCRMSE(nn.Module):
    def __init__(self):
        super(WeightedCRMSE, self).__init__()
        self.weights = torch.tensor([0.85, 1.15]).to(device)

    def forward(self, y_pred, y_true):
        squared_errors = torch.square(y_pred - y_true)
        weighted_root_squared_errors = torch.mean(squared_errors, dim=0) ** 0.5 * self.weights
        loss = torch.mean(weighted_root_squared_errors)
        return loss

2.5 基于大 alpha 岭回归的集成权重

我们使用岭回归进行袋外(out-of-fold)训练,并取归一化系数的平均值作为集成权重。与线性回归或其他方法相比,使用较大 alpha 的岭回归在 CV 和 LB 分数上表现更好。

  1. 截距为零。
  2. 较大的 alpha(500)。

2.6 其他

  • ● 骨干网络
    • deberta-v3-large
    • electra-large
    • roberta-large
    • roberta-large-squad2
  • ● 用于集成的模型
    • LightGBM
    • 岭回归
  • ● 最大长度
    • 300
    • 512
    • 768

3 未生效的方法

  • ● LSTM 头部
  • ● 冻结嵌入层和部分层
  • ● AWP
  • ● MLM
  • ● 30° 旋转目标
  • ● 训练和推理时不同的最大长度

4 Jie 的模型性能

  • ● 命名规则:backbon_maxlength_2&3gramsoverlap_dataaugmentionflag_pooling,例如
    del_768_23_aug_mmg:Deberta-V3-Large,maxlength=768,输入中添加了 2 和 3 个词的重叠部分,训练时使用了数据增强,采用 Mean-Max-Gem 池化。
  • ● 下表:第一行为模型名称,第二行为 CV(4 折平均值),第三行为 CV(袋外),第四行为 LB,第五行为推理时间。
  • ● 对 LB 0.437、0.432、0.439、0.436、0.433 和 0.436 进行集成,得到 CV:0.45909,Public LB 0.424,Private LB:0.464
  • ● 注意:Deberta Large 模型的推理时间为 80 分钟,而不是 125-140 分钟,其他所有模型均 ≤36 分钟。

5 yyykrk 的模型性能

同比赛其他方案