Deep Knowledge Tracing (深度知识追踪)

2023-05-16

boss又让我看这块的内容了,刚开学,还不太适应实验室的学习生活,假期闲散惯了操。

目录

      • 1、概述
      • 2、表示
      • 3.1、DKT的优势
      • 3.2、DKT的不足
      • 4、模型
      • 5、序列的输入和输出
          • 输入
          • 输出
      • 6、优化及应用
      • 7、三个数据集
      • 8、结果

1、概述

知识追踪(knowledge tracing)是根据学生过去的答题情况对学生的知识掌握情况进行建模,以便我们能精确预测学生对于知识点的掌握程度,以及学生在下一次的表现。而且精确的知识追踪能让我们抓住学生当前的需求,并进行精准推题,即难易适宜。

早期的知识追踪模型都是依赖于一阶马尔科夫模型,例如贝叶斯知识追踪(Bayesian Knowledge Tracing,BKT)。在本文中引入灵活的循环神经网络(RNN)来处理知识追踪任务。
在这里插入图片描述

知识追踪任务可以概括为:给定一个学生在某一特定学习任务上的表现的观测序列 x0,x1,…,xt ,预测他们在下一次的表现 xt+1 。通常一次交互xt=(qt,at),qt代表该学生回答题目[公式]的正误情况。简单的来说就是知道了学生答了一系列题目,也都知道他都回答对了没,现在我要从题库里再抽一题给他,让模型预测预测他能不能答对,答对的概率是多少,那么如果模型给出的概率是1,代表这题对他来说是太简单了,如果给出的概率为0,就代表这题可能太难了,他八成是做不出来的。

2、表示

贝叶斯知识追踪(BKT)是最流行的知识追踪模型。在BKT模型中提出了一个关于学生知识状态的隐变量(latent variable,不可被直接观察,但对结果有影响)
学生的知识状态由一个二元组表示 {掌握该知识点,没掌握该知识点}。整个模型结构实际上是一个HMM(隐马尔可夫)模型,根据状态转移矩阵来预测下一个状态,根据当前的状态来预测学生的答题结果。而且在BKT模型中认为知识一旦掌握就不会被遗忘。并且在当前的工作中还引入了学生未掌握知识的情况下猜对题目的概率和学生掌握知识的情况下答错题目的概率,学生的先验知识和问题的难度来扩展模型。然而不管有没有这些扩展。
循环神经网络RNN是一种时间序列的模型,信息是基于早期的信息和当前输入的信息进行递归传播的。相对于HMM,RNN具有高维,连续的隐藏状态表示。RNN最大的优势在于能利用更多的早期的信息,尤其是RNN的变种LSTM网络结构。RNN在很多时间序列问题上都取得了非常好的结果,因此将RNN应用到知识追踪上也许会有更好的结果。

在这里我们可以用传统的RNN或者是LSTM模型。在将数据输入到模型之前我们要将输入的数据转换成向量表示(输入的数据就是我们观测到的学生做题的结果)。输入值的向量表示有两种方式:

1)one-hot表示。 假设在我们的模型中的数据中涉及到M个知识点,所有的题目都属于这M个知识点,每道题的结果有两种 {对,错},对于某一道属于第 i 个知识点,做对时向量表示为第 M+i 个位置为1,其余位置为0;做错时第 i 个位置为1,其余位置为0,向量总长度为2M(注意整个模型只关注题目所属知识点,和做题的结果)。one-hot 的表示比较方便,但是一旦知识点的数量非常大之后,向量就会变得高维、稀疏。

2)通过压缩感知算法将高维稀疏的输入数据进行压缩到低维空间( log2M )中。

输出结果 yt 是一个长度为 M 的向量,向量中的每一个值描述的是对应的知识点的掌握概率(或者说对应的知识点下的题目答对的概率)。因此,整个序列就是根据前 t−1 个时间步的信息来预测 第 i 步对各知识点的掌握情况。

3.1、DKT的优势

