《Addressing Two Problems in Deep Knowledge Tracing via Prediction-Consistent Regularization》

ABSTRACT

当重现DKT模型时,发现两个问题:

  1. the model fails to reconstruct the observed input,无法在预测结果中重现观察到的输入的信息,即:有时学生回答正确某个知识点,但是预测的该知识点的掌握程度却变低了,反之亦然,如图所示:

该图表示一个学生的做题情况和每个时刻的预测情况,颜色越深,掌握的越好。在time=6时刻,学生把s45回答错误,但是预测的该知识点的掌握情况相比前一时刻却更好了。

  1. 相邻时间,学生对知识点的掌握情况波动很大,这是不合理的,应该是随时间缓慢变化的。从图像可以看出,当学生回答s32和s33时,对于s32、s33、s45和s55的预测波动很大。学生的掌握情况应该是逐渐过渡的,而不是在“掌握”与“未掌握”之间交替。

解决方法:为损失函数增加正则项(正规化损失函数),实验表明,正规化DKT在重构观察到的输入的答案标签时更加准确,并且使预测更加连贯,同时不牺牲下一次预测结果的准确性。
knowledge component(kc) = skill = concept = exercise

本篇文章的贡献

  1. 提出DKT模型存在的两个问题:无法重现输入序列、预测结果波动太大
  2. 提出了3个正则项:r 解决第一个问题,w1、w2解决第二个问题
  3. 提出了5个指标来评价KT的3个方面:
    AUC(C):用来评价 the prediction performance of the current interaction
    w1\w2:预测结果的波动性
    m1\m2:当前观察值与相应预测之间的一致性

BACKGROUND

介绍传统的知识追踪方法:BKT,指出他的不合理性,并且有许多改进方法,但这些改进方法通常需要大量特征工程工作,同时导致了计算量的增加。使用了逻辑回归的LFA,改造后的PFA方法,热门的DKT方法。

Review of Deep Knowledge Tracing

介绍使用LSTM的DKT模型
element-wise multiplication:向量的元素依次相乘
[1, 2, 3] * [0, 1, 0] = [0, 2, 0]
vanilla RNN:标准RNN
As the hidden state summarizes the information from the past, the hidden state in the DKT can therefore be conceived as the latent knowledge state of student resulted from his past learning trajectory.


损失函数

n表示学生总数,Ti表示学生i有多少条记录

SOME PROBLEMS OF DKT AND THEIR REMEDIES

regularization terms:正则项

问题1:Reconstruction Problem

之所以出现问题1,是因为损失函数只考虑下个时间的预测结果,不包括当前时刻的预测结果。
当输入序列((s32, 0), (s33, 0))频繁出现时,DKT模型会学习到,如果学生错误回答32,那么他下次可能会错误回答33,而不是32。这是不对的。
有人指出,有可能32是33的前提,因为只有当DKT模型传入(33,0)的时候,对于32的预测才会下降,但是收到(32,0)时,对32的预测又会增加。为了反对以上观点,我们假设32是33的前提,那么如果此刻答错32,那么下一时刻大概率会答错33,反之则不是这样。根据我们的假设,我们希望在table1中,右下角的值比左下角的值大,table2反之。
根据假设,我们希望table1中,右下角的值大于左下角,但是在table2中不是。



table1证明了我们的假设,但是table2又展示了,如果33回答错误。那么下一时刻32回答错误的概率比回答正确的概率要大,这说明反依赖关系也存在。那么,有没有可能他们是互相依赖的?
s32=Ordering Positive Decimals
s33=Ordering Fractions
缓解该问题的直接方法是通过考虑预测和当前交互之间的损失来规范化DKT模型。


问题2:Wavy Transition in Prediction

RNN中的隐藏层表示了学生对各个知识点的潜在掌握情况,通过对输出层进行正则化,我们定义了两个正则项使得输出更加平滑。

M:知识点总数
L1范数、L2范数用于衡量t时刻和t+1时刻预测结果的差异。这类似于弹性网络正则化(elastic net regularization),因此,w1的值可以看做输出向量的每个分量在yt和yt+1之间的平均值变化,w1和w2的值越大,模型的波动就越大。总而言之,通过合并三个正则项来增强原始损失函数,从而得到以下正则损失函数



