GIKT: A Graph-based Interaction Model forKnowledge Tracing

基于图的知识追踪:

问题描述:给定一组练习序列X={x1,x2,......xt},xi={qi,ai}【ai是0或1,表示是否正确回答】和新问题qt,目标:预测学生正确回答新问题的概率p

问题技能关系图,一个问题对应多个技能,一个技能与多个问题相关

【ni--与问题qi相关的技能的数目  nj--与技能sj相关的问题的数目】

总体框架:使用GCN学习在问题-技能关系图上聚合的问题和技能表示,使用递归层对知识状态的顺序变化进行建模。为了捕获长期依赖并全面利用有用的信息,我们然后设计了一个重述模块选择与qt最相关的隐藏练习)对应于软选择和硬选择实现),然后是一个交互模块(在学生当前状态、选定的学生历史相关练习、目标问题和预测pt的相关技能之间进行两两交互),用于最终预测。

 

嵌入层

我们的 GIKT 方法使用嵌入来表示问题、技能和答案。三个嵌入矩阵 Es ∈ R|S|×d,Eq ∈ R|Q|×d,Ea ∈ R2×d 表示查找操作,其中 d 代表嵌入大小。 Es 或 Eq 中的每一行对应一个技能或一个问题。 Ea 中的两行分别代表不正确和正确的答案。对于矩阵中的第 i 行向量,我们分别用 si、qi 和 ai 来表示。在我们的框架中,我们不对这些嵌入进行预训练,而是通过以端到端的方式优化最终目标来训练它们。

嵌入传播

从训练的角度来看,问题数据的稀疏性对学习信息性问题表示提出了巨大挑战,尤其是对于那些训练示例非常有限的问题。 从推理的角度来看,一个学生能否正确回答一个新问题,取决于对相关技能的掌握程度和问题的特点。 当他/她以前解决过类似的问题时,他/她更有可能正确回答新问题。 在这个模型中,我们结合问题技能关系图 G 来解决稀疏性问题,并利用先验相关性来获得更好的问题表示。考虑到问题-技能关系图是二部图,问题的第一跳邻居应该是问题的对应技能,第二跳邻居应该是具有相同技能的其他问题为了提取高阶信息,利用图卷积网络]对相关技能和问题进行问题嵌入和技能嵌入

图卷积网络将多个图卷积层叠加起来对高阶邻居信息进行编码,并在每个层中通过自身和邻居节点的嵌入更新节点表示。将图中节点 i 的表示形式表示为 xi (xi 可以表示技能嵌入 si 或问题嵌入 qi) ,将其相邻节点集表示为 ni,则图中的 第l层图卷积的公式可以表示为:

其中 wl 和 bl 是要在第 l 个 GCN 层中学习的总权重和偏差,σ 是非线性变换,例如 ReLU。通过 GCN 嵌入传播后,我们得到问题和技能的聚合嵌入。我们使用 q~ 和 s~ 来表示嵌入传播后的问题和技能表示。为了易于实现和更好的并行化,我们为每个批次抽取固定数量的问题邻居(即 nq)和技能邻居(即 ns)。在推理过程中,我们多次运行每个示例(采样不同的邻居)并对模型输出进行平均以获得稳定的预测结果。

学生状态演化

对于每个历史时间 t,我们将问题和答案嵌入连接起来,并通过非线性变换投影到 d 维作为练习表示:

 我们使用 [, ] 表示向量连接。不同练习之间可能存在依赖关系,因此我们需要对整个练习过程进行建模,以捕捉学生状态的变化并了解练习之间的潜在关系。 为了模拟学生锻炼的顺序行为,我们使用 LSTM 从输入锻炼表示中学习学生状态:

 其中ht,ct,it,ft,ot分别表示隐藏状态,单元状态,输入门,忘记门,输出门。值得一提的是,该层对于捕获粗粒度的依赖关系 (如技能之间的潜在关系) 非常重要,因此,我们只需学习一个隐藏状态ht ∈ Rd作为当前学生状态,其中包含了粗粒度的技能掌握状态。

