DINA模型解析与实现

1 引言

近年来随着在线教育中试题资源数量爆炸式的增长,学生很难在海量的试题资源中找到合适的试题,因此面向学生的试题推荐方法应运而生。一些现代推荐系统采用基于模型协同过滤的推荐方法中矩阵分解技术进行推荐,但是可解释性较差,因此大多与认知诊断模型相结合。在认知心理学中,认知诊断模型可以较好地从知识点层面对学生的认知状态进行建模。现有的认知诊断模型包括连续型和离散型。其中,项目反应理论 ( Item Response Theory,IRT) 是一种典型的连续型认知诊断模型。它根据学生答题情况,通过对试题和学生进行联合建模,来推出试题参数以及学生潜在能力。DINA 模 型 ( Deterministic Inputs,Noisy“And”gate model) 是一种典型的离散型认知诊断模型。该模型将学生描述成一个多维的知识点掌握向量,从学生实际作答结果入手进行诊断。由于 DINA 模型简单,参数的可解释性较好,且 DINA 模型的复杂性不受属性个数的影响。

2 DINA模型

这里要讨论的DINA(deterministic input,noisy “and” gate)模型是属于认知诊断模型中的潜在分类模型。DINA模型适用于对二值计分项目测验进行认知诊断。在这里我们用 X i j {X_{ij}} Xij来表示第 i ( i = 1 , . . . , I ) i(i = 1,...,I) i(i=1,...,I)个学生对第 j ( j = 1 , . . . . , J ) j(j = 1,....,J) j(j=1,....,J)道题的回答情况。当 X i j = 1 {X_{ij}} = 1 Xij=1时表示回答正确, X i j = 0 {X_{ij}} = 0 Xij=0表示回答错误。 q j k {q_{jk}} qjk表示在正确回答第 j j j道题时是否需要知识点 k k k q j k = 1 {q_{jk}}=1 qjk=1表示需要, q j k = 0 {q_{jk}=0} qjk=0表示不需要。 α i = { α i 1 , α i 2 , ⋯   , α i k } {\alpha_{i}=\{ {\alpha_{i1}},{\alpha_{i2}},\cdots,{\alpha_{ik}} \}} αi={ αi1,αi2,,αik}表示第 i i i个学生所具备的知识点向量,这里的 K K K表示所有有关的属性个数,当这个向量中的第 k k k个元素为1时表示第 i i i个被试者掌握了第 k k k个属性,当这个向量中的第 k k k个元素为0时表示第 i i i个被试者没有掌握第 k k k个属性,即 α i k = 1 {\alpha _{ik}} = 1 αik=1表示学生掌握知识点, α i k = 0 {\alpha _{ik}} = 0 αik=0表示未掌握。这里的属性可以包括技能、或是表达又或是认知过程。大多数认知诊断模型的执行都需要建立一个 j j j k k k列的 Q Q Q矩阵,在 Q Q Q矩阵中每一个元素是1或者是0.我们把 Q Q Q矩阵中的 j j j k k k列元素表示成 q j k {q_{jk}} qjk ,表示在正确回答第 j j j个项目时是否需要属性 k k k,当 q j k = 1 {q_{jk}=1} qjk=1时表示需要,当 q j k = 0 {q_{jk}=0} qjk=0是表示不需要。由此可见Q矩阵是十分重要的,它可以被看做是一个认知设计阵,它明确地给出了每个项目关于认知的详细信息。为方便推导,更多的符号描述参考下表。

符号表示
符号 描述
X X X 学生试题得分矩阵
X i j {X_{ij}} Xij 学生 i i i在试题 j j j上的得分
Q Q Q 知识点考察矩阵
q j k {q_{jk}} qjk 试题 j j j对知识点 k k k的考察情况
α i {\alpha _i} αi 学生 i i i的知识点掌握情况
α i k {\alpha _{ik}} αik 学生 i i i对知识点 k k k的掌握情况
η i j {\eta _{ij}} ηij 学生 i i i在试题 j j j的潜在作答情况

学生 i i i在试题 j j j的潜在作答情况:
(2.1) η i j = ∏ k = 1 K α i k q j k {\eta _{ij}} = \prod\limits_{k = 1}^K {\alpha _{ik}^{ {q_{jk}}}} {\rm{ }} \tag{2.1} ηij=k=1Kαikqjk(2.1)
η i j = 1 {\eta_{ij}=1} ηij=1 表示学生 i i i答对试题 j j j,从公式(2.1)得出学生 i i i已掌握试题 j j j包含的全知识点;为0表示答错,学生 i i i对于试题 j j j中的知识点至少有一个没有掌握。
DINA模型联合试题知识点关联矩阵- Q Q Q矩阵和学生答题情况 X X X矩阵对学生进行建模,引入试题参数(slip、guess)

