Dynamic Key-Value Memory Networks for Knowledge Tracing
Abstract
知识追踪 (KT) 是一项任务,它追踪学生在参与一系列学习活动时关于一个或多个概念的不断发展的知识状态。KT 的一个重要目的是个性化练习顺序,帮助学生有效地学习知识概念。然而,现有的方法,如贝叶斯知识追踪和深度知识追踪,要么分别为每个预定义的概念建模知识状态,要么无法准确指出学生擅长或不熟悉哪些概念。为了解决这些问题,这项工作引入了一种称为动态键值记忆网络 (DKVMN) 的新模型,该模型可以利用基本概念之间的关系并直接输出学生对每个概念的掌握程度。与拥有单个记忆矩阵或两个静态记忆矩阵的标准记忆增强神经网络不同,我们的模型有一个称为键的静态矩阵,用于存储知识概念和另一个称为值的动态矩阵,用于存储和更新相应的掌握程度概念。实验表明,我们的模型在一系列 KT 数据集上始终优于最先进的模型。此外,DKVMN 模型可以自动发现通常由人工注释执行的练习的基本概念,并描绘学生不断变化的知识状态。
1 Introduction
随着海量开放在线课程和网络智能辅导系统的出现,学生在解决习题的过程中可以得到适当的指导并获得相关知识。发布练习后,学生必须应用一个或多个概念来解决练习。例如,当学生尝试解决练习“1+2”时,他或她应该应用“整数加法”的概念;当学生试图解决“1+2+3.4”时,他或她应该应用“整数加法”和“小数加法”的概念。学生正确回答练习的概率取决于学生的知识状态,它代表学生掌握的基本概念的深度和稳健性。
知识追踪(KT)的目标是根据学生过去的运动表现追踪学生的知识状态。 KT 是在线学习平台中的一项基本任务。导师可以根据学生的个人长处和短处,给予适当的提示和定制练习的顺序。可以让学生了解他们的学习进度,并可以将更多的精力投入到不太熟悉的概念上,从而更有效地学习。 尽管对学生的知识进行有效建模具有很高的教育影响,但使用数值模拟来表示人类学习过程本身就很困难 [22]。通常,KT 被表述为一个有监督的序列学习问题:给定学生过去的练习互动 X = {x1,x2,…,xt?1},预测学生正确回答新练习的概率,即 p (rt = 1|qt, X )。输入 xt = (qt, rt) 是一个包含练习 qt 的元组,学生在时间戳 t 尝试该练习,以及学生答案的正确性 rt。我们将 X 建模为观察变量,并将学生的知识状态 S = {s1,s2,…,st?1} 的 N 个基础概念 C = {c 1 , c2 , …, cN } 建模为隐藏过程。
现有的方法,例如贝叶斯知识追踪 (BKT) [3] 和深度知识追踪 (DKT) [22],以特定于概念的方式或以一个汇总的隐藏向量对学生的知识状态进行建模,如图 1 所示。在 BKT 中,学生的知识状态 st 被分析成不同的概念状态 {sit} 并且 BKT 分别对每个概念状态建模。 BKT 将概念状态假设为已知和未知的二元潜在变量,并使用隐马尔可夫模型更新二元概念状态的后验分布。因此,BKT 无法捕捉不同概念之间的关系。此外,为了使贝叶斯推理易于处理,BKT 使用离散随机变量和简单的转移模型来描述每个概念状态的演变。因此,BKT虽然可以输出学生对一些预定义概念的掌握程度,但缺乏提取未定义概念和建模复杂概念状态转换的能力。
除了从贝叶斯的角度解决问题之外,一种名为 DKT [22] 的深度学习方法利用了一种称为长短期记忆 (LSTM) [9] 的循环神经网络 (RNN) 的变体。 LSTM 假设底层知识状态 S 的高维连续表示。 DKT 的非线性输入到状态和状态到状态转换比 BKT 具有更强的表示能力。不需要人工标记的注释。然而,DKT 将学生对所有概念的知识状态汇总在一个隐藏状态,这使得很难追踪学生对某个概念的掌握程度以及学生擅长或不熟悉哪些概念 [11, 31]。
目前的工作引入了一种称为动态键值记忆网络 (DKVMN) 的新模型,该模型结合了两个领域的优点:利用概念之间关系的能力和跟踪每个概念状态的能力。我们的 DKVMN 模型可以自动学习输入练习与基础概念之间的相关性,并为每个概念维护一个概念状态。在每个时间戳,只会更新相关的概念状态。例如,在图 1 中,当新的练习 qt 出现时,模型发现 qt 需要应用概念 c j 和 c k 。然后我们读取相应的概念状态 s j t?1 和 s k t?1 来预测学生是否会正确回答练习。学生完成练习后,我们的模型将更新这两个概念状态。所有概念状态构成学生的知识状态S。
此外,与标准的记忆增强型神经网络(MANN)不同的是,我们的模型有一个名为key的静态矩阵,用于存储概念表征,另一个名为value的动态矩阵,用于存储和更新学生对每个概念的理解(概念状态),这有利于单一的记忆矩阵[6, 24, 30]。静态矩阵和动态矩阵的术语分别类似于字典数据结构(如Python的字典)中作为键和值的不可变和可变对象。同时,我们的训练过程类似于对象的创建。键值创建后,在测试过程中它们将是固定的(即不可变的)。
有两个静态记忆矩阵的网络不适合解决KT任务,因为学习不是一个静态过程。学习是建立在人类记忆中以前的知识之上的,并且是由这些知识形成的[8]。具有单一动态矩阵的模型将具有正确答案的练习和具有错误答案的练习映射到不同的概念状态,这与我们的认知不一致。实验表明,我们的DKVMN模型优于具有单一记忆矩阵的MANN模型和先进的模型。
我们的主要贡献总结如下:
- 利用MANN的效用来更好地模拟学生的学习过程。
- 提出了一个具有一个静态关键矩阵和一个动态值矩阵的新型DKVMN模型。
- 我们的模型可以自动发现概念,这是一项通常由人类专家完成的任务,并描述了学生不断变化的知识状态。
- 我们的端到端可训练模型分别在一个合成数据集和三个真实世界数据集上的表现一直优于BKT和DKT。
2 Related works
2.1 知识追踪
KT任务仅仅根据学生在解决习题qt过程中的答案的正确性或不正确性rt来评价学生的知识状态。在本研究中,qt是一个习题标签,rt∈{0,1}是一个二元反应(1为正确,0为不正确)。没有纳入二级数据[11]。
BKT[3]是一个高度约束和结构化的模型[11],因为它对特定概念的表现进行建模,即对每个概念进行单独的BKT实例化,并且BKT假设知识状态为二元变量。通过将个性化研究[19, 33]、运动多样性[20]和其他信息[4, 23]整合到贝叶斯框架中,提出了许多后续变化。
DKT[22]利用LSTM[9]的效用来打破技能分离和二元状态假设的限制。LSTM使用隐藏状态作为过去输入序列的一种总结,相同的参数在不同的时间步骤中共享。[22]中的实验表明,DKT在预测精度方面比以前的贝叶斯模型有很大的优势。这项研究是第一次尝试将深度学习模型[14, 25]整合到KT中,这些模型在其他领域,包括计算机视觉[13]和自然语言处理[16],已经取得了重大成功。
2.2 记忆增强神经网络(本部分翻译有误)
受计算机体系结构的启发,提出了一种称为外部存储器的特定神经网络模块,以增强网络捕获长期依赖关系和解决算法问题的能力 [7]。 MANN 在多个领域取得了领先,例如问答[30, 27, 1, 17]、自然语言转译[8]、算法推理[6, 10]和一次性学习[24, 28]。
典型的外部存储器模块包含两部分,一个是存储信息的存储器矩阵,另一个是与环境通信并读取或写入存储器的控制器。读写操作是通过额外的注意力机制实现的。大多数以前的作品 [6, 27, 24] 使用类似的方法来计算读取权重。对于输入 kt,计算输入与每个内存槽 Mt(i) 的余弦相似度或内积 K[kt,Mt(i)],然后通过具有正密钥强度 βt 的 softmax 获得读取权重 wr t :wrt (i) = Softmax(βtK[kt,Mt(i)]),其中 Softmax(zi) = e zi / P je zj 。对于写入过程,[6] 中提出了一种按内容和按位置聚焦的注意力机制,以方便记忆的所有位置。此外,在 [24] 中提出了一个名为最近最少使用访问(LRUA)模块的纯基于内容的内存写入器,以将密钥写入最近最少使用的内存位置或最近使用的内存位置。
由于在读写操作中引入了循环,MANN也是一种特殊的RNN。但是,MANN在三个方面与DKT中使用的LSTM等常规RNN不同。首先,传统的 RNN 模型使用单个隐藏状态向量来编码时间信息,而 MANN 使用可以增加存储容量的外部记忆矩阵 [30]。其次,传统 RNN 的状态到状态转换是非结构化和全局的,而 MANN 使用读写操作来鼓励局部状态转换 [6]。第三,传统 RNN 中的参数数量与隐藏状态的大小有关 [24]。对于 MANN,增加内存槽的数量不会增加参数的数量,这是一个计算效率更高的结果。
3 Model
我们假设练习题目总共涵盖的知识点数是N,表示为{
c
1
,
c
2
,
c
3
.
.
.
c
N
c^1,c^2,c^3...c^N
c1,c2,c3...cN }。我们用一个键矩阵(key)
M
k
(
s
i
z
e
:
N
?
d
k
)
M^k(size: N*d_k)
Mk(size:N?dk?)去表示N个知识点,其中矩阵的每一行表示的是这个知识点所对应的向量。用一个值矩阵(value)
M
t
v
(
s
i
z
e
:
N
?
d
v
)
M_t^v(size: N*d_v)
Mtv?(size:N?dv?)去表示在时间t用户对于N个知识点的掌握程度,其中矩阵的每一列表示的是用户在时间t对于这个知识点的掌握程度。其中key矩阵在训练结束后是时刻不变的,但是value矩阵在训练结束后,随着学生用户对于知识点的掌握程度不断变化而不断变化。
4 Experiments
4.1 Datasets
合成-5:这个数据集1模拟了2000名虚拟学生回答训练和测试数据集中的50道练习。每个练习都来自五个隐藏概念中的一个,并且有不同的难度。在训练过程中,我们无法获得基本的概念标签,只是把它们作为基础事实,用我们的DKVMN模型评估发现的概念结果。
ASSISTments2009。这个数据集[5]是从ASSISTments在线辅导平台上收集的。由于重复记录的问题[32],发布了一个更新的版本,以前在旧数据集上的所有结果都不再可靠了。我们论文中的实验是使用更新的 "技能建造者 "数据集2进行的。没有技能名称的记录在预处理中被丢弃了。因此,我们实验中的记录数量比[32]中的要少。共有4,151名学生回答了325,637道练习,同时还有110个不同的练习标签。
ASSISTments2015。ASSISTments20153只包含学生对100个技能的回答。经过预处理(去除正确∈{ / 0, 1}的值),这个数据集中还剩下来自19,840名学生的683,801条有效记录。这个数据集中的每个问题集都有一个相关的技能。虽然这个数据集的记录数量最多,但每个学生的平均记录是最少的。
Statics2011。Statics4来自一个大学水平的工程静力学课程,有189297个试验,333个学生和1223个练习标签[26, 12]。在我们的实验中,问题名称和步骤名称的串联被用作练习标签;因此它的练习标签数量最多,每个学生的平均记录数量也最多。 所有数据集的完整统计信息可以在表1中找到。
4.2 Implementation details
在所有数据集中,30% 的序列作为测试集保留,除了合成数据集的训练和测试数据集具有相同的大小。总共 20% 的训练集被拆分为一个验证集,用于选择最佳模型架构和超参数并执行提前停止 [18]。
参数从具有零均值和标准偏差 σ 的高斯分布中随机初始化。由于每个数据集的学生数量、练习标签和总答案各不相同,初始学习率是逐案处理的,但学习率 γ 每 20 个 epoch 以 γ/1.5 退火,直到达到第 100 个 epoch。
我们在实现中将 LSTM 用于 DKT。标准 MANN 是使用余弦相似度阅读注意机制和 LRUA 写作注意机制实现的。在所有实验中,使用带有动量和范数裁剪的随机梯度下降 [21] 来训练 DKT、MANN 和我们的 DKVMN。我们始终将动量设置为 0.9,将规范裁剪阈值设置为 50.0。鉴于输入序列的长度不同,所有序列的长度都设置为 200(对于长度为 50 的合成),并使用空符号将短序列填充到固定大小 200。
在所有情况下,都使用五折交叉验证来调整超参数。曲线下测试面积 (AUC) 是使用 100 个epoch中具有最高验证 AUC 的模型计算的。我们使用不同的初始化 σ 将每次训练重复五次,并报告平均测试 AUC 和标准偏差。
4.3 Student performance prediction
测量 AUC 以评估每个数据集的预测准确性。 50% 的 AUC 表示通过随机猜测可获得的分数。高 AUC 分数说明高预测性能。在所有数据集上测试 AUC 的结果如表 1 所示。 我们将 DKVMN 模型与 MANN 基线、最先进的 DKT、标准 BKT 模型以及 BKT (BKT+) 的最佳变体(如果可能)进行比较。
一个有趣的观察是,我们实现的 LSTM 实现了比原始论文 [22, 11, 32] 中更好的 AUC。原因可能是我们的实现使用了范数裁剪和提前停止,这两者都改善了 LSTM 的过拟合问题。 BKT 的结果直接从最近的工作中获得 [11, 32]。
在 Synthetic-5 数据集上,DKVMN 模型实现了 82.7% 的平均测试 AUC。在我们的模拟中,每个练习都被视为具有不同的技能标签。 MANN 的平均 AUC 为 81.0%。 DKT 产生的 AUC 值为 80.3%,优于原始论文 [22, 11] 中报道的 75%。 BKT 及其变体模型分别实现了 62% 和 80% 的 AUC [11]。来自 ASSISTments2009 的 DKVMN 的预测结果比 MANN、DKT 和 BKT 提高了 81.6%,分别超过了 79.7%、80.5% 和 63% [32]。由于该数据集的预处理方式与 [32] 中的不同,因此它们的结果没有可比性。在 ASSISTments2015 数据集上,DKVMN 的测试 AUC 为 72.7%,优于 MANN 的 72.3%、DKT 的 72.5%(最初在 [32] 中为 70%)和经典 BKT [32] 的 64%。在Statics2011中,运动标签数量最多,答案数量最少,经典BKT获得了73%的AUC,与遗忘、技能发现和潜在能力合作的BKT获得了75%的AUC[11]。我们实施的 DKT 导致 AUC 为 80.2%,优于 [11] 中的 76%。 MANN 仅产生 77.6% 的平均 AUC。
然而,我们的 DKVMN 模型实现了 82.8% 的 AUC,优于所有以前的模型。 总而言之,DKVMN 在所有数据集上的表现都优于其他方法,尤其是在不同练习数量很大的 Statics2011 数据集上。这个结果表明,当练习数量非常大时,我们的 DKVMN 可以很好地模拟学生的知识。
与 DKT 模型相比,DKVMN 可以实现对学生运动表现更好的预测准确度,并且由于其较大的外部存储容量,因此需要的参数也少得多。表 2 通过遍历不同的超参数将 DKVMN 模型与使用 LSTM 的 DKT 模型进行了比较。从表中可以看出,状态维数低的 DKVMN 比状态维数高的 DKT 可以达到更好的预测精度。例如,在 Statics2011 数据集上,当状态维度等于 200 时,使用 100 万个参数,DKT 达到了 80.20% 的最大测试 AUC。同时,DKVMN 仅在 50 个状态维度使用 19.7 万个参数就可以达到 82.84% 的测试 AUC。
此外,DKT 模型存在严重的过拟合,而我们的 DKVMN 模型没有遇到这样的问题。如图3所示,DKVMN的训练AUC和验证AUC之间不存在巨大差距,DKVMN的验证AUC平稳增长。然而,随着epoch的进行,DKT的训练AUC不断增加,而DKT的验证AUC只在前几个epoch增加并开始下降。
4.4 Concept discovery
我们的 DKVMN 模型有能力使用相关权重 w 来发现练习的潜在模式或概念,传统上该权重由专家注释。练习和概念之间的相关权重暗示了他们内在关系的强度。与 [22] 中的条件影响方法计算练习之间的依赖关系,然后定义一个阈值来聚类练习,我们的模型直接将练习分配给概念。不需要预定义的阈值。因此,我们的模型可以以端到端的方式发现练习的概念。
每个练习通常都与一个概念相关联。在这种情况下,我们将练习分配给具有最大相关权重值的概念。从实验中,我们发现我们的模型可以智能地学习概念之间的稀疏权重,并且发现的概念揭示了令人信服的结果。
在 Synthetic-5 数据集上,每个练习都来自一个概念 ck ,其中 k ∈ 1…5,这样所有练习都可以访问真实概念,如热图的顶部 x 轴所示在图 4 中。来自相同概念的练习用相同颜色的方块标记。 图 4 中的左侧热图显示了 50 个不同练习和 5 个潜在概念(当内存大小为 5 时从 DKVMN 生成)之间的相关权重。每列代表一个练习和五个潜在概念之间的相关权重。对于每个练习,权重都是稀疏的,其中一个值近似于 1,其他近似于 0。将每个练习聚类到具有最大权重值的概念后,我们得到图 4 右侧所示的图形,它揭示了一个完美的五个潜在概念的聚类。我们的聚类结果和地面实况的调整后互信息 [29] 为 1.0。
此外,当内存大小 N 设置为大于基本事实 5 时,例如 50,我们的模型也可以最终得到 5 个练习集群,并为每个练习找到合适的概念。附录中描述了其他结果。
在 ASSISTments2009 数据集上,每个练习都没有使用真实概念。但是,可以获得每个运动标签的名称,如图 5 的右侧部分所示。每个运动标签后面都有一个名称。图 5 中的结果聚类图是使用 t-SNE [15] 通过将多维相关权重投影到二维点来绘制的。所有练习都分为 10 个集群,其中来自同一集群(概念)的练习以相同的颜色标记。聚类图揭示了许多合理的结果。一些相关的练习在集群中彼此接近。例如,在第一个簇中,30 个排序分数、33 个排序整数、37 个排序正小数和 62 个排序实数聚集在一起,暴露了初等算术的概念
4.5 Knowledge state depiction
我们的 DKVMN 也可以用来描述学生不断变化的知识状态。描述知识状态,尤其是每个概念状态,对在线学习平台上的用户很有帮助。如果学生拥有所有概念的概念状态,指出他们的优点和缺点,他们将更有动力独立填补学习空白。可以使用以下步骤在阅读过程中获得学生不断变化的知识状态。
首先,直接将value分量中的内容作为等式(3)中的读取内容rt,可以通过设置相关权重wt为[0, …, wi, …0]来访问,其中wi概念 ci 等于 1。
然后,我们屏蔽了方程(4)中嵌入的输入内容的权重以忽略练习的信息: ft = Tanh([Wr 1, 0] T [rt, mt] + b1), (11) 其中 W1 是分成两部分 Wr 1 和 Wm 1 ,让 Wm 1 = 0。
最后,我们按照公式(5)计算标量 p 作为概念(概念状态)的预测掌握程度。
图 6 显示了一个描述学生五个不断变化的概念状态的示例。第一列代表学生回答任何练习之前每个概念的初始状态,这种状态因概念而异。由于我们的模型能够为每个练习发现概念,每次学生回答一个练习时,发现的概念的概念状态都会增加或减少。例如,当学生正确回答前三个习题时,第二个和第五个概念的概念状态增加;当学生错误地回答第四个练习时,第三个概念的概念状态下降。 在回答了 50 个习题后,表明学生已经掌握了第二、第三和第四个概念,但未能理解第五个概念。
5 Conclusions and future work
|