1
$\begingroup$

I am sure this is a most common problem, but would like to know by experts on how to tackle it. Note that, I mostly deal with textual data (NLP problems).
When a supervised learning model is created, say a text classifier, and it works well on seen data then we deploy the model in production (you can think of a chatbot also).

But in real time, when new type of data comes where the prediction fails, we find that a new word or new pattern is breaking the model. So we go ahead and retrain the model with new encountered data. This is where the continuous learning problem starts.

Can ML/NLP veterans please suggest some alternates to solve this labor work? Following approaches have been tried and the problems also listed:

  • We simply can't train with new data infinitely. As production systems should be self healing. We cant put the cost of a human admin constantly monitoring the project. Also, it is practically not possible to get huge domain data during model training phase.
  • Use of advanced embeddings, and SoTA models like BERT. (Problem: The accuracy of these models is too hard to control)
  • Synthetic data generation/data augmentatoin. (Problem : Does not work well in case of NLP problems. Refer: training-with-less-data )
  • Unsupervised classification (Problem: Does not work well on closed domain problems, as most unsupervised models are either statistical which give a fair value of accuracy but not decent , or are trained on public domain data)
  • Reinforcement learning. (Problem: Real world NLP data is not labeled unlike a self driven car where the feedback is instant)
$\endgroup$
1
$\begingroup$

What you are describing is called auto-adaptive learning. This is what most recommendation systems use to adapt to ever changing data and feedback. It is also known as autoML. This https://towardsdatascience.com/how-to-apply-continual-learning-to-your-machine-learning-models-4754adcd7f7f Article does a good job of explaining it. Based on what your data looks like, you might have to choose the appropriate retraining strategy and do a staggered deployment.

$\endgroup$
1
  • $\begingroup$ Went through the article. Although, it does not address real problem of getting right labeled data. A ML pipeline is mostly devops area. In ML, right data is the key. For example, in case of a text classifier, how will we come to know what is class of a new data. $\endgroup$ – Sandeep Bhutani Aug 11 '20 at 18:09
0
$\begingroup$

One Solution is "Human in the Loop" with Sentence Encoder. You can use hybrid approach using cosine similarity + Topic modelling + fuzzywuzzy + Bert. I totally understand the NLP world and the kind of problem you are asking. There is no single straight through solutions. And then use voting mechanism to filter out the best resolution.

$\endgroup$
1
  • $\begingroup$ Thanks.. but avoiding human is the key question that I have raised. Humans are expensive, especially after some time of production deployment. $\endgroup$ – Sandeep Bhutani Aug 11 '20 at 18:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.