Graph-based Knowledge Tracing: Modeling Student Proficiency Using Graph Neural Network

论文题目:《基于图的知识追踪:基于图神经网络的学生能力建模》
期刊年份:2019 ACM
论文地址:地址
代码地址:代码

一、概述

受图神经网络的启发,本文提出了一种基于图神经网络的知识跟踪方法,即基于图的知识跟踪。将知识结构转化为一个图,使得我们能够将知识跟踪任务重新表述为GNN中的时间序列节点级分类问题。

本文基于以下三个假设:1)课程知识被分解成一定数量的知识概念。2) 学生有自己的时间知识状态,代表他们对课程概念的熟练程度。3) 课程知识的结构是一个图形,它影响着学生知识状态的更新:如果学生正确或错误地回答了一个概念,那么他/她的知识状态不仅会受到所回答概念的影响,还会受到其他相关概念的影响,这些概念在图形中表示为相邻节点。

二、模型架构

1.问题定义

在这里,我们假设课程结构可能是一个图 G = ( V , E ) G=(V, E) G=(V,E);掌握课程的要求被分解成N个知识概念,称为节点 V = { v 1 , ⋯   , v N } V=\left\{v_{1}, \cdots, v_{N}\right\} V={v1,,vN},这些概念共享依赖关系,称为边 E ⊆ V × V E \subseteq V \times V EV×V。此外,我们假设一个学生在时间步t, h t = { h i ∈ V t } \mathbf{h}^{t}=\left\{\mathbf{h}_{i \in V}^{t}\right\} ht={hiVt},独立地拥有每个概念的时间知识状态,并且这个知识状态随着时间的推移被更新如下:当学生解决与概念 v i v_i vi相关的练习时,然后更新学生对所回答概念本身 h i t \mathbf{h}_{i}^{t} hit及其相关概念 h j ∈ N i t \mathrm{h}_{j \in \mathcal{N}_{i}}^{t} hjNit的知识状态。这里 N i \mathcal{N}_{i} Ni表示与 v i v_i vi相邻的一组节点。

2.提出的方法

下面是本文提出GKT的体系结构。
系统架构图

1)聚合

