一种试题难度增强的综合知识追踪方法

文档序号:33464686发布日期:2023-03-15 06:09阅读:162来源:国知局
一种试题难度增强的综合知识追踪方法

1.本发明属于人工智能和教育数据领域,尤其涉及一种试题难度增强的综合知识追踪方法。
技术背景
2.知识追踪的任务是利用学生的历史学习过程交互数据,对学生的知识状态,即知识的掌握程度随时间的变化过程进行追踪和建模,以能更为准确的预测学生在未来学习中的答题表现以及知识掌握水平。近年来,知识追踪因其在教育中的重要意义而备受关注,在智能辅导系统、在线教育平台以及个性化习题推荐系统中都得到了广泛的应用。
3.知识追踪有许多解决方法,例如概率图模型和贝叶斯模型,而随着深度神经网络的快速发展,基于深度知识追踪的相关模型取得了出色的效果,例如最先将深度学习引入知识追踪问题并用隐层状态代表知识状态的dkt模型,通过注意力机制捕捉学生在相似题目上的相似表现的akt模型,通过图神经网络对知识状态进行建模的gkt模型。但目前只有少部分方法考虑了试题难度对学生知识掌握的影响,它们仅仅把答对题目的人数比例作为试题难度,这样粗糙的处理方式对一些长尾试题不合理。其次,不同的方法在建模知识追踪过程时考虑的因素都不同,目前尚没有一个统一的模型综合考虑了学习过程中的多种因素,如知识更新、遗忘、试题相关性、学生心理能力等。


技术实现要素:

4.本发明的目的是提供一种试题难度增强的综合知识追踪方法,其目的通过对学生的做题能力和试题及知识点难度的充分分析作为输入的重要部分并通过注意力机制累积回答与当前试题相关的历史试题时的知识状态,在考虑学生的答题过程心理能力的场景下通过对学生学习过程的学习收获和遗忘机制进行建模,较为准确的预测学生表现,追踪学生知识掌握水平的变化。
5.一种试题难度增强的综合知识追踪方法,其特征在于,包括:
6.由学生的历史答题记录数据与相应的试题数据构成的数据集,初始化定义学生的答题过程心理能力数据,经过数据处理后进行评估获得学生的答题能力以及试题和知识点难度,对数据进行嵌入处理,最后使用深度学习方法训练知识追踪模型,得到每个学生的知识状态和优化后的心理能力数据并通过学生的知识状态和心理能力数据预测学生在未来试题上的表现。
7.历史答题记录信息包括:试题号、试题得分情况以及每道试题所涉及的知识点;
8.对于一个学生历史答题记录数据集d,包含了i名学生的集合s={s1,s2,

,si,

,si},包含了j道试题集合e={e1,e2,

,ej,

,ej}以及知识点集合k={k1,k2,

,km,

,km},每一道试题都被预先标注了所涉及的知识点,试题与知识点的联系通过q矩阵来进行表示,q∈rj×m,矩阵由0和1组成,q
jm
=1表示试题ej涉及知识点km反之则不涉及。其中学生的答题交互序列定义为x={(e1,c1,r1),(e2,c2,r2),

,(e
t
,c
t
,r
t
)}。其中一个元组(e
t
,c
t
,r
t
)代表
一个学习单元,其中e
t
代表试题,c
t
代表与试题e
t
相关的知识点集合,r
t
代表回答正确与否即r
t
∈{0,1},l代表回答正确,0代表回答错误。
9.学生的答题过程心理能力数据包括;
10.初始化一个矩阵的矩阵,其中每一行就代表了一个学生的答题心理能力即学生s
t
的心理能力可以用向量来表示。
11.学生做题能力以及试题和知识点难度计算包括;
12.学生si做题能力gi的计算公式如下:
[0013][0014]
其中ei是学生si在学习过程中的试题序列,ej代表ei中的第j题,|ei|代表试题序列的长度,j代表试题数量,r
ij
∈{0,1}代表学生si回答试题序列中试题ej正确与否。公式背后的直觉是答题数量越多并且正确率越高的学生的做题能力高。
[0015]
试题ej难度edj的计算公式如下:
[0016][0017]
其中sj代表回答过试题ej的学生集合,gi代表sj中的学生si的做题能力其中|sj|代表学生集合的长度,i代表总学生数量,r
ij
∈{0,1}代表学生si回答试题ej正确与否。公式背后的直觉是对于试题ej,回答错误的学生的做题能力越高,回答试题的人数越少,则试题的难度越大。
[0018]
知识点km难度kdm的计算公式如下:
[0019][0020]
其中em代表涉及该知识点的试题的集合,|em|代表集合长度,edj代表em中第j题的试题难度,即知识点难度通过对涉及到该知识点的所有试题的难度求平均值计算得到。
[0021]
对数据进行嵌入处理包括:
[0022]
对试题集合e进行one-hot编码,随后使用嵌入矩阵对试题向量进行embedding操作,其中j代表试题的数量,de代表embedding后的试题向量维度,随后每个学习单元的试题e
t
就可以用向量来表示。
[0023]
对知识点集合k进行one-hot编码,随后使用嵌入矩阵对试题向量进行embedding操作,其中m代表知识点的数量,dk代表embedding后的知识点向量维度。随后每个知识点km可以用向量km表示,并且每个交互单元的试题e
t
所涉及的知识点集合c
t
就可以用集合中的知识点向量相加后表示,即知识点集合c
t
可以用向量来表示,公式如下:
[0024][0025]
对试题难度按照最大最小值区间划分为n个档次,使得试题难度从标量转化为类别。对难度类别进行one-hot编码后得到试题难度向量,使用嵌入矩阵对试题难度向量进行embedding操作,其中d
l
表示embedding后的试题难度向量维度,即试题e
t
的难度可以用向量来表示。试题难度类别划分公式如下:
[0026][0027]
其中代表所有试题中的难度最大值,代表所有试题中的难度最小值,edj代表试题ej难度,代表试题ej难度转化成类别类型后的值;
[0028]
对知识点难度按照最大最小值区间划分为n个档次,使得知识点难度从标量转化为类别。对知识点难度类别进行one-hot编码后得到知识点难度向量,使用嵌入矩阵对试题难度向量进行embedding操作,其中d
l
表示embedding后的试题难度向量维度,即知识点km的难度可以用向量来表示。试题难度类别划分公式如下:
[0029][0030]
其中代表所有知识点中的难度最大值,代表所有知识点中的难度最小值,kdm代表知识点km的难度,klm代表知识点km难度转化成类别类型后的值;
[0031]
每个交互单元的试题e
t
所涉及的知识点集合c
t
的难度就可以用知识点难度向量相加后求平均值计算得到,即知识点集合c
t
的难度可以用向量来表示。计算知识点集合难度的公式如下:
[0032][0033]
其中|c
t
|代表知识点集合的长度,klm代表c
t
中知识点km的难度向量;
[0034]
随后通过将试题向量e
t
、试题相关知识点集合向量c
t
、试题难度向量el
t
、试题相关知识点集合难度向量cl
t
连接在一起并使用多层感知机进行深度融合得到随后得到完整的试题信息嵌入
[0035][0036]
其中代表拼接操作,是权重矩阵,是偏置项。
[0037]
将试题回答进行one-hot编码后,使用嵌入矩阵对试题向量进行embedding操作,其中da表示embedding后的回答向量维度,随后每个学习单元的回答r
t
就可以用向量来表示。
[0038]
知识追踪模型包括:
[0039]
注意力机制模块:将当前学习单元的试题信息嵌入e
t
乘以矩阵得到
query向量将包含当前学习单元前的试题信息嵌入向量集合{e1,e2,

,e
t-1
}内的向量分别乘以矩阵到key向量集合{k1,k2,

,k
t-1
}将key向量集合中的向量分别与q
t
进行点乘后除以得到集合α
t
={α
t,1

t,2
,


t,t-1
},对α集合做softmax操作得到注意力分数集合α