历史回顾模块

在学生的练习历史中,相关技能的问题很可能分散在漫长的历史中。从另一个角度来看,连续的练习可能不会遵循一个连贯的主题。这些现象对传统 KT 方法中的 LSTM 序列建模提出了挑战:(i)众所周知,LSTM 很难捕捉到很长序列中的长期依赖关系,这意味着当前的学生状态 ht 可能会“忘记”与新目标问题 qt相关的历史练习。 (ii) 当前学生状态 ht 更多地考虑最近的练习,其中可能包含新目标问题 qt 的噪声信息。当学生回答一个新问题时,他/她可能会很快回忆起他/她以前做过的类似问题,以帮助他/她理解新问题。受到这种行为的启发,我们建议选择相关的历史练习(问答对) {ei|i ∈ [1, . . . , t − 1]} 以更好地表示学生在特定问题 qt 上的能力,称为历史回顾模块。我们开发了两种方法来查找相关的历史练习。第一个是硬选择,即我们只考虑与新问题具有相同技能的练习:

 另一种方法是软选择,即我们通过注意力网络学习目标问题和历史状态之间的相关性,并选择注意力得分最高的前 k 个状态:

 其中,Ri,t是注意力函数f(qi,qt) 像余弦相似度的排序,Vi,t是注意力值,v是较低的相似度界限,以过滤不太相关的练习。

广义交互模块

以前的 KT 方法主要根据学生状态 ht 和问题表示 qt 之间的交互作用来预测学生的表现,即<ht,qt>。 我们将交互概括为以下几个方面:(i)我们用<ht,qt~>来表示学生对问题qt的掌握程度,<ht,sj~>来表示学生对相应技能sj ∈ Nqt的掌握程度,  (ii) 我们将当前学生状态的交互推广到历史练习中,反映了相关的历史掌握情况,即<ei, qt~>和<ei,sj~>, ei ∈ Ie,相当于让学生回答 历史时间步长中的目标问题。

然后,我们考虑上述所有交互进行预测,并定义广义交互模块。为了鼓励相关的交互并减少噪声,我们使用注意网络来学习所有交互项的双注意权重,并计算加权和作为预测:

 其中 pt 是正确回答新问题的预测概率,N~qt 表示 qt 的聚合邻居技能嵌入,我们使用内积来实现函数 g。与关系图中的邻居选择类似,我们通过从这两个集合中采样来设置固定数量的 Ie 和 N~qt。

优化

为了优化我们的模型,我们通过最小化正确回答的预测概率与学生答案的真实标签之间的交叉熵损失,使用梯度下降更新模型中的参数:

实验

在本节中,我们进行了几个实验来研究我们模型的性能。我们首先通过将我们的模型与三个公共数据集上的其他基线进行比较来评估预测误差。然后我们对 GCN 和 GIKT 的交互模块进行消融研究,以在第 5.5 节展示它们的有效性。最后,我们评估 recap 模块的设计决策,以调查第 5.6 节中哪种设计表现更好。

 数据集

为了评估我们的模型,我们在 KT 中三个广泛使用的数据集上进行了实验,详细的统计数据如表 1 所示。

 - ASSIST094 是在 2009-2010 学年从 ASSISTments 在线教育平台收集的。我们在“skillbuilder”数据集上进行实验。在之前的工作 [32] 之后,我们从原始数据集中删除了重复的记录和脚手架问题。该数据集包含 3852 名学生,拥有 123 项技能、17,737 个问题和 282,619 个练习。

– ASSIST126 是在 2012-2013 学年从与 ASSIST09 相同的平台收集的。在这个数据集中,每个问题只与一个技能相关,但一个技能仍然对应几个问题。经过与 ASSIST09 相同的数据处理,它有 2,709,436 个练习,27,485 名学生,265 个技能和 53,065 个问题。

– EdNet7 由 [5] 收集。由于整个数据集太大,我们随机选择了 5000 名学生,共有 189 个技能、12161 个问题和 676974 个练习。

