Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Incorporating user feedback in a ML model

I have developed a ML model for a classification (0/1) NLP task and deployed it in production environment. The prediction of the model is displayed to users, and the users have the option to give a feedback (if the prediction was right/wrong).

How can I continuously incorporate this feedback in my model ? From a UX stand point you dont want a user to correct/teach the system more than twice/thrice for a specific input, system shld learn fast i.e. so the feedback shld be incorporated "fast". (Google priority inbox does this in a seamless way)

How does one build this "feedback loop" using which my system can improve ? I have searched a lot on net but could not find relevant material. any pointers will be of great help.

Pls dont say retrain the model from scratch by including new data points. Thats surely not how google and facebook build their smart systems

To further explain my question - think of google's spam detector or their priority inbox or their recent feature of "smart replies". Its a well known fact that they have the ability to learn / incorporate (fast) user feed.

All the while when it incorporates the user feedback fast (i.e. user has to teach the system correct output atmost 2-3 times per data point and the system start to give correct output for that data point) AND it also ensure it maintains old learnings and does not start to give wrong outputs on older data points (where it was giving right output earlier) while incorporating the learning from new data point.

I have not found any blog/literature/discussion w.r.t how to build such systems - An intelligent system that explains in detaieedback loop" in ML systems

Hope my question is little more clear now.

Update: Some related questions I found are:

  • Does the SVM in sklearn support incremental (online) learning?

  • https://datascience.stackexchange.com/questions/1073/libraries-for-online-machine-learning

  • http://mlwave.com/predicting-click-through-rates-with-online-machine-learning/

  • https://en.wikipedia.org/wiki/Concept_drift

Update: I still dont have a concrete answer but such a recipe does exists. Read the section "Learning from the feedback" in the following blog Machine Learning != Learning Machine. In this Jean talks about "adding a feedback ingestion loop to machine". Same in here, here, here4.

like image 447
Anuj Gupta Avatar asked Mar 17 '16 17:03

Anuj Gupta


People also ask

Which is a feedback based machine learning technique?

Reinforcement Learning is a feedback-based Machine learning technique in which an agent learns to behave in an environment by performing the actions and seeing the results of actions.

Why feedback is important in machine learning?

With a feedback loop, you are giving your model the chance to go over what it already knows so it can keep learning from this data and perform better in the future, much like a studying student. Feedback loops ensure that AI results do not stagnate.

What is a feedback loop in ML?

In consumer products, feedback loops capture how users react to or engage with the output of a ML model. For example, when you search on Google and click a specific result, you are completing a feedback loop that enables Google to measure how well its models ranked the relevant search results.

Is there feedback in unsupervised learning?

Unsupervised learning model does not take any feedback. Supervised learning model predicts the output. Unsupervised learning model finds the hidden patterns in data. In supervised learning, input data is provided to the model along with the output.


1 Answers

There could be couple of ways to do this:

1) You can incorporate the feedback that you get from the user to only train the last layer of your model, keeping the weights of all other layers intact. Intuitively, for example, in case of CNN this means you are extracting the features using your model but slightly adjusting the classifier to account for the peculiarities of your specific user.

2) Another way could be to have a global model ( which was trained on your large training set) and a simple logistic regression which is user specific. For final predictions, you can combine the results of the two predictions. See this paper by google on how they do it for their priority inbox.

like image 162
Shubham Bansal Avatar answered Sep 16 '22 12:09

Shubham Bansal