Option Tracing: Beyond Correctness Analysis in Knowledge Tracing
Abstract
知识追踪是指通过学生过去对问题的回答来估计每个学生的知识成分/技能掌握程度的一系列方法。大多数现有的知识追踪方法的一个关键限制是,它们只能对学生每个知识成分/技能的总体知识水平进行估计,因为它们只分析学生回答的正确性(通常是二值)。因此,很难用它们来诊断特定的学生错误。在本文中,我们将现有的知识追踪方法从正确性预测扩展到预测学生在多选题中选择的确切选项的任务。我们在两个大规模的学生回答数据集上定量地评估了我们的选项追踪方法的性能。我们还定性评估了这些方法在识别学生常见错误方面的能力,这些错误的形式是不同问题中对应于同一错误的不正确选项集群。
1 Introduction
知识追踪(KT)[9]指的是一系列的学生建模方法,这些方法从学生过去对问题/项目的回答中估计学生对知识成分/技能/概念的掌握程度,并预测他们未来的表现。这些估计和预测可以用来:i)向学生提供关于他们进展的反馈,特别是在智能辅导系统中[44];ii)驱动个性化,即选择每个学习者接下来应该采取的行动,以最大限度地提高他们的学习成果[10,28,36]。许多不同的KT方法已经被开发出来,从基于隐马尔科夫模型的贝叶斯知识追踪方法[21,33,46],基于因素分析的方法,如学习因素分析[5],表现因素分析[34],以及项目Diculty、学生能力、技能和学生技能练习历史(DAS3H)方法[7],到基于深度学习的方法[15,31,32,35,45,47]。这些方法都取得了不同程度的成功;其中一些方法,包括大多数贝叶斯知识追踪和基于因素分析的方法,表现出优秀的可解释性,而其他基于深度学习的方法则以可解释性换取对学生未来成绩的优秀预测准确性。
然而,这些KT方法的一个关键限制是,它们只对表明学生是否正确回答问题的反应数据(通常是二元值)进行操作。因此,它们只能估计学生对每个知识点的总体掌握程度。然而,并不是所有的错误回答都是一样的:回答一个数学问题可能有许多不正确的方法[27],由不同的潜在错误造成。研究表明,只有一小部分由学生产生的错误答案可以被集成到智能辅导系统[24,36,41]、教师[11]和数字模拟[11,37]中的认知模型所预见和解释。典型的潜在错误包括有一个/buggy规则"[4],表现出某种误解[12,13,38],或对某些知识成分普遍缺乏了解[2]。由于仅仅从正确性数据中很难诊断出这样的学生错误,我们需要开发出分析学生完整回答的KT方法。
一些数据集,包括大规模的Eedi1[43]和EdNet2[8]数据集,包含了学生在多选题(MCQs)上选择的确切选项;这些选项数据为我们提供了一个机会,可以扩展现有的KT方法来分析特定的学生选项选择,而不是他们的答案正确性。在理想的情况下,精心设计的MCQ应该有精心设计的错误分心选项,每个选项都对应一个或多个典型的学生错误;图1显示了Eedi数据集中的一个例子,是关于括号、指数、除法、乘法、加法、减法(BIDMAS)的两个问题。两个问题中的选项C都对应着相同的错误,即没有完全掌握运算顺序",总是从左到右进行运算。然而,手动识别这些错误是一个不可扩展的劳动密集型过程,因为大多数现有的多选题都没有对每个错误选项背后的错误进行一致的标注。因此,探索我们是否可以开发KT方法来识别每个错误选项所对应的错误,并有可能自动诊断学生的错误,这一点很重要。这些方法将通过以下方式发挥作用:i)通知教师与学生沟通以了解他们的错误来源,ii)促成自动反馈的发展[19],以及iii)促成替代教学方法的设计,如要求学生批评错误的例子[1]。
1.1 Contributions
在本文中,我们开发了选项追踪(OT),一个使用每个学生在每个问题上选择的确切选项作为输入和预测输出的KT框架。我们将现有的几种知识追踪方法扩展到了OT环境中,包括一种基于长短期记忆(LSTM)网络的方法,深度知识追踪(DKT)[35],一种基于图卷积网络的方法,基于图的知识追踪交互模型(GIKT)[45],以及一种基于注意力网络的方法,专注知识追踪(AKT)[15]。我们强调,本文的目标不是要比较所有的知识追踪方法;相反,我们的目标是研究如何将它们推广到分析学生在MCQ中的选择。因此,我们只研究一些有代表性的方法。我们在Eedi和EdNet数据集上进行了以下实验。首先,我们定量地评估了我们的OT方法在协作ltering(CF)设置(由NeurIPS 2020教育挑战赛[43]引入)和典型KT设置下的选项预测任务。其次,我们从质量上证明了我们的OT框架的可解释性,该框架使用聚类算法将多个问题中的错误选项归类为共同的基本错误群组。结果显示,学习到的聚类与领域专家手动识别的聚类在一定程度上是一致的。因此,OT有可能提供一种自下而上的错误识别方法,即从实际数据中提取学生的错误,而不是典型的自上而下的方法,即在看到数据之前预测错误。我们的实现将在https://github.com/arghosh/OptionTracing 公开。
2 Related work
学生在MCQ中选择的选项可以被看作是一种分类数据,以前在项目反应理论(IRT)和推荐系统研究界都有过研究。然而,在这两种情况下,大多数先前的工作都集中在类别是有序的情况下。在IRT研究中,基于多态IRT的模型[25,26,30]被用来模拟学生对多个有序类别的反应,如字母等级和部分学分。在推荐系统研究中,基于神经协作模型(NCF)的方法被用来模拟用户对项目提供的星级评价[20]。针对无序分类数据的模型相对较少,比如来自IRT研究界的名义反应模型(NRM),它被应用于MCQs的分析[40,42]。
3 Data and Problem Setup
Eedi数据集包含了100,000多名学生对389个标记科目的27,613道MCQ的回答,在一年多的时间里总共有1500多万个回答。每个回答都对应于学生在每个问题上选择的确切选项(在四个选项中,{A,B,C,D})。我们还将使用Eedi数据的一个小子集,在那里我们可以获得确切的问题(以图像的形式)进行定量分析;这个数据集包含超过4900名学生对948个问题的回答,总计超过130万条回答。EdNet数据集包含了超过700,000名学生对189个标签科目的13,169个MCQ的回答,在两年多的时间里总共有超过9500万的回答。
我们使用两种实验设置进行评估。首先,在CF设置中,任务是根据每个学生对其他问题(可能在未来)的反应,预测他们对一个问题子集的反应。这种设置的流行方法是神经协同定位(NCF)[20]和图卷积网络(GCN)[3,23]。第二,在评估KT方法的KT设置中,任务是根据每个学生过去的全部回答历史来预测他们对未来问题的回答。
3.1 Problem Setup
每个学生的成绩记录由一系列离散的时间步骤中分配的对问题的回答序列组成。对于时间步骤t的学生i来说,我们把他们回答的问题、这个问题所涉及的知识点集合、他们的二值回答正确性、他们选择的选项以及这个问题的正确选项的组合表示为一个元组, ( q t i , { s t , j i } j = 1 n t i , r t i , y t i , c t i ) (q_t^i, \{s_{t,j}^i\}_{j=1}^{n_t^i},r_t^i,y_t^i,c_t^i) (qti,{st,ji}j=1nti,rti,yti,cti),其中 q t i ∈ N + q_t^i \in N^+ qti∈N+是问题索引, s t , j i ∈ N + s_{t,j}^i \in N^+ st,ji∈N+表示第j个知识点的索引, j ∈ 1 , . . . n t i j \in 1,...n_t^i j∈1,...nti因为每个问题可以被标记为多个知识点, r t i ∈ { 0 , 1 } r_t^i \in \{0,1\} rti∈{0,1}是反应的正确性(1对应于正确的反应), y t i ∈ { A , B , C , D } y_t^i \in \{A,B,C,D\} yti∈{A,B,C,D}是学生选择的选项, c t i ∈ { A , B , C , D } c_t^i \in \{A,B,C,D\} cti∈{A,B,C,D}是这个问题的正确选项。在CF设置中,我们将一个屏蔽变量 m t i ∈ { 0 , 1 } m_t^i \in \{0,1\} mti∈{0,1}与每个时间步长联系起来,其中1代表该时间步长是训练集的一部分。这个变量可以帮助我们在计算训练损失时屏蔽掉我们需要预测的反应。鉴于观察到的反应 { ( q t i , { s t , j i } j = 1 n t i , r t i , y t i , c t i ) } t : m t i = 1 \{(q_t^i, \{s_{t,j}^i\}_{j=1}^{n_t^i},r_t^i,y_t^i,c_t^i)\}_{t:m_t^i = 1} {(qti,{st,ji}j=1nti,rti,yti,cti)}t:mti=1,任务是预测学生在测试集中的问题上选择的确切选项,即 y t ′ i ′ f o r ( t ′ , i ′ ) : m t i = 0 y_{t'}^{i'} for (t',i'):m_t^i=0 yt′i′for(t′,i′):mti=0。在KT设置中,我们观察每个学生对问题的整个回答历史;因此,给定他们到时间t1的过去历史为 { ( q τ i , { s τ , j i } j = 1 n τ i , r τ i , y τ i , c τ i ) } τ = 1 t − 1 \{(q_\tau^i, \{s_{\tau,j}^i\}_{j=1}^{n_\tau^i},r_\tau^i,y_\tau^i,c_\tau^i)\}_{\tau=1}^{t-1} {(qτi,{sτ,ji}j=1nτi,rτi,yτi,cτi)}τ=1t−1,我们的目标是预测 y t i y_t^i yti在当前时间步骤t。
4 Methodology
在这一节中,我们将详细介绍我们在CF和KT设置中的OT方法。在深入研究各个方法之前,我们先介绍一组适用于本文中所有方法的统一模块。问题嵌入模块
E
q
:
q
→
R
d
E_q:q \rightarrow R^d
Eq:q→Rd将问题索引
q
t
i
q_t^i
qti转换为
R
d
R^d
Rd中的一个d维的、可学习的实值向量。同样地,响应嵌入模块
E
r
:
r
→
R
d
E_r:r \rightarrow R^d
Er:r→Rd将反应的正确性
r
t
i
r_t^i
rti转化为
R
d
R^d
Rd,而选项嵌入模块
E
o
:
{
A
,
B
,
C
,
D
}
→
R
d
E_o:\{A,B,C,D\} \rightarrow R^d
Eo:{A,B,C,D}→Rd将正确选项
c
t
i
c_t^i
cti和所选选项
y
t
i
y_t^i
yti转换为
R
d
R^d
Rd中的向量。我们不对每个问题-选项
(
q
,
o
)
(q,o)
(q,o)对使用单独的嵌入,因为这在我们的实验中会导致过拟合;相反,
(
q
,
o
)
(q, o)
(q,o)的二维嵌入是用
[
E
q
(
q
)
⊕
E
o
(
o
)
]
[E_q(q)\oplus E_o(o)]
[Eq(q)⊕Eo(o)]得到的,其中
⊕
\oplus
⊕是连接运算符。知识点嵌入模块
E
s
:
s
→
R
d
E_{s}:s\rightarrow R^d
Es:s→Rd将知识点索引转换为
R
d
R^d
Rd。由于每个问题可能被标记为多个知识点,我们将最终的知识点嵌入定义为
E
s
(
{
s
t
,
j
i
}
j
=
1
n
t
i
)
=
∑
j
=
1
n
t
i
E
s
(
s
t
,
j
i
)
E_s(\{s_{t,j}^i\}_{j=1}^{n^i_t}) = \sum_{j=1}^{n_t^i} E_s(s_{t,j}^i)
Es({st,ji}j=1nti)=∑j=1ntiEs(st,ji)。一些方法(如NCF)使用一个用户嵌入模块
E
u
:
i
→
R
d
E_{u}:i\rightarrow R^d
Eu:i→Rd,将学生索引转换为
R
d
R^d
Rd。为了简单起见,我们对所有的嵌入模块使用相同的d维向量;然而,每个模块的尺寸可以是不同的。我们通过最小化所选选项的负对数可能性来训练所有的模型参数,表示为 ,其中包含这里列出的嵌入和其他专门针对每个方法的模型参数,即最小化
minimize
Θ
−
∑
i
=
1
∣
Students
∣
∑
t
=
1
∣
Sequence
i
∣
∑
o
∈
{
A
,
B
,
C
,
D
}
I
[
y
t
i
=
o
]
log
p
(
o
∣
q
t
i
;
Θ
)
,
\underset{\Theta}{\text{minimize}}\quad - \textstyle\sum_{i=1}^{|\text{Students}|}\textstyle\sum_{t=1}^{|\text{Sequence}_i|}\textstyle\sum_{o\in \{A,B,C,D\}}\mathbb I[y_t^i=o]\log p(o |q_t^i ;\Theta),
Θminimize−∑i=1∣Students∣∑t=1∣Sequencei∣∑o∈{A,B,C,D}I[yti=o]logp(o∣qti;Θ),
其中
I
\mathbb I
I是指示函数。由于选项是无序的类别,因此得到的损失函数对应于常见的交叉熵损失[16]。
4.1 Option Prediction under the CF Setup
NCF。NCF是最流行的用户-项目互动数据的CF方法之一。在选项预测任务中,学生对应于用户,问题对应于项目。学生i在时间步骤t的NCF的输入,
x
t
i
x_t^i
xti,是
x
t
i
=
[
E
q
(
q
t
i
)
⊕
E
u
(
i
)
⊕
E
s
(
{
s
t
i
}
)
]
.
x_t^i= [E_q(q_t^i) \oplus\, E_u(i)\, \oplus\, E_s(\{s_{t}^i\})].
xti=[Eq(qti)⊕Eu(i)⊕Es({sti})].
使用softmax函数[16]计算四个选项o的预测概率
z
t
i
=
f
(
x
t
i
)
∈
R
4
,
p
(
y
t
i
=
o
∣
x
t
i
)
=
[
softmax
(
z
t
i
)
]
o
,
y
^
t
i
=
arg max
o
∈
{
A
,
B
,
C
,
D
}
[
z
t
i
]
o
,
z_t^i = f(x_t^i)\in R^4,\quad p(y_t^i = o|x_t^i)= [\text{softmax}(z_t^i)]_{o},\quad \hat{y}_t^i = \argmax_{o \in \{A,B,C,D\}} [z_t^i]_{o},
zti=f(xti)∈R4,p(yti=o∣xti)=[softmax(zti)]o,y^ti=o∈{A,B,C,D}argmax[zti]o,其中
f
(
⋅
)
f(\cdot)
f(⋅)表示前馈、全连接的神经网络,
[
]
o
[]_{o}
[]o指的是一个向量的第o个条目。在NCF中,模型参数是前馈神经网络
f
(
⋅
)
f(\cdot)
f(⋅)中的权重和偏置;这个预测模块为后续方法所共享。
PO-BiDKT。NCF的主要缺点是,学生的嵌入是静态的,不会随着学生回答更多的问题和他们的知识状态的变化而更新。循环神经网络,特别是LSTM类型的模型能够将不断变化的知识作为隐藏状态进行建模[35]。然而,我们不能在CF设置中直接使用DKT等方法,因为学生在回答序列中的某些时间步骤的回答没有被观察到。
因此,我们使用以下方法来处理使用缺失观察的递归网络的不断变化的知识状态。每个时间步骤的输入由
x
t
=
[
E
q
(
q
t
i
)
⊕
E
o
(
c
t
i
)
⊕
E
s
(
{
s
t
i
}
)
⊕
(
E
o
(
y
t
i
)
⊙
m
t
i
)
⊕
(
E
l
(
r
t
i
)
⊙
m
t
i
)
]
,
x_t = [E_q(q_t^i) \,\oplus\, E_o(c_t^i) \, \oplus\, E_s(\{s_{t}^i\}) \, \oplus\, \big(E_o(y_t^i)\odot m_t^i\big) \, \oplus\, \big(E_l(r_t^i)\odot m_t^i\big)],
xt=[Eq(qti)⊕Eo(cti)⊕Es({sti})⊕(Eo(yti)⊙mti)⊕(El(rti)⊙mti)],给出,其中
⊙
\odot
⊙表示两个向量之间的元素相乘。在我们不观察选项嵌入和响应正确性嵌入的时间步骤中,我们用
m
t
i
m_t^i
mti来屏蔽它们,但仍然使用问题嵌入作为输入。我们还将DKT中的基本LSTM模块扩展为双向LSTM(Bi-LSTM)[17]。在这里,我们使用两个独立的LSTM模块来计算两个潜在的知识状态,前向状态
h
→
t
\overrightarrow{h}_t
ht总结了学生过去的反应历史,后向状态
h
←
t
\overleftarrow{h}_t
ht总结了学生在时间步骤t的未来反应历史,即
h
→
t
+
1
=
Forward LSTM
(
h
→
t
,
x
t
)
,
h
←
t
−
1
=
Backward LSTM
(
h
←
t
,
x
t
)
.
\overrightarrow{h}_{t+1}= \text{Forward LSTM}(\overrightarrow{h}_t, x_t), \ \overleftarrow{h}_{t-1}= \text{Backward LSTM}(\overleftarrow{h}_t, x_t).
ht+1=Forward LSTM(ht,xt), ht−1=Backward LSTM(ht,xt).最终的潜在知识状态是这两个状态的串联,即
h
t
=
[
h
→
t
⊕
h
←
t
]
h_t=[\overrightarrow{h}_t\oplus \overleftarrow{h}_t]
ht=[ht⊕ht]。除了全连接网络f()的参数外,参数还包括前向和后向LSTM的两套参数。我们称这种方法为部分观察双向DKT,或PO-BiDKT。
预测模块的输出是用
z
t
i
=
f
(
[
h
t
i
⊕
E
q
(
q
t
i
)
⊕
E
o
(
c
t
i
)
⊕
E
s
(
{
s
t
i
}
)
]
)
∈
R
4
.
z_t^i = f([h_t^i \oplus E_q(q_t^i) \oplus E_o(c_t^i) \oplus E_s(\{s_t^i\}) ])\in R^4.
zti=f([hti⊕Eq(qti)⊕Eo(cti)⊕Es({sti})])∈R4.
GCN-augmented PO-BiDKT (BiGIKT)。在我们的数据集中,每个问题都被问题设计者或领域专家标记了一些知识点。这些知识点标签提供了关于这些问题如何关联的重要信息,因为我们希望来自同一知识点的问题有一些共同的特征。
GCN擅长于制定这些关系,并从图形结构的数据中学习。由于我们可以用一个二方图来表示问题与主题的关联矩阵,(松散地)遵循GIKT[45],我们将GCN与PO-BiDKT连接起来,利用知识点标签强加的结构共同学习问题和知识点嵌入。在这个方法中,我们使用知识点和问题的分层表示。从最初的知识点和问题嵌入
E
s
(
s
t
i
)
E_s(s_t^i)
Es(sti) 和
E
q
(
q
t
i
)
E_q(q_t^i)
Eq(qti)开始,第j个知识点的第一层GCN嵌入和第i个问题的第二层GCN嵌入被计算为
s
j
1
=
tanh
(
W
s
s
E
s
(
s
j
)
+
∑
i
∈
N
j
s
W
s
q
E
q
(
q
i
)
∣
N
j
s
∣
)
,
q
i
2
=
tanh
(
W
q
q
E
q
(
q
i
)
+
∑
j
∈
N
i
q
W
q
s
s
i
1
∣
N
i
q
∣
)
,
s_j^{1}\! =\! \text{tanh}\! \Big(\!W_s^sE_s(s_j)\!+\! \frac{\!\sum_{i \in N_j^s}\!W_s^q E_q(q_i)}{|N_j^s|}\!\Big)\!,\,q_i^{2}\! =\! \text{tanh}\!\Big(\!W_q^q E_q(q_i)\!+\! \frac{\sum_{j \in N_i^q}\!W_q^s s_i^{1}}{|N_i^q|}\!\Big),
sj1=tanh(WssEs(sj)+∣Njs∣∑i∈NjsWsqEq(qi)),qi2=tanh(WqqEq(qi)+∣Niq∣∑j∈NiqWqssi1),其中
N
j
s
(
N
i
q
)
N_j^s\,(N_i^q)
Njs(Niq)表示与知识点(问题)
s
j
(
q
i
)
s_j\,(q_i)
sj(qi)相关的问题(知识点)集合,
W
s
s
W_s^s
Wss,
W
s
q
W_s^q
Wsq,
W
q
s
W_q^s
Wqs 和
W
q
q
W_q^q
Wqq是可学习参数矩阵。
双曲切线(tanh)的非线性对向量进行条目式的操作。我们用这些基于GCN的嵌入取代基础Bi-LSTM中的知识点嵌入
E
s
(
s
t
i
)
E_s(s_t^i)
Es(sti)和问题嵌入
E
q
(
q
t
i
)
E_q(q_t^i)
Eq(qti)(公式1和公式2)。这种方法的模型参数除了Bi-LSTM的参数外,还包括GCN的权重参数矩阵。
4.2 Option Prediction under the KT Setup
在KT设置中,我们只用过去的反应来预测未来的反应,并假设过去的每个学生的反应都被观察到。我们对现有的几种基于神经网络的预测方法进行了扩展,以用于选项预测任务。
DKT。我们对DKT方法[35]进行了简单的修改,将其扩展为:i)预测选项,而不是预测回答的正确性;ii)处理被标记为多个知识点的问题(原DKT方法假设每个问题被标记为一个知识点)。我们使用
x
t
=
[
E
q
(
q
t
i
)
⊕
E
o
(
c
t
i
)
⊕
E
s
(
{
s
t
i
}
)
⊕
E
o
(
a
t
i
)
⊕
E
l
(
r
t
i
)
]
x_t = [E_q(q_t^i) \oplus E_o(c_t^i) \oplus E_s(\{s_{t}^i\}) \oplus E_o(a_t^i) \oplus E_l(r_t^i)]
xt=[Eq(qti)⊕Eo(cti)⊕Es({sti})⊕Eo(ati)⊕El(rti)]作为DKT LSTM输入模块的输入。学生的隐藏知识状态用LSTM模型计算为
h
t
+
1
=
LSTM
(
h
t
,
x
t
)
h_{t+1}= \text{LSTM}(h_t, x_t)
ht+1=LSTM(ht,xt).选择每个选项的预测概率用
z
t
i
=
f
(
[
h
t
i
⊕
E
q
(
q
t
i
)
⊕
E
o
(
c
t
i
)
⊕
E
s
(
{
s
t
i
}
)
]
)
∈
R
4
,
y
^
t
i
=
arg max
o
∈
{
A
,
B
,
C
,
D
}
[
z
t
i
]
o
.
z_t^i = f([h_t^i \oplus E_q(q_t^i) \oplus E_o(c_t^i) \oplus E_s(\{s_t^i\}) ])\in R^4,\, \hat{y}_t^i = \argmax_{o \in \{A,B,C,D\}} [z_t^i]_{o}.
zti=f([hti⊕Eq(qti)⊕Eo(cti)⊕Es({sti})])∈R4,y^ti=o∈{A,B,C,D}argmax[zti]o.
DKVMN。动态键值记忆网络(DKVMN)方法不使用LSTMs来模拟潜在的知识状态转换,而是使用一个键值记忆网络来检索和更新每一个时间步骤的知识,使用外部记忆模块为
h
t
+
1
=
MemoryModule
(
h
t
,
x
t
)
h_{t+1}= \text{MemoryModule}(h_t, x_t)
ht+1=MemoryModule(ht,xt);详情请参考[47] 。我们对DKVMN内存模块使用与DKT相同的输入和输出结构。
AKT。我们还调整了AKT,一种基于注意力网络的、最先进的选择预测方法。AKT为每个时间步骤计算一个query、一个key和一个value向量,然后使用不同时间步骤的query和key向量之间的相似性来关注过去的问题,并使用其相应的value向量来检索过去获得的知识。我们将query、key和value向量分别计算为
q
t
=
W
Q
n
\mathbf{q}_t =W^{Q}\mathbf{n}
qt=WQn,
k
t
=
W
K
n
\mathbf{k}_t =W^{K}\mathbf{n}
kt=WKn, and
v
t
=
W
V
[
E
l
(
r
t
i
)
⊕
E
q
(
q
t
i
)
⊕
E
o
(
y
t
i
)
⊕
E
o
(
c
t
i
)
]
\mathbf{v}_t =W^{V}[E_l(r_t^i) \oplus E_q(q_t^i) \oplus E_o(y_t^i) \oplus E_o(c_t^i)]
vt=WV[El(rti)⊕Eq(qti)⊕Eo(yti)⊕Eo(cti)]。其中,
W
Q
W^{Q}
WQ,
W
K
W^{K}
WK, and
W
V
W^{V}
WV是query、key和value,
n
=
[
E
q
(
q
t
i
)
⊕
E
s
(
{
s
t
i
}
)
⊕
E
o
(
c
t
i
)
]
\mathbf{n}=[E_q(q_t^i) \oplus E_s ( \{s_{t}^i\} )\oplus E_o(c_t^i)]
n=[Eq(qti)⊕Es({sti})⊕Eo(cti)].
然后,检索到的潜在知识状态被计算为
h
t
=
g
(
∑
τ
<
t
α
t
,
τ
v
τ
)
,
h_t = g \Big(\sum_{\tau<t} \alpha_{t,\tau} \mathbf{v}_{\tau}\Big),
ht=g(∑τ<tαt,τvτ),其中g是另一个前馈网络,
α
t
,
τ
\alpha_{t,\tau}
αt,τ是当前时间步骤t的query和过去时间步骤τ的key之间的归一化注意分数。对于AKT,我们采用指数衰减模块来计算注意力得分[15],然后使用注意力加权值
h
t
i
h_t^i
hti和全连接网络
f
(
⋅
)
f(\cdot)
f(⋅)来计算输出。
5 Experiments
实验设置。除了选项预测任务外,我们还在标准的、二进制值的反应正确性预测任务下对所有方法进行评估。我们不需要使用一套单独的方法;相反,我们可以简单地将选项预测模块的最终输出层
f
:
⋅
→
R
4
f: \cdot \rightarrow R^4
f:⋅→R4替换为针对所有OT方法由单一节点
f
:
⋅
→
R
1
f: \cdot \rightarrow R^1
f:⋅→R1组成的输出层;由此产生的损失函数对应于标准的二进制交叉熵损失。对于选项预测,我们使用准确性和宏观F1分数作为评价指标。对于正确性预测,我们使用准确性作为唯一的评价指标,这与选项预测任务相一致。我们为每个问题-选项对单独计算F1分数,并在所有这些选项对中取平均值。这个指标对每个问题中的每个选项都一视同仁,因此放大了很少被选中的选项的影响。作为参考,在Eedi和EdNet数据集上,一个普通问题的选项选择概率(从最频繁到最不频繁)分别为57%、25%、11%、7%,以及66%、20%、10%、4%。对于选项预测,随机分类器在这两个数据集上的平均宏观F1分数和准确率分数为0.25,而多数类分类器在Eedi和EdNet数据集上的平均宏观F1分数(准确率)分别为0.184(57%)和0.205(66%)。
训练和测试。我们在两个数据集上对所有方法进行标准的k-fold交叉验证(k=5)。在CF设置下,平均有20%的时间步骤(对每个学生)被随机选择为保留的测试集,20%的时间步骤被随机选择为验证集,其他60%被选择为训练集,以训练所有的方法。在KT设置下,随机选择的20%的学生的所有时间步骤被用作测试集,验证集和训练集的构造类似。
网络结构和超参数。由于数据集很大,我们做了最小的超参数调整,并将所有方法的大部分数值设置为默认值;探索性实验发现,评价结果在大部分参数值上都是稳健的。我们将所有方法的问题、知识点、选项、响应嵌入维度设置为:CF设置为d∈{32,64},KT设置为d∈{64,128}。我们使用Adam优化器[22]来训练所有的模型,批次大小为64个学生,以确保整个批次可以装入我们的机器(配备了一个NVIDIA Titan X GPU)的内存。对于所有的方法,我们将Eedi/EdNet数据集的学习率设置为10-4/10-3,并将所有的方法运行200个epochs,根据验证集的损失进行早期停止。在CF/KT设置下,我们将所有方法的潜在知识状态(ht)维度设置为256/512。对于NCF,我们选择用户嵌入维度为d=256。
结果和讨论。表1列出了所有OT方法在CF和KT设置下,在两个数据集的选项预测和正确性预测任务中的表现;我们报告了五个折的平均数和标准偏差。我们观察到,与正确性预测任务相比,选项预测任务的准确度指标明显下降(10%),这是预料之中的,因为有四个类别(A、B、C、D)需要预测,而不是两个类别(正确/不正确)。由于这种差异,正确性预测任务可以被看作是选项预测任务中的一个子任务,即计算学生选择正确选项的概率。不同方法的表现在所有情况下也是相当一致的。
我们观察到基于循环神经网络的方法,如PO-BiDKT在所有情况下的表现都明显好于NCF。这一观察表明,即使在模型评估的CF设置中,考虑到学生知识不断发展的性质的方法仍然比不考虑这些时间动态的流行CF方法更有效。总的来说,我们观察到复杂的模型结构对选择预测任务的性能提升是微不足道的。这一观察结果表明,需要对选项预测任务做更多的工作,以了解学生决定选择一个特定的错误选项背后的动态,这也是我们在第5.1节中探索的动力。在KT设置中,我们观察到DKVMN在Eedi数据集上的表现最好,而AKT在EdNet数据集上的表现最好。这一观察表明,当有大量的训练数据时,复杂的神经网络结构(如注意力模块)更有利。
在这两个设置中,我们观察到所有方法的F1分数都很低;尽管显然不是简单地预测最频繁的选项,但由于类的不平衡,这些方法的性能还有很大的改进空间。对于很少被选中的选项,可能的方法包括对其进行过度采样[6];然而,由于学生对不同问题的回答不是独立的数据点,这些方法如何应用于选项追踪任务并不明显。
5.1 Clustering Incorrect Options
为了定性地评估我们的选项追踪方法,我们试图将多个问题中的错误选项分组,并检查同一分组中的问题-选项对是否对应于同一个基本错误。为此,我们在Eedi数据集上训练了一个改进版的PO-BiDKT[43];我们为每个问题-选项对学习一个嵌入模块 E q , o ( q , o ) : q × o → R d E_{q,o}(q,o):q\times o\rightarrow R^d Eq,o(q,o):q×o→Rd。然后,我们使用潜在知识状态 h t i h_t^i hti和问题-选项对嵌入计算选项选择概率,即 p ( o ∣ q t i ) = f ( h t i ) T E q , o ( q y i , o ) ∑ o ′ f ( h t i ) T E q , o ( q y i , o ′ ) p(o|q_t^i) = \frac{f(h_t^i)^T E_{q,o}(q_y^i,o) }{\sum_{o'}f(h_t^i)^T E_{q,o}(q_y^i,o')} p(o∣qti)=∑o′f(hti)TEq,o(qyi,o′)f(hti)TEq,o(qyi,o)。这种修改使预测性能略有下降,但在问题-选项对嵌入中编码了信息,以便我们对它们进行聚类并搜索学生的共同错误。
我们在知识点33(BIDMAS)的问题中选择了所有不正确的选项(31×3=63),其中问题图像是在Eedi数据集的较小子集上发布的;详见[43]。一位领域专家根据哪个错误可能导致学生选择该选项,对每个选项进行了人工标注,共产生了14个高级错误(无法命名的错误被排除在外),每个错误都对应于不同问题的多个选项;进一步将其拆分为细化的错误,会产生没有意义的聚类。我们对学到的问题-选项对嵌入进行k-means聚类[29],并将其与专家提供的 "真实值"选项聚类进行比较。
由于空间上的限制,我们只用两个常用的指标来报告聚类质量的定量结果。调整后的Rand指数[39]和Fowlkes-Mallows指数[14];前者的范围是[-1,1],而后者的范围是[0,1],1对应完美的聚类。
表2列出了这些基于地面真实专家标签的问题-选项对嵌入的指标。总的来说,聚类性能是可以接受的,但不是很好。我们观察到一些错误,比如 “涉及负数的计算中的符号错误”,其对应的选项簇相对容易识别(在专家标注的与该错误对应的8个选项中,有5个被放入同一簇)。另一方面,一些选项,如69D和293C(图1的左半部分)对应于同一个错误,但没有被归入同一个群组。一个可能的解释是,学生可能没有持续表现出错误,就像之前的研究发现的那样[41];在选择69D的学生中,只有51%的人选择了293C,而34%的人选择了正确选项293B。因此,需要进一步的工作来研究更强大的KT方法和聚类算法是否能更有效地识别错误集群。尽管如此,我们的方法产生了一个起点,减少了领域专家手动标注错误的努力,并为他们提供了在数据驱动支持下的方法。
6 Conclusions and Future Work
分析学生在多选题中选择的确切选项,有可能发现他们的错误模式,并帮助教师提供有针对性的反馈以提高学习效果。在本文中,我们提出了一套方法来扩展常见的知识追踪方法,这些方法只分析学生对问题的回答的正确性,以分析他们在多选题上选择的确切选项。我们在两个大规模的数据集上通过定量实验验证了这些方法在预测学生在每个问题上所选择的选项方面的能力,并在根据基本错误对不正确的选项进行聚类方面进行了定性实验。未来的工作有很多途径。首先,我们需要开发能够意识到学生错误不断变化的方法。一个可能的方法是开发能够明确说明过去错误重复出现的方法,比如使用神经复制机制[18];这些方法可能有助于我们跟踪学生纠正错误的进展。其次,选项预测任务的低F1分数表明,它比知识追踪文献中典型的正确性预测任务更具挑战性,因此值得更多关注。