请注意,对于每个数据集,我们在实验中只使用长度大于3的序列,因为太短的序列没有意义。对于每个数据集,我们将80%的序列分割为训练集,20%作为测试集。为了评估这些数据集的结果,我们使用曲线下面积(AUC)作为评估指标。

 

基线

为了评估我们提出的模型的有效性,我们使用以下模型作为基线:

–BKT[6]使用贝叶斯推理进行预测,将技能的知识状态建模为二元变量

-KTM是最新的因子分析模型,它使用因子分解机交互每个特征进行预测。虽然KTM可以使用多种类型的功能,但为了公平起见,我们只使用问题ID、技能ID和答案作为比较的辅助信息

-DKT是第一种使用深度学习对知识追踪任务建模的方法。它使用递归神经网络来模拟学生的知识状态

-DKVMN使用记忆网络分别存储不同概念的知识状态,而不是使用单个隐藏状态。

-DKT-Q是DKT的一个变体,我们将DKT的输入从技能更改为问题,以便DKT模型直接使用问题信息进行预测。

-DKT-QS是DKT的一个变体,我们将DKT的输入更改为问题和技能的串联,以便DKT模型同时使用问题和技能信息进行预测。

-GAKT是具有注意力机制的锻炼增强递归神经网络(EERNNA)模型的变体,因为EERNNA利用问题文本描述,但我们不能从公共数据集获取这些信息。因此,我们利用GCN汇总的输入问题嵌入作为EERNNA的输入,并遵循其框架设计进行比较。

实现细节

我们用 TensorFlow 实现了所有比较的方法。我们方法的代码可在线获取。技能、问题和答案的嵌入大小固定为 100,所有嵌入矩阵在训练过程中随机初始化和更新。在 LSTM 的实现中,使用了具有两个隐藏层的堆叠 LSTM,其中存储单元的大小分别设置为 200 和 100。在嵌入传播模块中,我们设置最大聚合层数 l = 3。我们还使用保持概率为 0.8 的 dropout 来避免过度拟合。所有可训练参数均由 Adam 算法[12] 优化,学习率为 0.001,mini-batch 大小设置为 32。其他超参数通过网格搜索选择,包括 GCN 中的问题邻居数、GCN 中的技能邻居数、相关与新问题相关的练习和技能。

总体性能

表 2 报告了所有比较方法的 AUC 结果。从结果中我们观察到我们的 GIKT 模型在三个数据集上实现了最高性能,这验证了我们模型的有效性。 具体来说,我们提出的模型 GIKT 比其他基线至少高 1% 的结果。 在基线模型中,BKT 和 KTM 等传统机器学习模型的性能比深度学习模型差,这显示了深度学习方法的有效性。  DKVMN 的平均性能略低于 DKT,因为每个概念的构建状态可能会丢失概念之间的关系信息。 此外,GAKT 的表现比我们的模型差,这表明通过选择最相关的练习和执行交互来利用高阶技能问题关系会有所不同。

另一方面,我们发现直接使用问题作为输入可能会比使用技能获得更好的性能。对于问题级模型dkt-q,它在ASSIST12和EdNet数据集上具有可比或更好的性能。然而,在ASSIST09数据集中,DKT-Q的表现比DKT差。可能是ASSIST09数据集中每个问题的平均尝试次数明显少于表1中观察到的其他两个数据集,表1说明了数据稀疏问题的DKT-Q su ff ers。此外,模型dkt-qs的AUC结果高于dkt-q和DKT,除了在ASSIST12上,因为它是一个单技能数据集,这表明将问题和技能信息一起考虑可以提高整体性能

 (AUC在三个数据集上的结果。在这些模型中,BKT,DKT和DKVMN预测技能,其他模型预测问题。请注意,“*” 表示在双侧t检验中p值小于10-5,比最佳基线有统计学上的显著改善。)

消融研究

为了深入了解GIKT中每个模块的影响等,我们设计了几个消融研究来进一步研究我们的模型。我们首先研究了聚集层数量的影响,然后我们设计了一些不同的交互模块来研究它们的有效性。

