论文链接: https://dl.acm.org/doi/abs/10.1145/3474085.3475554
代码链接:https://github.com/xiaopengguo/ATKT
▊ Prior Knowledge
Knowledge Tracing(KT,知识追踪):使用学生的历史学习数据来模拟他们在一段时间内的知识掌握情况,从而预测他们未来的表现。举个例子:如下图所示,有一个学生做了1-4四题练习题,其中1、2、4做对了,3做错了,那么自然而然可以看出学生对第三题Linear Equations这个概念比较不熟悉,那以该学生现有的水平去做第5题会有怎么样的表现呢,KT就用来解决以上问题。
前面讲了KT的定义,这里简单介绍下KT的应用场景,其主要可用在在线学习平台帮助学生更好的查缺补漏以及对不同学生有更针对性的训练。
▊ Introduction
现有的KT方法在小数据集上呈现过拟合的状态。如下图所示,左边是训练集的损失,随迭代次数的增加逐渐下降,而右边验证集的损失却先减小后增大。
为了解决上述问题,作者受对抗训练(Adversarial Training)的启发,将KT与AT结合,通过AT来增加KT模型的鲁棒性和泛化性。
▊ Contributions
▊ Approach
Problem Formulation
一个学生的在特定学习课程上的历史互动,是知识技能,是回答对或错(0 or 1),那么该问题就可以描述为
KT framework
上文是所提的KT框架,首先提取以往知识技能和回答的特征表示(为什么要用特征表示呢?因为这里的知识技能不像图像是连续的,直接对其进行对抗攻击无法生成对抗样本,因此这里采用了对特征表示加扰动来构造对抗样本。)
是知识技能的特征表示,是回答的特征表示,和是特征维度。对于给定的知识技能和回答,其特征表示分别为和,这里本文采用了
将特征表示调换位置来区分答对和打错,其中是拼接操作。KHS Modelling: 有了所有的特征表示,用LSTM循环更新,即
本文定义为0向量。KHS Attention: 可以很容易知道由于不同的知识技能对为解决的题目影响不一样,因此本文使用了一个attention机制来自适应控制每个知识技能对解题的影响。
Response Prediction:
经过一个MLP接sigmoid函数后产生预测概率,Binary cross entropy来计算和回答的损失:
ATKT
文中这里用公式表示了,这里我简单的描述一下这个过程:用得到的特征表示可以先训练一个模型,然后用对抗攻击生成扰动加在原来的特征表示上得到对抗样本。最后用对抗特征表示和原始特征表示联合训练模型。即
详细的算法见下表:
▊ Experiment
本文在Statics2011,ASSISTments2009,ASSISTments2015,ASSISTments2017四个数据集上进行了实验。
并用了BKT+ ,DKT,DKT+,DKVMN,SAKT和AKT方法做比较,实验结果如下:
可以看出在4个数据集上本文所提方法都达到最好。
上图为在4个数据集上验证集的损失,可以发现相较之前的方法本文所提方法有明显效果。
上表反映了不同超参数对Average AUC scores在验证集上的影响。
上表反映了有无对抗训练对测试集上Average AUC scores的影响,可以看出对抗训练的有效性。
上表反映了有无KHS Attention对测试集上Average AUC scores的影响,可以看出KHS Attention的有效性。
上图是预测学生在锻炼过程中每一步对各种知识技能的掌握情况,第一行记录学生在每个练习中的表现,每种颜色表示该练习包含的不同知识技能。中间的热图是学生对一步步知识技能的掌握程度,颜色越深代表掌握程度越高。
上图展示了最初的和最终的知识技能掌握程度,通过这个图,学生可以知道自己掌握了多少知识技能然后进行有针对性的练习。
▊ Conclusion
本文提出了一种基于对抗训练的KT,增加了模型鲁棒性和泛化性能的同时提高了模型性能。
END