基于IRT的计算机自适应测评系统

本文将介绍在教育模型中理论基础最完善且使用最广泛的自适应算法:计算机自适应测评系统(Computerized Adaptive Testing, CAT)。大家耳熟能详的一些计算机测评服务,例如ETS的GRE和TOEFL,都采用CAT作为推荐引擎。此外,CAT所依赖的测评理论,即项目反应理论(Item Response Theory, IRT),是心理测量学(psychometrics)的中流砥柱,有逾40年的理论研究基础,发展非常完善。最后,中国大部分教育技术公司在使用的自适应算法,可能不超过CAT的范畴。

本文首先介绍CAT的直觉基础,然后简要介绍其所依赖的IRT模型,并描述一种最简单的CAT工程设计。文章最后简单批判CAT作为一种学习算法的不足。

相较于传统的纸笔考试,CAT的优点是在相同题目数量下所达到的测评精度更高。或者反过来说,为了达到相同的测评精度,CAT所需要的题目更少。CAT能够实现更高效测评的直觉原因就是它能针对不同的作答挑选信息量最大(aka最具有甄别性)的考题。IRT模型是对于考题对于考生的信息量的定量评估的方法论基础。

 

I.自适应测评的理论基础

假设纸笔考试和计算机考试(CAT)的唯一区别在于是否存在自适应,那么什么时候CAT比纸笔考试好?这个小节将回答这个问题。

在这个小节中,我们将假设学生可以从一个能力维度上被分为两类人:学霸和学渣。顾名思义,学霸能力强,学渣能力弱。假设学霸和学渣在人群中各占50%。

(A)

假设有两道题,分别为送分题(易)和压轴题(难)。学霸和学渣都可以做出送分题,但只有学霸能做出压轴题。

假设你的目标是区分一个学生究竟是学霸和学渣,那么你应该出一张怎么样的卷子?

如果把送分题给学生做,不论是学霸和学渣都会做出来;其结果对于判定学生类型毫无帮助。如果把压轴题给学生做,做出来的就是学霸,做不出来的就是学渣;其结果对于判定学生类型非常有帮助。

让我们用更加严谨的数学语言来翻译上面的直觉推理(假设你熟悉贝叶斯定理)。假设你给了学生难题(Y_h),学生答对了(1)。此时,这个学生是一个学霸(X=1)的后验概率为

    \[P(X=1|Y_h=1) =\frac{P(X=1,Y_h=1)}{P(Y_h=1)}=1\]

与此相反,如果学生答错了,他为学霸的后验概率为0%。如果我们给了学生易题,学生答对了,他是学霸的后验概率依然是50%,和先验概率没有改变。(注意当给学生送分题时,不可能出现错误)

考卷/答案组合10
100%0%
50%NA

上表(计算过程参见这个链接的例1)列举了所有试卷/答案组合下的学霸后验概率。给定答案的组合,最优的试卷组合应该给与尽可能极端的后验概率(即最小化信息熵)。例如,当学生答对时,难题优于易题(100%>50%)。

综上所述,在这个情况下,卷子里只要有压轴题就够了。最优试卷方案唯一,因此纸笔考试和CAT一样。

(B)

案例A的结论主要来自于学生水平和解题结果存在确定关系的超强假设。而事实上两者的关系有不确定性。学霸也有失手的可能,学渣也有蒙对的希望。不可观察的学生能力和可观察的解题结果之间的不确定性是学习数据分析的根本问题

现在假设有难中易三道题,其中:

(1)难题学霸有60%的概率做出来,学渣有10%的概率做出来;

(2)中题学霸有80%的概率做出来,学渣有60%的概率做出来;

(3)易题学霸有95%的概率做出来,学渣有90%的概率做出来。

假设你的目标是尽可能的精确地判断学生类型,你应该怎么出卷子?

答案是三道题全做。每一道题都有一定的区分度,信息量不为0。如果我们希望最精准的类型判断,每一道题都有价值。因此,如果可以不计代价地进行测评,选题没有什么价值,纸笔考试和CAT一样好。

(C)

然而事实上测评这件事情本身是有成本的,主要体现在时间成本;因此,大部分的考试都有时间限制。所以一个更加现实的目标是:

假设目标是在两道题内尽可能精确地判断学生类型,你应该怎么出卷子?

