DKT+学习

论文:Addressing Two Problems in Deep Knowledge Tracing via Prediction-Consistent Regularization

文章目录

  • 前言
  • 解决问题1
  • 解决问题2


前言

DKT模型存在的两个问题

  • 无法重构观察到的输入 :DKT有时候不能重构观察到的输入,因为模型的预测有时候是反常的。例如某个学生答对了一个问题si,该学生对该知识点si的掌握反而是下降的。
  • 预测状态的波动:随着时间的推移,预测的状态是波动的和不稳定的;而我们期待学生的状态是平稳渐变的。

因此,作者对DKT提出了下面的改进

  1. 用于解决重构问题的重构误差r;
  2. 用于平滑预测的知识状态转换的波动度w1和w2。

解决问题1

DKT+学习_第1张图片
无法重构观察到的输入:DKT模型在预测时无法重构输入信息。当一个学生在一项与技能si相关的学习任务中表现良好时,模型对该技能si的预测表现可能反而下降,反之亦然。例如,在上图中的第6个时间步,即使学生错误地回答了s45,但与前一个时间步相比,正确回答与s45相关的练习的概率增加了。

这个问题可以归结为DKT模型中定义的如下损失函数:
在这里插入图片描述
具体来说,损失函数只考虑下一个交互作用的预测性能,而不考虑当前交互作用的预测性能

Example
在上图中,DKT模型只在乎下一时刻能够准确预测s33会答错,而不在乎当前时刻能否准确预测s32.

因此,当输入顺序((s32, 0), (s33, 0))出现的频率足够高时,DKT模型将倾向于了解到,如果学生回答s32错误,那么他/她很可能回答s33错误,而不是s32。因此,对于当前观测到的输入,预测结果是反直觉的。
但是,也存在这样一种可能:s32本来就是s33的先决条件:只有当DKT模型收到(s33,0)时,s32的预测性能更低,而当DKT模型收到(s32,0)时,s32 的预测性能更高。我们假设,如果s32确实是s33的先决条件,那么当学生在当前时间步答错s32时,他/她在下一个时间步答错s33的可能性更大,反之则不然。为了验证这一假设,表1和表2列出了s32和s33按不同顺序连续出现时的频率计数。
DKT+学习_第2张图片
从表1中可以看出,如果一个学生在当前时间步中答错了s32,那么他在下一个时间步中更有可能答错s33。然而,表2显示,如果一个学生回答s33错误,他/她在下一个时间步中也更有可能回答s32错误。这意味着反向的依赖关系也存在,并且与上面的假设相矛盾,因此s32是s33的先决条件的说法值得怀疑。此外,这两个矩阵的分布表明s32和s33可能是相互依赖的,并且是同时获得的。

通过考虑预测和当前相互作用之间的损失,使DKT模型正则化。通过这样做,模型将根据当前输入调整预测。因此,重构问题的正则化项定义如下:
在这里插入图片描述

解决问题2

预测状态的波动:观察到预测输出的过渡,即学生的知识状态,跨时间步是不一致的。如上图所示,在跨时间步的预测中,某些技能的表现会出现突然的激增和骤降。例如,当学生在学习序列中间回答s32和s33时,正确回答s32、s33、s45和s55的概率是波动的。这在直觉上是不可取和不合理的,因为学生的知识状态应该随着时间的推移逐渐过渡,而不是在掌握和未掌握之间交替。

这个问题可能是由于RNN中的隐藏状态表示造成的。隐藏状态ht由之前的隐藏状态ht−1和当前的输入xt决定。它将学生对所有习题的潜在知识状态归纳为一个单一的隐含层。尽管很难解释隐藏层中的元素如何影响KCs的预测性能,但通过输出层上的正则化限制隐藏状态表示更加不变是可行的。

作者定义两个波形度量w1和w2为正则化项,以平滑预测中的过渡:
DKT+学习_第3张图片
为了量化两个预测向量的异同程度,使用L1范数和L2范数来衡量预测结果yit和yit+1之间的差异。这两种度量在输入时间步的总数和KCs m的数量上取平均值。因此,w1的大小可以看作是输出向量中每个分量在yt和yt+1之间的平均值变化。w1和w2的值越大,模型中的转换越不一致。

综上所述,通过加入三个正则化项对原有损失函数进行扩充,得到如下正则化损失函数:
在这里插入图片描述


你可能感兴趣的:(笔记,DKT,学习,人工智能,python)