λr、λw1、λw2是正则化参数,通过训练这个新的损失函数,DKT模型可以解决以上两个问题。

EXPERIMENTS

Implementation
  • Experiment settings
    80%的数据作为训练集,20%作为测试集。训练集使用5-fold交叉验证,用于选择超参数。测试集用于评估模型,并且also to perform early stopping.参数w使用高斯分布进行初始化,0均值和小方差。为了公平比较,我们遵循[12]中的超参数设置,即使它可能不是最佳选择。状态大小为200的单层RNN-LSTM被用作DKT模型的基础。
    learning rate = 0.01
    dropout rate = 0.5
    set the norm clipping threshold to 3.0
    此外,使用ASSIST2009数据集的初步试验表明,使用题目标签作为y会导致数据稀疏并且性能下降,所以我们选择使用知识点标签作为y标签。
    (An AUC of 0.73 if 26,668 exercise IDs are used; an AUC of 0.82 if 124 unique skill IDs are used.)
  • Hyperparameter search
    每个超参数都要单独examined
    λr、λw1、λw2三个参数的初始范围分别为
    {0, 0.25, 0.5,1.0}
    {0, 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1.0, 3.0, 10.0}
    {0, 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1.0, 3.0, 10.0, 30.0,100.0}
    缩小范围后,三个参数的范围为:
    {0, 0.05, 0.10, 0.15, 0.20, 0.25}
    {0, 0.01, 0.03, 0.1, 0.3, 1.0}
    {0, 0.3, 1.0, 3.0, 10.0, 30.0, 100.0}
  • Evaluation Measures评价指标
    传统DKT模型使用AUC来评估,AUC=0.5表示模型表现的跟瞎猜一样。
    本实验不仅报告了AUC,还报告了关于重构输入和输入值的一致性,以及预测结果的波动性。
    AUC(N) = AUC for the next performance prediction
    AUC(C) = AUC for the current performance prediction
    使用m1和m2来衡量输入和相应预测之间的一致性
    对于学生i,在时间t,我们定义:



    当模型针对输入给了正确的预测变化,对于mi1t和mi2t就获得了正值,否则将获得负值。
    m1为正:表示一半以上的预测与输入数据相符;
    为0:表示模型使得一半的预测值朝着正确方向变化,另一半朝着错误方向变化;
    负值:表示模型做出的预测一半以上都是朝着错误方向变化
    m2也是如此
    因此,从当前观测的预测一致性的角度来看,m1和m2的值越高,模型越好。
    一个好的DKT模型应该既有高的AUC,又有低的波动

Datasets

介绍了几个数据集

  • ASSISTment 2009 (ASSIST2009)
    删除了原始数据中的重复数据,修改后的数据集包含4,417个学生的328,291条互动,124个知识点

  • ASSISTment 2015 (ASSIST2015)
    19,917个学生,100个知识点,708,631条互动,虽然这个数据集互动数据更多,但是由于学生数量太多,平均每个知识点每个学生的数据其实更小。

  • ASSISTment Challenge (ASSISTChall)

  • Statics2011

  • Simulated-5
    原论文中作者自己模拟的虚拟数据

Results

TABLE3中展现了有无正则化的所有评价指标的比较。
有正则化的DKT叫做DKT+

ASSIST2009 DKT DKT+
AUC(N) 0.8212 0.8227
AUC(C) 0.9044 0.9625

可以看出,DKT+在AUC(N)上变化不明显,但是在AUC(C)上有明显的的提升。波动量同时明显下降:w1从0.083到0.0229,w2从0.1279到0.0491,并且尽管DKT已经使得一般的预测结果朝着正确方向改变,DKT+使得m1从0.3002到0.4486,m2从0.0156到0.0573。
同样的变化也发生在ASSIST2015这个数据集上。DKT+的AUC(N)和DKT的差不多,是0.7371,AUC(C)、m1、m2分别提升到0.9233、0.8122、0.0591。并且,DKT+的w1、w2的值仅仅是DKT的一半。

分析在其余3个模型上,DKT+的优势。

