DINA模型解析

  • 1 引言
  • 2 DINA模型
  • 3 DINA模型参数的边缘极大似然估计
  • reference

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=1∏K​α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​​(1−sj​)η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=1∏J​Pj​(αi​)Xij​[1−Pj​(αi​)]1−Xij​(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=1∏I​L(Xi​∣αi​)=i=1∏I​j=1∏J​Pj​(αi​)Xij​[1−Pj​(αi​)]1−Xij​(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=1∏I​L(Xi​)=i=1∏I​l=1∑L​(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​)={gj​1−sj​​ifαl,​qj​

DINA模型解析与实现相关推荐

  1. Python基于statsmodels包构建多元线性回归模型:模型构建、模型解析、模型推理预测

    Python基于statsmodels包构建多元线性回归模型:模型构建.模型解析.模型推理预测 目录

  2. 旧文重发:做人、做事,做架构师——架构师能力模型解析

    这篇文章发表于<程序员>2008.04期.其中有关模型图参见: http://blog.csdn.net/aimingoo/archive/2007/06/26/1667508.aspx ...

  3. Qt Creator使用Clang代码模型解析C ++文件

    Qt Creator使用Clang代码模型解析C ++文件 使用Clang代码模型解析C ++文件 关于Clang代码模型 配置C语代码模型 lang检查 在项目级别指定Clang代码模型设置 使用编 ...

  4. 模型解析之独立顶点的筛选

    1.模型需求 存储三维模型的文件,通常需要更高效的空间分配,来尽量减少文件的物理体积. 例如一个模型,可能存有position,uv,normal,tangents ... 等等相关信息. 如果简单的 ...

  5. Kubernetes应用部署模型解析(原理篇)

    2019独角兽企业重金招聘Python工程师标准>>> Kubernetes应用部署模型解析(原理篇) 博客分类: Kubernetes [编者按]Kubernetes可用来管理Li ...

  6. 3D姿态估计——ThreeDPose项目简单易用的模型解析

    前言 之前写过tensorflow官方的posenet模型解析,用起来比较简单,但是缺点是只有2D关键点,本着易用性的原则,当然要再来个简单易用的3D姿态估计.偶然看见了ThreeDPose的项目,感 ...

  7. POI报表入门,excel,使用事件模型解析百万数据excel报表

    POI报表入门,excel 1.pom依赖: <?xml version="1.0" encoding="UTF-8"?> <project ...

  8. 目标检测模型——One stage(YOLO v5的模型解析及应用)

    1. 简介 目标检测分为Two stage和One stage,只使用一个网络同时产生候选区域并预测出物体的类别和位置,所以它们通常被叫做单阶段检测算法(One stage).本篇文章只讲One st ...

  9. IRT和DINA模型学习总结

    简介 IRT是一种典型的连续型认知诊断模型.IRT模型是用于评估被试对某一项目或某一类项目的潜在特质.在使用IRT模型对被试进行能力评估的过程中,关键在于对参数的估计,包括对项目参数ai.bi.ci. ...

  10. 全网最硬核 Java 新内存模型解析与实验 - 2. 原子访问与字分裂

    个人创作公约:本人声明创作的所有文章皆为自己原创,如果有参考任何文章的地方,会标注出来,如果有疏漏,欢迎大家批判.如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 i ...

最新文章

  1. 如何去判断一个面试者的深度学习水平?
  2. 1055. 集体照 (25)
  3. 用python的turtle画圆-PYTHON练习1-turtle画圆
  4. Hashtable:仅有两列的表
  5. LeNet-5 经典卷积网络模型浅析
  6. 开闭原则------(转)
  7. HDU 1042 N!(高精度计算阶乘)
  8. python练习,随机数字 函数,循环,if,格式化输出
  9. 程序员!别逼自己买课了,每天花10分钟做这件事,写代码能力暴增......
  10. 企业实战_12_MyCat水平扩展_分库分表
  11. php如何查询mysql数据库字符集_修改及查看mysql数据库的字符集_MySQL
  12. Google Wave 的失败给现代实时协作办公的一个重大教训!
  13. [转载] python win32api 使用小技巧
  14. 数据科学,会如何向我们撒谎?
  15. git pull更新不到最新代码
  16. Ubuntu切换窗口,快速返回桌面
  17. 计算机网络复习5----给主机配置IP地址
  18. MUTAN:Multimodal Tucker Fusion For Visual Question Answering
  19. 谷歌浏览器一键翻译功能用不了?教你怎么修复
  20. ISO-8601,日期时间格式表示法的国际标准

热门文章

  1. K8S节点故障针对数据恢复的问题
  2. 上百张图、80+ 实践案例告诉你什么是 CACHE
  3. 能力≠潜力 发展≠升迁
  4. 全球与中国连续纤维增强热塑性复合材料市场销售现状及投资趋势分析报告2022-2028年
  5. linux 邮件列表和新闻组哪个好,Linus Torvalds 语录 Top 10
  6. 3G产业链对我国运营商竞争关系的影响
  7. c语言多种选,多选题 C语言
  8. PC端网站-微信扫码登录+shiro权限框架免密登录
  9. #define PINT int*与typedef int *SINT的区别.
  10. 亚马逊云科技中国合作伙伴网络新增两大重点业务,加速为合作伙伴网络成员赋能...