Wu M, Mosse M, Goodman N, et al. Zero Shot Learning for Code Education: Rubric Sampling with Deep Learning Inference[J]. arXiv preprint arXiv:1809.01357, 2018.
一、前言
1.1 Zero-shot Learning
Zero-shot learning(零次学习)是迁移学习的一种极端形式,是指没有标注样本的迁移任务。另一种迁移学习的极端形式是one-shot learning(一次学习),是指只有一个标注样本的迁移任务。零次学习在训练时虽然没有标注样本,但使用了额外的信息。例如:判断一幅图像中是否有猫?即使事先没有猫图像的标签,我们也可以通过文本数据类似“猫有四条腿”或“猫有尖耳朵”来识别猫。
因为在未标注数据上性能很差,zero-shot learning在机器学习领域正引起极大的兴趣。最简单的方法是加入人类专家意见,但十分低效。高效方法通过(概率)知识图谱,更复杂地,使用对抗自编码器生成合成样本。
1.2 Rubric Sampling
这是本文提出的最主要方法,其它方法均是基于其它论文实现的。该方法的主要思想是通过专家定义规则,基于特定的语法规则,生成有标注的数据集。也就是说,本文的主要贡献就是生成数据集。
二、论文背景
在Code.org上有大量的学生编程数据,却只有很少的标注信息,如何基于无标注数据对未来学生的学习提供反馈是一个难题。
Code.org是一个在线学习基础编程的平台,学生通过drag-and-drop的方式进行编程。本文使用Code.org的八种编程练习数据,均为绘制几何图形,在角度已知的情况下,体现在二维坐标的变化,见下图。数据集来源于54488名学生,共产生了1598375次提交操作。每个学生的编程数据是一条长度不定的轨迹,且长度的分布服从Zipf分布,即“20/80原则”。
当然,本文让人类专家给800个独特的编程过程手工打了标签,花费25.9小时。
三、主要方法
数据集定义为 D = { x i , y i } i = 1 n D = \{x_i, y_i\}^{n}_{i=1} D={xi,yi}i=1n,其中输入字符串 x i = [ x i , 1 , ⋯   , x i , T i ] x_i = [x_{i,1},\cdots, x_{i, T_i}] xi=[xi,1,⋯,xi,Ti]是由 T i T_i Ti个关键字组成的序列,输出向量 y i = [ y i , 1 , ⋯   , y i , l ] y_i = [y_{i,1}, \cdots, y_{i,l}] yi=[yi,1,⋯,yi,l]是 l l l个相互独立的二进制向量。本文的目标是学习 y ^ i = f ( x i ) \hat{y}_i = f(x_i) y^i=f(xi)使得 e r r ( y ^ i , y i ) err(\hat{y}_i,y_i) err(y^i,yi)最小。
3.1 Rubric Sampling详解
该采样是本文的核心技术,主要功能是生成高质量的标注数据集。
CFG全称为context-free grammar,是一个描述字符串的无环乘积规则的集合,类似于编译原理的词法分析。乘积规则由终结符和非终结符组成。如CFG: S → A A ; A → α , ; A → β S\rightarrow AA; A\rightarrow \alpha,; A\rightarrow \beta S→AA;A→α,;A→β,其中 S S S和 A A A是非终结符, α \alpha α和 β \beta β是终结符,于是这一套CFG可以产生 { α β , β α , α α , β β } \{\alpha\beta,\beta\alpha,\alpha\alpha,\beta\beta\} {αβ,βα,αα,ββ}。由CFG升级可得到PCFG(probabilistic context-free grammar),即箭头上有概率,如 S → 1.0 A A S{\rightarrow}^{1.0} AA S→1.0AA。
基于PCFG,我们可以生成无限的合成标注程序,此过程被称为Rubric Sampling。其中终结符相当于标签,如
并且,rubrics的构建十分简单,一个研究生和一个教授可在19.4分钟内生成一个PCFG。
3.2 Baselines
- Majority Label. 即选择最多的标注进行标注。
- Predicting from Output. 训练RNN从坐标变化中(第一幅图中小人的移动)学习得标注。
- Feedforward Neural Network. 主要实验方法,本文使用的是句子编码器加带有softmax的3层感知机。损失函数如下
- Trajectory Prediction. 将输入句子以词向量表示,然后训练一个循环神经网络去预测输出。
- Deep Generative Model. 这个是本文实验主要的对比方法,并且在改进中结合使用。主要训练一个多模变分自编码器。
四、实验结果
本文的实验结果是state-of-the-art。更吸引人的是,其根据实验结果对教育提出了一些有意义的结论。