返回列表

39th place solution

540. Learning Equality - Curriculum Recommendations | learning-equality-curriculum-recommendations

开始: 2022-12-15 结束: 2023-03-14 个性化学习 数据算法赛
第39名解决方案

第39名解决方案

作者:calpis10000 (Master), youjods (Expert)
比赛:Learning Equality - Curriculum Recommendations

感谢 Kaggle 和 The Learning Agency Lab 举办了这场激动人心的比赛,也感谢各位 Kagglers 和我优秀的队友 @youjods

总结

我们的模型采用两阶段配置(检索器和重排序器)。我们使用了从 Hugging Face 下载的模型,并使用 sentence-transformers 库进行训练。

以下几点对分数的提升有显著贡献:

  • 使用 sentence-transformers/xlm-r-distilroberta-base-paraphrase-v1 作为骨干模型
  • 使用检索器模型作为重排序器训练的骨干网络
  • 在重排序器中使用 OnlineContrastiveLoss

代码

交叉验证策略

我们使用了 GroupKGold 策略,根据类别进行不同处理:

  • category=='source' 的主题全部用于训练。
  • 其他类别按频道进行 GroupKFold 划分,以下数据用于验证:
    • 1 个折叠的主题(作为训练数据中的未知频道主题)
    • 从其他折叠中采样与上述折叠数量相同的主题(作为训练数据中的已知频道主题)

验证分数分别针对已知频道和未知频道进行计算。

预处理

我们参考了 @conjuring92 的讨论:Topic Context Matters in Supervised Pipeline

主题: channel + language + level + title + description + context(title) + context(description) + children_title

内容: kind + language + title + description + text

我们对标题和描述进行了一定长度的截断。检索器和重排序器的截断长度不同(重排序器的截断长度更短)。

第一阶段:检索器

我们使用 sentence-transformers 库训练了来自 Hugging Face 的模型,并使用了 MultipleNegativesRankingLoss。我们尝试了各种骨干模型,以下条件产生了最佳的召回率分数。

  • 骨干模型: sentence-transformers/xlm-r-distilroberta-base-paraphrase-v1
  • 轮次: 20
  • 批次大小: 128
  • 学习率: 2e-5

Recall@100 分数结果如下:

  • 全量验证数据:0.8745
  • 已知频道:0.93929
  • 未知频道:0.80972

第二阶段:重排序器

在第二阶段,使用重排序器模型为每个主题提取前 100 个最近的内容。然后,我们使用 sentence-transformers 库配合 OnlineContrastiveLoss 对检索器模型进行微调。

我们最初使用简单的二分类进行训练,但 OnlineContrastiveLoss 显著提升了 F2 分数,结果如下:

  • 二分类: CV 0.4565, LB: 0.553
  • OnlineContrastiveLoss: CV 0.5414, LB: 0.619

未起作用的方法

  • 模型融合: 融合提高了我们的验证分数,但降低了 LB 分数。
  • 其他预训练模型:(例如 sentence-transformers/all-MiniLM-L12-v2)
  • LightGBM 重排序器
同比赛其他方案