聚合就是将已经回答的概念 i i i及其相邻的概念 j ∈ N i j \in \mathcal{N}_{i} jNi的隐藏状态和嵌入使用一个向量表示。
h k ′ t = { [ h k t , x t E x h k t , E c ( k ) ] ( k = i ) ( k ≠ i ) , \mathbf{h}_{k}^{\prime t}=\left\{\left[\begin{array}{l} \mathbf{h}_{k}^{t}, \mathbf{x}^{t} \mathbf{E}_{\mathbf{x}} \\ \mathbf{h}_{k}^{t}, \mathbf{E}_{c}(k) \end{array}\right] \quad \begin{array}{l} (k=i) \\ (k \neq i), \end{array}\right. hkt={[hkt,xtExhkt,Ec(k)](k=i)(k=i),
其中 x t ∈ { 0 , 1 } 2 N \mathrm{x}^{t} \in\{0,1\}^{2 N} xt{0,1}2N是表示在时间步t正确回答和错误回答的练习的输入向量, E X ∈ R 2 N × e \mathbf{E}_{\mathbf{X}} \in \mathbb{R}^{2 N \times \boldsymbol{e}} EXR2N×e是嵌入概念索引和答案响应的矩阵, E c ∈ R N × e \mathbf{E}_{\mathbf{c}} \in \mathbb{R}^{N \times \boldsymbol{e}} EcRN×e是嵌入概念索引的矩阵, E c ( k ) \mathrm{E}_{\mathrm{c}}(k) Ec(k)表示 E c \mathrm{E}_{\mathrm{c}} Ec的第 k k k行, e e e是嵌入大小。

在代码中这个地方的 h k ′ t \mathbf{h}_{k}^{\prime t} hkt维数是比 h k t \mathbf{h}_{k}^{ t} hkt的维数要大的,因为前者聚合了节点本身及其相邻的一个节点的信息,而后者只是一个节点的信息,后面会将 h k ′ t \mathbf{h}_{k}^{\prime t} hkt的维数降下来。

2)更新

接下来,模型根据聚集的特征和知识图结构更新隐藏状态:
m k t + 1 = { f self  ( h k ′ t ) ( k = i ) f neighbor  ( h i ′ t , h k ′ t ) ( k ≠ i ) m ~ k t + 1 = G e a ( m k t + 1 ) h k t + 1 = G g r u ( m ~ k t + 1 , h k t ) ( 1 ) \begin{aligned} \mathrm{m}_{k}^{t+1} &=\left\{\begin{array}{ll} f_{\text {self }}\left(\mathbf{h}_{k}^{\prime t}\right) & (k=i) \\ f_{\text {neighbor }}\left(\mathbf{h}_{i}^{\prime t}, \mathbf{h}_{k}^{\prime t}\right) & (k \neq i) \end{array}\right.\\ \tilde{\mathbf{m}}_{k}^{t+1} &=\mathcal{G}_{e a}\left(\mathbf{m}_{k}^{t+1}\right) \\ \mathbf{h}_{k}^{t+1} &=\mathcal{G}_{g r u}\left(\tilde{\mathbf{m}}_{k}^{t+1}, \mathbf{h}_{k}^{t}\right) \end{aligned} (1) mkt+1m~kt+1hkt+1={fself (hkt)fneighbor (hit,hkt)(k=i)(k=i)=Gea(mkt+1)=Ggru(m~kt+1,hkt)1
其中 f self  f_{\text {self }} fself 是多层感知器(MLP), G e a \mathcal{G}_{e a} Gea是Zhang等人[25]中使用的擦除-加法门, G g r u \mathcal{G}_{g r u} Ggru是选通递归单元(GRU)门[4]。 f neighbor  f_{\text {neighbor }} fneighbor 是一个基于知识图结构定义信息向相邻节点传播的任意函数。论文在下一节中提出了 f neighbor  f_{\text {neighbor }} fneighbor 的各种实现。

3)预测

最后,模型输出学生在下一时间步正确回答每个概念的预测概率:
y k t = σ ( W out  h k t + 1 + b k ) \mathbf{y}_{k}^{t}=\sigma\left(\mathbf{W}_{\text {out }} \mathbf{h}_{k}^{t+1}+\mathbf{b}_{k}\right) ykt=σ(Wout hkt+1+bk)其中 W out  \mathrm{W}_{\text {out }} Wout 是所有节点共用的权重矩阵, b k b_k bk是节点k的偏差项, σ \sigma σ是sigmoid函数。训练模型使观测值的NLL(negative log like-lihood,负log似然函数)最小。我们可以利用边缘信息来收集相邻概念的知识状态,但是我们证实了仅基于目标概念的知识状态来预测更好,因此我们将图结构信息的使用限制在更新阶段。

3.潜在图结构和 f n e i g h b o r \mathcal{f}_{neighbor} fneighbor的构建

为了计算上面文中提出的 f n e i g h b o r f_{neighbor} fneighbor,本文引入了两种方法:

1)基于统计的方法

基于统计的方法实现基于特定统计的邻接矩阵A,并将其应用于 f n e i g h b o r f_{neighbor} fneighbor,如下所示:
f neighbor  ( h i ′ t , h j ′ t ) = A i , j f out  ( [ h i ′ t , h j ′ t ] ) + A j , i f in  ( [ h i ′ t , h j ′ t ] ) ( 2 ) f_{\text {neighbor }}\left(\mathbf{h}_{i}^{\prime t}, \mathbf{h}_{j}^{\prime t}\right)=\mathrm{A}_{i, j} f_{\text {out }}\left(\left[\mathbf{h}_{i}^{\prime t}, \mathbf{h}_{j}^{\prime t}\right]\right)+\mathrm{A}_{j, i} f_{\text {in }}\left(\left[\mathbf{h}_{i}^{\prime t}, \mathbf{h}_{j}^{\prime t}\right]\right)(2) fneighbor (hit,hjt)=Ai,jfout ([hit,hjt])+Aj,ifin ([hit,hjt])2
其中 f o u t f_{out} fout和$ f i n f_{in} fin是MLPs。这里,我们介绍三种类型的图。
Dense graph:是一个简单的稠密连通图,其中如果 i ≠ j i\neq j i=j,那么 A i , j \mathrm{A}_{i, j} Ai,j 1 ∣ V ∣ − 1 \frac{1}{|V|-1} V11;否则,它是0。
Transition graph:是转移概率矩阵,其中如果 i ≠ j i\neq j i=j,那么 A i , j \mathrm{A}_{i, j} Ai,j n i , j ∑ k n i , k \frac{n_{i, j}}{\sum_{k} n_{i, k}} kni,kni,j;否则,它是0。这里, n i , j n_{i,j} nij表示概念i被回答之后,概念j被立即回答的次数。
DKT graph:是根据Piech等人[17]提出的训练DKT模型的条件预测概率生成的图。

2)基于线性的方法

在这种方法中,图形结构与性能优化并行学习预测。这里介绍了三种学习图结构的方法。
参数邻接矩阵(PAM)简单地对邻接矩阵A进行参数化,并在一定的约束条件下用其他参数对其进行优化,使A满足邻接矩阵的性质。 f n e i g h b o r f_{neighbor} fneighbor的定义类似于等式2。
多头注意(MHA)利用多头注意机制[20],根据两个节点的特征推断其边缘权重。 f n e i g h b o r f_{neighbor} fneighbor的定义如下:
f neighbor  ( h i ′ t , h j ′ t ) = 1 K ∑ k ∈ K α i j k f k ( h i ′ t , h j ′ t ) f_{\text {neighbor }}\left(\mathbf{h}_{i}^{\prime t}, \mathbf{h}_{j}^{\prime t}\right)=\frac{1}{K} \sum_{k \in K} \alpha_{i j}^{k} f_{k}\left(\mathbf{h}_{i}^{\prime t}, \mathbf{h}_{j}^{\prime t}\right) fneighbor (hit,hjt)=K1kKαijkfk(hit,hjt)其中k是k个头中的头指数,是第k个头从vi到vj的注意力权重,fk是第k个头的神经网络。
变分自动编码器(VAE)采用表示边缘类型的离散潜变量,并根据节点特征进行推断。的定义如下:
f neighbor  ( h i ′ t , h j ′ t ) = ∑ k ∈ K z i j k f k ( h i ′ t , h j ′ t ) f_{\text {neighbor }}\left(\mathbf{h}_{i}^{\prime t}, \mathbf{h}_{j}^{\prime t}\right)=\sum_{k \in K} z_{i j}^{k} f_{k}\left(\mathbf{h}_{i}^{\prime t}, \mathbf{h}_{j}^{\prime t}\right) fneighbor (hit,hjt)=kKzijkfk(hit,hjt)其中k是在K个类型中的边类型, z i j k z^k_{ij} zijk是从Gumbel–Softmax分布中采样的潜变量[16], f k f_k fk是第k个 q ( z ∣ x ) q(z|x) q(zx)和先验分布 p ( z ) p(z) p(z)之间的NLL和Kullback–Leibler散度。使用一个edge类型来表示“non-edge”类意味着没有消息沿着此edge类型传递;此外,在“non-edge”标签上设置高概率会鼓励生成稀疏图。

基于学习的方法接近于边缘特征学习的概念[1,3,7],而MHA和VAE分别受到GAT[21]和NRI[13]的激励;然而,我们从两个方面对它们进行了修改。首先,我们根据静态特征(例如概念和响应的嵌入)来计算边缘权重,而不是基于动态特征。这使得学习的知识图结构对学生和时间步长不变,这是更自然地考虑到实际的知识跟踪设置。第二,对于VAE,我们限制了每个时间步与答案相关的节点的边类型推断。这适合于知识追踪的情况,即学生在每个时间步只回答一小部分概念,从而将计算成本从原始NRI的 O ( K N 2 ) O\left(K N^{2}\right) O(KN2)降低到 O ( K N ) O\left(K N\right) O(KN)

4.和以往方法的比较

本文提出的方法与以往方法的比较可以从两个方面进行。我们在图2中给出了比较。
方法比较
第一个方面是学生时态知识状态的定义。在DKT中, h t h_t ht被表示为一个单一的隐向量,每个概念的知识状态是不分离的。这使得对每个概念的知识状态分别建模变得复杂,并导致长时间序列中的性能下降,以及模型如何预测学生对每个概念的熟练程度的低解释性。为了解决这些缺点,Zhang等人[25]提出了动态键值记忆网络(DKVMN),该网络利用两个记忆矩阵,其中一个可以被视为学生时态知识状态 h t h_t ht的堆栈,分别为每个概念定义。尽管这与GKT几乎相同,但它们略有不同,因为GKT直接为每个概念建模知识状态,而DKVMN定义了另一个低维潜在概念,并随后为它们的知识状态建模。

另一方面是知识状态更新过程中概念之间的相互作用。在DKVMN中,使用简单的点积注意机制计算原始输入概念和潜在概念之间的关系权重,这不足以建模知识概念之间复杂的多重关系。同时,GKT利用K种不同的神经网络对K种边类型的输入概念之间的关系权重或边权重进行建模。这样就可以对概念之间的多种复杂关系进行建模。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值