总结,实验结果表明,基于r、w1、w2的正则项有效的缓解了重建问题和过度波动问题,并且不影响预测结果的精确度。
并且对于λr、λw1、λw2的组合,DKT+甚至在AUC(N)上也表现的很好。

DISCUSSION

figure3中,我们画出了在λw1和λw2的不同组合下,针对不同λr值的平均测试AUC(N)和AUC(C)的图像。可以看到,对于5个数据集来说,λr越大,AUC(C)就越大。其次,当λr增加,AUC(N)普遍下降,但是它的下降跟AUC(C)的增加比起来没那么明显。这表明重构正则化器r可以在不牺牲AUC(N)的性能的情况下,很好地解决重构问题。table3显示,我们会寻找一个λr、λw1、λw2的组合,得到一个类似的甚至更好的AUC(N)。这表明波动正则项可以帮助减少重构正则项带来的AUV(N)的轻微下降情况。

figure4展示了:λr = 0.1,ASSIST2009,λw1和λw2是如何影响评价指标的。当λw1在0-1之间,λw2在0-10之间时,AUC(N)变化的相对平滑。在这个范围内,DKT+模型使得AUC(C)的值更高了,在0.94-0.96之间。当λw1>1和λw2>10时,AUC(C)和AUC(N)开始下降。这表明相对于超参数λw1和λw2,模型性能在AUC(N)和AUC(C)中具有较低的敏感性。当λw1和λw2增加,波动指标w1和w2呈钟型下降。即使网格曲面有一点颠簸不平,在上述相同范围内,m1随λw1和λw2的较大值而增加。该观察结果表明重构正则化器和波动正则化器均有助于改善当前输入的预测一致性。另一方面,随着λw1和λw2值的增大,m2呈下降趋势。这是合理的,因为波动正则项将减少预测结果之间的变化,因此考虑到幅度变化,m2的值会减小。总之,归因于预测精度的低灵敏度(AUC(N)和AUC(C))、可观察到的波动值(w1和w2)的减小和一致性度量(m1和m2)的增加,可以确定正则项w1和w2的鲁棒性。

除了整体评估指标的变好,为了直观的感受正则项的影响,DKT和DKT+对于一个学生(id-1)的预测结果在figure5。figure5b主要展示了每个知识点掌握情况的变化方向。这表示当学生回答错误一个问题,大多数预测的知识点掌握程度会同时下降。但这是不合理的,因为知识点si答错不一定导致其他知识点掌握程度下降。另一方面,DKT+展示了一个明显更平滑的转变。举个例子:DKT+中,收到(s32,0)或(s33,0),对s45,s55,s98的预测比DKT模型更加平滑,揭示了DKT +保留了先前时间步中s45,s55和s98的RNN中的潜在知识状态

CONCLUSION AND FUTURE WORK

我们提出了3个正则项来提高预测的一致性。
其中之一是重建误差r,以AUC(C),m1和m2进行评估。 另外两个是波动度w1和w2,它们是用于测量两个连续的预测输出矢量之间的变化的范数,并且直接用作评估参数。 实验表明,这些正则化器可以有效地缓解这两个问题,而不会牺牲用于预测下一个交互性能的原始任务的预测精度(AUC(N))。

尽管重建正则项提高了AUC(C),波动正则项减少了预测的波动,但是很难说到底w1、w2要有多低才算是一个好的模型。理想上,一个知识追踪模型应该只改变跟当前输入有关的预测部分,其余部分不变或轻微改变。但是KC-dependency图根据数据及不同也不同,所以不同KT模型也有不同的合适的w1、w2的值。

此外,需要有更多的动作用来提高对于看不见的数据的准确性。DKT +的目标功能和评估措施仅考虑了当前和下一个交互。 没有虑未来的交互作用,更不用说评估未观测到的KC的预测精度的方法了。然而,未观察到的KC至关重要,因为ITS不仅应针对观察到的KC,还应针对未观察到的KC向学生提供个性化的学习材料推荐。 对未观察到的KC进行准确的估计将有助于ITS为学生提供更智能的教学指导
(未观测到的KC是什么意思?)
假设将未来的交互考虑进去,


你可能感兴趣的:(《Addressing Two Problems in Deep Knowledge Tracing via Prediction-Consistent Regularization》)