知识跟踪模型GraphKT

news/2024/5/2 22:36:33

1 知识跟踪Knowledge Tracing的概念


知识跟踪可以用来解决自适应学习问题。如何通过与教学材料的在线互动来有效地跟踪学生的学习进展?知识跟踪可用于量化学生的知识状态,即对教材所涉及的技能掌握水平。用于评估和模拟学生随着时间推移对技能的认知掌握程度。

问题描述:鉴于学生以前在各种技能方面的问题解决序列,与知识追踪相关的预测任务是根据学生过去与在线辅导系统的互动反馈,预测未来反应的正确性(即学生正确解决问题的可能性有多大)。知识跟踪可以表述为一个有监督的学习问题:给定学生在特定学习任务上截至时间 t 的过去交互 XT=(x1,x2,...,xt) ,预测学生在下一次交互 xt+1中的表现。交互 xt=(qt,at) 被定义为一个元组,其中包含学生在时间步长 t 所尝试问题的 KC id qt,而标签 at是一个二进制变量,代表学生是否回答正确。知识跟踪通常试图预测学生在下一个时间步中正确回答问题的概率,即 p( at+1=1|qt+1,XT) 。

知识追踪的改进可以更好地为学生量身定制技能学习建议,从而实现更有效和高效的学习。

2 数据集说明


ASSISTments 2009-10 SkillBuilder https://github.com/CAHLR/pyBKT-examples/blob/master/data/as.csv

其中包含 124 项技能(例如,构建饼图)和大约 525,000 个总二元正确性响应(跨技能汇总正确和错误的比例约为 70/30%)。

该文件包含每个学生-问题的一条记录(例如,如果学生 S 回答了具有两种技能的问题 P,则这两种技能将被折叠成技能 1_ 技能 2 的格式,并在一条记录中表示):

技能构建问题集具有以下特点:

问题基于一种特定技能,一个问题可以有多个技能标记。

学生必须连续答对三个问题才能完成作业;

如果学生使用了辅导("提示 "或 "将问题分解为步骤"),问题将被标记为不正确;

学生将立即知道自己是否答对了问题;

如果学生无法独立解决问题,最后一个提示会给出答案;

目前,该功能仅适用于数学问题集。

3 表达技能图


创建一个明确的图结构来描述学生解决问题序列中技能之间的相互作用,利用图神经网络来构建直接建模这种相互依赖关系的技能嵌入。可以利用类似的“邻近”技能提供的背景来更准确、更有效地评估学生的知识。

构建技能图需要保留学生序列中技能共现和通常访问技能的顺序的信息。可以将有序共现定义为一对两个技能 A 和 B,使得 A 出现在同一学生序列中,并且先于 B 出现。技能图中的节点对应于数据集中的每个技能,存在两个节点之间的有向边(如果它们之间存在非平凡的有序共现率)。程序逻辑包括:计算每个学生序列中有序共现的次数,通过前向共现连接有向图中的节点。

4 GraphKT


GraphKT是一种基于图的响应正确性预测模型,通过序列建模(Transformer架构)解决学生问题序列。GraphKT 利用图神经网络(GNN)构建的每个技能的节点嵌入来表示技能图。可选择 图神经网络模型GCN、GraphSAGE 和 GAT 作为构建节点嵌入的方法。

GraphKT的架构 节点嵌入图来源:https://web.stanford.edu/class/cs224w/slides/05-GNN3.pdf

其中 c_t 表示时间 t 的正确性值,s_t 表示应用于技能图的 GNN 输出的节点嵌入。如图所示将学生序列中 t 时刻的技能指数 sₜ 作为 GNN 的输入,通过固定大小的初始技能嵌入字典进行转换。虽然这一过程依赖于技能指数,因此本质上是转导式的,这并不影响该方法的实际应用,因为 KT 本质上仅限于转导式设置(即我们无法对未知技能进行预测)。

GNN 的输出是学生所尝试的技能的节点嵌入,该节点嵌入与之前的教师强制正确率值(即时间 t - 1)相连接,形成 GraphKT 的输入特征。利用这些输入特征,通过因果转换器进行前向传递,在屏蔽未来值的情况下(即以因果方式)执行多头注意。在每个时间步,对转换器输出应用线性层将其转换为标量,并应用Sigmoid激活将其转换为二进制概率值。

