GIKT: A Graph-based Interaction Model for Knowledge Tracing
文章和代码:https://github.com/Rimoku/GIKT
GIKT代码详解:待补充
在线教育系统中的问题往往很多,而且总是与很少的技能相关。然而,以往的文献没有将问题信息与高阶问题-技能相关性相结合,这主要受到数据稀疏性和多技能问题的限制。从模型的角度来看,以前的模型很难捕捉学生练习历史的长期依赖,也不能以一致的方式对学生-问题和学生-技能之间的互动进行建模。本文提出了一种基于图的知识追踪交互模型(GIKT)来解决上述问题。更具体地说,GIKT利用图卷积网络(GCN)通过嵌入传播实质上合并了问题-技能相关性。此外,考虑到相关问题通常分散在练习历史中,而问题和技能只是知识的不同实例,GIKT将学生对问题的掌握程度概括为学生当前状态、学生历史相关练习、目标问题和相关技能。在三个数据集上的实验表明,GIKT实现了新的最先进的性能,至少有1%的绝对AUC改进
追踪学生的知识状态----实际是为了----预测学生是否能正确回答新问题的问题。
KT任务中,存在多个技能和许多问题,其中一个技能与许多问题相关,一个问题可能对应多个技能,可以用关系图表示,如图1所示。由于假设技能掌握程度可以在一定程度上反映学生是否能够正确回答相关问题,所以像KT之前的做法一样,基于技能进行预测是一种可行的选择。
虽然这些纯粹以技能为基础的KT方法取得了经验上的成功,但忽略了问题的特征,这可能导致绩效下降。例如,在图1中,尽管q2和q3这两个问题具有相同的技能,但它们不同的难度可能导致正确回答的概率不同。为此,之前的几部作品[14]利用问题特征作为技能输入的补充。然而,由于问题的数量通常很大,而许多学生只尝试了一小部分问题,大多数问题只能由少数学生回答,导致了数据稀疏性问题[28]。此外,对于那些具有部分共同技能的问题(如q1和q4),简单地增加问题特征会失去潜在的问题间和技能间的信息。基于这些考虑,利用问题和技能之间的高阶信息是很重要的。
本文首先研究了如何有效提取问题-技能关系图中包含的高阶关系信息。由于图神经网络(gnn)[26,13,10]在通过聚合邻域信息来提取图表示方面的强大能力,我们利用图卷积网络(GCN)从高阶关系中学习问题和技能的嵌入。当问题嵌入和技能嵌入聚合后,我们可以直接将问题嵌入和相应的答案嵌入作为KT模型的输入。
除了输入特性外,KT的另一个关键问题是模型框架。深度学习的最新进展模拟了一系列卓有成效的深度KT工作,利用深度神经网络依次捕捉学生知识状态的变化。
我们没有将相关历史信息聚合成一个新的状态来直接进行预测,而是进一步提高了长期依赖捕获和更好地建模学生的掌握程度。受SKVMN和EERNNA的启发,我们引入了一个recap module ,根据注意权重选择几个最相关的隐含练习,以达到降噪的目的。考虑到新问题及其相关技能的掌握情况,我们将交互模块进行了概括,将相关练习和当前隐藏状态与聚合问题嵌入和技能嵌入交互。广义交互模块可以更好地模拟学生对问题和技能的掌握程度。此外,在每个交互中应用注意机制进行最终预测,自动加权所有交互的预测效用。
综上所述,本文提出了一种端到端深度知识追踪框架,即基于图的知识追踪交互(GIKT)。主要贡献如下:
1、知识追踪
2、图神经网络
知识追踪和问题-技能二部图定义
总体框架图:首先利用GCN来学习聚集在问题-技能关系图上的问题和技能表示,并使用一个循环层来建模知识状态的顺序变化。为了获取长期依赖并全面利用有用的信息,我们设计了一个概述模块,然后是一个交互模块,用于最终的预测。
思考:如何获得当前问题的相关知识点?如何选取和当前题目相关的历史习题?选取的s和e的个数,怎么确定?
E s Es Es的每一行代表一个技能, E q Eq Eq的每一行代表一个问题 E a Ea Ea的两行分别代表是否回答正确,但是也有d维?这是什么意思呢?
在我们的框架中,我们不预先训练这些嵌入,它们是通过端到端方式优化最终目标来训练的。
从训练的角度来看,问题数据的稀疏性给学习信息性问题表示提出了一个很大的挑战,特别是对于那些训练示例相当有限的问题表示。从推理的角度看,学生能否正确回答新问题取决于对新问题相关技能的掌握和问题特征的把握。当他/她以前解决过类似的问题时,他/她更有可能正确地回答新问题。在该模型中,我们加入问题-技能关系图G来解决稀疏性问题,并利用先验相关性来获得更好的问题表示。
考虑到问题-技能关系图是二部图,一个问题的第1跳邻居应该是其对应的技能,第2跳邻居应该是具有相同技能的其他问题。为了提取高阶信息,我们利用图卷积网络(GCN)[13]将相关技能和问题编码为问题嵌入和技能嵌入。
图卷积网络堆叠多个图卷积层来编码高阶邻域信息,在每一层中,节点表示可以通过嵌入自身和邻域节点来更新。表示图中节点i的表示为 x i ( x i 可 以 表 示 技 能 嵌 入 s i 或 者 问 题 嵌 入 q i ) x_i(x_i可以表示技能嵌入s_i或者问题嵌入q_i) xi(xi可以表示技能嵌入si或者问题嵌入qi),其邻居节点集为 N i N_i Ni,则GCN第 l t h l_{th} lth 层的表达式为:
其中 w l 和 b l w_l和b_l wl和bl 是GCN第 l t h l_{th} lth 层中需要学习的总权重和偏差, σ σ σ是像ReLU一样的非线性变换。
通过GCN进行嵌入传播,得到问题和技能的聚合嵌入。我们用 q ~ \widetilde{q} q 和 s ~ \widetilde{s} s 表示嵌入传播后的问题和技能表示。为了便于实现和更好的并行化,我们为每个批处理抽取固定数量的 问 题 近 邻 ( 即 n q ) 和 技 能 近 邻 ( 即 n s ) 问题近邻(即n_q)和技能近邻(即n_s) 问题近邻(即nq)和技能近邻(即ns)。在推理过程中,我们多次运行每个示例(采样不同的邻居),并对模型输出进行平均,以获得稳定的预测结果。
对于每个历史时间t,我们通过非线性变换将问题和答案嵌入并投射到d维作为练习表示:
不同练习之间可能存在依赖关系,因此我们需要对整个练习过程建模,以捕捉学生状态的变化,了解练习之间的潜在关系。为了模拟学生做练习的顺序行为,我们使用LSTM[11]从输入练习表示中学习学生状态:
(LSTM的公式,一样的含义,其中 e t 代 表 练 习 , 即 问 题 和 其 答 案 的 拼 接 e_t代表练习,即问题和其答案的拼接 et代表练习,即问题和其答案的拼接)
----从做过的题目当中选择与当前问题相似的问题对
学生技能的掌握分布在很多习题中,习题中的技能不是一个连续的过程,学生对技能的掌握在序列上有长期的依赖。
这对传统KT方法中的LSTM序列建模提出了挑战:(1)LSTM很难捕获非常长的序列中的长期依赖关系,这意味着当前的学生状态 h t h_t ht 可能“忘记”与新目标问题 q t q_t qt相关的历史练习。(2)当前的学生状态 h t h_t ht 考虑更多关于最近的练习,当一个学生在回答一个新问题时,他/她可能会快速回忆起他/她以前做过的类似问题来帮助他/她理解新问题。受此行为启发,提出选择相关的历史习题(问答对) { e i ∣ i ∈ [ 1 , … t − 1 ] } \{e_i|i∈[1,…t−1]\} {ei∣i∈[1,…t−1]},以更好地表现学生在一个特定问题 q t q_t qt 上的能力,称为历史回顾模块。
我们开发了两种方法来寻找相关的历史练习。第一个是hard selection,即我们只考虑与新问题有相同技能的练习:
另一种方法是soft selection,即通过注意网络学习目标问题与历史状态的相关性,选择注意得分最高的top-k状态:
其中 R i R_i Ri,为注意函数 f ( q i , q t ) f(q_i,q_t) f(qi,qt)类似余弦相似度的排序, V i , t V_{i,t} Vi,t为注意值, v v v 为过滤相关度较低练习的较低相似度界。
以往的KT方法主要是根据学生状态 h t h_t ht 和问题表征 q t 例 如 ( h t , q t ~ ) q_t例如(h_t,\widetilde{q_t}) qt例如(ht,qt )之间的相互作用来预测学生的表现。本研究:
下图表格,分别对应上面的9个格子,相同颜色的格子代表相同的意思(没有重复标出),该表格反映了GIKT对学生情况的预测, p t p_t pt是正确回答新问题的预测概率
考虑上述交互作用进行预测,并定义广义交互模块。为了鼓励相关交互和减少噪声,我们使用注意网络学习所有交互项的双注意权值,并计算加权和作为预测:
其中 p t p_t pt是正确回答新问题的预测概率, N ~ q t \widetilde{N}_{q_t} N qt表示 q t q_t qt聚合的邻居技能嵌入, g g g 表示内积。类似于关系图中邻居的选择,我们通过从集合中采样设置为固定数量。
为了优化我们的模型,我们使用梯度下降来更新模型中的参数,方法是最小化预测正确答案的概率和学生答案的真实标签之间的交叉熵损失:
本文提出了一种利用高阶问题-技能关系图表达问题和技能的框架,用于知识追踪。此外,为了模拟学生对问题和相关技能的掌握情况,我们设计了一个概述模块,选择相关的历史状态来代表学生的能力。然后扩展了一个广义的交互模块,以一致的方式表示学生对新问题和相关技能的掌握程度。为了区分相关的交互作用,我们使用注意机制进行预测。实验结果表明,该模型具有较好的性能