接上一篇,一直更新,记录方便学习
想我之前刚接触知识追踪,在网上找资料几乎就几个,现在发现很多优秀的小伙伴写了很多博客帮助我们学习,像大佬们学习
Deep Knowledge Tracing [Pytorch] | 一切皆可解读 (chsong.live)
介绍了DKT 的具体实现
知识追踪-knowledge tracing (wqw547243068.github.io)
改进
遗忘机制
- 论文阅读笔记【13,参考遗忘的深度知识追踪模型】
- WWW’19的一篇论文《Augmenting Knowledge Tracing by Considering Forgetting Behavior》。本论文其实是对原有知识追踪模型DKT(Deep Knowledge Tracing)的一种优化。DKT默认用户学到知识以后,是不会忘记的,但是实际上,学生学完知识以后如果很久都没有复习的话,依然是会产生遗忘的。
知识追踪要解决的问题有两个:
- (1)通过学生与学习系统内容的交互来对学生的知识进行建模
- (2)预测学生在未来做题中的表现。
用户行为
- 论文阅读笔记【14,考虑用户行为的知识追踪】
- 西北大学团队发表在TURC19的一篇文章《Muti-behavior Features based Knowledge Tracking using Decision Tree improved DKVMN》。
- 该论文所要解决的问题仍然是知识追踪问题,其目的有二,其一:追踪学生对于各个知识点的掌握情况;其二:根据学生当前对知识点的掌握情况,预测学生答对下一道题目的概率。
- 该论文是对于2017年论文《Dynamic Key-Value Memory Networks for Knowledge Tracing》的改进。其具体改进点在于:DKVMN模型没有在意用户在答题过程中的具体行为,仅仅在意用户最终是否答对习题。在e-learning环境下,这显然是有缺陷的。因为在线环境下,用户不仅仅可以在教学系统进行习题解答,还可以在教学系统查看答案,查看答案之后再对习题解答。试想,如果用户查看答案后,直接将答案复制下来,粘贴到作答区,这样学生知识水平或许完全没有变化,但是根据DKVMN模型,用户对于该知识点的理解一定会有提高,所以与事实不符合。
- 该论文正是关注到了用户行为对于答题情况,对于用户知识水平具有很大的影响,所以在这方面加以改进,提出了论文中所提到的模型Dynamic Key-Value Memory Networks with Decision Tree (DKVMN-DT)。
知识点先验
- 论文阅读笔记【16,考虑知识点先验关系的知识追踪】
- 北师大团队投稿在IEEE的论文。该论文同样是介绍知识追踪知识。论文的创新点在于,考虑了知识点之间的先验关系。
- 深度知识追踪DKT模型仅仅关注了学生的做题历史,将各个知识点视为是独立的毫无关联的个体,根据学生的做题历史去更新学生知识水平上的变化。但是现实生活中,知识点之间是存在先验关系得,比如java和spring就存在先验关系,没有学习过java语法得人,很难学会spring的知识。
- 其中模型的输入有三个矩阵,最上面是学生的做题矩阵,描述的是每个学生的做题历史。中间的是试题-知识点矩阵,描述的是每道题目都包含了哪些知识点。最下面的是知识点之间的先验关系图,描述的是知识点之间的先验关系。
- 其实本文所使用的知识追踪方法和传统的DKT方法其实异曲同工,所选用的循环神经网络模型是GRU。
- 只是在描述知识点先验关系对知识追踪影响这个部分加入了一个先验条件。如果k1是k2的先验知识,那么如果学习者会k2,那么他学会k1的概率就会很大;相反如果学习者k1没有掌握,那么他学会k2的概率就会很低。举个例子就是,如果一个学生掌握了Spring,那么他很大概率就会掌握Java;相反如果一个学生没有掌握java,那么他很大程度没有掌握Spring。作者在原有DKT模型,加入了这个约束,从而可以根据知识点之间的先验关系去做知识追踪。
小魏的论文阅读笔记 - 知乎 (zhihu.com)这个和上面应该是一个作者
很多论文,可以互相交流想法很棒
记录下来慢慢看,慢慢学习加油