Kaggle 经典比赛 Riiid Answer Correctness Prediction(回答准确性预测大赛) 高分方案解析

89 阅读1分钟
本篇文章为比赛第一名方案解析,该比赛涉及到时间序列预测-教育
介绍:在本次竞赛中,参赛者的挑战是为“知识追踪”创建算法,即随着时间的推移对学生知识进行建模。目标是准确预测学生在未来互动中的表现。
网址:www.kaggle.com/competition…

摘要

我想使用 Transformer,但我无法将长历史输入到模型中,因为 Transformer 中的 QK 矩阵乘法在输入长度为 L 时具有 O(L^2)的时间复杂度。

我的策略是只使用最后一个输入作为查询,因为我只预测历史输入中最后一个问题的答案正确性。这意味着我只将最后一个问题(查询)与其他问题(键)进行比较,而不是将其他问题进行比较。这使得 Transformer 中的 QK 矩阵乘法具有 O(L)的时间复杂度(因为 len(Q)=1,len(K)=L),这使我能够输入更长的历史记录。

在最终提交中,我使用了 5 个模型,每个模型输入了 1728 长度的历史数据。
由于我可以使用非常长的历史记录,我没有进行太多的特征工程,我想让模型自己学习。我使用了 5 个输入特征:问题 ID、问题部分、答案正确性、当前问题经过的时间和时间戳差异。