3 Preliminaries
3.1 Knowledge Tracing(知识追踪)
在KT任务中,一组学生 S 依次回答一系列来自集合 Q 的问题。在时间步 t ,一个学生s∈S回答一个问题qt ∈ Q,其正误为
a
t
a_t
at∈ {0, 1}.在时间步长T之前观察到的学习交互序列是:
在时间步T+1,给定一个历史序列X和新问题
q
T
+
1
q_{T +1}
qT+1,KT的目标是预测学生正确回答新问题的概率:
让ℓ作为损失函数(例如,二进制交叉熵)。答案的预测损失是ℓ(a t + 1 _{t+1} t+1, a ^ t + 1 \hat{a}_{t+1} a^t+1),学生的损失是 ∑ t ℓ ( a t + 1 , a ^ t + 1 ) \sum_tℓ(a_{t+1},\hat{a}_{t+1}) ∑tℓ(at+1,a^t+1)。
3.2 Heterogeneous Graph(异质图)
一个异质图G=(V,E)由一个顶点集V和一个边缘集E组成,它与一个顶点类型图和一个边缘类型图相关联,因此每个顶点和边缘都有自己的类型。
元路径 ϕ \phi ϕ是一条路径 A 1 ⟶ R 1 A 2 ⟶ R 2 ⋯ ⟶ R l A l + 1 A_1 \stackrel{R_1}{\longrightarrow} A_2 \stackrel{R_2}{\longrightarrow} \cdots \stackrel{R_l}{\longrightarrow} A_{l+1} A1⟶R1A2⟶R2⋯⟶RlAl+1,描述了所有中间的边缘类型 R 1 , . . R l R_1, . . R_l R1,..Rl在顶点类型 A 1 A_1 A1和 A l + 1 A_{l+1} Al+1之间。给定一个元路径 ϕ \phi ϕ,基于元路径的邻居 N ϕ N^\phi Nϕ是一个从顶点i到通过元路径 ϕ \phi ϕ与顶点i相连的顶点的集合。元路径是异质图的一个基本结构,它可以表达某些语义并揭示多样化的结构信息。
如图1所示,元路径question-concept-question代表具有相同概念的问题(如q1和q4),而元路径question-student-question代表由同一个学生完成的问题(如q2和q3)。基于元路径question-student-question的问题q2的邻居包括q2(本身)和q3,表明s2同时回答了这两个问题。它基于元路径question-concept-question的邻居包括q2、q1和q4,表明它们共享同一个概念c1。
3.3 Message Passing(信息传递)
为了利用图的结构知识,我们利用消息传递来获得图G(V,E)中节点的新嵌入。我们可以使用GNN层来应用到所有通过从源节点{ v i ∣ ( v i , v j ) ∈ E v_i|(v_i,v_j) ∈ E vi∣(vi,vj)∈E}传递到目标节点{ v j ∣ ( v i , v j ) ∈ E v_j|(v_i,v_j) ∈ E vj∣(vi,vj)∈E}的边的信息消息。我们构造一个嵌入矩阵M =( h 1 T ; . . . ; h N T h^T_1;... ;h^T_N h1T;...;hNT ) ∈ R N × d ^{N×d} N×d,由所有节点的嵌入向量组成,其中 h i = M i , ∗ ∈ R d h_i = M_{i,*}∈R^d hi=Mi,∗∈Rd是顶点 v i v_i vi的嵌入向量。GNN将输入嵌入矩阵变换成新的嵌入矩阵M′= GNN(M | G),其中节点i的新嵌入 h i ′ = M i , ∗ ′ h^′_i = M^′_{i,*} hi′=Mi,∗′。
对于异构图G′,我们应该为每种类型的节点构造多个嵌入矩阵。对于 A k A_k Ak类型的节点,其对应的嵌入矩阵是 M k M_k Mk。消息传递应用到从源节点到各种类型的目标节点。使得源节点有 n s n_s ns个不同的类型{ A 1 S , . . . A n s S A^S_1, ... A^S_{n_s} A1S,...AnsS},目标节点有 n t n_t nt个不同类型的{ A 1 T , . . . A n t T A^T_1,... A^T_{n_t} A1T,...AntT},则HGNN将源嵌入矩阵变换成目标的嵌入矩阵,即{ M 1 T , . . . M n t T M^T_1, ... M^T_{n_t} M1T,...MntT} = HGNN ( M 1 S , . . . , M n s S ∣ G ′ ) ( M^S_1, ... ,M^S_{n_s} | G′ ) (M1S,...,MnsS∣G′)
4 4 Method
4.1 KTHG
知识追踪的数据包括学生、问题、概念、答案及其关系。我们将不同类型的节点和边建模为知识跟踪异构图(KTHG)。让S、Q和C分别是学生、问题和概念的集合。设A={A|A=0或A=1}为答案的集合,其中成员1和0表示答案正确或错误。我们将KTHG G K T ( V K T , E K T ) G_{KT}(V_{KT},E_{KT}) GKT(VKT,EKT)定义为三个更简单的异构图 G s q , G q c , G q a G_{sq},G_{qc},G_{qa} Gsq,Gqc,Gqa的组合,即 G K T = G s q ∪ G q c ∪ G q a G_{KT}=G_{sq}∪G_{qc}∪G_{qa} GKT=Gsq∪Gqc∪Gqa。
Student-Question Graph(学生-问题图)。学生问题图 G s q G_{sq} Gsq(S∪Q, E s q E_{sq} Esq)是一个二分图,其中 E s q E_{sq} Esq包含训练数据中学生和问题之间的相互关系,无向边( s i , q j s_i,q_j si,qj)表示学生 s i s_i si∈S回答问题 q j q_j qj∈Q,如图2(b)的上部所示。
Question-Concept Graph(问题-概念图)。问题概念图 G q c G_{qc} Gqc(Q∪C, E q c E_{qc} Eqc)是一个二分图,其中 E q c E_{qc} Eqc包含问题和概念之间的关系。无向边( q i , c j q_i,c_j qi,cj)意味着问题 q i q_i qi∈Q与概念 c j c_j cj∈C有关,如图2(b)的下部所示。
Question-Answer Graph(问题-回答图)。问答图 G q a G_{qa} Gqa ( Q ∪ A ∪ Q A , E q q a ∪ E a q a ) (Q∪A∪Q_A,E_{qq_a}∪E_{aq_a}) (Q∪A∪QA,Eqqa∪Eaqa)是两个完全二分图 G q q a ( Q ∪ A , E q q a ) G_{qq_a}(Q∪A,E_{qq_a}) Gqqa(Q∪A,Eqqa)和 G a q a ( A ∪ Q A , E a q a ) G_{aq_a}(A∪Q_A,E_{aq_a}) Gaqa(A∪QA,Eaqa)。 Q A Q_A QA是问题和回答的联合。 Q A = { q i 0 , q i 1 } i = 1 ∣ Q ∣ for Q = { q i } i = 1 ∣ Q ∣ , and ∣ Q A ∣ = 2 ∣ Q ∣ \mathcal{Q}_A=\left\{q_{i 0}, q_{i 1}\right\}_{i=1}^{|\mathcal{Q}|} \text { for } \mathcal{Q}=\left\{q_i\right\}_{i=1}^{|\mathcal{Q}|}, \text { and }\left|\mathcal{Q}_A\right|=2|\mathcal{Q}| QA={qi0,qi1}i=1∣Q∣ for Q={qi}i=1∣Q∣, and ∣QA∣=2∣Q∣具体地,为了将问题 q i q_i qi∈Q与回答a相结合,我们分别使用两个新的顶点 q i 1 , q i 0 ∈ Q A q_{i1},q_{i0}∈Q_A qi1,qi0∈QA用来表示问题被正确回答和错误回答,称为question-with-answer (qa for short)节点。
如图2(a)所示,问题 q 1 q_1 q1和两个回答“a=0”和“a=1”通过两个元路径(question– q a q_a qa和answer- q a q_a qa)连接到 q 10 q_{10} q10和 q 11 q_{11} q11。我们使用这两个元路径将问题嵌入和答案嵌入融合到具有答案-问题的嵌入中。
4.2 Representation Learning on KTHG
我们将HGNN层堆叠以组成多层HGNN,并将KTHG上的消息传递与双层HGNN应用于生成节点的表示,其中包含与它们连接的其他节点的图结构信息。尽管我们可以获得任何类型节点的新嵌入,但我们只使用生成的关于问题的嵌入作为KT模型的输入特征,因为学生的表现主要与它们有关。
对于所有类型的节点集合S、Q、C、A、
Q
A
Q_A
QA,我们构造嵌入矩阵
M
S
、
M
Q
、
M
C
、
M
A
、
M
Q
A
M_S、M_Q、M_C、M_A、M_{QA}
MS、MQ、MC、MA、MQA。首先,我们使用HGNN层将原始问题嵌入、学生嵌入和概念嵌入聚和为问题嵌入:
其中
M
Q
′
=
(
q
1
′
T
;
…
;
q
N
′
T
)
,
q
i
′
=
(
M
Q
′
)
i
,
∗
and
N
=
∣
Q
∣
\mathbf{M}_Q^{\prime}=\left(\mathbf{q}_1^{\prime \mathrm{T}} ; \ldots ; \mathbf{q}_N^{\prime \mathrm{T}}\right), \mathbf{q}_i^{\prime}=\left(\mathbf{M}_Q^{\prime}\right)_{i, *} \text { and } N=|\mathcal{Q}|
MQ′=(q1′T;…;qN′T),qi′=(MQ′)i,∗ and N=∣Q∣。
在student-question-concept的图上传递信息,使用元路径结束以问题节点来聚合的问题嵌入,包括了关于问题、学生和概念的信息。
在为学生的学习过程建模时,我们需要将有关问题和回答的信息结合起来。我们使用另一个HGNN层将聚合问题嵌入
M
Q
′
M^′_Q
MQ′回答嵌入
M
A
M_A
MA聚合为问题-回答的嵌入向量
M
Q
A
′
M^′_{QA}
MQA′中:
其中,
M
Q
A
′
=
(
q
10
′
T
;
q
11
′
T
;
…
;
q
N
0
′
T
;
q
N
1
′
T
)
and
q
i
a
=
(
M
Q
A
′
)
2
i
+
a
−
1
,
∗
\mathbf{M}_{Q A}^{\prime}=\left(\mathbf{q}_{10}^{\prime \mathrm{T}} ; \mathbf{q}_{11}^{\prime \mathrm{T}} ; \ldots ; \mathbf{q}_{N 0}^{\prime \mathrm{T}} ; \mathbf{q}_{N 1}^{\prime \mathrm{T}}\right) \text { and } \mathbf{q}_{i a}=\left(\mathbf{M}_{Q A}^{\prime}\right)_{2 i+a-1, *}
MQA′=(q10′T;q11′T;…;qN0′T;qN1′T) and qia=(MQA′)2i+a−1,∗。我们在问题回答图上进行消息传递,并使用以问题-回答节点为结束的元路径,因此带有答案嵌入的聚合问题携带其相应的聚合问题嵌入和答案嵌入的信息。
4.3 KTHG Representations for KT model
我们通过学生的学习互动序列{ q t , a t q_t,a_t qt,at} t = 1 T ^T_{t=1} t=1T来追踪学生的知识状态.注意,这里qt表示时间步长t中的问题ID(而不是ID为t的问题)。我们的KT模型的架构如图2(c)所示。在KTHG上进行表示学习后,我们得到了KT模型的带有图结构信息的问题嵌入矩阵 M Q ′ , M Q A M^′_Q,M_{QA} MQ′,MQA。对于问题 q t q_t qt,我们可以得到它的聚合问题嵌入 q t ′ = ( M Q ′ ) q t , ∗ q^′_t=(M^′_Q)_{q_t,*} qt′=(MQ′)qt,∗。当追踪学生的知识状态时,对于当前的回答,我们可以得到问题-回答的嵌入向量 q t a ′ = ( M Q A ′ ) 2 q t + a t − 1 , ∗ q^′_{ta}=(M^′_{QA})_{2q_t+a_t-1,*} qta′=(MQA′)2qt+at−1,∗。
然后,与DKT[19]类似,我们使用RNN来跟踪学生的知识状态。对于每个时间步长t,我们将嵌入
q
t
a
′
q^′_{ta}
qta′送到RNN单元中,以更新RNN的隐藏状态向量
h
t
h_t
ht:
在预测中,我们使用学生当前的知识状态和问题嵌入来预测答案。具体来说,我们首先将RNN的当前状态
h
t
−
1
h_{t-1}
ht−1与问题嵌入向量
q
t
q_t
qt的聚合问题起来。之后,我们将连接起来的向量送到完全连接层中以获得向量
h
t
′
h^′_t
ht′,然后我们将向量馈送到Sigmoid激活层中以计算正确回答的概率,表示为:
其中
⨁
\bigoplus
⨁表示串联算子,σ是Sigmoid函数.