BOBCAT: 基于双层优化的计算机化自适应测验(超硬核解读论文+阅读论文技巧)
Posted 研行笔录
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BOBCAT: 基于双层优化的计算机化自适应测验(超硬核解读论文+阅读论文技巧)相关的知识,希望对你有一定的参考价值。
文章目录
前言
大家好,我是小曾,今天主要给大家分享一篇最近看到的一篇文章
BOBCAT: Bilevel Optimization-Based Computerized Adaptive Testing
下载链接:https://arxiv.org/pdf/2108.07386.pdf
这篇文章是由Aritra Ghosh and Andrew Lan 在8月份发表在2021年IJCAI会议上的
希望我的分享能够为看到的小伙伴们提供帮助,加深理解!
Abstract
看一篇论文 第一步都是看摘要,一篇文章值不值得看,通过摘要就能够窥探一二,如果能够勾起你的兴趣,那么这篇文章你会主动的读下去。正如你认识朋友的时候,首先得第一印象很重要,如果印象好,才会继续沟通交流下去。
CAT简介:计算机自适应测试 (CAT) 是指一种针对每个学生/考生进行个性化的测试形式。CAT 方法根据每个学生对之前问题的回答,自适应地为每个学生选择下一个信息量最大的问题/项目,有效地缩短了测试时间。
现有方法:现有的 CAT 方法使用项目反应理论 (IRT) 模型将学生的能力与他们对问题的反应联系起来,以及旨在尽快减少能力估计误差的静态问题选择算法;
现有方法不足:这些算法无法通过从大规模学生反应数据中学习来改进。
本文贡献:
1、在本文中,我们提出了 BOBCAT,一种基于双层优化的 CAT 框架,可直接从训练数据中学习数据驱动的问题选择算法。
2、BOBCAT 与潜在的学生反应模型无关,并且在自适应测试过程中具有计算效率。
3、通过对五个真实世界学生反应数据集的大量实验,我们表明 BOBCAT 在减少测试长度方面优于现有的 CAT 方法(有时显着)。
Introduction
下面来介绍文章的相关内容背景
CAT 介绍
CAT简介:通过使用一种算法,根据学生对先前问题的回答,自适应地为每个学生选择下一个问题。
CAT目标:更快更准的测试学生的能力
CAT组成 :认知诊断模型、候选题库、选题算法
传统的认知诊断模型
最简单的形式:Yi,j = 1是学生i对问题j的二值回答,其中1表示正确答案,σ(·)表示Sigmoid/Logistic函数,θi∈R , bj∈R分别对应于学生的能力和问题的难度
p
(
Y
i
,
j
=
1
)
=
σ
(
θ
i
−
b
j
)
p\\left(Y_{i, j}=1\\right)=\\sigma\\left(\\theta_{i}-b_{j}\\right)
p(Yi,j=1)=σ(θi−bj)
最直观的理解就是学生的能力与题目难度的差值,经过sigmoid后代表答对的概率,所以说学生的能力越大,那么答对的概率也就越大。
还有一种变体形式,增加了猜测度和区分度两个参数,描述学生能力会更准确:
传统的CAT选题策略
最大Fisher信息量:选择信息量最大的问题,使学生特征测量误差最小化
j
i
(
t
)
=
argmax
j
∈
Ω
i
(
t
)
I
j
(
θ
^
i
(
t
−
1
)
)
j_{i}^{(t)}=\\operatorname{argmax}_{j \\in \\Omega_{i}^{(t)}} I_{j}\\left(\\hat{\\theta}_{i}^{(t-1)}\\right)
ji(t)=argmaxj∈Ωi(t)Ij(θ^i(t−1))
θ
^
i
(
t
−
1
)
\\hat{\\theta}_{i}^{(t-1)}
θ^i(t−1) 代表根据之前的选题学生回答的能力表示
Ij 代表选择第j道题目的信息量
传统方法局限性
- 大多数问题选择算法都是专门为IRT模型设计的,捕捉复杂学生问题交互的能力受到限制
- 大多数现有的问题选择算法是静态的,因为它们需要预定义的信息量度量。【它们只能使用大规模的学生回答数据来改进底层的IRT模型(例如,校准问题难度参数),而不是问题选择算法。】
Contributions
这块基本上就是传统方法的局限性或者不足,加以改进,成为整篇文章的Motivation
1、将CAT重塑为一个双层优化问题,提出基于双层优化的CAT框架,直接学习数据驱动的问题选择算法。
【CAT构建双层优化问题细节:在外部发展最优化问题中,我们通过显式地最大化学生在待定元问题集中回答的预测可能性,学习了反应模型参数和数据驱动的问题选择算法;在内部发展最优化问题中,我们通过最大化每个学生在观察到的训练问题集中反应的预测可能性,使外层反应模型适用于每个学生;该双层优化框架通过训练元设置,直接学习有效、高效的问题选择算法。问题选择算法就会直接从过去的问题回答中选择下一个问题,而不需要在CAT过程中实时重复估计学生参数】
2、我们采用了梯度的近似估计器。双层优化问题中的问题选择算法参数。这种近似利用了每个问题对算法参数的影响来降低梯度估计中的方差,并导致比无偏梯度估计器更好的问题选择算法
3、通过在五个大规模的真实世界的学生回答数据集上进行大量的定量和定性实验,验证了Bobcat的有效性
强调:学习数据驱动的问题选择算法,而不是开发最好的底层学生响应模型。
BOBCAT框架
相信刚刚在贡献里面提到双层优化,有很多人是不太了解的,所以在介绍BOBCAT框架之前,先介绍一下双层优化问题,然后再介绍框架。
其实我们看文章的时候,有时文章所提到的技术或者算法,不太了解的时候,我们要有一个刨根问底的求知欲,立马就要进行灌注、给自己的知识储备库充电。
双层优化问题
双层优化(Bilevel optimization problem)针对的是一个目标函数,在前一个优化方向的结果中再进行另一个方向的优化。
可以看到上述公式:F代表外部优化问题的目标函数,L代表内部优化问题的目标函数,我们的最终目标是,既要F最小,同时L也是最小的。
具体优化过程:首先是内部目标函数在训练集中不断优化内部变量,然后外部目标函数在验证集样本中不断优化外部变量。
BOBCAT框架
首先看一下这个图片:主要介绍了Bobcat的框架,分为两个部分,Train Question 和 Meta Question Set 分别对应的是训练集和验证集。
整个过程都是根据上面3、4、5公式来进行展开,其中介绍一下重要参数
γ:全局响应模型参数 φ:问题选择算法参数 θ∗i是全局参数γ和φ的函数
下面我们来跟着图中箭头方向来了解一下整体过程,
1、首先我们在训练集里面通过公式5,输入的是用户题目以及回答记录,通过问题选择算法选择出下一道要选择的题目j,也就是图中的Q4
2、输入Q4题目后,经过g(·)全局认知诊断模型以及学生i当前的学生能力,可以得到j的预测结果,以及训练集中真实的学生label(Yi,j),计算出损失函数
3、其中公式4对应的R代表的是正则化,惩罚局部参数与其全局值的较大偏差,直到得到最小值更新后的θ∗i 【相当于内部优化完成】
4、可以看到蓝框部分,公式3,在验证集(Meta Question Set)里,根据内部传到外部的参数 θ∗i,通过g(·)全局认知诊断模型,计算出二元交叉熵损失,得到每个学生在元问题集中回答的问题的损失总和,更新全局参数γ 和 问题选择算法参数φ。
通过这个框架,也许会有疑问,为什么这样训练的问题选择算法参数会对选题比较好呢?
其实可以反向思维理解,对于一个用户而言,我在公式5 的时候给你选择最适合的题目(相当于),那么对应公式4这块,无论这个用户答对答错记录,我这个模型判断你对错就是比较准的,因此loss也就最小,那么这个能力再传输到外层,对应的模型参数和能力在验证集里面也是准确的,因此所得到的loss也是最小的。
这也就证明,如果我参数优化的好,那么根据这个公式,也能选择好的题目、
BOBCAT 训练过程
具体流程:
对于上面的伪代码,那么跟着小曾来继续回顾一遍BOBCAT训练过程
1、一开始初始化全局参数γ,φ、学习率η1、η2、α和内层的GD步数K
2、随机选择部分学生记录分成训练集和验证集
3、根据学生对以前选择的问题的回答,对学生的当前状态(T)进行编码
4、通过问题选择算法选出题目J
5、通过梯度下降不断优化参数θ∗i
6、使用公式来估计梯度
7、更新选择题目算法的参数
8、在外层优化中,来更新全局模型的参数
最后直到收敛即可
Optimization
使用梯度下降(GD)来解决局部响应模型参数θ∗I的内层优化问题
通过从γ中采取K个GD步骤来使本地学生特定的参数偏离全局响应模型参数,其中每个步骤如下所示:
θ
i
←
θ
i
−
α
∇
θ
∑
t
=
1
n
ℓ
(
Y
i
,
j
i
(
t
)
,
g
(
j
i
(
t
)
;
θ
)
)
∣
θ
i
\\boldsymbol{\\theta}_{i} \\leftarrow \\boldsymbol{\\theta}_{i}-\\left.\\alpha \\nabla_{\\boldsymbol{\\theta}} \\sum_{t=1}^{n} \\ell\\left(Y_{i, j_{i}^{(t)}}, g\\left(j_{i}^{(t)} ; \\boldsymbol{\\theta}\\right)\\right)\\right|_{\\boldsymbol{\\theta}_{i}}
θi←θi−α∇θt=1∑nℓ(Yi,ji(t),g(ji(t);θ))∣∣∣∣∣θi
α是学习速率,全局参数γ要求我们计算梯度w.r.t
为了学习选择算法参数φ,我们需要通过学生特定的参数θ∗I(γ,φ)来计算(3)w.r.t.中外层目标的梯度(即内层优化问题的解)
单个学生的梯度(所有学生的全部梯度和)由下式给出
∇
ϕ
L
(
θ
i
∗
(
γ
,
ϕ
)
,
Γ
i
)
=
∇
ϕ
E
j
i
(
1
:
n
)
∼
Π
(
⋅
;
ϕ
)
[
L
(
θ
i
∗
(
γ
,
{
j
i
(
1
:
n
)
}
)
,
Γ
i
)
]
\\nabla_{\\phi} \\mathcal{L}\\left(\\boldsymbol{\\theta}_{i}^{*}(\\gamma, \\phi), \\Gamma_{i}\\right)=\\nabla_{\\phi} \\mathbb{E}_{j_{i}^{(1: n)} \\sim \\Pi(\\cdot ; \\phi)}\\left[\\mathcal{L}\\left(\\boldsymbol{\\theta}_{i}^{*}\\left(\\gamma,\\left\\{j_{i}^{(1: n)}\\right\\}\\right), \\Gamma_{i}\\right)\\right]
∇ϕL(θi∗(γ,ϕ),Γi)=∇ϕEji(1:n)∼Π(⋅;ϕ)[L(θi∗(γ,{ji(1:n)}),Γi)]
离散性质不可微,无法计算精确梯度
梯度估计的方法
无偏梯度估计(Unbiased Gradient Estimate)
使用基于得分函数的恒等式 (∂logf(X;φ)/∂φ=(∂f(X;φ)/∂φ)/f(X;φ)
任意概率分布f(X;φ))估计(7)中的无偏梯度为 ∇ ϕ E j i ( 1 : n ) ∼ Π ( ⋅ ; ϕ ) [ L ( θ i ∗ ( γ , { j i ( 1 : n ) } ) , Γ i ) ] = E j i ( 1 : n ) ∼ Π ( ⋅ ; ϕ ) [ ( L ( θ i ∗ , Γ i ) − b i ) ∇ ϕ log ∏ t = 1 n Π ( j i ( t ) ∣ x i ( t ) ; ϕ ) ] = E j i ( 1 : n ) ∼ Π ( ⋅ ; ϕ ) [ ( L ( θ i ∗ , Γ i ) − b i ) ∑ t = 1 n ∇ ϕ log Π ( j i ( t ) ∣ x i ( t ) ; ϕ ) ] \\begin{aligned} & \\nabla_{\\phi} \\mathbb{E}_{j_{i}^{(1: n)} \\sim \\Pi(\\cdot ; \\phi)}\\left[\\mathcal{L}\\left(\\boldsymbol{\\theta}_{i}^{*}\\left(\\boldsymbol{\\gamma},\\left\\{j_{i}^{(1: n)}\\right\\}\\right), \\Gamma_{i}\\right)\\right] \\\\ =& \\mathbb{E}_{j_{i}^{(1: n)} \\sim \\Pi(\\cdot ; \\phi)}\\left[\\left(\\mathcal{L}\\left(\\boldsymbol{\\theta}_{i}^{*}, \\Gamma_{i}\\right)-b_{i}\\right) \\nabla_{\\phi} \\log \\prod_{t=1}^{n} \\Pi\\left(j_{i}^{(t)} \\mid \\mathbf{x}_{i}^{(t)} ; \\boldsymbol{\\phi}\\right)\\right] \\\\ =& \\mathbb{E}_{j_{i}^{(1: n)} \\sim \\Pi(\\cdot ; \\phi)}\\left[\\left(\\mathcal{L}\\left(\\boldsymbol{\\theta}_{i}^{*}, \\Gamma_{i}\\right)-b_{i}\\right) \\sum_{t=1}^{n} \\nabla_{\\phi} \\log \\Pi\\left(j_{i}^{(t)} \\mid \\mathbf{x}_{i}^{(t)} ; \\phi\\right)\\right] \\end{aligned} ==∇ϕEj以上是关于BOBCAT: 基于双层优化的计算机化自适应测验(超硬核解读论文+阅读论文技巧)的主要内容,如果未能解决你的问题,请参考以下文章
单目标优化求解基于matlab非线性权重的自适应鲸鱼算法求解单目标优化问题(NWAWOA)含Matlab源码 1665期
图像分割基于matlab遗传算法优化K聚类图像分割含Matlab源码 1605期