System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于认知策略的编程知识追踪方法技术_技高网

一种基于认知策略的编程知识追踪方法技术

技术编号:40276391 阅读:8 留言:0更新日期:2024-02-02 23:03
本发明专利技术属于知识追踪技术领域,提供一种基于认知策略的编程知识追踪方法,包括:(1)问题定义和数据预处理;(2)试题表征;(3)代码表征;(4)认知过程双序列建模;(5)表现预测和模型训练。本发明专利技术方法根据学习者的认知过程,即理解试题和编写代码解决问题两方面,来建模编程知识追踪问题,分别利用图嵌入技术来聚合试题困难度、知识技能等信息,优化传统知识追踪中试题的表征,考虑到编程学科的开放性,融合了学生代码中蕴含的语法结构、文本注释等认知信息来表征代码特征,然后结合两者分别建模学习者的知识状态和编程能力,更能模拟学习者的做题场景,更好地建模学习者的认知过程。

【技术实现步骤摘要】

本专利技术属于知识追踪,具体涉及一种基于认知策略的编程知识追踪方法


技术介绍

0、技术背景

1、随着人工智能和大数据技术的不断发展,实施个性化学习已成为全球教育的主流趋势,知识追踪(knowledge tracing,kt)则是实现个性化学习的关键环节。具体来说,知识追踪的任务是通过挖掘和分析学习者历史学习数据中蕴含的认知规律和过程,动态追踪其知识掌握情况并预测学习者的未来表现。而当前信息化社会背景下,编程技能逐渐成为每一个人必备的技能之一,因此,编程知识追踪吸引了学者们的关注,即通过研究针对学习者编程能力的评估算法来帮助学习者及时掌握自己的知识掌握情况,查漏补缺,有针对性地提升个人利用算法解决现实问题的能力。编程试题属于开放式主观题,它并无标准答案等,因此需要融合学习者作答的源代码中所蕴含的认知信息来提升模型预测的准确度。

2、当前编程知识追踪领域已有成熟的模型,如基于抽象语法树的编程知识追踪模型(dkt-p),将学习者提交的代码表示为一个抽象语法树ast,然后利用循环神经网络将代码ast进行向量化,并将该代码向量作为模型输入,最后借助长短期记忆网络来建模学习者的作答序列,但该模型并没有考虑到题目和知识等相关信息;基于抽象语法树神经网络的时态编程知识追踪模型(temporal-astnn),通过astnn捕捉代码的语言结构,再利用长短期记忆网络捕捉做题序列中的时态信息,但没有考虑到学习者的记忆认知信息;基于代码-知识点交互的编程知识追踪模型(pkt-attn),通过ast路径上下文代码表示方法code2vec得到学习者代码表示向量,再引入注意力机制检索每个编程练习涉及的知识点和代码嵌入,建模得到聚合的知识隐藏状态,但pkt-attn模型忽视了试题困难度信息的重要性;基于循环神经网络的编程深度知识追踪模型(pdkt),通过构造问题与知识点的二部图(bipartitegraph)来引入多知识点信息并得到问题嵌入,并设计了一个预训练模型plcodebert来得到代码嵌入,最后利用具有指数衰减注意力的双序列rnn模型建模做题序列,但该模型未考虑试题的困难度和代码结构信息。

3、综上,现有的编程知识追踪方法在建模学生认知信息与过程方面存在不足,如忽视了试题和答案表征、学习者记忆和语义加工过程的重要性,导致结果的评估存在片面性。具体来说,在表征试题时考虑不够全面,忽视了试题困难度、关联的多知识点等重要信息;在表征学习者代码时仅捕捉代码语法特征,忽视了代码的结构信息和注释文本;此外,大多方法未能较好地模拟出学习者记忆与语义加工过程。可见现有编程知识追踪方法还有待于进一步提升、改善。

4、与此同时,教育心理学领域将认知策略定义为信息加工与认知过程中所采用的一系列方法、技术。具体来说,信息加工与认知过程主要包括选择性注意、编码、储存、提取等一系列的心理活动,而这一系列心理活动之间的相互转换都受到认知策略的调节与控制。认知策略之一的复述策略指出及时复习在防止遗忘、加深理解和熟练技能的同时,还可弥补知识缺陷,完善知识结构,发展自身的记忆能力和思维能力。此外,德国心理学家艾宾浩斯对遗忘进行了大量的系统研究,发现遗忘的进程是不均衡的,有先快后慢的特点,提出了著名的遗忘曲线。而精加工策略中指出学习者会将学习的内容与自己已有的知识和经验联系起来,理解和解释学习材料的意义和概念,即语义加工。为此,基于上述事实,本技术方案首先通过表征学习者作答试题与答案来模拟信息加工过程,结合复述与精加工等策略来调整与建模学习者认知过程。探索一种基于认知策略的编程知识追踪方法,运用时下热门的大数据挖掘、图神经网络和多头注意力机制等深度学习技术对学习者的历史学习轨迹进行综合分析,结合其认知过程准确评估学习者当前的知识状态并预测其未来的表现,具有重要的研究意义和应用价值。


