首页 > 代码库 > Knowledge Tracing -- 基于贝叶斯的学生知识点追踪(BKT)

Knowledge Tracing -- 基于贝叶斯的学生知识点追踪(BKT)

       目前,教育领域通过引入人工智能的技术,使得在线的教学系统成为了智能教学系统(ITS),ITS不同与以往的MOOC形式的课程。ITS能够个性化的为学生制定有效的

学习路径,通过根据学生的答题情况追踪学生当前的一个知识点掌握状况,从而可以做到因材施教。

      在智能教学系统中,当前有使用以下三种模型对学生的知识点掌握状况进行一个追踪判断:

  1.     IRT(Item response theory)  项目反应理论
  2.     BKT(Bayesin knowledge tracing) 基于贝叶斯网络的学生知识点追踪模型
  3.     DKT(Deep konwledge traing)  基于深度神经网络的学生知识点追踪模型   

      今天我们主要说一下BKT:

       BKT是最常用的一个模型,BKT是含有隐变量的马尔可夫模型(HMM)。因此可以采用EM算法或者bruteForce 算法求解参数。

       BKT是对学生知识点的一个变化进行追踪,可以知道学生知识点的一个掌握情况变化。

      一般有个stop_policy准则,用于判断学生是否经过多轮的做题掌握了相应的知识点。      

       (Once that probability reaches 0.95, the student can be assumed to have learned the skill. The Cognitive Tutors use this threshold to determine when a student should no longer be asked to answer questions of a particular skill)

      (1)首先我们来看一下BKT的模型是如何的:

         如下图,是BKT的一个模型,以及对应的4个主要参数,L0,T,G,S。模型需要根据学生以往的历史答题系列情况学习出这4个对应的参数。

        BKT是对不同的的知识点进行建模的,理论上来说,训练数据有多少个知识点,就有多少组对应的(L0,T,G,S)参数。

        L0:表示学生的未开始做这道题目时,或者为开始连续这项知识点的时候,他的一个掌握程度如何(即掌握这个知识点的概率是多少),这个一般我们可以从训练数据里面求平均值获得,也可以使用经验,比如一般来说掌握的程度是对半概率,那么L0=0.5

        T :表示学生经过做题练习后,知识点从不会到学会的概率

        G:表示学生没掌握这项知识点,但是还是蒙对的概率

        S:表示学生实际上掌握了这项知识点,但是还是给做错了的概率

       

         通过这4个参数,可以构造一个HMM的模型,剩下的事就是训练这个模型

   

       技术分享

       (2)有什么改进的吗?

         其实可以发现,这样构造模型,还是非常简单的,模型只是只是简单的针对知识点进行训练,所有的学生都是用的同一个模型。但是学生有好有坏,

因此可以加个节点,不同的学生使用不同的L0。

         另外题目的难度也是可以应用到模型的,比如难度系数大的 G S参数就可以不一样。根据难度系数训练多组G S

 

       参考论文:

              From Predictive Models to Instructional Policies

 

 

 

 

     

Knowledge Tracing -- 基于贝叶斯的学生知识点追踪(BKT)