深度知识追踪入门

2020 年 5 月 6 日 AINLP

背景介绍

知识追踪(Knowledge Tracing)是根据学生过去的答题情况对学生的知识掌握情况进行建模,从而得到学生当前知识状态表示的一种技术,早期的知识追踪模型都是依赖于一阶马尔科夫模型,例如贝叶斯知识追踪(Bayesian Knowledge Tracing)。将深度学习的方法引入知识追踪最早出现于发表在NeurIPS 2015上的一篇论文《Deep Knowledge Tracing》,作者来自斯坦福大学。在这篇论文中,作者提出了使用深度知识追踪(Deep Knowledge Tracing)的概念,利用RNN对学生的学习情况进行建模,之后引出了一系列工作,2019年已经有使用Transformer代替RNN和LSTM并且达到了SOTA的论文。

由于深度学习并不需要人类教会模型不同题目的难易、考核内容等特定的知识,避免了大量的手工标注特征工作量,而且在互联网在线教育行业兴起后,拥有了海量的学生答题记录,这些答题记录就能教会模型将题库中成千上万条题目encode为一个向量,并且能类似于word2vec那样找出题目之间的关联。因此之后各种AI+教育、个性化、智能化教育的概念也火了起来。不过截止目前深度知识追踪仍然只是一个小领域,业界应该是做了不少工作的,但因为每个公司教育数据的私密性,不同公司数据的多样性,导致了数据集不公开,方法也大多不通用的情况,因此我们并不太能了解到那些在线教育巨头背后的AI技术,至于学界,论文大多发表在教育数据挖掘国际会议上(Educational Data Mining)。本文简单介绍深度知识追踪,给有兴趣入门的同学的作参考。

任务定义

知识追踪的任务是根据学生的答题记录,通常是一个时间序列,有些业务场景下是与时间无关的,建模得到学生的知识掌握状态,从而能准确预测其未来的答题情况,并依据此为未来的智能化出题做参考,避免给学生出太难或太简单的题目。具体上,假设一个学生的答题记录为 ,我们要去预测下一个交互的情况 ,通常一次交互 代表该学生回答题目 的正误情况。简单的来说就是知道了学生答了一系列题目,也都知道他都回答对了没,现在我要从题库里再抽一题给他,让模型预测预测他能不能答对,答对的概率是多少,那么如果模型给出的概率是1,代表这题对他来说是太简单了,如果给出的概率为0,就代表这题可能太难了,他八成是做不出来的。

模型

上面说了,Deep Knowledge Tracing这篇论文是用了RNN来把答题记录当做平常的时间序列来建模,至于RNN,下面简单列个公式表示一下,相信入门过NLP的同学都是认识RNN的。

模型的输入和输出

假设数据集有 道题目,我们让 为one-hot encoding,由于 ,那么 ,即针对题目 有答对和答错两种不同的状态,所以one-hot的长度是2M。这时候很自然就能想到使用NLP中常用的Embedding,将每个one-hot向量通过embedding转为一个维度小得多的向量 ,这样每道题目就可以初始化为一个随机的低维向量表征,在之后的数据集上进行训练。
每个时间步,模型输入 ,输出 ,维度与题库大小相同,代表着学生答对每道题目的概率。我们根据 可以选出下一题 的正确概率 ,再和真实的标签 求交叉熵损失函数即:
其中 代表交叉熵损失函数, 代表one-hot编码。

Optimization

为了防止过拟合,在使用中间的隐层状态 通过dense层得到 时加了dropout,同时在反向传播时为了避免梯度爆炸,增加了梯度裁剪,评价指标使用的是AUC(area under the curve)。

实验结果

作者在三个数据集上进行了实验,在当时都达到了SOTA
并且在Khan Data和Simulated Data上做了可视化,发现RNN成功捕捉到了相似题目之间的关联,将同一概念下的题目如函数、几何聚到了一起。

优缺点

优点

  1. 能根据学生最近的答题情况记录较长时间的知识情况。
  2. 能根据每次答题更新知识状态,只需要保存上一个隐层状态,不需要重复计算,适合线上部署。
  3. 不需要domain specific的知识,对任何用户答题数据集都适用。
  4. 能够自动捕捉相似题目之间的关联。
缺点
  1. 当答题序列被打乱时,模型输出的结果波动大,即相同的题目和相同的回答,当答题顺序不一致时,得到的知识状态不同。
  2. 由于上述问题,且学生在答题过程中对知识的掌握程度不一定具有连续一致性,导致对学生知识状态的预测受顺序影响发生偏差。
  3. 黑盒,有时会出现第一题答对导致对之后的预测概率都偏高,而第一题答错对之后的预测概率都偏低的奇怪情况。

