知识跟踪模型GraphKT

news2024/10/5 16:31:39

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.coloradmin.cn/o/1602689.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

双指针的引入和深入思考(持续更新中)

目录 1.引入双指针 2.使用场景 3.例题引入 1.引入双指针 当我们需要维护某个区间性质的或者是求满足某些性质的区间的长度时,对于一个区间是由左右端点的,我们有简单的枚举左右端点的O()的时间的做法,当时在大多数题目中是不可行的&#…

4核8G配置服务器多少钱?2024年阿里云服务器700元1年价格便宜

4核8G配置服务器多少钱?2024年阿里云服务器700元1年价格便宜。阿里云4核8G服务器租用优惠价格700元1年,配置为ECS通用算力型u1实例(ecs.u1-c1m2.xlarge)4核8G配置、1M到3M带宽可选、ESSD Entry系统盘20G到40G可选,CPU采…

Java设计模式——代理模式

静态代理: Java静态代理是设计模式中的一种,它通过创建一个代理类来代替原始类,从而提供额外的功能或控制原始类的访问。 如何使用Java静态代理 要创建一个静态代理,你需要有一个接口,一个实现该接口的目标类&#…

Python pyglet制作彩色圆圈“连连看”游戏

原文链接: Python 一步一步教你用pyglet制作“彩色方块连连看”游戏(续)-CSDN博客文章浏览阅读1.6k次,点赞75次,收藏55次。上期讲到相同的色块连接,链接见: Python 一步一步教你用pyglet制作“彩色方块连连看”游戏-…

Java中的容器

Java中的容器主要包括以下几类: Collection接口及其子接口/实现类: List 接口及其实现类: ArrayList:基于动态数组实现的列表,支持随机访问,插入和删除元素可能导致大量元素移动。LinkedList:基…

【数据结构与算法】:关于时间复杂度与空间复杂度的计算(C/C++篇)——含Leetcode刷题

文章目录 一、什么是时间复杂度和空间复杂度?1.1 算法效率1.2 时间复杂度的概念1.3 空间复杂度的概念1.4 复杂度计算在算法中的意义 二、时间复杂度的计算2.1 大O渐进表示法2.2 常见时间复杂度计算举例 三、空间复杂度的计算四、Leetcode刷题1. 消失的数2. 旋转数组…

对接实例:致远OA对接金蝶云星空场景解决方案

正文:很多企业在数字化建设得时候,对内部系统间的高效协同与数据流转提出了更高要求。金蝶云星空作为行业领先的ERP解决方案,与专业协同办公平台致远OA的深度对接,在人员管理、组织架构、采购与销售合同、费用审批等在内的全方位企…

javaWeb项目-网上图书商城系统功能介绍

项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog 1、Java技术 Java语…

Flask框架初探-如何在本机发布一个web服务并通过requests访问自己发布的服务-简易入门版

Flask框架初探 在接触到网络框架之前我其实一直对一个事情有疑惑,跨语言的API在需要传参的情况下究竟应该如何调用,之前做过的项目里,我用python做了一个代码使用一个算法得到一个结果之后我应该怎么给到做前端的同学或者同事,之前…

2024腾讯一道笔试题--大小写字母移动

题目🍗 有一个字符数组,其中只有大写字母和小写字母,将小写字母移到前面, 大写字符移到后面,保持小写字母本身的顺序不变,大写字母本身的顺序不变, 注意,不要分配新的数组.(如:wCelOlME,变为wellCOME). 思路分析🍗 类似于冒泡排序,两两比较…

JavaSE中的String类

1.定义方式 常见的三种字符串构造 public class Test1 {public static void main(String[] args) {// 使用常量串构造String str1 "abc";System.out.println(str1);// 直接newString对象String str2 new String("ABC");System.out.println(str2);// 使用…

ssm056基于Java语言校园快递代取系统的设计与实现+jsp

校园快递代取系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本校园快递代取系统就是在这样的大环境下诞生,其可以帮助管理者在短…

node基础 第二篇

01 ffmpeg开源跨平台多媒体处理工具,处理音视频,剪辑,合并,转码等 FFmpeg 的主要功能和特性:1.格式转换:FFmpeg 可以将一个媒体文件从一种格式转换为另一种格式,支持几乎所有常见的音频和视频格式,包括 MP…

工业控制(ICS)---OMRON

OMRON FINS 欧姆龙厂商 命令代码(Command CODE)特别多,主要关注读写相关,如: Memory Area Read (0x0101) Memory Area Write (0x0102) Multiple Memory Area Read (0x0104) Memory Area Transfer (0x0105) Parameter Area Read (0x0201) Pa…

ARM_day8:温湿度数据采集应用

1、IIC通信过程 主机发送起始信号、主机发送8位(7位从机地址1位传送方向(0W,1R))、从机应答、发数据、应答、数据传输完,主机发送停止信号 2、起始信号和终止信号 SCL时钟线,SDA数据线 SCL高电平,SDA由高到低——起始信号 SC…

Linux时间同步练习

题目如下: 一.配置server主机要求如下: 1.server主机的主机名称为 ntp_server.example.com 2.server主机的IP为: 172.25.254.100 3.server主机的时间为1984-11-11 11:11:11 4.配置server主机的时间同步服务要求可以被所…

突破数据存储瓶颈!转转业财系统亿级数据存储优化实践

1.背景 1.1 现状 目前转转业财系统接收了上游各个业务系统(例如:订单、oms、支付、售后等系统)的数据,并将其转换为财务数据,最终输出财务相关报表和指标数据,帮助公司有效地进行财务管理和决策。 转转业…

Matlab|基于改进遗传算法的配电网故障定位

目录 1 主要内容 2 部分代码 3 部分程序结果 4 下载链接 1 主要内容 该程序复现文章《基于改进遗传算法的配电网故障定位》,将改进的遗传算法应用于配电网故障定位中, 并引入分级处理思想, 利用配电网呈辐射状的特点, 首先把整个配电网划分为主干支路和若干独立…

Pr2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 Premiere简称“Pr”,是一款超强大的视频编辑软件,它可以提升您的创作能力和创作自由度,它是易学、高效、精确的视频剪辑软件,提供了采集、剪辑、调色、美化音频、字幕添加、输出、D…

minio如何配置防盗链

MinIO 是一个开源的对象存储服务器,用于存储大量的数据,同时提供了丰富的功能和 API。配置防盗链可以帮助你控制谁可以访问存储在 MinIO 上的对象。以下是在 MinIO 中配置防盗链的一般步骤: 编辑 config.json 文件: 找到 MinIO 服…