Question Difficulty Prediction for READING Problems in Standard Tests
Motivation
- 预测难度很重要,可以帮助组题等
- 之前的工作基本是利用专家标注,labor intensive and subjective,带有bias
- 大规模积累的题目文本和学生做题log为我们提供了建立一种不用人工干预的方法的机会
Challenges
- 如何对文本进行语义表达
- 对不同考试下的不同题目的难度(错答率)对比没有意义,需要找到一种方法来训练模型
Framework
框架图如下所示:
输入
- 题目的文本材料,以句子为单元,句子由词组成
- 学生的做题log
Sentence CNN Layer
这部分是通过CNN来encode文本中的句子。CNN能从local到global的捕捉文本中的语义信息。文中采用的 wide-CNN 和 p-max pooling 结合的方式。
不是很清楚为啥采用这种CNN结构,而不是如同textCNN一样的进行2-D卷积。
CNN的操作是:
将连续k个words的embedding拼接,然后与权重矩阵相同得到新的隐层向量。
![\vec { h } _ { i } ^ { c } = \sigma \left( \mathbf { G } \cdot \left[ w _ { i - k + 1 } \oplus \cdots \oplus w _ { i } \right] + \mathbf { b } \right)](https://i-blog.csdnimg.cn/blog_migrate/d258ff50a95a1c8abf0671c573ece803.png)
Pooling的操作是: 将连续k个word的按维度进行pool, 公式如下:
![\vec { h } _ { i } ^ { c p } = \left[ \max \left[ \begin{array} { c } { h _ { i - p + 1,1 } ^ { c } } \\ { \dot { h _ { i , 1 } ^ { c } } }\end{array} \right] , \cdots , \max \left[ \begin{array} { c } { h _ { i - p + 1 , d } ^ { c } } \\ { h _ { i , d } ^ { c } } \end{array} \right] \right]](https://i-blog.csdnimg.cn/blog_migrate/fe6a3e58c297b331497b7b61b0328865.png)
整个示意图如下,经过多个卷积层最终将sentence编码成等长的向量
Attention Layer
这一层是将阅读材料和选项中的句子表示和问题表示做attention操作,之后得到阅读材料和选项的attentive的表达。
作者的解释是同一个材料对于不同的question的应该形成不同的表达。这一步应该是来对不同句子对解答问题做的贡献进行qualify? 感觉这个解释都不是很直觉。
attention操作文中使用的是cosine函数。
Loss function
这部分是文中的一个重点。文中首先在Figure 1(b)中展示了两道题目在不同的测试中的错答率是不同的,以此说明了不同题目在不同测验下得到的难度是不具有可比性的。因此不能直接将其拿来和predict的难度做loss。
作者观察到在同一个测验下会有多个题目,而同一测验代表了同一组学生,因此同一测验下的题目难度之间是有可比性的,以此作者提出了 test-dependent pairwise 训练策略。loss function的形式如下:
![\mathcal { J } ( \Theta ) = \sum _ { \left( T _ { t } , Q _ { i } , Q _ { j } \right) } \left( \left( P _ { i } ^ { t } - P _ { j } ^ { t}\right) - \left( \mathcal { M } \left( Q _ { i } \right) - \mathcal { M } \left( Q _ { j } \right) \right) \right) ^ { 2 } + \lambda_{\Theta} \left\| \Theta _ { \mathcal { M } } \right\| ^ { 2 }](https://i-blog.csdnimg.cn/blog_migrate/3b524b90f5b35caa40c334ce66ced4e3.png)
通过拟合同一test下两道题目的difficulty的差值来训练网络中的参数。
实验
数据
文中提到的数据集不是公开数据集。数据描述也有冲突(log数文中提到接近300万,表格中是2800万,不知道是多打了哪一位数),可能pdf是pre-print的吧。
Embedding
用的word2vec的预训练结果,OOV则random
模型setting
Sentence sequence length | 25 |
---|---|
Word sequence length | 40 |
Feature map | 200, 400, 600, 600 |
Kernel size(k) | 3 |
Pool size(p) | 3, 3, 2, 1 |
batch size | 32 |
dropout | 0.2 |
Metrics
- RMSE
- degree of agreement (DOA) ??
- person 相关系数
- t-test passing ratio ??
本文还和专家标注结果进行了对比。
挑选了12个测试中的4个阅读材料16到题目,以及7位专家进行评测。
然后将模型结果以及专家标注结果分别和真值(错答率)进行计算相关系数。结果表明有的模型由于所有的专家。也说明了专家有bias
欢迎访问个人博客 Alex Chiu的学习空间