GraphKT 是一种基于图神经网络的知识追踪方法,它利用节点嵌入来模拟技能之间的相互依存关系。

GraphKT 的核心组件包括创建技能图、实现各种图神经网络和训练模型(包括基线模型)。

辅助和实用程序代码的其余部分可访问https://github.com/abadrinath947/GraphKT。

5 参考文献

  1. Corbett, Albert T. 和 Anderson, John R. http://act-r.psy.cmu.edu/wordpress/wp-content/uploads/2012/12/893CorbettAnderson1995.pdf
  2. https://github.com/abadrinath947/GraphKT
  3. https://web.stanford.edu/class/cs224w/ CS224W: Machine Learning with Graphs Stanford / Fall 2023
  4. https://paperswithcode.com/task/knowledge-tracing
  5. https://mp.weixin.qq.com/s/UoWZfz_qgOI17wvNL3cQow 近期知识追踪论文分享
  6. https://mp.weixin.qq.com/s/NzsFkxrG8mYAC_gYNJVbgg【JETDE】 导读 | 知识追踪技术综述 

http://www.mrgr.cn/p/34352037

相关文章

深入解析Nacos配置中心的动态配置更新技术

码到三十五 : 个人主页 心中有诗画,指尖舞代码,目光览世界,步履越千山,人间尽值得 ! 在微服务架构中,配置管理变得尤为关键。Nacos,作为一个开源的、易于使用的、功能丰富的平台,为…

案例与脚本实践:DolphinDB 轻量级实时数仓的构建与应用

DolphinDB 高性能分布式时序数据库,具有分布式计算、事务支持、多模存储、以及流批一体等能力,非常适合作为一款理想的轻量级大数据平台,轻松搭建一站式的高性能实时数据仓库。 本教程将以案例与脚本的方式,介绍如何通过 Dolphin…

MySql 表中的id突然变很大,如何给id重新排序

目录 一、场景 二、解决方法 一、场景 我们在开发过程中,难免遇到id突然增大的情况。 由于id突然增大很多,我们重新增加数据时候id会默认加1 那么如何让id 重新从1按顺序排序呢 二、解决方法 点击编辑表,然后新建一个字段id2,将…

【设计模式】聊聊观察者设计模式原理及应用

原理 观察者模式属于行为模式,行为模式主要解决类和对象之间交互问题。 含义:在对象之间定义一个一对多的依赖,当一个对象状态改变时,所有依赖的对象会自动通知。 被依赖的对象被观察者(Observable) ,依赖的对象观察…

策略模式类图与代码

某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各种促销活动,如打折、返利(例如,满300返100),等等。现采用策略(Strategy)模式实现该要求,得到如图7.13 所示的类图。 【Java 代码】 import java.util…

NPU硬件架构及张量技术开发

NPU硬件架构及张量技术开发 NPU 系统介绍 V853 芯片内置一颗 NPU,其处理性能为最大 1 TOPS 并有 128KB 内部高速缓存用于高速数据交换,支持 OpenCL、OpenVX、android NN 与 ONNX 的 API 调用,同时也支持导入大量常用的深度学习模型。 NPU 系统架构 NPU 的系统架构如下图所示…

阶段性学习汇报 4月19日

一、毕业设计和毕业论文 毕业设计后端功能基本实现,但是还有些具体的细节需要优化,例如这些图片的显示问题,前端只有个前端页面以及部分交互逻辑,还需进一步完善。我想在疾病预测这里加一个创新点,基于推荐算法。小程序…

(五)PostgreSQL的管理工具pgAdmin

PostgreSQL的管理工具pgAdmin pgAdmin 是一款流行的开源图形界面管理工具,用于 PostgreSQL 数据库的管理和开发。它提供了一个易于使用的界面,允许用户执行各种数据库任务,如创建和修改数据库对象(表、视图、索引等)、…

算法:位运算

算法&#xff1a;位运算 常见位运算操作基本题型模拟加法数字查找总结 常见位运算操作 在C/C中&#xff0c;有比较丰富的位运算操作符&#xff0c;常见的有&#xff1a; &&#xff1a;按位与 |&#xff1a;按位或 ~&#xff1a;按位取反 ^&#xff1a;按位异或 <<&a…

