ProtoTransformer: A Meta-Learning Approach to Providing Student Feedback
arXiv:2107.14035
Abstract
High-quality computer science education is limited by the difficulty of providing instructor feedback to students at scale. While this feedback could in principle be automated, supervised approaches to predicting the correct feedback are bottlenecked by the intractability of annotating large quantities of student code. In this paper, we instead frame the problem of providing feedback as few-shot classification, where a meta-learner adapts to give feedback to student code on a new programming question from just a few examples annotated by instructors. Because data for meta-training is limited, we propose a number of amendments to the typical few-shot learning framework, including task augmentation to create synthetic tasks, and additional side information to build stronger priors about each task. These additions are combined with a transformer architecture to embed discrete sequences (e.g. code) to a prototypical representation of a feedback class label. On a suite of few-shot natural language processing tasks, we match or outperform state-of-the-art performance. Then, on a collection of student solutions to exam questions from an introductory university course, we show that our approach reaches an average precision of 88% on unseen questions, surpassing the 82% precision of teaching assistants. Our approach was successfully deployed to deliver feedback to 16,000 student exam-solutions in a programming course offered by a tier 1 university. This is, to the best of our knowledge, the first successful deployment of a machine learning based feedback to open-ended student code.
arXiv comment9 pages content; 6 pages supplement
References in corpus (30)
- Prototypical Networks for Few-shot Learning
- HuggingFace's Transformers: State-of-the-art Natural Language Processing
- Meta-Learning for Semi-Supervised Few-Shot Classification
- Deep Knowledge Tracing
- Few-Shot Learning with Graph Neural Networks
- CodeBERT: A Pre-Trained Model for Programming and Natural Languages
- Meta-Learning: A Survey
- Unsupervised Learning via Meta-Learning
- SAINT+: Integrating Temporal Features for EdNet Correctness Prediction
- Towards an Appropriate Query, Key, and Value Computation for Knowledge Tracing
- Learning and Evaluating Contextual Embedding of Source Code
- Parameter-Efficient Transfer Learning for NLP
- Contrastive Code Representation Learning
- One-Shot Imitation from Observing Humans via Domain-Adaptive Meta-Learning
- Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks
- Self-supervised Knowledge Distillation for Few-shot Learning
- Unsupervised Meta-Learning For Few-Shot Image Classification
- Few-shot Text Classification with Distributional Signatures
- Automated Essay Scoring based on Two-Stage Learning
- Assume, Augment and Learn: Unsupervised Few-Shot Meta-Learning via Random Labels and Data Augmentation
- Self-Supervised Prototypical Transfer Learning for Few-Shot Classification
- Task Augmentation by Rotating for Meta-Learning
- Recent Advances in Neural Program Synthesis
- Generative Grading: Near Human-level Accuracy for Automated Feedback on Richly Structured Problems
- OptTyper: Probabilistic Type Inference by Optimising Logical and Natural Constraints
- Few-shot Sequence Learning with Transformers
- Reliable Deep Grade Prediction with Uncertainty Estimation
- The Advantage of Conditional Meta-Learning for Biased Regularization and Fine-Tuning
- Unsupervised Meta-Learning through Latent-Space Interpolation in Generative Models
- Learning to Learn and Predict: A Meta-Learning Approach for Multi-Label Classification