返回列表

24th Place Solution saintpp + lgb private0.810

416. Riiid Answer Correctness Prediction | riiid-test-answer-prediction

开始: 2020-10-05 结束: 2021-01-07 学习效果预测 数据算法赛
第24名方案:saintpp + lgb (Private 0.810)

第24名方案:saintpp + lgb (Private 0.810)

作者: cswwp | 比赛排名: 第24名

首先,感谢 Kaggle 举办了这么好的一场比赛,几乎没有抖动。恭喜获得顶尖名次的选手,也非常感谢我的队友 @jaideepvalani 和 @ekffar。最终我们队伍的 Public 成绩是 0.808,Private 成绩是 0.810,最终排名第 24。我们遗憾错过了金牌,但这没关系,现在我想分享我们的方法。

因为时差原因,我没有仔细阅读讨论区,所以我刚才看到我的队友 @jaideepvalani 已经分享了我们的 方案。作为补充而非重复,我只是基于 jaideepvalani 的方案 扩展了一些细节。

架构

SaintPlusPlus, lgb

嵌入层

练习:

  • Question_id (题目ID)
  • Part (部分)
  • Community id (尝试过,但没有提升,可能需要调优)
  • Task container id (尝试过,但没有提升,可能需要调优)

交互:

  • lag time (滞后时间) (同一个 container id 保持与第一个相同) (离散嵌入)
  • prior question elapsed time (上一题耗时) (连续嵌入)
  • prior had explain (上一题是否有解释) (离散嵌入)
  • Prior lecture (上一节讲座) (离散嵌入)

响应:

  • Prior question correctness (上一题正确性) (离散嵌入)

数据采样优化

数据采样在我们的实验中非常重要。

Data Sampling Image

优化细节

SAINTPP

  1. 跳跃连接: 我们在编码器层内部和解码器层内部添加了跳跃连接,我最初使用的 GitHub 实现版本没有这种跳跃连接。
  2. Dropout (丢弃层): 为编码器、解码器和 FFN 添加了 dropout。
  3. TCN 因果卷积: 尝试在嵌入层后使用 TCN 因果卷积,没有提升,但现在我认为应该进行调优,它是会起作用的。
  4. 大序列长度: 对于 saintpp 使用更大的序列长度给我们团队带来了提升,我认为这可能是因为太短的序列导致 Transformer 类模型陷入局部极小值点。

LGB

更新中...

结论

我们最好的 saintpp (序列长度 320, 嵌入维度 224, 2 x 编码器 + 2 x 解码器) 获得了 CV 0.8016,LB 0.806,而 lgb 接近 0.796。最终提交是融合了 lgb (lb 796) + saintpp cv1 (cv 8016) + saintpp cv3 (cv 0.7992) = Public LB 0.808,Private 0.810。

应该做的事情:

  1. 应该继续用因果卷积优化我们的网络(因为 Transformer 类似于全局注意力,一些局部相关性可能被忽略)和 GRU,但最终没有时间了。
  2. 应该继续尝试更大的网络。

再次感谢我的队友,他们给了我很多帮助,让我学到了很多。下一场比赛争取金牌,继续前行。

同比赛其他方案