让我先给出答案:最优的测试方案取决于学生回答。因为CAT可以根据学生的作答进行选择,而纸笔考试不行。因此,给定相同题库和相同测试长度,CAT比纸笔测试要强。

[1]  纸笔考试

根据贝叶斯概率公式,我们可以得到全部试题+答案组合的学霸后验概率(具体计算过程请查看这个链接的例2[1])。因为只有两类学生,所以只要最佳辨认学霸的方法也是最佳辨认学渣的方法。

考卷方案/答案组合11100100
难+中89%75%37%18%
难+易86%75%31%18%
中+易58%40%34%20%

类似的,给定答案组合,后验概率最为极端的试题组合为最优。例如,当两题都答对时,难题加中题的组合最优,因为它的后验概率最大(89%>86%,89%>56%)。上表告诉我们,大部分情况下(除了第三列之外),难中的组合是最优的试卷组合。因此纸笔试卷会选择“难题+中题”的组合

[2] CAT出题

CAT的优势在于它在出第二道题时,已经观察到了第一道题的结果。因此,它在第二题可以做出更好的选择。

通过类似于(A)中的计算,CAT的第一题会选择难题。假设学生做对了,他是学霸的后验概率为86%,他是学渣的后验概率为31%。第一题的后验概率会成为第二题的先验概率;并且此时我们从题库中刨去难题,只需考虑中题和易题。

第一题结果
试卷/答案1010
89%75%36%18%
86%75%31%18%

上表告诉我们,当学生第一题做对时,第二题应该出中题;当学生第二题做错时,第二题应该出易题。因此,CAT的选择是 难+中(第一题对)/难+易(第一题错)

在这个具体例子中,CAT在学生第一题做错,第二题做对的情况下比纸笔考试的后验概率方差有所降低,尽管差距并不是很明显(0.1476 Vs. 0.1474)。

2. IRT模型

第一节简单介绍了CAT的原理。因为测试题对于隐藏能力的探测具有不确定性,而且相同测试题对于不同能力的学生而言,不确定性不同。因为CAT可以根据应试者的回答动态选择测评不确定性最小的题目,因此和纸笔考试相比,它达到相同的精度需要更少的题目,或者使用相同的题目数获取更好的精度。

第一节的分析做了一些非常强的假设:

(1)我们知道学生的类型(学霸Vs学渣)

(2)我们知道不同类型的学生在各个测试题上的正确率(eg,学霸难题60%正确率)

在现实中,这两个假设都不成立。因此我们需要一个模型来提供这两个重要的信息。项目反应理论(Item Response Theory,IRT)是提供这些信息的最流行的模型。关于IRT模型的较为详细的介绍在可以参见这个链接(ETS在2013年提供了一个IRT发展的综述)。常见的IRT会做了以下的假设:

