Open-Ended Knowledge Tracing for Computer Science Education(论文解读)

大多数现有的知识追踪方法的一个关键限制是,他们将学生对问题的回答当作二进制值的,即,它们是正确的还是不正确的。回答正确性分析/预测忽略了回答的确切内容中包含的学生知识的重要信息,特别是对于开放式问题。

2.介绍

KT方法由两个基本的组成部分组成。

1.知识估计(KE)组成部分:

h t+1 = KE(( p1 , x1) , . . . ,( p m , x t)) ,
使用问题(p)和先前(离散)时间步长的问题(p)和回答(x)估计学生当前的知识状态ht+1
2.响应预测(RP)组件预测学生对下一个问题的回答
x t+1 RP( h t+1 , p t+1)
生成语言模型,如GPT(Brown et al.,2020)提供了一个机会,充分利用不同领域的开放学生回答中包含的丰富信息的机会,以实现KT的目的。

实现模型的两个挑战

首先,当学生通过实践学习时,他们对不同编程概念的知识是动态的;学生经常可以学习和纠正他们的错误,给定教师提供的反馈,甚至是由编译器生成的错误消息。因此,我们需要新的KE模型,能够有效地跟踪学生在整个学习过程中的时变知识。第二,学生生成的代码往往是不正确的,并表现出各种错误;也可能存在多个正确的回答,捕捉到学生之间不同的思维方式。程序合成模型没有涵盖这种复杂性,因为它们的目标是生成正确的代码,而且它们通常是根据由熟练的程序员编写的代码进行训练的。因此,我们需要新的RP模型,能够生成学生编写的(可能是错误的)代码,这些代码反映了他们(通常不完美的编程概念)知识。

3.创新点

  • 定义了开放式知识追踪(OKT)框架,一个新的学生反应的开放式KT框架,以及一个新的KT任务,精确的学生反应预测。
  • 为OKT任务开发了一个初始解决方案,一种知识引导的代码生成方法。我们的方法将现有的二进制值KT方法中的KE组件与代码生成模型相结合,将OKT任务转换为一个动态可控的生成问题,其中控制,即时变的学生知识状态,也被学习。

4.三个组件

06daa1aa6f454e60ae06130df840033c.png

4.1Knowledge Representation (KR)

KR组件的目的是将学生回答的问题的提示/陈述和他们相应提交的代码转换为连续表示。

4.1.1 Question Representation

利用GPT-2模型进行提示表示:给定一个问题提示p,GPT- 2将其标记为一个M字标记序列,其中每个标记都有一个嵌入的¯pm∈RK。对于GPT-2,这些嵌入的维度是K = 768。这个过程生成一个序列的令牌嵌入{¯p1,¯p2,……,¯pM}。然后我们平均每个提示令牌的嵌入以获得我们的提示嵌入 q。

4.1.2  Code Representation:

为了在嵌入向量中保留编程代码的语义和语法特性,我们使用了ASTNN,首先将学生提交的代码解析为一个抽象的语法树(AST)。然后,我们通过预定数遍历将每个完整的AST分割成一个不重叠的语句树(ST-trees)序列。每个st树都包含一个语句节点作为根节点,其对应的AST节点作为子节点。然后,我们通过st树通过递归语句编码器获得嵌入向量,并使用双向门控递归单元网络(Bahdanau et al.,2014)来捕获语句的自然性,并进一步增强递归层的能力。首先将学生提交的代码解析为一个抽象的语法树(AST)。然后,我们通过预定数遍历将每个完整的AST分割成一个不重叠的语句树(ST-trees)序列。每个st树都包含一个语句节点作为根节点,其对应的AST节点作为子节点。然后,我们通过st树通过递归语句编码器获得嵌入向量,并使用双向门控递归单元网络(Bahdanau et al.,2014)来捕获语句的自然性,并进一步增强递归层的能力。

4.2  Knowledge Estimation (KE)

KE组件的目的是将学生过去的问题/代码信息转化为对他们当前知识状态的估计

使用长短期记忆(LSTM)模型来更新学生当前的知识状态,ht+1,考虑到他们之前在最后一步的反应。我们使用KR组件的输出,即问题提示和代码嵌入,作为KE组件的输入,如ht+1 = LSTM(ht,qt,ct),并将它作为RG组件的输入,以生成预测的学生代码提交。原则上,我们可以使用任何现有的二进制值KT方法作为OKT的KE分量。

4.3 Response Generation (RG)

OKT的核心组件RG的目的是预测开放式的反应。

将基本的GPT-2生成模型微调为一个文本到代码的模型PΘ,代码数据的参数为Θ。选择语言模型而不是其他代码生成方法,因为它们的文本到代码生成管道非常适合OKT。关键技术挑战是如何在代码生成模型中使用知识状态作为控制,来指导每个学生的个性化代码预测。鉴于当前问题提示,pt+1及其M标记嵌入序列{¯p1,¯p2,…,¯pM},¯pm∈R^K(时间步长指数t提示标记清晰),我们的方法注入学生知识状态到代码生成模型是取代原始令牌嵌入使用知识引导嵌入使用对齐函数,即pm=f(¯pm,ht+1)m=1,…,M。

