1 摘要
知识追踪任务通过建模用户的习题作答序列跟踪其认知状态,进而预测其下一时刻的答题情况,实现对用户知识掌握程度的智能评估.当前知识追踪方法多针对知识点建模,忽略了习题信息建模与用户个性化表征,并且对于预测结果缺乏可解释性.针对以上问题,提出了一个可解释的深度知识追踪框架.首先引入习题的上下文信息挖掘习题与知识点间的隐含关系,得到更有表征能力的习题与知识点表示,缓解数据稀疏问题.接着建模用户答题序列获得其当前知识状态,并以此学习个性化注意力,进而得到当前习题基于用户知识状态的个性化表示.最后,对于预测结果,依据个性化注意力选择一条推理路径作为其解释.相较于现有方法,所提模型不仅取得了更好的预测结果,还能为预测结果提供推理路径层面的解释,体现了其优越性.
2 总体框架
本文提出一个基于图注意力网络的可解释深度知识追踪框架,通过引入习题的上下文信息扩充习题知识点关系图,然后利用 RNN网络对答题序列建模得到用户当前的知识状态.最后基于用户知识状态学习注意力权重,得到当前预测习题基于用户知识状态的个性化表示,并为预测结果生成推理路径作为解释.模型由4个模块组成,分别为认知状态模块、基于用户知识状态的个性化习题表示模块、作答表现预测模块和解释路径生成模块.
2.1 认知状态模块
用于在用户交互序列中建模其知识状态,捕捉知识点间粗粒度的依赖关系.将序列最终时间步对应的隐藏状态作为当前用户状态表征,包含了用户对习题与对应知识点的掌握状态.
2.2 基于用户知识状态的个性化习题表示模块
本模块首先根据矩阵 Q构建知识点与习题之间关系的二部图,然后从所有用户交互信息中进一步建模知识点之间的联系、习题之间的共现关系等.这些上下文信息将用于扩展二部图,将知识点与习题之间的单一关系扩展为包含知识点间、习题间相关关系的图.然后对该图应用注意力图神经网络算法,由认知状态模块中获得的用户当前知识状态得到注意力值,据此聚合邻居节点信息,得到当前预测习题基于用户知识状态的表示.随后,该注意力加权的习题表示将与用户认知状态一道送入预测模块,预测用户作答表现
2.3 作答表现预测模块
本模块根据之前得到的用户知识状态与个性化习题表示,输出用户在下一个时间步正确回答目标习题的概率.
2.4 解释路径生成模块
本模块在得到当前作答表现预测后,为预测结果提供可解释性.基于用户认知状态的个性化注意力可以使得用户关注的邻居节点得到更高的注意力值,因而对预测结果产生更大影响.由此,可利用该注意力值在图中为预测结果展示出一条推理路径.在每 一跳邻居中选择最大注意值的节点添加到解释路径内,直至达到预定的跳数,就在习题知识点图中生成了一条解释路径,直 观展示当前预测结果的产生原因.IDKT模型整体结构如图2所示:
3 可解释知识追踪模型
本节主要介绍可解释知识追踪模型的各个模块,包括用户认知状态序列建模、基于用户认知状态的个性化习题表示模块、作答表现预测模块、解释路径生成模块以及模型训练方法.
3.1 认知状态序列建模
由于用户的作答交互序列存在时序,而且不同习题之间可能存在依赖性,因此本模块通过建模作答序列,捕捉用户状态的变化并自动学习习题之间的潜在关系,通过使用LSTM从用户交互序列中学习其当前知识状态。
其中, x t x_t xt为习题表示与用户作答情况的拼接向量,变量 h t h_t ht, c t c_t ct, i t i_t it, f t f_t ft, o t o_t ot分别代表隐藏层状态、单元状态、输入门、遗忘门、输出门.该认知状态序列模块可以捕捉知识点间粗粒度的依赖关系,此处将序列最终时间步对应的隐藏状态向量 h t h_t ht作为当前用户状态表征,其中包含了用户对习题与对应知识点的掌握状态
3.2 基于认知状态的个性化习题表示模块
首先,为缓解数据稀疏性问题,在由矩阵 Q构建的知识点与习题二部图基础上,从所有用户交互信息中进一步建模知识点之间的联系、习题之间的共现关系等上下文信息,利用得到的知识点间、习题间相关关系将二部图扩展为包含多种关系类型的异质图结构.然后在此异质图基础上,应用注意力图神经网络聚合邻居节点,得到当前预测习题更加丰富的节点表示.其中,用户当前时刻的知识状态将与习题节点表示一道,共同得到注意力值作为聚合邻居节点的依据.由于用户知识状态不同,所以在图中对邻居节点的关注程度也不同,因此,通过利用用户当前知识状态可以学到个性化的习题表示.
3.2.1 基于上下文的习题-知识点图构建
为了得到信息更加丰富的习题 知识点关系图,我们提出融合上下文信息,扩展习题之间、知识点之间的关系,将单一关系的二部图扩展为展示习题、知识点间丰富联系的异构图.
- 习题-知识点关系构建
通过上文介绍矩阵Q可以得到习题与知识点间的对应考察关系。例如图3(b)中,若习题q1考察了知识点
s
1
s_1
s1,
s
2
s_2
s2,
s
3
s_3
s3,
则认为在习题知识点二部图中
q
1
q_1
q1与
s
1
s_1
s1,
s
2
s_2
s2,
s
3
s_3
s3存在连接,即:
C
o
n
n
e
c
t
(
q
1
,
x
)
=
{
1
,
若
x
∈
{
s
1
,
s
2
,
s
3
}
0
,
其他
(2)
Connect(q_1,x)= \begin{cases} 1,\quad 若x\in \{s_1,s_2,s_3\}\\ 0, \quad 其他 \end{cases} \tag{2}
Connect(q1,x)={1,若x∈{s1,s2,s3}0,其他(2)
- 习题 习题关系构建
在习题与知识点之间的考察关系中不难看出,若某些习题共同考察了相同的知识点,该习题之间存在较强的相关关系.以图3为例,若习题 q 1 q_1 q1考察了知识点 s 1 s_1 s1, s 2 s_2 s2, s 3 s_3 s3,习题q2考察了知识点 s 2 s_2 s2, s 3 s_3 s3,习题 q 3 q_3 q3考察了知识点 s 3 s_3 s3, s 4 s_4 s4,习题 q 4 q_4 q4考察了知识点 s 5 s_5 s5,则可将其关系表示为如图3©所示
通过挖掘用户的答题序列发现,某些习题会呈现出固定的共现模式.例如两习题经常在用户答题序列中伴随出现,则可推测其间存在一定关联,例如习题有相似的题型,关联的考点等.在图3中的例子为
q
3
q_3
q3与
q
4
q_4
q4.我们统计序列中习题共现的频繁模式与非共现频次的比值,选择其中大于一定阈值的共现模式,其形式化表述:
λ
=
f
r
e
q
(
q
i
,
q
j
)
f
r
e
q
(
q
i
)
+
f
r
e
q
(
q
j
)
(3)
\lambda=\frac{freq(q_i,q_j)}{freq(q_i)+freq(q_j)} \tag{3}
λ=freq(qi)+freq(qj)freq(qi,qj)(3)
其中,
f
r
e
q
(
q
i
,
q
j
)
freq(q_i,q_j)
freq(qi,qj)表示习题
q
i
q_i
qi,
q
j
q_j
qj共现的频次,
f
r
e
q
(
q
i
)
freq(q_i)
freq(qi),
f
r
e
q
(
q
j
)
freq(q_j)
freq(qj)分别表示习题
q
i
q_i
qi,
q
j
q_j
qj单独出现的频次.
- 知识点 知识点关系构建
知识点之间也存在着关联关系、先修关系、上下位关系等.比如知识点 s 1 s_1 s1, s 2 s_2 s2, s 3 s_3 s3,共同被习题 q 1 q_1 q1考察,说明知识点 s 1 s_1 s1, s 2 s_2 s2, s 3 s_3 s3,之间存在关联关系或上下位关系.另外,如果在用户答题序列中,知识点 s 1 s_1 s1总是先于知识点 s 5 s_5 s5被考察,说明知识点 s 1 s_1 s1可能是知识点 s 5 s_5 s5的先修知识点,即掌握知识点 s 1 s_1 s1是掌握知识点 s 5 s_5 s5的前提,如图 3(d)所示.基于以上 2条假设,通过挖掘所有用户的答题序列和作答情况,可以构建知识点之间的关联关系和先修关系.
3.2.2 基于用户知识状态的个性化习题表示
通过结合上下文信息得到习题知识点间的异质图后,为了对习题知识点图的丰富信息进行建模,模型用注意力图神经网络聚合邻居节点,得到当前待预测习题更加丰富的节点表示.
- 基于用户知识状态的注意力机制
假设当前习题 知识点图中所有节点的嵌入向量集合为 Ω = { n 1 , n 2 , … , n N } , n i ∈ R F \Omega=\{n_1,n_2,\dots,n_N\},n_i\in \mathbb{R}^F Ω={n1,n2,…,nN},ni∈RF其中 N为节点数,F为每个节点的特征维度.首先,为了获取特征之间的高阶联系,需要对节点进行线性变换.本文对图中节点共享线性变换矩阵 W ∈ R F ′ × F W\in \mathbb{R}^{F^\prime \times F} W∈RF′×F,F为每个节点特征的初始维度, F ′ F^\prime F′为线性变换后节点特征维度.
将用户当前知识状态ht和目标习题嵌入表示
q
i
q_i
qi进行聚合,经过线性变换,使用户知识状态与当前习题表示进行高阶交互,得到融合用户认知状态的习题表示
q
i
~
\tilde{q_i}
qi~.将
q
i
~
\tilde{q_i}
qi~与邻居节点表示
n
j
n_j
nj拼接,作为注意力机制a的输入.
e
i
j
=
a
(
W
q
i
~
,
W
n
j
)
.
(4)
e_{ij}=a(W\tilde{q_i},Wn_j). \tag{4}
eij=a(Wqi~,Wnj).(4)
输出
e
i
j
e_{ij}
eij经过 softmax激活函数映射
α
i
j
=
σ
(
e
i
j
)
\alpha_{ij}=\sigma(e_{ij})
αij=σ(eij)即得到节点j对节点i重要程度的表征.
此外,为了捕获用户知识状态与节点表示的多语义下的特征交互,模型引入了多头注意力机制(multi-head attention),即采用相同的注意力机制,但是对于每一头注意力学习不同的权值矩阵 W,以实现当前节点与用户知识状态进行更加全面的交互.在传播过程将多头注意力得到的结果拼接,在输出层求和平均,得到最终的节点表示.
- 聚合邻居节点
得到了目标节点与周围邻居节点基于用户认知状态的注意力向量后,邻居节点的表示将根据该注意力值进行加权求和
此即为单头注意力的聚合过程.
n
i
~
′
=
σ
(
∑
j
∈
N
t
α
i
j
W
n
j
)
,
(5)
\tilde{n_i}^\prime = \sigma\big(\sum_{j\in N_t}\alpha_{ij}Wn_j\big), \tag{5}
ni~′=σ(j∈Nt∑αijWnj),(5)
多头注意力拼接:
n
i
~
=
∥
k
−
1
k
σ
(
∑
j
∈
N
t
α
i
j
k
W
n
j
)
(6)
\tilde{n_i}=\parallel_{k-1}^k\sigma\big(\sum_{j\in N_t}\alpha_{ij}^kWn_j\big) \tag{6}
ni~=∥k−1kσ(j∈Nt∑αijkWnj)(6)
其中,‖表示级联,
α
i
j
k
\alpha_{ij}^k
αijk为第k次注意力机制
a
k
a^k
ak计算的归一化注意力系数,{W^k为对应的输入线性变换的权重矩阵.值得注意的是,在这种设置中,最终返回的输出将包含每个节点的
K
F
′
KF^\prime
KF′特性(而不是
F
′
F^\prime
F′)
通过重复这样的过程,更多跳的邻居节点表示被聚合到中心节点.值得注意的是,在输出层,由于输出向量维度限制,上述的拼接操作将不再适用,此时可以将多头注意力机制得到的节点表示进行平均,得到最终基于用户知识状态的个性化节点.
n
i
=
σ
(
1
K
∑
k
=
1
K
∑
j
∈
N
t
α
i
j
k
W
k
n
j
)
(7)
n_i=\sigma\big(\frac{1}{K}\sum_{k=1}^{K}\sum_{j\in N_t}\alpha_{ij}^kW^kn_j\big) \tag{7}
ni=σ(K1k=1∑Kj∈Nt∑αijkWknj)(7)
3.3 作答表现预测与损失函数
本模块根据用户知识状态与个性化习题表示,输出用户在下 一个时间步正确回答目标习题的概率.该过程可形式化地表示为
y
k
t
=
σ
(
f
p
(
h
t
,
n
t
)
)
,
(8)
y_k^t=\sigma(f_p(h_t,n_t)), \tag{8}
ykt=σ(fp(ht,nt)),(8)
其中,σ为激活函数,
f
p
f_p
fp为预测函数,ht为认知状态模块得到的用户当前知识状态表示向量,ni为习题表示模块经过多头注意力聚合邻居节点得到的个性化习题表示向量.激活函数与预测函数可根据不同数据特点选择.在本模型中,fp为内积函数,
σ
\sigma
σ为sigmoid函数.
最后,采用随机梯度下降通过最小化预测概率与标签结果的交叉熵损失的方式更新模型参数.其中ai为用户实际作答情况,正确为 1,错误为 0.pi为预测用户作答正确的概率,pi∈[0,1].
L
=
−
∑
i
=
1
t
a
i
log
p
i
+
(
1
−
a
i
)
log
(
1
−
p
i
)
(9)
L=-\sum_{i=1}^{t}a_i\log{p_i}+(1-a_i)\log{(1-p_i)} \tag{9}
L=−i=1∑tailogpi+(1−ai)log(1−pi)(9)
3.4 基于用户知识状态的解释路径生成
基于用户认知状态的注意力值不仅用于聚合邻居节点得到个性化的习题表示,也将在得到当前作答表现预测后,为预测结果提供可解释性.
在注意力图神经网络聚合表示的过程中,对每一跳邻居都会学习 一组归 一化的权值.该个性化注意力可以直观地理解为在用户当前的认知状态下更关注哪个邻居节点.用户更加关注的邻居会得到更高的注意力值,因此在聚合得到中心节点表示时会发挥更大的作用,所以很自然地,会对预测结果有更直接的影响.基于这样的认识,我们可以利用该注意力值在图中为预测结果展示出一条推理路径.如图2中④的部分所示.在每 一跳邻居中选择最大注意力值的节点添加到解释路径内,直至达到预定的跳数,这样,我们就在习题知识点图中生成了一条解释路
径,直观展示当前预测结果的产生原因.
4 实验部分
数据集:ASSIST09,ASSIST12,EdNet
评价指标:AUC和ACC
解释路径生成案例分析
本节通过案例分析展示由个性化注意力权重生成推理路径的过程.以 ASSIST09数据集为例,图 4显示了以id为96295的用户的案例分析,预测该用户在id为86633习题作答情况为错误的情况下,为解释预测结果生成推理路径的过程,此处仅展示单头注意力结果,多头注意力推理过程以此类推.
根据个性化注意力权值,当前习题聚合一跳内邻居的注意力权值分别为 0.5, 0.4, 0.1.因此我们将id为280的知识点和id为147382的习题分别加入推理序列中.重复以上过程,就可以在每一层邻居中选择注意力权值高的节点加入推理路径.由此,对于用户在当前习题的作答预测,如图4所示,IDKT生成了 2条推理路径:86623-280-310-309和 86623-147382-276.对照id的实际含义,就可以对所得推理路径进行解释.以推理路径1为例,模型预测用户未正确作答id为 86623的习题可能因为其考察了id为280的知识点.而知识点280与知识点310相关,由此得出的解释路径是,用户在知识点310存在薄弱环节导致当前习题没有回答正确.
通过以上过程,IDKT将个性化注意力权值转化为推理路径,为结果提供可解释性.该解释可以指导用户找出学习过程的薄弱知识点,也可以为后续个性化学习资源推荐、智能问答等提供依据.