GIKT: A Graph-based Interaction Model for Knowledge Tracing
作者:Yang Yang, Jian Shen, Yanru Qu, Yunfei Liu, Kerong Wang, Yaoming Zhu, Weinan Zhang, Yong Yu
来源:ECML-PKDD’20
代码:https://github.com/Rimoku/GIKT
关键词:Knowledge Tracing, Graph Neural Network, Information Interaction
研究对象
随着网络教育的快速发展,知识追踪(KT)已成为追踪学生知识状态并预测其在新习题上表现的基本问题。
面临的问题
现有的KT方法通常基于目标问题所对应的知识点而没有对问题本身建立预测模型,这可能导致性能的下降。此外,以前的模型很难捕捉到学生练习历史的长期依赖性,也无法以一致的方式对学生-习题和学生-知识点之间的交互进行建模。
在图1中,问题 q 2 q_2 q2 和 q 3 q_3 q3 包含相同的知识点,但它们不同的难度可能导致正确答案的概率不同。为此,之前的一些工作[14]将问题特征作为知识点输入的补充。但是,由于问题的数量通常很大,很多学生做过的题目很少,只有少数学生做过大量题目,这导致数据稀疏性问题[28]。此外,对于那些部分知识点相同的问题(如 q 1 q_1 q1 和 q 4 q_4 q4 ),单纯增加问题特征会失去潜在的“问题间”和“知识点间”的信息。基于这些考虑,利用问题和知识点之间的高阶信息是很重要的。
作者的方法
本文提出了一种端到端知识跟踪的深度框架——GIKT 来解决上述问题:
-
利用图卷积网络聚合问题嵌入和知识点嵌入,GIKT能够利用高阶习题-知识点关系,从而缓解数据稀疏问题和多知识点问题。
-
习题嵌入和知识点嵌入聚合后,直接将问题嵌入和相应的作答情况嵌入作为KT模型的输入。
-
为了解决深度KT模型无法捕获习题序列[1]中的长期依赖关系这一问题,作者没有将相关的历史信息聚合到一个新的状态中直接进行预测,而是进一步改进了长期依赖捕获和更好地建模学生的掌握程度。受到SKVMN和EERNNA的启发,本文引入了一个recap模块,根据注意权重选择几个相关度最高的隐藏练习,以达到降噪的目的。
-
考虑到相关习题通常分散在整个练习历史中,并且习题和知识点只是知识的不同实例,作者归纳了交互模块,将学生对习题的掌握程度概括为学生当前状态、学生历史相关习题,目标习题和相关知识点之间的交互。这能够更好地模拟学生对问题和技能的掌握程度。
-
最后,对每个交互作用采用注意机制进行最终预测,这将自动加权所有交互的预测效用。
Framework
蓝色 – 习题, a i a_i ai – 答题情况, h i h_i hi – 学生的知识状态。
方法
准备工作
嵌入层
本文框架中,不预先训练习题、知识点和作答情况嵌入,而是通过端到端的方式优化最终目标函数来训练它们。
嵌入传播
习题-知识点关系图是一个二部图,一道题的1跳邻居应该是与其相关的知识点,2跳邻居应该是共享相同知识点的那些习题。
学生状态演化
该层对于捕获知识点之间的粗粒度依赖关系(如潜在关系)非常重要,因此作者仅学习隐状态 h t ∈ R d {\bf{h}}_t \in {\Bbb{R}}^d ht∈Rd 作为当前学生状态,其中包含了知识点的粗粒度掌握状态。
历史回顾模块
作者认为最近做过的题目有可能毫无关联,而学生能够立马回忆起曾经是否做过类似的题目。然而,LSTM很难捕获很长序列中的长期依赖性。因此,要想更准确的对新题目的作答情况进行预测,模型也需要去模拟学生的这种能力。
广义交互模块