Reading technology news might feel like artificial intelligence has permeated all aspects of society. Machine learning is indeed useful in predicting demand, classifying documents or recommending media content among others. However, it's not a magical solution to all problems. Machine learning is a tool that has its uses but also limitations.
When and where should you apply machine learning? Let's take a look at a few practical rules of thumb which indicate when machine learning might be useful.
Machine learning makes sense on complex tasks, the kind of where humans can't describe how they find a solution. Many things our mammalian brains do fall into this category. Humans are very good at recognizing words in a spoken speech, but no one fully understands how our brains accomplish the feat.
If a task is so simple that a human is able to trace the steps needed to complete it, it's much more effective to hire a programmer to write a traditional computer program.
The task complexity is a somewhat elusive concept, but some aspects often indicate high complexity. We might be on the home turf of machine learning, if the outcome depends on a large number of interacting factors (an image recognizer must make sense of a large collection of pixels) or if the variation is large (cat pictures should be labeled as cats no matter the cat breed, pose or the picture background). The type of data itself is also related to complexity: advanced video processing and speech recognition is mostly machine learning nowadays.
What does success look like?
Machines do not have common sense. They can't tell if the results they output are good or bad. Such feedback is, however, crucial in machine learning. Without it, learning an algorihtm is not possible. Therefore, it's essential that the people on the product team define clearly what constitutes a correct answer on a prediction task.
Before starting a project, imagine that you had a magical box that claims to output the answer to the question you are interested in. How would you tell if the result is correct? If you don't know, you can't train a machine learning algorithm.
In the best case, there exists an unambiguous right answer. Game AI either wins or loses a match. The stock price either goes up like an algorithm predicted or it doesn't. Machine learning excels in the kind of tasks where everybody can agree on the evaluation. The narrower the task, the smarter the AI seems.
Sometimes the evaluation criterion is clear in principle but complicated to measure in practice. Everybody might agree that the purpose of a recommender system is to increase sales. But to really verify that this is indeed what happens, you need to have the technical capability to conduct A/B tests.
Things get even muddier, if people legitimately disagree on what should be the goal. Some might want a recommender system to increase turnover, others might want it to encourage customers to explore by displaying them interesting niche products or to promote brand content or have other goals.
If the ultimate goals of the project are not clear to you, don't expect machine learning to magically clarify them either.
Machine learning loves human experts
While it is possible to train a machine learning model as a complete black box and hope something useful comes out, the project is on much firmer ground if you have access to domain experts. Expert’s intuition can tell if the task has patterns that a computer might learn to exploit. Learning is easy if an expert has a solid grasp of factors that affect the outcome. Predicting when an industrial machine will fail is doable if engineers understand well enough which physical factors affect the chance of failure.
When we move beyond solid expertise, learning gets more uncertain. If we can't measure all relevant variables, the prediction quality quickly plummets. Predicting whether it will rain tomorrow is doable, because we can measure the relevant atmospheric variables with sufficient accuracy, but predicting when the next earthquake will hit is considerably more difficult, because we don't yet even understand the physics of plate tectonics well enough.
Data as a training signal
Training of machine learning models usually requires lots of training data. The data is the way to indicate the desired output to a computer: "when you encounter a sample that is similar to this one you have seen before, output this label".
Just any old data won't do, either. It has to be representative of the kind of situations the model is expected to encounter in operational use. Machines blindly learn patterns they see in the training data. If the training data is biased in some way, the predictions will also be.
Each training sample instance must come with a correct answer attached. If you don't happen to have access to suitable labelled data, the samples need to be explicitly labeled. This means human labor and can get time consuming. If you don't have labels, prediction is not possible but you might still be able to gather insights or utilize data in other ways.
Consider usefulness, don't get carried away with the hype
Finally, the task should be such that it is worthwhile to automate it. Perhaps the task is repetitive, boring or expensive to do by hand. Don't forget to think through the business case properly just because AI is the current buzzword!
Don't automate tasks that people enjoy doing! People who paint for fun probably wouldn't appreciate an AI painter.
Are you looking for a solution to a problem? If your task satisfies most or all of these guidelines, machine learning might be the correct tool! Does the task have complex interactions yet unambiguous answers? Access to broad domain knowledge makes a project more likely to succeed. Labeled data is required for training. Automate tasks when it makes business sense.