数字教学平台

2020.06.02工作汇报

1.数据分析

1.1 学生相关信息:

属性 说明
用户id 只关注学生id
所在年级 学生所在年级
学习科目 学生在数字平台学习的科目

1.2 教材信息or学科信息

属性 说明
教材编码 用于区分不同教材
学科 教材所述学科
年级 教材使用年级
学期 教材适用学期
教学基本要求id 对应知识图谱 or 关系型数据 or 图数据库数据

1.3 学生学习行为信息(用日志的情况存储可能较好)

属性 说明
学生id 用于区分不同学生
上线时间 上线时间
学习时长 离线时间-上线时间
学习教材id 例如:物理id1、数学id2、英语id3。。。
创建笔记or记录笔记 位置信息:在教材何处记笔记
搜索资源行为 有or无
查看资源行为 有or无
搜索资源内容
查看资源内容 根据用户点击内容获得

1.4 用户答题情况

属性 说明
学生id 用于区分不同学生
习题id 系统唯一标识
答题时长 提交时间-开始时间
用户答案 (可能可以与正确答案之间进行相似度匹配?判断用户掌握情况)
答案状态 历史答题记录 or 最新答题记录
数据更新时间 用户答题数据更新时间

1.5 学科-习题知识图谱构建

数字教学平台_第1张图片

1.6 学生掌握的知识情况-图谱构建

  • 类似上图,将学生掌握的知识构建为知识图谱,每次学习完都进行更新,然后与上图进行相似度比较,来确定下一步应该学习的内容

1.7 教材知识图:

这个可以也可以构建响应的知识图谱,可能需要具体的教材信息,然后需要人工对教材相关知识进行切分,根据上一个学生掌握情况推荐对应的学习内容;

2. 相关的算法:

2.1Level 1 基于简单规则的自适应学习

数字教学平台_第2张图片

2.1.1 决策树、随机森林、xgboost:

这一部分需要进行监督学习,而提供的数据里不包括标签。可能需要先进行人工标注,或者教师参与标注,或者进行无监督学习,做聚类。获取标签;

属性 说明
学生id 用于区分不同学生
上线时间 上线时间
学习时长 离线时间-上线时间
学习教材id 例如:物理id1、数学id2、英语id3。。。
创建笔记or记录笔记 位置信息:在教材何处记笔记
搜索资源行为 有or无
查看资源行为 有or无
搜索资源内容
查看资源内容 根据用户点击内容获得
属性 说明
用户id 只关注学生id
所在年级 学生所在年级
学习科目 学生在数字平台学习的科目
属性 说明
学生id 用于区分不同学生
习题id 系统唯一标识
答题时长 提交时间-开始时间
用户答案 (可能可以与正确答案之间进行相似度匹配?判断用户掌握情况)
答案状态 历史答题记录 or 最新答题记录
数据更新时间 用户答题数据更新时间

可能需要先进行一下特征工程,选择有用的特征:

  • 特征构建:从原始数据中人工的找出一些具有物理意义的特征。需要花时间去观察原始数据,思考问题的潜在形式和数据结构,对数据敏感性和机器学习实战经验能帮助特征构建。

  • 特征提取:PCA主成分分析、LDA线性判别分析、ICA独立成分分析

  • 特征选择:特征选择是剔除不相关或者冗余的特征,减少有效特征的个数,减少模型训练的时间,提高模型的精确度。

    • 运用统计学的方法,衡量单个特征与响应变量(Lable)之间的关系。
    • 基于机器学习模型的特征选择

决策树----> 随机森林 or 决策树---->xgboost来进行学生掌握程度回归

  • 利用基尼系数来构建决策树,然后通过扩展。使用划分的不同的数据集来生成随机森林;
  • xgboost:先生成决策树,通过某个公式来生成另外一棵树来增强当前模型效果。迭代进行。
  • xgboost效果比随机森林好。

2.2 Level 2 基于难度等级的自适应学习

在Level 1级的自适应学习里,通过学生的行为直接指出学生的问题。如果我们不去规定,学生什么具体行为错了就推送什么相应课程,而是设计一套难度递增的课程,当学生完成得好的时候就加大挑战难度,当学生完成的有问题时,就相应减少难度

数字教学平台_第3张图片
在level 1基础上,根据用户得分情况和学习情况调整响应的难度,比如推荐难度不同的知识点或者习题,这部分用到的算法可以直接人工规定或者使用聚类将学生的学习情况分类,类似于天梯,将不同学习水平的学生分开然后推荐不同难度的题目;
常见的聚类算法:

  • K-Means
  • -均值漂移聚类
  • 基于密度的聚类方法(DBSCAN)
  • 用高斯混合模型(GMM)的最大期望(EM)聚类
  • 凝聚层次聚类
  • 图团体检测(Graph Community Detection)

2.3 Level 3 基于知识点网络和概率模型的自适应学习

Level 2 只有难度等级的概念,引入知识图谱的概念了。我们实际上是没有直接办法去测量学生的知识点掌握程度,我们只能倒过来从学生的做题情况,推断知识点的掌握程度。
数字教学平台_第4张图片
如何推断学生知识点掌握情况----依据做题情况来判断