t
={α

t,1


t,2
,



t,t-1
}将α

t
中的注意力分数分别乘以知识状态集合{h1,h2,

,h
t-1
}中的向量得到累积知识状态计算公式如下所示:
[0040][0041]
学习模块:试题信息嵌入e
t
、回答嵌入a
t
以及知识点掌握状态可以通过一个全连接层对学习增益进行建模得到学习增益lg
t

[0042][0043]
其中代表拼接操作,是权重矩阵,是偏置项。
[0044]
考虑到学习增益并非能完全转换为学生知识的增长,所以设计了一个学习门来控制学生转化能力:
[0045][0046]
其中代表拼接操作,是权重矩阵,是偏置项。
[0047]
随后将乘以lg
t
得到真正的学习增益lg
t

[0048][0049]
遗忘机制模块:在学习的过程中会有遗忘现象影响到知识的掌握程度,因此使用一个遗忘门来模拟遗忘效应:
[0050][0051]
其中代表拼接操作,是权重矩阵,是偏置项。
[0052]
随后我们可以通过将遗忘门乘以上一次的知识点掌握状态h
t-1
加上lg
t
得到当前的知识点掌握状态h
t

[0053][0054]
预测模块:在预测模块,我们通过下一道试题的信息嵌入、学生的当前知识点掌握状态以及学生的心理能力通过一个全连接层来投射到输出层得到输出向量y
t+1

[0055][0056]
其中代表拼接操作,是权重矩阵,是偏置项。
[0057]
使用一个全连接层作为输出层输出最终对试题回答正确性的预测,取值为0到1之间并设置一个阈值,若数值大于阈值则判断回答正确,反之不正确。
[0058][0059]
其中是权重向量,b6∈r1是偏置项。
[0060]
在模型训练时使用二元交叉熵损失函数计算题目回答是否正确的预测的损失值:
[0061]
loss=bceloss(y
t+1
,r
t+1
)
[0062]
其中r
t+1
∈{0,1}代表试题e
t+1
的回答正确与否的真实值。
[0063]
与现有技术相比,本发明具有如下优点:
[0064]
本发明实施例提供的上述方案,提出了一种综合考虑学生做题能力以及试题和知识点难度计算的公式,通过注意力模块累积回答历史答题序列中与当前试题相关联的试题时的知识状态,在考虑心理能力的场景下对学生在学习过程中的学习收益和知识遗忘机制进行建模,得到与学习过程相符合的学生变化的知识状态。
[0065]
本发明运用深度知识追踪模型,对学生答题中的学习过程进行建模,追踪学生在学习过程中不断变化的知识状态。本发明综合考虑试题的难易情况、学生的做题能力和心理能力等因素贴近真实教育背景下的学习过程以获得合理的知识状态,最终根据学生的知识状态对学生的答题表现进行精准的预测。
附图说明
[0066]
图1是本发明提出方法的流程图;
[0067]
图2是本发明设计的模型架构图;
具体实施方式
[0068]
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0069]
本发明的目的是通过以下技术方案来实现的:
[0070]
一种试题难度增强的综合知识追踪方法,包含以下内容:
[0071]
获取学生的历史答题交互数据与相应的试题信息数据构成的数据集并进行预处理。
[0072]
通过公式计算学生的做题能力和试题及知识点的难度,初始化生成学生的心理能力矩阵并对数据进行嵌入。
[0073]
利用注意力机制计算与当前试题相关的历史试题的累积知识点状态。
[0074]
通过累积知识点状态、当前试题信息嵌入、试题回答嵌入、心理能力计算知识增益。
[0075]
通过累积知识点状态、当前试题嵌入、回答嵌入、心理能力计算经过知识遗忘的知识状态并与知识增益组合成新的知识状态。
[0076]
通过学生的当前知识状态、下一道试题信息嵌入、心理能力对试题的回答进行预测。
[0077]
上述方法中计算学生的做题能力和试题及知识点的难度的公式如下:
[0078]
学生si做题能力gi的计算公式:
[0079]
[0080]
其中ei是学生si在学习过程中的试题序列,|ei|代表试题序列的长度,r
ij
代表序列中的试题ej回答正确与否,j代表所有的试题数量,r
ij
∈{0,1}代表学生si回答试题序列中试题ej正确与否。
[0081]
试题ej难度edj的计算公式如下:
[0082][0083]
其中sj代表回答过试题ej的学生集合,|sj|代表学生集合的长度,gi代表sj中学生si的做题能力,i代表总学生数量,r
ij
∈{0,1}代表学生si回答试题ej正确与否。
[0084]
知识点km难度kdm的计算公式如下:
[0085][0086]
其中em代表涉及该知识点的试题的集合,|em|代表试题集合的长度,edj代表em中试题ej的难度,即知识点难度通过对涉及到该知识点的所有试题的难度求平均值计算得到。
[0087]
上述方法中利用注意力机制计算与当前试题相关的历史试题的累积知识点状态的方法和公式如下:
[0088]
通过计算当前试题于历史交互序列中的试题信息的相似度获取注意力分数,并将注意力分数与先前的知识点状态相乘,获得累积当前知识点状态。
[0089]
计算公式如下所示:
[0090][0091]
其中,{h1,h2,

,h
t-1
}代表知识状态集合,{α

t,1


t,2
,



t,t-1
}代表注意力分数集合,代表通过计算得到的累积知识点状态。
[0092]
上述方法中通过累积知识点状态、当前试题信息嵌入、试题回答嵌入、心理能力计算知识增益的方法和公式如下:
[0093]
可以通过一个全连接层对学习增益进行建模得到学习增益lg
t