很多研究表明DKT模型在各种开源数据集上的表现基本都由于传统的BKT模型。相关论文表明DKT的优势主要在于:
1.近因效应
  在BKT模型中假定学生一旦掌握某一知识点,对该知识点就不会遗忘,学生在以后做到属于该知识点的题目时往往就会表现很好。而实际上并不是这样的,时间久了,学生也可能会遗忘之前掌握的知识点。而DKT模型能很好的捕捉学生最近的表现来预测学生的做题结果,能更多的利用学生最近的表现。
2.上下文试验序列
  学生在做题的过程中,可能是多个知识点的题交叉练习,例如学生在知识点A,B 上的做题顺序是 A1−B1−A2−B2−A3−B3 。BKT只能在单个知识点建模,无法将学生这样的做题顺序给表述出来。而DKT能针对多个知识点建模,能很好的表述这样的做题顺序。
3.知识点内在相关性
  实际情况中,知识点与知识点之间是具有相关性的,如论文中的例子,X-截距、Y-截距和线性方程等之间都是具有很强的相关性的。BKT由于只能对单个知识点建模,因此无法将这些相关性表示出来。而DKT可以对多个知识点建模,且神经网络可以根据学生的做题结果获得知识点之间的关系。
4.个体之间的能力差异
  DKT 能根据该学生在各个知识点上的表现情况来获得学生的平均能力(该能力能一定程度代表学生的学习能力),而BKT 由于只能在单个知识点上建模,因此无法获得学生在各知识点上的平均水平。

说了这么多,无非就是DKT比BKT多了时序记忆、多点建模,可获得多点间关系

3.2、DKT的不足

1)模型没法重构当前的输入结果
2)在时间序上学生对知识点的掌握度不是连续一致,而是波动的

4、模型

本文分别用带sigmoid的普通RNN,LSTM来建立模型。其本质是一个Seq2Seq的RNN模型
RNN公式及图解
在这里插入图片描述
上图是DKT模型按照时间展开的示意图,其输入序列 x1,x2,x3…对应了 t1,t2,t3…时刻学生答题信息的编码,隐层状态 h1,h2,h3…对应了各个时刻学生的知识点掌握情况,模型的输出序列 y1,y2,y3…对应了各时刻学生回答题库中的所有习题答对的概率。
在这里插入图片描述
现在以上图为例来看看模型的各层结构。简单起见,假设题库总共有4道习题,那么首先可以确定的输出层的节点数量为4,对应了各题回答正确的概率。接着,如果我们对输出采用one-hot编码输入层的节点数就是题目数量答题结果 : 4 * 2 = 8个。

首先将输入层全连接到RNN的隐层,接着建立隐层到输出层的全连接,最后使用Sigmoid函数作为激活函数,一个基础的DKT模型就构建完毕了。接着为了训练模型,定义如下的损失函数:

在这里插入图片描述

LSTM
在这里插入图片描述可以明显看出,LSTM更加复杂更加强大。LSTM中的隐藏单元(latent units)会保留他们的值,直到被遗忘门(forget gate)明确清除。

5、序列的输入和输出

输入

将学生做题的情况转化为固定长度的输入向量xt
①若题目为少量的M个单知识点,则使用one-hot表示,ht= {qt, at},
②若为大量M,使用压缩感知,将高维向量由随机低维向量表示。d维的向量k稀疏信号可以从klogd随机线性投影中精确恢复。
这篇只涉及①,即one-hot表示,因为这种方法也容易扩展到在定长向量中捕获更复杂的学生交互方面。

输出

输出yt是一个长度等于问题数量的向量,其中每个条目代表学生正确回答特定问题的预测概率。

6、优化及应用

通过在小批量上使用随机梯度下降来最小化。为了防止训练过程中的过拟合,通过截断范数高于阈值的梯度的长度来防止梯度随着时间的推移而“爆炸”。

DKT旨在根据学生过去行为来预测未来表现:
1、最大作用就是选择最优课程推荐给学生
2、可以进一步应用于发现数据中潜在结构或概念的任务

7、三个数据集