2.3.1 相同难度,单一知识点的题目

假如学生知识点的掌握度为p,p是0~1之间的一个数,意味着每做1道题,有p的概率做对。那么学生做了n道题,得零分的概率为(1-p)的n次方,得满分的概率是p的n次方,他最有可能做对的题目数是n*p。
没有人知道p为多少,我们倒过来只知道n道题里,有m道做对了。当n趋近于无穷的时候,我们几乎可以肯定p=m/n
为了追求实用,我们必须牺牲一部分精度,我们可以认为n=0的时候,也就是我们对学生一无所知的时候,p应该是一个0~1的均匀分布,但是随着n的增加,p的分布是扔不均匀硬币的二项式分布的共轭先验密度函数(conjugate prior probability distribution)是beta分布(其多维版本叫做Dirichlet分布)。(这里具体怎么推导的还没看)
核心思想:同样是100%的正确率,同样难度的题,张三做了三道,李四做了20道,由于样本容量的不同,会导致知识点掌握度的置信因子不同。

2.3.2 不同难度,相同知识点的题目

真实的题型,并不是都难度一样的,甚至说难度一个衡量指标,是远远不够的。举一个例子,题目一是1234*56789等于多少,填空题,题目二一个天体为水的密度,重量为1亿亿吨,请问这个天体是否是一个黑洞。前者其实难度是比后者小的,但是,由于前面是填空题,后面是判断题,其实后面的题目有50%的蒙对概率。为了能够对题目更好地建模,我们引入IRT(Item-response-theory)模型。
数字教学平台_第5张图片
其意义在于描述出“成功解答某一特定考试项目的可能性”和“被测试者能力”(在函数中以θ表示)之间的关系。

以上图是三个参数版本的IRT,其中a为区分度,b为难度,c为猜测可能性。横纵标里,值越高代表学生能力越强。c=0.25,意味着哪怕最差的学生都有25%的可能性做对,所以这道题目最有可能是一道4选1的单选题。b=0.0代表,这道题目的难度正好适中,如果b比较大,代表能够把特别优秀的学生和普通学生区分开,如果b比较小,代表这是一道送分题,如果这还做不对,大概是平时没有认真学习。区分度a,可以认为当区分度特别大时,这道题目是要么肯定就会,要么就是彻底不会,不存在中间地带。

IRT模型的初始化可以用老师来标注,但是后期只有有足够多的真实做题数据才反映真实的题目难度。通常来讲,一道题目被1000个不同的学生做后,参数就可以基本确定,当这道题被10000个学生做过后,会基本收敛,再来新的学生,参数变化会非常小。

在IRT的基础上,又出现了利用贝叶斯+HMM的BKT,还有基于深度学习的DKT等一系列算法,不管算法怎么演进,其核心目的在于通过做题情况估算学生真实的的知识点掌握度。然而,刚才有一个重要的点被我们略过了,那就是,实际的题目,并不是只有单一知识点的,而往往可能同时对应多个知识点。这时候我们就要引入题目知识映射矩阵(q matrix)的概念。

2.3.3 一题多个知识点对应的情况

数字教学平台_第6张图片

  • 一个题目与知识点对应的矩阵,其中的值既可以是离散的0或1,也可以是连续的0~1之间的概率。最大工作量之一就在于q矩阵的搭建,尤其是当知识点的粒度比较细的时候,所需要投入的人工成本非常大。
  • 怎样给题目打标签呢?
    • 这个过程一定要抛开狭义的课本上的知识点,而采用广义知识点(Knowledge Component)。广义知识点,除了章节以外,还应该包括策略,考察点,技巧,知识误区,甚至还有学生是否马虎大意,应用题的阅读理解能力如何。好的系统,可能会给选择题的不同选项都会对应不同的知识点,而填空题的情况还会更加复杂。

2.4 知识点互相关联形成的知识图谱

该部分的构建相当复杂,由于教材版本的不同,实际上会出现一个知识图谱与不同版本教材章节的映射网络。根据该该知识图谱构建后,可以进行学生学习顺序的推荐。

2.5 时间的影响

一个学生做了100道知识点一样的题目,最终对了50道,这真的代表学生水平是0.5吗?实际上很有可能,前20道题,由于学生什么都不会,只对了2-3道,而后20道题,学生已经基本掌握了,可能一道都没错。我们要以变化的眼光去看待学生的发展,这就意味着,我们需要“遗忘”那些时间久远的事情。也就是我们需要一个滑动的窗口(sliding window),越遥远的行为数据权重越低。

还有一个时间的影响就是记性,随着时间的推移,学生遗忘的比例会越来越高。而最佳的复习时间,就是学生恰好要遗忘,却没有忘记的时候。自适应的复习算法,开源软件anki采用了supermemo的早期spaced repeatition算法,已经能够满足绝大多数的需求,也是多数背单词软件所采纳的算法。

2.6 总结

自适应做到这个地步,依然存在两大问题,一个问题是人工教研工作量耗大,做得越细越好,越困难。另一个问题是,只能解决客观题,对于证明题,简答题,完全没有办法做。而只有能够在解题步骤里做自适应,才是真正的终极解决办法

你可能感兴趣的:(自适应学习)