Overfitting means good performance on the training data, poor generalisation to other data. So technically this might not be overfitting.
I’m curious to know what your training accuracy was. You mentioned your test accuracy and your validation accuracy. Was your training accuracy closer to the validation accuracy or the test accuracy?
If the training accuracy is closer to the test accuracy than the validation accuracy, then perhaps you simply have a bad representation of data in your validation set. A good validation set should be a representation of your test data or what you’ll see in your real world. If your validation accuracy is not not in correlation with your test scores, its best that you try to work on making a better validation dataset.
In the Statefarm distracted driving competition, it was mentioned that the drivers in the training set will not be present in the test set. So in this case, when we created a validation set, we had to make sure that the validation set did not contain any driver in our training set. Little things like this tend to throw us off a lot, so its worth our while to prepare our data carefully.