[0094][0095]
其中w2是权重矩阵,b2是偏置项。
[0096]
考虑到学习增益并非能完全转换为学生知识的增长,通过学习门来控制学生转化能力:
[0097][0098]
其中w3是权重矩阵,b3是偏置项。
[0099]
将乘以lg
t
得到真正的学习增益lg
t

[0100][0101]
上述方法中通过累积知识点状态、当前试题嵌入、回答嵌入、心理能力计算经过知识遗忘的知识状态并与知识增益组合成新的知识状态的方法和公式如下:
[0102]
在学习的过程中会有遗忘现象影响到知识的掌握程度,使用一个遗忘门来模拟遗忘效应:
[0103][0104]
其中w4是权重矩阵,b4是偏置项。
[0105]
通过将遗忘门乘以上一次的知识点掌握状态h
t-1
加上lg
t
得到当前的知识点掌握状态h
t

[0106][0107]
上述方法中通过学生的当前知识状态、下一道试题信息嵌入、心理能力对试题的回答进行预测的方法和公式如下:
[0108]
我们通过该试题的信息嵌入、学生的当前知识点掌握状态以及学生的心理能力通过一个全连接层来投射到输出层得到输出向量y
t+1

[0109][0110]
其中w5是权重矩阵,b5是偏置项。
[0111]
使用一个全连接层作为输出层输出最终对试题回答正确性的预测y
t+1
,取值为0到1之间并设置一个阈值,若数值大于阈值则判断回答正确,反之不正确。
[0112][0113]
其中w6是权重向量,b6是偏置项。
[0114]
上述公式中的e
t
代表试题信息嵌入、e
t+1
代表下一题试题信息嵌入、α
t
代表回答嵌入、p
t
代表心理能力向量、代表累积的知识点掌握状态、h
t-1
代表前一时刻知识点掌握状态、h
t
代表当前知识点掌握状态、σ代表激活函数sigmoid、代表拼接操作。
[0115]
具体地,本发明实施例提供一种试题难度增强的综合知识追踪方法,如图1所示,主要包括:
[0116]
步骤1、获取学生的历史答题交互数据与相应的试题信息数据构成的数据集并进行预处理。历史答题交互数据包括每个学生学习过程中试题的答题情况,试题信息数据包括每一道试题所涉及的知识点。
[0117]
预处理操作包括数据清洗并对数据集中的数据使用统一的数学形式进行表示:对于一个学生历史答题记录数据集d,包含了i名学生的集合s={s1,s2,

,si,

,si},包含了j道试题集合e={e1,e2,

,ej,

,ej}以及知识点集合k={k1,k2,

,km,

,km},每一道试题都被预先标注了所涉及的知识点,试题与知识点的联系通过q矩阵来进行表示,q∈rj×m,矩阵由0和1组成,q
jm
=1表示试题ej涉及知识点km反之则不涉及。其中学生的答题交互序列定义为x={(e1,c1,r1),(e2,c2,r2),

,(e
t
,c
t
,r
t
)}。其中一个元组(e
t
,c
t
,r
t
)代表一个学习单元,其中e
t
代表试题,c
t
代表与试题e
t
相关的知识点集合,r
t
代表回答正确与否即r
t
∈{0,1},1代表回答正确,0代表回答错误。
[0118]
步骤2、通过公式计算学生的做题能力和试题及知识点的难度,生成学生的心理能力矩阵并对数据进行嵌入。
[0119]
学生si做题能力的计算公式如下:
[0120][0121]
其中ei是学生si在学习过程中的试题序列,ej代表ei中的第j题,|ei|代表试题序列的长度,j代表试题数量,r
ij
∈{0,1}代表学生si回答试题序列中试题ej正确与否;
[0122]
试题ej难度edj的计算公式如下:
[0123][0124]
其中sj代表回答过试题ej的学生集合,gi代表sj中的学生si的做题能力其中|sj|代表学生集合的长度,i代表总学生数量,r
ij
∈{0,1}代表学生si回答试题ej正确与否;知识点km难度kdm的计算公式如下:
[0125][0126]
其中em代表涉及该知识点的试题的集合,|em|代表集合长度,edj代表em中第j题的试题难度,即知识点难度通过对涉及到该知识点的所有试题的难度求平均值计算得到;
[0127]
生成学生的心理能力矩阵并对数据的嵌入包括:初始化一个矩阵的矩阵,其中每一行就代表了一个学生的答题心理能力即学生s
t
的心理能力可以用向量来表示。
[0128]
对试题集合e进行one-hot编码,随后使用嵌入矩阵对试题向量进行embedding操作,其中j代表试题的数量,de代表embedding后的试题向量维度,随后每个学习单元的试题e
t
就可以用向量来表示。
[0129]
对知识点集合k进行one-hot编码,随后使用嵌入矩阵对试题向量进行embedding操作,其中m代表知识点的数量,dk代表embedding后的知识点向量维度。随后每个知识点km可以用向量km表示,并且每个交互单元的试题e
t
所涉及的知识点集合c
t
就可以用集合中的知识点向量相加后表示,即知识点集合c
t
可以用向量来表示,公式如下:
[0130][0131]
对试题难度按照最大最小值区间划分为n个档次,使得试题难度从标量转化为类别。对难度类别进行one-hot编码后得到试题难度向量,使用嵌入矩阵对试题难度向量进行embedding操作,其中d
l
表示embedding后的试题难度向量维度,即试题e
t
的难度可以用向量来表示。试题难度类别划分公式如下:
[0132]
[0133]
其中代表所有试题中的难度最大值,代表所有试题中的难度最小值,edj代表试题ej难度,代表试题ej难度转化成类别类型后的值;对知识点难度按照最大最小值区间划分为n个档次,使得知识点难度从标量转化为类别。对知识点难度类别进行one-hot编码后得到知识点难度向量,使用嵌入矩阵对试题难度向量进行embedding操作,其中d
l
表示embedding后的试题难度向量维度,即知识点km的难度可以用向量来表示。试题难度类别划分公式如下:
[0134][0135]
其中代表所有知识点中的难度最大值,代表所有知识点中的难度最小值,kdm代表知识点km的难度,klm代表知识点km难度转化成类别类型后的值;
[0136]
每个交互单元的试题e
t
所涉及的知识点集合c
t
的难度就可以用知识点难度向量相加后求平均值计算得到,即知识点集合c
t
的难度可以用向量来表示。计算知识点集合难度的公式如下:
[0137][0138]
其中|c
t
|代表知识点集合的长度,klm代表c
t
中知识点km的难度向量;
[0139]
随后通过将试题向量e
t
、试题相关知识点集合向量c
t
、试题难度向量el
t
、试题相关知识点集合难度向量cl
t
连接在一起并使用多层感知机进行深度融合得到随后得到完整的试题信息嵌入
[0140][0141]
其中代表拼接操作,是权重矩阵,是偏置项。
[0142]
将试题回答进行one-hot编码后,使用嵌入矩阵对试题向量进行embedding操作,其中da表示embedding后的回答向量维度,随后每个学习单元的回答r
t
就可以用向量来表示。
[0143]
步骤3、利用注意力机制计算与当前试题相关的历史试题的累积知识点状态,具体模块如图2所示。
[0144]
注意力机制模块:将当前学习单元的试题信息嵌入e
t
乘以矩阵得到query向量将包含当前学习单元前的试题信息嵌入向量集合{e1,e2,

,e
t-1
}内的向量分别乘以矩阵到key向量集合{k1,k2,

,k
t-1
}将key向量集合中的向量分别与q
t
进行点乘后除以得到集合α
t
={α
t,1

t,2
,


t,t-1
},对α集合做softmax操作得到注意力分数集合α