Win11 WSL2 install Ubuntu20.04 and Seismic Unix

Win11系统&#xff0c;先启用或关闭Windows功能&#xff0c;勾选“适用于Linux的Windows子系统”和“虚拟机平台”两项 设置wsl默认版本为wsl2&#xff0c;并更新 wsl --list --verbose # 查看安装版本及内容 wsl --set-default-version 2 # 设置wsl默认版本为wsl2 # 已安装…

nginx安装在linux上

nginx主要用于反向代理和负载均衡&#xff0c;现在简单的说说如何在linux操作系统上安装nginx 第一步&#xff1a;安装依赖 yum install -y gcc-c pcre pcre-devel zlib zlib-devel openssl openssl-devel 第二步&#xff1a; 下载nginx&#xff0c;访问官网&#xff0c;ngin…

CentOS 7安装Zookeeper

说明&#xff1a;本文介绍如何在CentOS 7操作系统下使用Zookeeper 下载安装 首先&#xff0c;去官网下载所需要安装的版本&#xff0c;我这里下载3.4.9版本&#xff1b; 上传到云服务器上&#xff0c;解压 tar -xvf zookeeper-3.4.9.tar.gz修改配置 进入Zookeeper目录下的co…

jenkins 启动linux节点时 控制台中文显示问号乱码

新增一个jenkins节点时&#xff0c;遇到了控制台中文输出问号的问题。 网上各种配置jenkins的全局变量&#xff0c;都不行。 最终是 节点列表 ->对应节点 -> 启动方式 -> 高级 添加JVM选项 -Dfile.encodingUTF-8

C语言 递归

递归指的是在函数的定义中使用函数自身的方法。 举个例子&#xff1a; 从前有座山&#xff0c;山里有座庙&#xff0c;庙里有个老和尚&#xff0c;正在给小和尚讲故事呢&#xff01;故事是什么呢&#xff1f;“从前有座山&#xff0c;山里有座庙&#xff0c;庙里有个老和尚&…

用python实现四则运算的生成与判定

小组成员:2252316,2252326点击查看代码 import randomdef generate_question():operators= [+, -, *, /]while 1:operator1 = random.choice(operators)operator2 = random.choice(operators)num1 = random.randint(1, 100)num2 = random.randint(1, 100)num3 = random.randi…

自己的事情自己做:使用 Python Turtle 绘制 Python Logo

以下代码中&#xff0c;将向你展示一个有趣的程序&#xff0c;如何使用 Python Turtle 中绘制 Python Logo。Python 翻译成汉语是蟒蛇的意思&#xff0c;Python 的 Logo 也是两条缠绕在一起的蟒蛇。 import turtlepen turtle.Turtle() turtle.bgcolor("black") pe…

2024年五一杯数学建模B题思路分析

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…

Ubuntu22.04 + ROS2 Humble的环境配置

Ubuntu22.04 ROS2 Humble的环境配置 文章目录 Ubuntu22.04 ROS2 Humble的环境配置(1) Set locale(2) Setup Sources(3)安装ROS2(4)检查是否成功安装 参考官方网站ROS2-Installation ROS2的各种版本及维护计划&#xff0c;可以参考ROS2-List of Distributions (1) Set locale…

Flattened Butterfly 扁平蝶形拓扑

Flattened Butterfly 扁平蝶形拓扑 1. 传统蝶形网络 Butterfly Topology2. 扁平蝶形拓扑 Flattened Butterfly3.On-Chip Flattened Butterfly 扁平蝶形拓扑应用于片上网络 Flattened Butterfly 扁平蝶形拓扑 扁平蝶形拓扑是一种经济高效的拓扑&#xff0c;适用于高基数路由器…

音乐盒组件Aplayer+Metingjs

Aplayer🍭 Wow, such a beautiful HTML5 music player(哇,好漂亮的HTML5音乐播放器) Aplayer是一个功能强大的HTML5音乐播放器 Aplayer官网文档:https://aplayer.js.org/#/MetingjsMetingjs基于Aplayer插件封装好的插件,开箱即用 Metingjs官网文档:https://github.com/me…