贝叶斯知识追踪(Bayesian Knowledge Tracing,BKT)
1. 简介
在教育领域的数据挖掘应用中,很重要的一个场景就是对学生的学习过程进行建模。借助知识追踪(Knowledge Tracing,KT)模型也可以观察到学习者的学习状态,并判断学习者是否已经掌握了该知识点内容,KT模型能够根据学习者过去的学习成绩跟踪学习者的学习进度,判断学习者对某一知识点的掌握情况以及对下一道题的表现情况进行预测。比较流行的一种建模方式就是贝叶斯知识追踪(Bayesian Knowledge Tracing,BKT), 由Corbett, A. T. 和 Anderson, J. R.在1995年提出。
2. 基本原理
BKT模型是一种基于贝叶斯网络的知识追踪方法,它将学习者所学习的不同内容当做相互独立的关系,并用隐马尔可夫模型模拟学习者在学习不同内容上知识状态变化的过程。在BKT模型中的每一个节点定义为不同的学习状态 ,各个状态之间都是相互独立的。
2.1 马尔科夫模型
我们通常都习惯寻找一个事物在一段时间里的变化模式(规律),一种做法是假设模型的当前状态仅仅依赖于前面的几个状态,这被称为马尔科夫假设,它极大地简化了问题。一个马尔科夫过程是状态间的转移仅依赖于前 n 个状态的过程。这个过程被称之为 n 阶马尔科夫模型,其中 n 是影响下一个状态选择的(前)n 个状态。最简单的马尔科夫过程是一阶模型,它的状态选择仅与前一个状态有关,下一个状态的选择由相应的概率决定,并不是确定性的。
对于有M个状态的一阶马尔科夫模型,共有
2.2 马尔科夫过程
下面是一个天气预测中可能的状态转移概率:
也就是说,如果昨天是晴天,那么今天的是晴天的概率为0.5,多云的概率是0.375,下雨的概率为0.125,每一行的概率之和为1。
要初始化这样一个系统,我们需要确定起始日天气的情况,定义其为一个初始概率向量,称为
也就是说第一天为晴天的概率为1,多云或下雨的概率都为0。
现在定义一个一阶马尔科夫模型如下:
-
状态:晴天、多云、雨天
-
向量:定义系统初始化是每一个状态的概率。 -
转态转移矩阵:给定前一天天气情况下的当前天气概率。
任何一个可以用这种方式描述的系统都是一个马尔科夫过程。
2.3 隐马尔科夫模型
2.3.1一阶马尔科夫过程
考虑一个简单的例子,有人试图通过一片海藻推断天气——民间传说告诉我 们‘湿透的’海藻意味着潮湿阴雨,而‘干燥的’海藻则意味着阳光灿烂。民间传说告诉我们水藻的状态与天气状态有一定的概率关系——天气和水藻的状态是紧密相关的。
在这个例子中我们有两组状态,观察的状态(水藻的状态)和隐藏的状态(天气的状态)。我们希望设计一种算法,在不能直接观察天气的情况下,通过水藻和马尔科夫假设来预测天气。
观察到的状态序列与隐藏过程有一定的概率关系,使用隐马尔科夫模型对这样的过程建模,这个模型包含了一个底层隐藏的随时间改变的马尔科夫过程,以及一个与隐藏状态某种程度相关的可观察到的状态集合。
下图显示的是天气例子中的隐藏状态和观察状态。假设隐藏状态(实际的天气)由一个简单的一阶马尔科夫过程描述,那么它们之间都相互连接。
隐藏状态和观察状态之间的连接表示:在给定的马尔科夫过程中,一个特定的隐藏状态生成特定的观察状态的概率。
2.3.2 混淆矩阵
除了定义了马尔科夫过程的概率关系,还需一个混淆矩阵(confusion matrix),它包含了给定一个隐藏状态后得到的观察状态的概率。 对于天气例子,混淆矩阵是:
我们已经看到在一些过程中一个观察序列与一个底层马尔科夫过程是概率相关的。在这些例子中,观察状态的数目可以和隐藏状态的数目不同。 我们使用一个隐马尔科夫模型(HMM)对这些例子建模。
这个模型包含两组状态集合和三组概率集合:
- 隐藏状态:一个系统的(真实)状态,可以由一个马尔科夫过程进行描述(例如,天气)。
- 观察状态:在这个过程中可视的状态(例如,海藻的湿度)。
向量:包含了(隐)模型在时间t=1时一个特殊的隐藏状态的概率(初始概率)。- 状态转移矩阵:包含了一个隐藏状态到另一个隐藏状态的概率。
- 混淆矩阵:包含了给定隐马尔科夫模型的某一个特殊的隐藏状态,观察到的某个观察状态的概率。
因此一个隐马尔科夫模型是在一个标准的马尔科夫过程中引入一组观察状态,以及其与隐藏状态间的一些概率关系。
2.3.3 隐马尔科夫模型(Hidden Markov Models)
定义一个隐马尔科夫模型是一个三元组(
A = {
B = {
值得注意的一点是,这里面定义的概率都是与时间不相关的,意味着这些概率不会随着时间的变化而变化,这一点假设与实际情况不符合,但是将问题大大简化了。
3. 模型构建
标准的 BKT 模型是一种以学习者对知识点掌握情况的潜在变量和答题表现结果的观察变量来构建学习者知识水平的追踪模型,它可以通过观察学习者过去的学习状态,预测其当前的知识点状态的掌握情况和未来表现。
BKT中主要有五个参数:
:开始学习之前,学习者知道某一知识点的初始学习概率; :经过学习之后,某一知识点由不会到会的学习转移概率; :在知道某一知识点时,做题表现为错误的失误概率; :在不知道某一知识点时,做题表现为正确的猜测概率; :学习过程中,某一知识点由会到不会的遗忘概率;通常情况下 被设为0
,不计入参数中。
BKT模型本质上是一种特殊的隐马尔科夫模型,它把所有要学习的知识内容分为一系列以层级关系连接的若干个知识点,把学习者对每个知识点的答题情况分为对应的表现节点,每个表现节点的掌握情况分别用一组二元变量(“掌握”,“未掌握”)表示,并且各个节点之间的转移过程不可逆如下图所示。其中 K 为学习的知识节点, Q 为答题的表现节点,1 表示该节点状态为“掌握”,0 表示该节点状态为“未掌握”。模型中的下一个节点仅依赖于学习者的上一系列知识节点状态和表现节点状态,因此,我们可以借助 BKT 模型观察学习者知识节点状态,追踪学习、者当前的一系列不同的知识节点状态,来预测其下一知识节点的掌握情况和当前表现节点的答题表现情况。