I follow a very simple yet state of the art modeling technique for classification using ROBERTA transformer model
I bucket scores into each class of 0.5 interval, hence, I get 11 classes. for each essay, I join the problem statement and the essay into 1 single line and then my model classifies each essay to one single bucket. For example, if my model classifies an essay into bucket 6 then I assign it 2.5 score.
I treat this problem like sentiment analysis where classification models like BERT/ROBERTA give very good results.
To train my model, I used the following:
- Simple Transformers
- 1 free GPU from Google Colab
- Upload data to google colab
- Convert essays into question+essay format
- Convert scores into buckets
- Split the training set into training and validation set
- Train the model on new training dataset
- Measure accuracy on validation set
- Generate prediction on test set