在三个数据集上测试预测学生成绩的能力:模拟数据、学院数据和助教基准数据。对于非模拟数据,我们使用5倍交叉验证来评估我们的结果,在所有情况下,超参数都是从训练数据中学习的。在每个数据集上,我们测量曲线下的面积(AUC)。我们将DKT的结果与标准BKT进行比较,并在可能的情况下与BKT的最佳变体进行比较。此外,我们将我们的结果与通过简单计算学生获得特定正确练习的边际概率所做的预测进行比较。
在这里插入图片描述
所有测试数据集的AUC结果。BKT是标准的BKT。BKT*是最佳变体。DKT是使用LSTM的DKT的结果。

8、结果

发现RNN成功捕捉到了相似题目之间的关联,将同一概念下的题目如函数、几何聚到了一起。

我们发现RNN应用于教育中的知识追踪问题,在助教基准可汗数据集上显示出优于现有技术水平的性能。我们新模型的两个特别有趣的新特性是:
(1)它不需要专家注释(它可以自己学习概念模式)
(2)它可以对任何可以矢量化的学生输入进行操作。
RNNs相对于简单隐马尔可夫方法的一个缺点是,它们需要大量的训练数据,因此非常适合在线教育环境,但不适合小教室环境。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Deep Knowledge Tracing (深度知识追踪) 的相关文章