总结

介绍的这篇论文是深度知识追踪的开山之作,之后有许多论文对它进行的完善,几个具有代表性的是:
  • How Deep is Knowledge Tracing?
  • Going Deeper with Deep Knowledge Tracing
  • Incorporating Rich Features into Deep Knowledge Tracing
  • Addressing Two Problems in Deep Knowledge Tracing via Prediction-Consistent Regularization
  • A Self-Attentive model for Knowledge Tracing
参考文献:
[1] Piech, C. et al. Deep knowledge tracing. in Advances in Neural Information Processing Systems 505–513 (2015).

推荐阅读

AINLP年度阅读收藏清单

斯坦福大学NLP组Python深度学习自然语言处理工具Stanza试用

DistilBERT Understanding

太赞了!Springer面向公众开放电子书籍,附65本数学、编程、机器学习、深度学习、数据挖掘、数据科学等书籍链接及打包下载

深度学习如何入门?这本“蒲公英书”再适合不过了!豆瓣评分9.5!【文末双彩蛋!】

数学之美中盛赞的 Michael Collins 教授,他的NLP课程要不要收藏?

自动作诗机&藏头诗生成器:五言、七言、绝句、律诗全了

From Word Embeddings To Document Distances 阅读笔记

模型压缩实践系列之——bert-of-theseus,一个非常亲民的bert压缩方法

这门斯坦福大学自然语言处理经典入门课,我放到B站了

可解释性论文阅读笔记1-Tree Regularization

征稿启示 | 稿费+GPU算力+星球嘉宾一个都不少

关于AINLP

AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。


登录查看更多
4

相关内容

最新《深度多模态数据分析》综述论文,26页pdf
专知会员服务
295+阅读 · 2020年6月16日
中科大-人工智能方向专业课程2020《脑与认知科学导论》
【MIT深度学习课程】深度序列建模,Deep Sequence Modeling
专知会员服务
76+阅读 · 2020年2月3日
【机器学习课程】Google机器学习速成课程
专知会员服务
162+阅读 · 2019年12月2日
【开源书】PyTorch深度学习起步,零基础入门(附pdf下载)
专知会员服务
107+阅读 · 2019年10月26日
我的推荐系统入门经验~
大数据技术
39+阅读 · 2019年9月19日
我在知识星球这一年
码农翻身
10+阅读 · 2019年2月28日
学术派整理,一份从基础到实战的 NLP 学习清单
人工智能头条
7+阅读 · 2019年2月13日
2018年推荐系统入门指南
论智
15+阅读 · 2018年7月14日
基础 | 深度解析LSTM神经网络的设计原理
黑龙江大学自然语言处理实验室
6+阅读 · 2018年6月16日
Hi,你的【10G大数据免费学习资料包】到了,请签收!
计算机视觉战队
3+阅读 · 2018年3月17日
零基础概率论入门:最大似然估计
论智
12+阅读 · 2018年1月18日
深度解析LSTM神经网络的设计原理
AI研习社
5+阅读 · 2017年11月1日
课程 | 从零开始精通深度学习
机器之心
10+阅读 · 2017年10月24日
MNIST入门:贝叶斯方法
Python程序员
22+阅读 · 2017年7月3日
Sparse Sequence-to-Sequence Models
Arxiv
5+阅读 · 2019年5月14日
Arxiv
26+阅读 · 2018年9月21日
QuAC : Question Answering in Context
Arxiv
4+阅读 · 2018年8月21日
Arxiv
21+阅读 · 2018年2月14日
VIP会员
相关资讯
我的推荐系统入门经验~
大数据技术
39+阅读 · 2019年9月19日
我在知识星球这一年
码农翻身
10+阅读 · 2019年2月28日
学术派整理,一份从基础到实战的 NLP 学习清单
人工智能头条
7+阅读 · 2019年2月13日
2018年推荐系统入门指南
论智
15+阅读 · 2018年7月14日
基础 | 深度解析LSTM神经网络的设计原理
黑龙江大学自然语言处理实验室
6+阅读 · 2018年6月16日
Hi,你的【10G大数据免费学习资料包】到了,请签收!
计算机视觉战队
3+阅读 · 2018年3月17日
零基础概率论入门:最大似然估计
论智
12+阅读 · 2018年1月18日
深度解析LSTM神经网络的设计原理
AI研习社
5+阅读 · 2017年11月1日
课程 | 从零开始精通深度学习
机器之心
10+阅读 · 2017年10月24日
MNIST入门:贝叶斯方法
Python程序员
22+阅读 · 2017年7月3日
相关论文
Top
微信扫码咨询专知VIP会员