四种嵌入:

  • pm = p¯m + ht+1.

  • Averaging, i.e., pm = (p¯m + ht+1)/2.

  • pm = p¯m +α · ht+1.

  • p¯m + Aht+1 + b.

后两个函数在参数α∈R、A∈R^D×K和b∈RK的情况下是可学习的。因此,预测的学生代码具有N个代码令牌),x={x1,x2,…,xN},由给定知识引导的问题提示令牌{p1…,pM}.。

5.预训练模型

在训练模型前先预训练KE组件,以问题和代码嵌入为输入的二进制值正确性预测损失

6.实验

6.1数据集

使用来自CSEDM数据挑战的数据集(t包含了246名大学生在整个学期的50个编程问题中分别提交的46,825份完整的代码)

6.2评价指标

CodeBLEU,适用于度量预测代码和实际学生代码之间的相似性。使用验证损失最低的OKT方法计算的代码令牌的平均测试损失。我们需要能够度量预测的学生代码的多样性的指标,因为我们不希望OKT简单地在训练数据中记住频繁出现的学生代码。dist-N度量,计算预测中唯一N-grams对所有N-grams的比率。

CodeBLEU

CodeBLEU是一个用于评估自然语言生成(NLG)系统生成的代码质量的指标。与传统的BLEU(Bilingual Evaluation Understudy)指标类似,CodeBLEU的目标是度量生成的代码与参考代码之间的相似性,以确定自动生成的代码的质量。CodeBLEU主要用于评估程序生成领域,例如代码自动生成、自然语言到代码转换等任务。

1. 收集参考代码:为了评估自动生成的代码,首先需要收集一个或多个人工编写的参考代码,这些代码是理想情况下的标准答案。

2. 生成代码:NLG系统生成的代码被评估。

3. 计算n-gram匹配:CodeBLEU使用n-gram(通常是1-4克)来比较生成的代码和参考代码之间的相似性。它计算生成的代码中n-gram与参考代码中n-gram的匹配程度,以确定重叠的代码片段。

4. 累积分数:根据不同n-gram的匹配情况,CodeBLEU计算一个累积分数,其中更短的n-gram(如1-gram)通常权重更高,以鼓励生成更具流畅性的代码。

5. 惩罚不完整匹配:CodeBLEU还会惩罚那些未完全匹配参考代码的生成代码片段,以鼓励生成尽可能接近参考代码的完整解决方案。

6.3比较方法

测试了三种不同的现有的二进制值KT方法,DKT,DKVMN,和AKT,作为KE组件

cf237109aa5e46e599bcb6e3bcc2f69c.png

结论:分析第一次提交比分析所有提交会导致更高的测试损失和更低的CodeBLEU分数,使用DKT作为OKT的KE组件在所有指标上都显著优于使用AKT和DKVMN,而使用AKT也优于DKVMN。这些结果表明,DKT作为OKT的KE组件比AKT或DKVMN更有效。

显示了在第一次提交时,使用DKT作为KE组件的不同OKT设计和训练设置的定量结果。

结论:将知识状态空间与可学习线性函数的提示标记嵌入空间对齐是最有效的(CodeBLEU的p值为0.01),尽管其他对齐函数只是稍微差一些。KE和RG组件的预训练导致OKT性能的有限改善。

7.解释学习到的知识状态

每个点代表在一个时间步长的提交(一个学生可能在多个时间步长有多个提交),每种颜色代表一个学生。我们可以看到,在这些知识状态中有一些不同的集群,它们对应于不同的学生代码。每个集群中的代码具有相似的结构和语法属性,而来自不同集群的代码有显著差异。

8.学生代码提交的知识意识预测

显示了两个问题的预测代码和实际的学生代码。

结论:虽然对这个问题的代码预测不如第一个问题,OKT仍然可以捕获学生实际代码的主要逻辑和最重要的部分。这些例子表明,OKT可以捕获个别学生在编程概念上的代码结构和知识差距,甚至可以预测他们可能出现的错误;与标准的二进制值KT方法相比,这种能力对学生和教师有更大的支持潜力。

9.对未见问题的泛化

"对未见问题的泛化" 是指知识跟踪(KT)方法在训练过程中未出现的新问题上预测学生的反应能力。在传统的二元值KT方法中,对于未见问题的预测仅限于根据学生的概念标签估计正确反应的概率。然而,这种方法缺乏预测具体反应或错误的能力。相比之下,所提出的方法称为OKT(开放式知识跟踪)利用确切的问题和反应内容来对新问题进行泛化。它可以预测对这些未见问题的确切反应和具体错误。该方法通过从数据集中移除一个问题并使用估计的知识状态来预测反应来进行初步实验。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值