Bootstrap

认知诊断 Cognitive diagnosis | RCD

文章链接🔗RCD: Relation Map Driven Cognitive Diagnosis for Intelligent Education Systems


目录

1. Motivation(针对的问题)

2. Method (解决方案)

3. RCD Implement 实现

3.1 符号定义

3.2 Probelm Statement 问题定义

3.3 RCD Framework 模型框架 

3.4 Implement Details 实现细节

3.4.1 Embedding Layer(嵌入层)

3.4.2 Fusion Layer (融合层)

3.4.3 Extendable Diagnosis Layer  (可扩展的诊断层)

最终的预测公式:

4. 模型拓展

5. Experiments 实验


1. Motivation(针对的问题)

现有方法的局限性

  • 层间交互建模:传统方法(如 IRT 和 DINA)专注于学生-题目学生-知识点之间的交互,忽略了知识点内部的结构化关系(如先后学习顺序、依赖关系)。
  • 缺乏层次化建模学生-题目-知识点之间的多层次关系未被全面建模,导致信息利用不足。

2. Method (解决方案)

  1. 多层关系图建模

    将学生、题目和知识点表示为不同层次的节点,并构建三个局部关系图:
    • 知识点依赖图:描述知识点之间的关系(如先后学习顺序或关联性)。

    • 知识点-题目关联图:是一个二部图,描述题目涉及的知识点。

    • 学生-题目交互图:学生与题目的答题交互情况,例如答题正确率。
  2. 多层注意力网络

    利用注意力机制,分别聚合每个局部图内部的节点关系,并跨关系图聚合不同层次的关系。
  3. 可扩展诊断函数

    通过联合训练网络,设计一个扩展性强的预测函数,既能预测学生表现,又能学习关系感知的节点表示。

3. RCD Implement 实现

3.1 符号定义

  • 三个局部图
    • 知识点依赖图(Concept Dependency Map):G_{c}=\left \{ C,R_{c} \right \} 
      • C 表示知识点concept的集合;
      • R_{c}=\left \{ R_{r}^{c} ,r=1,...,R\right \} 从是多个教育关系组成的集合,r 表示某一特定的概念类型,例如先序关系、相似关系;
    • 习题-知识点关联图(Exercise-concept Correlation Map):G_{qc}\left ( Q\cup C,R_{qc} \right ) 
      • Q 表示习题的集合;
      • C 是概念的集合;
      • R_{qc} 指的是习题和概念之间的关系,如 r_{q_{i}\leftrightarrow c_{j}}=1 表示习题 q_{i}中 包含概念 c_{j} ;
    • 学生-习题图(Student-Exercise Interaction Map): G_{sq}\left ( S\cup Q,R_{sq} \right )
      • S 表示学生的集合;
      • Q 是习题的集合;
      • R_{sq} 指的是学生和习题之间的交互关系,如 r_{s_{i}\leftrightarrow q_{j}}=1 表示x学生 s_{i} 回答了习题 q_{j}(注意这里是是否回答而不是是否正确回答) 
  • RCD中总的关系图G\left ( G_{c}\bigcup G_{qc}\bigcup G_{sq},R_{c}\bigcup R_{qc}\bigcup R_{sq} \right )

3.2 Probelm Statement 问题定义

  • N Students:S =\left \{ s_{1},s_{2},...,s_{N} \right \}
  • M Exercises:Q =\left \{ q_{1},q_{2},...,q_{M} \right \}
  • K Konwledge concepts:C =\left \{ c_{1},c_{2},...,c_{M} \right \}
  • 习题-知识点的关系集合 : R_{qc}=\left \{r_{q_{i}\leftrightarrow c_{j}}|q_{i}\epsilon Q, c_{j}\epsilon C\right \}
  • 学生的回答记录:L

        由此得到了一个三元组(s,q,r_{sq}) ,其中r_{sq}表示学生和该问题的交互分数(关联强度而不是是否回答正确),那么问题定义为:给定学生回答记录L,以及关系图G,如何推测学生对知识点的掌握情况。