t
={α

t,1


t,2
,



t,t-1
}将α

t
中的注意力分数分别乘以知识状态集合{h1,h2,

,h
t-1
}中的向量得到累积知识状态计算公式如下所示:
[0145][0146]
步骤4、通过累积知识点状态、当前试题信息嵌入、试题回答嵌入、心理能力计算知
识增益,具体模块如图2所示。
[0147]
学习模块:试题信息嵌入e
t
、回答嵌入a
t
以及知识点掌握状态可以通过一个全连接层对学习增益进行建模得到学习增益:
[0148][0149]
其中代表拼接操作,是权重矩阵,是偏置项。
[0150]
考虑到学习增益并非能完全转换为学生知识的增长,所以设计了一个学习门来控制学生转化能力:
[0151][0152]
其中代表拼接操作,是权重矩阵,是偏置项。
[0153]
随后将乘以lg
t
得到真正的学习增益lg
t

[0154][0155]
步骤5、通过累积知识点状态、当前试题嵌入、回答嵌入、心理能力计算经过知识遗忘的知识状态并与知识增益组合成新的知识状态,具体模块如图2所示。
[0156]
遗忘机制模块:在学习的过程中会有遗忘现象影响到知识的掌握程度,因此使用一个遗忘门来模拟遗忘效应:
[0157][0158]
其中代表拼接操作,是权重矩阵,是偏置项。
[0159]
随后我们可以通过将遗忘门乘以上一次的知识点掌握状态h
t-1
加上lg
t
得到当前的知识点掌握状态h
t

[0160][0161]
步骤6、通过学生的当前知识状态、下一道试题信息嵌入、心理能力对试题的回答进行预测,具体模块如图2所示。
[0162]
预测模块:在预测模块,我们通过下一道试题的信息嵌入、学生的当前知识点掌握状态以及学生的心理能力通过一个全连接层来投射到输出层得到输出向量y
t+1

[0163][0164]
其中代表拼接操作,是权重矩阵,是偏置项。
[0165]
使用一个全连接层作为输出层输出最终对试题回答正确性的预测,取值为0到1之间并设置一个阈值,若数值大于阈值则判断回答正确,反之不正确。
[0166][0167]
其中是权重向量,b6∈r1是偏置项。
[0168]
在模型训练时使用二元交叉熵损失函数计算题目回答对错的预测的损失值:
[0169]
loss=bceloss(y
t+1
,r
t+1
)
[0170]
其中r
t+1
∈{0,1}代表试题e
t+1
的回答正确与否的真实值。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1