s j {s_j} sj:学生在掌握了试题 j j j所考察的所有知识点的情况下做错的概率;
g j {g_j} gj:学生在并不完全掌握试题 j j j所考察的所有知识点下猜对的概率。

在已知学生 i i i的知识点掌握情况 α i {\alpha_{i}} αi的条件下,答对试题 j j j的概率:
(2.2) P j ( α i ) = P ( X i j = 1 ∣ α i ) = g j 1 − η i j ( 1 − s j ) η i j {P_j}({\alpha _i}) = P({X_{ij}} = 1|{\alpha _i}) = g_j^{1 - {\eta _{ij}}}{(1 - {s_j})^{ {\eta _{ij}}} } \tag{2.2} Pj(αi)=P(Xij=1αi)=gj1ηij(1sj)ηij(2.2)

3 DINA模型参数的边缘极大似然估计

DINA模型是在给定了学生的知识点掌握向量 α i {\alpha_{i}} αi(也称之为属性向量)下的反应数据 X i j {X_{ij}} Xij的条件分布。在这里假设给定属性向量的条件下学生对每道题的反应是独立的,因此得 X i {X_{i}} Xi的条件分布:
(2.3) L ( X i ∣ α i ) = ∏ j = 1 J P j ( α i ) X i j [ 1 − P j ( α i ) ] 1 − X i j L({X_i}|{\alpha _i}) = \prod\limits_{j = 1}^J { {P_j}{ {({\alpha _i})}^{ {X_{ij}}}}} {[1 - {P_j}({\alpha _i})]^{1 - {X_{ij}}}} \tag{2.3} L(Xiαi)=j=1JPj(αi)Xij[1Pj(αi)]1Xij(2.3)
对于 I I I个学生,反应数据 X X X的条件分布:
(2.4) L ( X ∣ α ) = ∏ i = 1 I L ( X i ∣ α i ) = ∏ i = 1 I ∏ j = 1 J P j ( α i ) X i j [ 1 − P j ( α i ) ] 1 − X i j L(X|\alpha ) = \prod\limits_{i = 1}^I {L({X_i}|{\alpha _i})} = \prod\limits_{i = 1}^I {\prod\limits_{j = 1}^J { {P_j}{ {({\alpha _i})}^{ {X_{ij}}}}{ {[1 - {P_j}({\alpha _i})]}^{1 - {X_{ij}}}}} } \tag{2.4} L(Xα)=i=1IL(Xiαi)=i=1Ij=1JPj(αi)Xij[1Pj(αi)]1Xij(2.4)
接下来为了获得 β ^ = ( s ^ 1 , g ^ 1 , ⋯   , s ^ J , g ^ J ) \hat \beta = ({\hat s_1},{\hat g_1},\cdots,{\hat s_J},{\hat g_J}) β^=(s^1,g^1,,s^J,g^J),我们给出反应数据的边际似然如下:
(2.5) L ( X ) = ∏ i = 1 I L ( X i ) = ∏ i = 1 I ∑ l = 1 L ( X i ∣ α l ) P ( α l ) L(X) = \prod\limits_{i = 1}^I {L({X_i})} = \prod\limits_{i = 1}^I {\sum\limits_{l = 1}^L {({X_i}|{\alpha _l})P({\alpha _l})} } \tag{2.5} L(X)=i=1IL(Xi)=i=1Il=1L(Xiαl)P(αl)(2.5)
上式中的 L ( X i ) L({X_i}) L(Xi)是第 i i i个学生的反应向量 X i {X_i} Xi的边际似然, P ( α l ) P({\alpha _l}) P(αl)是属性向量的先验概率,并且 L = 2 k L = {2^k} L=2k。通过使用EM算法以边缘似然为基础进行参数估计。接下来DINA模型的参数估计的详细算法被给出。
在(2.2)中式中正确的反应概率 P j ( α i ) {P_j}({\alpha _i}) Pj(αi)可以被重新表示为:
(2.6) P j ( α l ) = { g j i f α l , q j ≠ q j , q j 1 − s j i f α l , q j = q j , q j {P_j}({\alpha _l})=\begin{cases} {g_j} & if \quad{\alpha _l^,{q_j}\ne q_j^,{q_j}} \\ {1 - {s_j}} & if \quad {\alpha _l^,{q_j}= q_j^,{q_j}} \end{cases} \tag{2.6} Pj(αl)={ gj1sjifαl,qj

  • 24
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 22
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值