3.3 RCD Framework 模型框架 

        总体来看,模型由三层实现:首先由 ①嵌入层(Embedding Layer 得到学生s,习题q,概念c的向量表示;然后由②融合层(Fusion Layer)在每个局部关系图中通过节点级和图级的注意力机制聚合邻居节点的信息迭代地得到(迭代次数L?)s、q、c的融合表示;最后在③诊断层(Diagnosis Layer)设计交互函数预测学生表现。


3.4 Implement Details 实现细节

3.4.1 Embedding Layer(嵌入层)

        在嵌入层,分别通过三个可学习的矩阵将学生s、习题q和知识点c的独热编码映射为一个嵌入向量(上标0可以看作是首次迭代之前的原始向量):

3.4.2 Fusion Layer (融合层)
  •  Knowledge Concept Fusion 知识点融合

        知识点向量q受到两个图的影响:G_{c} (知识点依赖图) 和 G_{qc} (习题-知识点关联图);

        在图 G_{c} 中,知识点的关系可以分为两类:单向传播(如,先序关系、补充关系)和双向传播(如,相似、协作);(建模中体现的哪里?)

        在图 G_{qc} 中,每个概念也对应一系列的习题;

        因此,用 \tilde{p} _{r}^{l+1} 表示在关系 r 下知识点依赖(知识点k的邻居知识点)的聚合嵌入,用 \tilde{e} _{k}^{l+1} 表示包含知识点 k 相关的习题(习题-知识点二部图中,与知识点k相连的习题)的聚合嵌入,则在第l+1 轮的迭代中,第k个知识点的嵌入受到第上一轮的知识点嵌入c_{k}^{l} 以及 \tilde{e} _{r}^{l+1} 和 \tilde{p} _{r}^{l+1} 的影响:

        在公式(3)中,其中 \alpha _{ka}^{l+1} 指的是在图 G_{c} 中知识点 k 和知识点 a 的依赖强度,  a\epsilon N_{k}^{r}N_{k}^{r} 表示与当前知识点k相关的邻居知识点的集合;W^{l} 是用于做线性变换的可训练的矩阵。

        在公式(4)中,其中 \beta _{kb}^{l+1} 指的是在图 G_{qc} 中知识点 k 和知识点 a 的关联程度,  b\epsilon N_{k}^{q}N_{k}^{q} 表示与当前知识点k相关的邻居习题的集合;W^{l} 是用于做线性变换的可训练的矩阵。

        \alpha _{ka}^{l+1} 和 \beta _{kb}^{l+1} 这两个注意力权重是节点级的,而公式(2)中的两个权重\eta _{kr}^{l+1} 和 \eta _{k1}^{l+1}是图级的注意力权重,用于平衡两个图的贡献程度。为了建模这种多层的结构,文章建模了一个多层注意力网络来计算注意力权重。

注:注意力权重通常由输入特征通过某种形式的比较函数生成,比如:

  • 点积相似性 (Dot-product)
  • 可学习的参数化函数 (Parameter-based functions)
  • 带非线性激活的函数 F(⋅)

 (一)node-level attention 

        这里的 F(\cdot ) 是一个用于学习注意力权重的全连接层,偏置是可选的,通过 F(\cdot ) 得到注意力分数后,通过公式(7)对其进行正则化,这样就得到了节点级的注意力权重。

        以公式(5)为例,可以理解为计算概念k :c_{k}^{l}和概念a:c_{k}^{a}之间 间的相似度(或者说概念a对概念k的影响力),与传统的QKV注意力不同,这里是对两个向量拼接后,使用全连接层 F(\cdot ) 计算注意力权重。

(二)map-level attention

        通过节点级的注意力得到知识点依赖的聚合嵌入 \tilde{p} _{r}^{l+1} 和知识点-习题关联的聚合嵌入 \tilde{e} _{r}^{l+1} ,对于概念k:c_{k}^{l},同样的,通过一个全连接层分别计算它与两者的相似度,从而得到图级的注意力权重。

  •   Exercise Fusion 习题融合

         习题出现在两个图中:G_{qc} (习题-知识点关联图) 和 G_{sq} (学生-习题交互图),习题嵌入受到这两个图的影响,与知识点融合层中的表述相似,首先分别根据两个图得到习题-知识点关联的聚合嵌入  \tilde{u} _{d}^{l+1} 和学生-习题交互的概念嵌入 \tilde{v} _{d}^{l+1} ;然后基于这两个嵌入和 q_{d}^{l} 得到 q_{d}^{l+1}。公式如下(9)~(11),注意力权重的具体计算公式同(5)~(8)。

  •    Student Fusion 学生融合

        学生是与习题直接交互的,因此与学生嵌入有关联的图只有 G_{sq} 。

        总的来书,融合层对学生-习题-知识点之间的交互关系和结构关系进行统一建模,在进行 L 迭代后得到融合的学生、习题、知识点的表示。

3.4.3 Extendable Diagnosis Layer  (可扩展的诊断层)

        诊断层基于上一层得到的学生、习题、知识点向量,预测学生表现,对于一个学生 s_{z} ,练习习题 q_{d} ,q_{d} 包含n个知识点 \left \{ c_{k} \right \}_{1}^{n} ,那么该学生正确回答该问题的概率为:

        S(\cdot ) 表示学生在熟练程度为_{} h_{z} 时,对于习题难度为 h_{d} 时,对于该习题中的知识点回答正确的概率得分;A(\cdot ) 表示一个累计函数(如,加权和),对一个习题中所有知识点回答正确的概率进行加权和,得到对该习题回答正确的概率。主要组成部分解析:

  • student factor 学生因素:h_{z}^{(k)} 

         student factor描述学生的熟练程度,通过将知识点聚合向量融入学生聚合向量得到,其中 \sigma (\cdot ) 表示sigmoid函数。

  • exercise factor 习题因素:h_{d}^{(k)} 

        exercise factor描述习题的难度,通过通过神经网络 f_{qc} 融合练习与知识点的关系。

  •  效用函数 U(\cdot ) :用来量化学生对练习的“优势”(如能力与难度的比较),一般实现为全连接层 F(⋅)
  • 变换函数 T(\cdot ) 将效用值转换为概率得分,用Sigmoid函数实现
  • 累积函数 A(\cdot )将练习中涉及的所有 n 个知识点的得分进行累积,通常采用平均值。
最终的预测公式:

损失函数(交叉熵损失):

        通过损失函数优化后,公式(15)得到的向量 h_{z}^{(k)} 就表示学生_{} s_{z} 的对知识点 c_{k} 的掌握程度,若要预测学生的掌握值,将练习因素 h_{d}^{(k)} 设置为全零向量 = (0,0,...,,0),这样就得到掌握程度:

4. 模型拓展

待补充...

5. Experiments 实验

  • 数据集
    • junyi
    • ASSIST
  • 数据分布

         其中 p^{p} 表示先序关系,p^{s} 表示相似关系,p^{n} 表示回答正确的比例。

  • 实验结果

;