随机推荐

  • [week2]化学——识别烷烃基

    文章目录 题意InputOutput输入样例输出样例 分析总结代码 题意 化学很神奇 xff0c 以下是烷烃基 假设如上图 xff0c 这个烷烃基有6个原子和5个化学键 xff0c 6个原子分别标号1 6 xff0c 然后用一对数字 a b
  • [week2]模拟OJ成绩排名系统(简易版)

    文章目录 题意InputOutput输入样例输出样例 分析总结代码 题意 题面宛如小作文233 程序设计思维作业和实验使用的实时评测系统 xff0c 具有及时获得成绩排名的特点 xff0c 那它的功能是怎么实现的呢 xff1f 我们千辛万苦
  • [week3]区间选点问题——贪心算法

    目录 题意InputOutput输入样例输出样例 分析总结代码 题意 数轴上有 n 个闭区间 a i b i 取尽量少的点 xff0c 使得每个区间内都至少有一个点 xff08 不同区间内含的点可以是同一个 xff09 Input 第一行1
  • [week3]区间覆盖问题——贪心算法

    目录 题意InputOutput输入样例输出样例提示 分析总结代码 题意 数轴上有 n 1 lt 61 n lt 61 25000 个闭区间 ai bi xff0c 选择尽量少的区间覆盖一条指定线段 1 t xff08 1 lt 61 t
  • [csp模拟1]咕咕东的奇遇——(一)

    目录 题意InputOutput输入样例输出样例提示 分析总结代码 题意 咕咕东是个贪玩的孩子 xff0c 有一天 xff0c 他从上古遗迹中得到了一个神奇的圆环 这个圆环由字母表组成首尾相接的环 xff0c 环上有一个指针 xff0c 最
  • Linux挂载镜像的一些命令

    Linux挂载镜像的一些命令 在Linux中 xff0c 可以用losetup命令来设置无分区空白镜像到loop设备上 xff0c 用kpartx 来kpartx映射分区的镜像到loop设备上 之后通过mount命令将loop设备与系统文件
  • [week5]平衡字符串——尺取法

    目录 题意InputOutput输入样例输出样例提示 分析总结代码 题意 一个长度为 n 的字符串 s xff0c 其中仅包含 Q W E R 四种字符 如果四种字符在字符串中出现次数均为 n 4 xff0c 则其为一个平衡字符串 现可以将
  • [csp模拟2]T4——咕咕东的奇妙序列

    文章目录 题意InputOutput输入样例输出样例提示 分析总结代码 题意 咕咕东 正在上可怕的复变函数 xff0c 但对于稳拿A Plus的 咕咕东 来说 xff0c 她早已不再听课 xff0c 此时她在睡梦中 突然想到了一个奇怪的无限
  • [week9]签到题(长凳)——贪心算法

    文章目录 题意InputOutput输入样例输出样例提示 分析总结代码 题意 SDUQD 旁边的滨海公园有 x 条长凳 第 i 个长凳上坐着 a i 个人 这时候又有 y 个人将来到公园 xff0c 他们将选择坐在某些公园中的长凳上 xff
  • [week14] Q老师与十字叉

    文章目录 题意InputOutput输入样例输出样例提示 分析总结代码 题意 Q老师 得到一张 n 行 m 列的网格图 xff0c 上面每一个格子要么是白色的要么是黑色的 Q老师认为失去了 十字叉 的网格图莫得灵魂 一个十字叉可以用一个数对
  • [week15] ZJM 与霍格沃兹 —— 字符串哈希

    文章目录 题意InputOutput输入样例输出样例提示 分析总结代码 题意 ZJM 为了准备霍格沃兹的期末考试 xff0c 决心背魔咒词典 xff0c 一举拿下咒语翻译题 题库格式 xff1a 魔咒 对应功能 背完题库后 xff0c ZJ
  • [week14] D - Q老师染砖(选做) —— 矩阵快速幂优化DP

    文章目录 题意InputOutput输入样例输出样例提示 分析总结代码 题意 衣食无忧的 Q老师 有一天突发奇想 xff0c 想要去感受一下劳动人民的艰苦生活 具体工作是这样的 xff0c 有 N 块砖排成一排染色 xff0c 每一块砖需要
  • [week14] E - Q老师度假(选做)—— 矩阵快速幂优化DP(拓展)

    文章目录 题意InputOutput输入样例输出样例提示 分析总结代码 题意 忙碌了一个学期的 Q老师 决定奖励自己 N 天假期 假期中不同的穿衣方式会有不同的快乐值 已知 Q老师 一共有 M 件衬衫 xff0c 且如果昨天穿的是衬衫 A
  • [week15] B - ZJM与生日礼物(选做)—— 字典树

    文章目录 题意InputOutput输入样例输出样例提示 分析总结代码 题意 ZJM 收到了 Q老师 送来的生日礼物 xff0c 但是被 Q老师 加密了 只有 ZJM 能够回答对 Q老师 的问题 xff0c Q老师 才会把密码告诉 ZJM
  • [week15] C - ZJM与纸条(选做)—— KMP算法

    文章目录 题意InputOutput输入样例输出样例提示 分析总结代码 题意 ZJM 的女朋友是一个书法家 xff0c 喜欢写一些好看的英文书法 有一天 ZJM 拿到了她写的纸条 xff0c 纸条上的字暗示了 ZJM 的女朋友 想给 ZJM
  • 51按键外部中断控制流水灯

    实验二 外部按键输入 一 实验目的 1 了解单片机检测口方法 2 了解单片机外部中断原理 3 了解按键输入原理 二 实验内容 1 完成按键扫描控制流水灯 2 完成按键外部中断控制流水灯 三 实验原理 四 实验电路与程序 1 软件实验一 xf
  • 树莓派4B构建debian镜像UEFI启动

    树莓派4B构建debian镜像UEFI启动 前言 今天按照大佬的博客树莓派俱乐部官方 Debian 系统镜像 支持UEFI跑了遍 完整的UEFI镜像构建过程 包括镜像分区 挂载 xff0c 根文件系统的制作 xff0c 内核的移植 xff0
  • Linux修改主机名问题

    记一次修改主机名不成功原因 场景 虽然使用hostname命令可以修改主机名 xff0c 但如果重启主机之后主机名还会变为之前的 xff0c 所以需要把修改的主机名称写到配置文件中 假设修改后的主机名为 new hostname 1 修改配
  • mybatisPlus分页插件报错,sql后面拼接多了一个limit。

    原本 用的mybatisPlus版本为3 1 0 xff0c 后来升级到3 4 2了 xff0c 使用分页的时候报错 解决 xff1a mybatisPlus 3 1 0 所用到的分页插件为 而mybatisPlus 3 4 2版本pagi
  • Deep Knowledge Tracing (深度知识追踪)

    boss又让我看这块的内容了 xff0c 刚开学 xff0c 还不太适应实验室的学习生活 xff0c 假期闲散惯了操 目录 1 概述2 表示3 1 DKT的优势3 2 DKT的不足4 模型5 序列的输入和输出输入输出 6 优化及应用7 三个