(1)被试者能力是一维的(\theta

(2)被试者能力是连续的(即不存在学霸VS学渣这样的有限多且可被解释分组,但是不同学生间可以排序)

(3)题目参数(\alpha,\beta)和学生能力(\theta)关于正确率(P(Y=1),假设题目只有对错两种)的函数对应是

    \[P(Y=1|\theta,\alpha,\beta) = \frac{e^{\alpha(\theta-\beta)}}{1+e^{\alpha(\theta-\beta)}}\]

通过数据估计\theta,\alpha,\beta就可以得到学生能力的分布以及不同学生在同一道题上的正确率分布。此外,这个结构式对于某些CAT选题算法而言,也是必须的。

3. 最简CAT的工程设计

上面两节介绍了CAT的原理以及IRT的概要,这一节将描述一个最简单(也是最经典)的CAT工程设计。这一节将以数学和符号为主,只想大概了解CAT的读者可以直接跳到讨论CAT扩展的第四节。

题目选择的算法有很多。这里我们介绍历史最悠久的一种:最大信息原则(Maximum Information Criterion)。

 

记学生id为i。学生i的真实能力值为\theta^i,学生i在第t道测试题的预估能力值为\hat{\theta}^i_t

记题目id为j。题目j的参数为\Theta_j。在二参数IRT模型中(第二节的例子),\Theta_j= \{\alpha_j,\beta_j\}

我们只把学生能力当做变量,把题目参数和做题结果都当做常量。

在二参数IRT模型下,记题目参数和学生参数与正确率的对应关系为

    \[p^i_j(\theta^i) = P(Y^i_j=1,\theta^i|\Theta_j) = \frac{e^{\alpha_j(\theta^i-\beta_j)}}{1+e^{\alpha_j(\theta^i-\beta_j)}}\]

这种函数设定的好处是,Fisher information function(一种度量信息的方法)是线性可加的。因此,假设学生已经做了k-1题,第k题的Fisher Information就是

    \[I_j(\theta^i) = \frac{[p^i_j'(\theta^i)]^2}{p^i_j'(\theta^i)[1-p^i_j'(\theta^i)]}\]

其中

    \[p^i_j'(\theta^i) = \frac{\partial}{\partial \theta^i} p^i_j(\theta^i)\]

如果\theta^i是已知的,那我们就可以计算每道题的Fisher Information,然后选取最大的那个题。然而遗憾的是,我们并不知道\theta^i。所以在每一步中,我们都用估计值\hat{\theta}^i_t来替代\theta^i。这个估计值可以这么估算

(1)初始化

给定学生能力值的先验概率分布g(\theta)

    \[\hat{\theta}^i_1 = \int \theta g(\theta) d\theta\]

(2)后续迭代

之后每一步的\hat{\theta}^i_k都是似然函数的最大似然估计值(Maximum Likelihood Estimator),其中似然函数是

    \[L(\theta) = \prod_{j=1}^{k-1} \frac{(e^{\alpha_j(\theta-\beta_j)})^{Y^_j}}{1+e^{\alpha_j(\theta-\beta_j)}}\]

 

 

4. CAT的高阶话题

CAT作为一个有近30年历史的学科,其理论深度和宽度远远超过本文所讨论的内容。有兴趣的朋友可以阅读由Wim J. van der Linden和Cees A.W. Glas编辑的Computerized Adaptive Testing: Theory and Practice。这本书覆盖了2000年左右CAT发展。

大体上说,一个完善的CAT系统需要解决以下几个麻烦的问题:

(1) 第三节假设题目参数是已知的,而实际上题目参数是未知的。怎么解决题目参数估计误差所导致的题目选择偏差?

(2)因为学生能力估计是有误差的,如果选择区分度高的题,可能导致估计该步信息失准

(3) 怎么评估题库题目的质量?怎么确保题库有足够多的题目可以应付多场考试?(例如GRE要保证70套完整题目组)怎么确保题库题目更新迭代不影响不同考试间的可比性(GRE题目的寿命是3个月)

(4)如果能力是多元的怎么办?更麻烦的是(对于国内中高考尤其是如此),如果一道题涉及多个能力项怎么办?

(5)怎么处理额外的试卷限制,例如考试时长,平均分限制和题目曝光总量控制

 

5.CAT作为自适应“学习”算法的不足

CAT作为一种测评算法已经被证明是可行且高效的。 随着人机交互界面的改善和算法的进步,计算机将不仅可以完全兼容纸笔试题(主要是主观题),而且可以实现许多纸笔考试难以完成的试题(例如VR支持的实验动手测试)。因此,CAT将会在测评领域取得更进一步的发展,这是毋庸置疑的。

然而,作为一种学习算法,CAT却是先天不足。CAT假设学生在做题过程中,其能力值是不变的;这从根本上否定了学习的可能性。一个否定学习可能性的算法,如何用来指导教学推荐呢?因此,仅仅是CAT(或者IRT)是不能够独立支撑起一个学习推荐系统的。

当自适应学习发生在知识点间时(参考我的这篇文章),CAT可以作为测评模块,配合知识空间理论(比如ALEKS)或者专家系统(比如Khan Academy)的教学模块,组成一个智能学习推荐系统。

 

自适应学习的两种设计方案:知识点间和知识点内

这篇文章将介绍两种自适应学习方案:“知识点间”(between knowledge points)自适应和“知识点内”(within knowledge points)自适应。知识点间自适应适合推荐引擎可以控制课程进度的学习场景。知识点内自适应适合推荐引擎无法控制课程进度但是有丰富题库的学习场景。

1.知识点自适应

知识点间自适应方案主要对于知识点的学习顺序进行优化。大部分“基于知识图谱”的自适应学习都属于这个大类下。

这种自适应方案的核心问题是:

假设有一个知识点集合,是否存在一个学习路径,使得学生在掌握前置知识点的前提下,必然能够沿着这个学习路径掌握所有的知识点?

比如说,Khan Academy构建了一张数学知识图谱,为每一个知识点都刻画了一个学习路径。它的暗含假设是,如果一个学生掌握了这个路径上的全部前置知识点,他必然可以通过练习掌握这个知识点。因此,只要按图索骥,就可以避免Khan所担心的知识网络“奶酪式”成长(aka都是洞)的问题。

因为知识图谱上的学习路径是唯一的,Khan Academy的自适应仅局限于对于学习速度的自适应。如果学生A花了一周还没有学会几何法求解空间二面角,他应该花更长的时间来巩固这个知识点直到掌握。如果学生B花了一天就学会了,他应该继续去学别的内容。这相对于统一步调的课堂教学而言,的确是一个实质性的改进。但是,Khan Academy式的知识图谱不能针对掌握水平分布进行自适应。如果学生A并不擅长几何思考,但是熟练地掌握了空间直角坐标系,为什么他不能通过空间直角坐标系来解决这个问题呢?

上述例子展示了绘制知识图谱所面临的巨大挑战。知识图谱是否只有一种画法?同一个知识点是否只有一条路径?ALEKS理论上为这两个问题提供了解答。即使知识图谱不只有一个,通往同一个知识点的路径不只有一条,可以学会全部知识点的可行路径依然存在。但是可行路径的数量级可能在千万级。

仅仅有知识图谱并不足够,系统还需要对于学生在每个知识点上的掌握程度进行诊断。掌握程度(mastery)之所以困难,是因为它是一个不可见的抽象构架。学界和业界对于该如何定义“掌握”存在比较大的分歧。例如,老版的Khan Academy用了最简单的“连对10个就算掌握”的规则。Duolingo也使用预测正确率作为用户掌握某个词汇或者语法的依据。从智能教学系统科班出身的自适应系统,例如卡耐基学习出品的Cognitive Tutor或者Knewton,都使用结构模型来定义掌握程度和做题结果的关联,从而部分抵消题目特性对于掌握程度推断的影响。例如,75分到底是掌握水平高,还是掌握水平低呢?如果平均分是60分(题目偏难),75分可能说明学生的水平相当不错;如果平均分是90分(题目偏易),75分可能说明学生的水平相当糟糕。

传统的知识点间自适应系统只对于学生做过题的知识点进行掌握程度推断。更复杂的一点自适应系统,(例如Knewton),会使用知识点间的关联关系来推断学生未做过题的知识点的掌握程度。这种关联推断只能算是锦上添花。尽管它降低了学生学习整个图谱所需要完成的最低做题量,但是它并没有提供探索可行学习路径的更好办法。

“知识点间自适应”是一个在直觉上合理并且在技术上成熟的设计方案。今天我们在中国看到的自适应学习系统,大部分属于这个类别。然而,“知识点间自适应”系统在美国的实际使用中效果差强人意。Eric Taylor 对智能学习系统的实证效果进行了综述,发现大部分混合教学并没有取得比课堂教学更好的教学效果。笔者认为原因有三:

第一,教材本身内含了一个设计良好的知识图谱和学习路径;由第三方教学专家构建的图谱和路径,未必有久经考验的教材版本效果更好。

第二,“知识点间自适应”要求老师允许学生以不同的速度学习,从而出现自然的教学分层现象。不论从政治环境上,还是从老师的教学负担上,教学分层都只能是一个“看上去很美”的教学设想。由于大部分知识点间自适应系统并没有ALEKS那样的基于掌握水平的自适应,而只有基于速度的自适应,不允许学习速度分化,事实上扼杀了自适应系统的优势。

第三,知识点间自适应和老师的替代性超过互补性,因此老师使用自适应系统后偷懒也可能是效果不章的原因之一。

2.知识点自适应

知识点内自适应方案在给定知识点内的不同题目之间进行筛选和排序。笔者认为这与国内大部分题库产品比较类似。笔者不能确定它们是否采用了这种自适应设计方案,因为它们对于自己的方法论讳莫如深。

“知识点内自适应”是一种颇具中国特色的产品形态。在美国,由于可公开获得的题库不论在数量上和质量上都难以尽如人意,因此大部分自适应学习系统在知识点内都采用计算机出题的模式,包括Khan Academy,Duolingo,Cognitive Tutor和ALEKS。这些题目本身高度雷同,因此并不存在太多的自适应空间。但是这种可控程度较高的练习题生成方式基本没有被中国的教育互联网公司采用。笔者认为一方面是成本的考量,另一方面也是用户体验的考量。从成本上说,在国内获取一个数目客观、质量尚可的题库较挨个知识点写生成器要便宜的多,也要快得多。从用户体验上说,家长和老师可能更希望练习题目应该类似于考试题目(特别是初高中学段)。此外,国内教学环境对于“超纲”比较敏感,知识点自适应在不能自由选择教学进度的前提下并没有太大用武之地。因此,利用一个数量庞大且品质参差不齐的题库进行知识点内练习(和教学)推荐,是一个非常具有中国特色的技术问题。

这类推荐系统需要回答的核心问题是:

假设有一个题库,是否存在一个练习路径,使得学生以最少的做题量达到某个预先指定的熟练程度?

这里有两点值得强调:

第一,这个问题与传统上的计算机辅助测试(Computerized Adaptive Testing),比如ETS的TOEFL和GRE,具有本质的区别。CAT的问题是,假设被试者能力不变,给定一个题库,是否存在一个测试路径,使得系统以最少的题量将学生能力估计到某个预先指定的熟练程度。因为CAT从根本假设上否定了通过练习进行学习(learning through practice)的可能性,因此使用IRT/CAT做推荐引擎的知识点自适应学习产品都有一点“挂羊头卖狗肉”的嫌疑(但是知识点自适应系统并不存在这个问题)。

第二,这个问题与传统上的协同推荐算法,比如淘宝,具有本质区别。协同推荐的问题是,假设每一个用户的偏好不变但是用户之间的偏好不同,是否存在一个办法可以通过用户的行为对于用户进行分类,从而为每一个类别的用户提供更适合其偏好的产品或服务。与CAT系统一样,协同推荐算法从根本上否定了学习的可能性,因此其推荐逻辑不具有教学逻辑。因为有和你类似做题记录的学生做错了这道题,所以你也应该试试这道题。这是一个非常糟糕的教学逻辑(如果有任何教学逻辑的话)。

知识点自适应可以说是一个还有待进一步研究的领域。笔者在此仅阐述一个理论框架。

一个描述动态学习的系统首先要定义什么叫“学习”(learning)。一个直观的办法是把学习和掌握程度(mastery)联系起来,将其定义为低掌握程度到高掌握程度的转换概率。每一个掌握程度由一套可观察的表现来定义。比如,给定一道题,90分以上是精通,60-90是掌握,60以下是未掌握。学习可以定义为从“未掌握”到“掌握”的概率(渐悟),也可以定义为从“未掌握”到“精通”的概率(顿悟)。这并不是唯一的定义方法,但可能是最简单但是不失普遍性的定义方法。

定义了学习,就可以定义“学习差异性”(learning heterogeneity)。差异性是构造自适应系统的根本原因,否则最优的教学方案会是千人一面而不是千人千面。学习差异性可以抽象成:

(1)水平差异性:目标是“精通”,题目对于“未掌握”和“掌握”的学习者的效果应该不同

(2)速度差异性:目标是精通,起点是“掌握”,题目对于一个快速学习者和慢速学习者的效果应该不同。

如果接受这套定义,接下来有两个重要的实际问题需要回答:

(1)上述定义系统中的参数是否可以被数据估计?

(2)如果估计了这些参数,如何构建一个推荐逻辑?

遗憾的是,笔者自己的研究表明,问题(1)的答案可能是否定的。只有在特定的题目顺序结构下,题目的参数和用户的类型才能被估计。但是如果我们忽视速度差异性,问题(1)的答案可能是肯定的。

问题(2)与其说是一个技术问题,不如说是一个教学问题。笔者认为,推荐逻辑应该由“测评-教学”的两步循环来构成。在测评环节,练习推荐侧重于题目的区分度和测量精度,从而区分用户的不同类型;在教学环节,根据学生类型,练习推荐侧重于题目的教学效果。在下一个测评环境,练习推荐再测试学生的水平和类型,如此循环往复,直到学生达到指定的熟练程度为止。

此外,练习推荐也应该注意对于用户留存的影响,如果学生不持续投入地练习,不论推荐逻辑再优秀,也无法展现其应有的效果。