聚合模块的影响  我们将GCN中聚合层的数量从0改为3,以显示高阶问题-技能关系的影响,结果如表3所示。特别是,当层数为0时,这意味着我们模型中使用的问题嵌入和技能嵌入直接从嵌入矩阵中索引。

 (从表3中我们发现,当聚合层的数量从0变为1时,GIKT的性能略有变化,因为我们已经在recap模块和交互模块中使用了1-orderrelation。然而,当骨料层数增加时,GIKT的性能更好,这验证了GCN的有效性。结果还表明,利用问题技能图中包含的高阶关系对于获得足够的结果是必要的,因为采用更多层的性能优于使用更少层的性能。)

交互模块的影响  为了验证 GIKT 中交互模块的影响,我们对我们模型的四个变体进行了消融研究。 四种设置的详细信息如下所示,它们的性能如表 4 所示。

– GIKT-RHS(删除与新问题相关的历史相关练习和技能) 对于 GIKT-RHS,我们只使用学生的当前状态和新问题进行交互进行预测。

 – GIKT-RH(删除历史相关练习) 对于 GIKT-RH,我们仅使用学生的当前状态来模拟对新问题和相关技能的掌握情况。

– GIKT-RE(删除与新问题相关的技能)对于 GIKT-RS,我们不模拟与新问题相关的技能掌握情况。

– GIKT-RA (Remove Attention in interaction module) GIKT-RA 去除交互后的注意力机制,将每个交互对视为同等重要,直接在交互部分平均预测分数进行预测。

 (从表 4 中我们有以下发现: 我们的 GIKT 模型考虑了所有交互方面都达到了最佳性能,这表明了交互模块的有效性。 同时,从 GIKT-RH 的结果我们可以发现,相关的历史状态可以帮助更好地模拟学生在新问题上的能力。 此外,GIKT-RS 的性能略逊于 GIKT,这意味着模型对问题和技能的掌握程度同时可以进一步帮助预测。 请注意,由于 ASSIST12 是单技能数据集,在选择共享相同技能的历史练习后,在交互模块中使用技能信息是多余的,因此我们将采样的相关技能数量设置为 0。将 GIKT-RA 与 GIKT 的结果进行比较, 较差的性能证实了交互模块中注意力的有效性,它区分了不同的交互项以获得更好的预测结果。 通过计算不同方面的交互作用和预测的加权和,不同层次的信息可以充分交互。)

回顾模块设计评估  为了评估 GIKT 中回顾模块的详细设计,我们进行了几个变体的实验。 设置的详细信息如下所示,其性能如表 5 所示。

– GIKT-HE(硬选历史练习) 对于 GIKT-HE,我们选择共享相同技能的相关练习。  

– GIKT-SE(软选择历史练习) 对于 GIKT-SE,我们根据注意力权重选择历史练习。  

– GIKT-HS(硬选择隐藏状态) 对于 GIKT-HS,我们选择共享相同技能的练习的相关隐藏状态。  

– GIKT-SS(软选择隐藏状态) 对于 GIKT-SS,我们根据注意力权重选择隐藏状态。 前几节中报告的 GIKT 的结果是由 GIKT-SS 的性能得出的。

 (从表5中我们发现,选择历史练习比选择隐藏状态表现更好。这一结果意味着,隐藏状态包含了与下一个问题无关的信息,因为它学习了学生的一般掌握。相反,直接选择练习可以减少噪音,帮助预测。硬选择和软选择的表现在不同的数据集上有所不同。使用注意机制可以获得更好的选择覆盖率,而硬选择变量可以通过显式约束选择练习。)

结论

在本文中,我们提出了一个框架,将高阶问题-技能关系图用于知识追踪的问题和技能表示。 此外,为了模拟学生对问题和相关技能的掌握情况,我们设计了一个回顾模块来选择相关的历史状态来代表学生的能力。 然后我们扩展了一个广义交互模块,以一致的方式表示学生对新问题和相关技能的掌握程度。 为了区分相关的交互,我们使用注意力机制进行预测。 实验结果表明我们的模型取得了更好的性能。

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值