【技术实现步骤摘要】
一种应用于多元编程习题的深度知识追踪方法及系统
[0001]本专利技术涉及一种应用于多元编程习题的深度知识追踪方法及系统,具体而言,是一种基于多头注意力机制的知识追踪技术,在编程学习领域中应用,可对学习者做题产生的多元习题数据进行模型预测。
技术介绍
[0002]知识追踪技术是通过学习者的历史答题记录,挖掘潜在的学习规律,捕获知识状态的变化,并预测学习者在未来的解题表现,进行因材施教,实现为学习者免费提供高质量个性化教学。传统的知识追踪模型有项目反应理论模型,贝叶斯模型以及因子分析模型,这些模型解释性较好,但模型的预测效果一般。随着人工智能技术的不断发展,深度学习技术被广泛应用于知识追踪领域。相较于传统的知识追踪模型,利用循环神经网络、记忆网络、注意力机制等深度学习技术的知识追踪模型,可以捕获学生知识的更复杂表示,精度有了更显著的提升。因此,深度知识追踪技术在线学习平台、智能辅导系统等信息化教学平台中得到广泛应用,旨在帮助教育者获取和了解学生的知识水平,进行个性化教学。此外,该技术还在职业测评、学生编程、语言学习等领域得到了探索和应用。在学生编程场景中,深度知识追踪技术经过不断的研究发展,被应用于编程学习平台,相关研究围绕编程学情分析、预测与个性化导学等方面进行了有益的探索。
[0003]具体的说,在编程学情预测领域,深度知识追踪是从学生的编程习题练习序列和提交的历史代码中,追踪预测学生的知识掌握情况。分析学生提交的源代码中包含的知识点,来判断学生的掌握程度。因此很多研究者研究了各种方法提取学生代码特征,并用 ...
【技术保护点】
【技术特征摘要】
1.一种应用于多元编程习题的深度知识追踪方法,其特征在于,包括:接收编程平台系统的用户做题数据表和编译日志数据文件;对用户做题数据表和编译日志数据进行数据预处理;数据预处理包括:对用户做题数据表中的用户做题数据进行预处理,包括数据集成、数据格式转换和数据清洗;以及对用户编译日志数据文件预处理进行错误信息提取;对错误信息进行日志模式聚类;对每一类编译错误进行分析,建立编译错误知识库,并进行相关知识点映射和提取编译错误关键字,其中,知识点映射是依据错误类型和错误发生代码行包含的代码信息进行相关的知识点映射;从处理后的用户做题数据表中提取习题ID、用户ID、答题结果、知识点、时间信息、习题难度和习题类型,并存储在用户做题数据表中;以用户ID和时间信息为标签进行序列的排序;构建题型特征矩阵;基于时间间隔和学习能力的位置编码;输入至训练好的深度知识追踪模型中实现深度知识追踪;进一步优选的,深度知识追踪模型包括编码器、解码器与预测层;编码器包括一个多头自注意力层和前馈神经网络层;多头自注意力层、前馈神经网络层之间使用残差连接和分组归一化进行处理;多头自注意力层的输入来自于交互嵌入的不同投影,输出的Score值经过残差连接和分组归一化处理作为前馈神经网络的输入;前馈神经网络的输出再经过残差连接和归一化处理,作为编码器的输出以及解码器第二个多头自注意力层的输入;解码器包括两个多头自注意力层和前馈神经网络层;两个多头自注意力层包括第一层多头自注意力层和第二层多头自注意力层;编码器的输出作为解码器的输入,输入到第二层多头自注意力层中;第一层多头自注意力层的输入来自于知识点嵌入矩阵k
t
的不同投影,输出的score值经过残差连接和分组归一化处理作为第二层多头自注意力层的输入;解码器的输出经过预测层处理后得到最终的预测结果;预测层包括两个全连接层,先使用ReLU激活函数,最后使用sigmoid激活函数。2.根据权利要求1所述的一种应用于多元编程习题的深度知识追踪方法,其特征在于,多头自注意力层中,使用全为1的下三角矩阵作为掩码矩阵;多头自注意力层中,使用学生的做题正确率特征来代表学生的遗忘能力,因此,考虑学生遗忘行为和遗忘能力的编码器的多头自注意力层和解码器的第一个多头自注意力层的计算公式如式(I)、式(II)所示:Attention=Score
·
V(II)式(I)、式(II)中,Q,K,V为多头自注意力层的三个输入;具体的,在编码器和解码器的第一层自注意力层中,Q,K,V皆来自x
t
的不同投影;在解码器最后一层的注意力层中,Q来自解码器的第一层注意力的输出,K,V来自于编码器的输出;α,β为可学习的超参数,
△
ij
为习
题i和j之间的做题时间间隔,为学生u
i
的学习能力,Score为注意力值,Attention为最终的输出,是为了避免参数过大而导致的softmax梯度过小,Mask()为掩码操作。3.根据权利要求1所述的一种应用于多元编程习题的深度知识追踪方法,其特征在于,对用户做题数据进行预处理,包括:数据集成:将多个节点或数据库中的用户做题数据整合到一个数据表中;数据格式转换:是将时间信息从标准的时间表示格式转为相应的数字序列;数据清洗:将用户做题数据中较长的用户ID信息进行简化和脱敏处理,以及对用户做题数据中包含的控制进行删除处理;最终得到所有用户的答题记录包括习题ID、用户ID、答题结果、知识点、时间信息、习题难度和习题类型。4.根据权利要求1所述的一种应用于多元编程习题的深度知识追踪方法,其特征在于,对编程日志数据进行错误信息提取,包括:使用正则表达式提取每个用户的编译错误信息;使用re.findall函数在编程日志数据中查找编译错误error匹配项,包括错误类型、错误描述、错误产生的时间和所在代码行信息,与题目和学习者信息一起存储到csv文件中。5.根据权利要求1所述的一种应用于多元编程习题的深度知识追踪方法,其特征在于,对错误信息进行日志模式聚类,包括:选择凝聚式层次聚类算法进行聚类,使用的聚类特征为错误类型、错误描述、错误发生代码行和所属习题,聚类后的结果包括多个聚类簇,每个聚类簇表示一类具有相似特征的错误,聚类簇中的每个元素表示一个具体的错误信息,包括错误类型、错误描述、错误发生代码行和所属习题信息;对每一类编译错误进行分析,建立编译错误知识库,包括:对每个聚类簇中的错误类型、错误描述和错误发生代码行进行专家分析,通过深入理解错误的性质和上下文信息,推测可能导致该错误的知识点或概念;将该知识点或概念与聚类簇进行关联,建立编译错误知识库。6.根据权利要求1所述的一种应用于多元编程习题的深度知识追踪方法,其特征在于,构建题型特征矩阵,包括:首先,对学生u
i
答题记录中的习题类型进行划分和标记;然后,选择占比最高的题型对输入序列进行标记,将该题型作为输入序列的特殊标记;通过对不同学生和时刻的答题记录进行统计,形成一个题型特征矩阵T
i
×
j
,该矩阵大小为i行j列;其中,i为学生的数量,j为输入的次数,每个元素表示对应学生在对应时刻所做题型的比重;计算题型比重的公式如式(III)、式(IV)所示:T
ijmax
=argmax(P1,P2,...P
type
)(IV)式(III)、式(IV)中,对于每次输入序列,假设有type种不同的题型;对于第ti种题型,
记为q
ti
,计算其在序列中的比重比例P
ti
,argmax函数表示选择使用参数取值最大的那个参数,T
ijmax
表示题型特征矩阵T
i
×
j
中第i行第j列的元素。7.根据权利要求1
‑
6任一所述的一种应用于多元编程习题的深度知识追踪方法,其特征在于,实现深度知识追踪,包括:1)输入:将学生u
i
的答题记录中{习题ID,答题结果,知识点}对应表示为一个三元组将知识点kp
t
进行one
‑
hot编码处理后得到知识点向量k'
t
,再与知识点投影矩阵W
k
相乘,得到最终的知识点嵌入矩阵k
t
;其中,W
k
∈R
E
×
d
,E是知识点总数,d是模型的维度;W
k
用于将知识点向量k'
t
映射到深度知识追踪模型的维度上;将答题结果和知识点记录(a
t
,kp
t
),根据a
t
包含的答题结果,将编码后的知识点嵌入矩阵k
t
进行相应位置连接零向量操作,零向量的长度与k
t
长度一致,再与交互投影矩阵W
x
相乘,得到最终的交互嵌入x
t
;W
x
用于答题结果和知识点记录x'
t
映射到深度知识追踪模型的维度上;如式(V)、式(VI)、式(VII)所示:x
t
=x'
t
·
W
x...
【专利技术属性】
技术研发人员:郭莹,刘尚旭,张秋萍,杨美红,吴晓明,潘景山,
申请(专利权)人:齐鲁工业大学山东省科学院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。