技术实现思路

1、针对现有编程知识追踪方法所存在的不足,本专利技术提供一种基于认知策略的编程知识追踪方法,能够有效提升知识追踪的预测精确度。

2、为实现上述目的,本专利技术采用以下技术方案。

3、一种基于认知策略的编程知识追踪方法,包括以下步骤:(1)问题定义和数据预处理;(2)试题表征;(3)代码表征;(4)认知过程双序列建模;(5)表现预测和模型训练。

4、在上述技术方案中,步骤(1)中所述问题定义和数据预处理具体为:编程知识追踪问题定义,数据采集和数据预处理。

5、(1-1)编程知识追踪问题定义:给定一个学习者的历史作答记录x={x1,x2,…,xt-1},然后评估学习者当前的隐藏学习状态ht,并据此预测学习者在时刻t的表现rt;其中学习者的一条做题记录表示为xτ=(qτ,cτ,rτ),qτ为学习者在τ时刻回答的问题,cτ表示学习者针对问题qτ所编写的代码,而rτ表示学生在qτ上的回答情况,回答正确则值为1,反之则为0。

6、(1-2)数据采集:数据来源于真实公开数据,其包含了学习者历史答题记录,每位学习者的答题记录包括作答题号、知识点、源代码、时间戳以及学习者回答情况等原始数据。

7、(1-3)数据预处理:将每一位学习者历史答题记录处理成五行数据,第一行是该学习者的编号和答题数量,第二行是其答题历史记录中的题目编号,第三行为针对相应题目所编写的源代码编号,第四行是回答相应试题的时间戳,第五行是对应试题的回答情况。

8、在上述技术方案中,步骤(2)中所述试题表征具体为:首先构建知识点-试题-困难度的异构图,然后利用异构神经网络(heterogeneous graph neural network,hetgnn)去编码、学习得到试题嵌入。

9、(2-1)困难度编码:首先将学习者的历史做题记录处理成由(学习者编号,试题编号,作答情况)组成的三元组列表,然后将处理后的三元组列表作为输入,通过项目反应理论模型3pl-irt去建模和评估试题的困难度。3pl-irt模型输出相应试题的困难度值后,使用k-means聚类算法将困难度水平大致相同的试题划归为一类,总共分为易、偏易、适中、偏难和难五种等级。

10、(2-2)基于异构图神经网络的试题表示:首先定义一个基于上下文内容的异构图hetg=(v,e,ov,re),其中v表示节点集,e是边集,ov={q,s,diff}表示节点类型集,q表示试题,s为知识点,diff则为困难度等级,re={es-q,eq-diff,eq-q}则代表边类型的集合,包括知识点和试题之间的关系es-q、试题和困难度之间的关系eq-diff以及试题和试题之间的关系eq-q。然后,利用bert模型去编码试题文本特征,即t=bert(qtext),并作为试题的初步表征。最后,结合上述异构图hetg和试题文本特征t,借助异构神经网络hetgnn去捕捉和学习来自试题文本、其他邻居节点等的异质特征信息,进而得到相应试题的高阶嵌入表示

11、在上述技术方案中,所述步骤(3)中所述代码表征具体为:针对给定的源代码构建相应的数据流图(d本文档来自技高网...

【技术保护点】

1.一种基于认知策略的编程知识追踪方法,其特征在于该方法包括以下步骤:

2.根据权利要求1所述的基于认知策略的编程知识追踪方法,其特征在于:步骤(4)认知过程双序列建模中,通过知识状态演化模块和编程能力编码模块分别获得学习者当前的知识状态和编程能力的具体方式为:

【技术特征摘要】

1.一种基于认知策略的编程知识追踪方法,其特征在于该方法包括以下步骤:

2.根据权利要求1所述的基于认知策略的编程知识追踪方法...

【专利技术属性】
技术研发人员:杨宗凯黄涛胡盛泽杨华利喻涛耿晶张浩刘三女牙
申请(专利权)人:华中师范大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1