Machine learning isn’t going to magically reveal the right business strategy. It isn’t going to find a cure for cancer. And it still can’t make self-driving systems safe. But given the hype around machine learning and artificial intelligence, it may seem like these technologies are everywhere, and if you’re not using them in software development you must be doing it wrong. Well, this is not true.
Machine learning is an incredible technology. Thanks to machine learning you can see the news you’re interested in on Facebook, discover music you like on Spotify, and get another busy weekend with Netflix. But it can’t solve any problem you throw at it.
For example, Railsware, an AI consulting company recently explained why machine learning wasn’t the best method for extracting data out of scanned PDF documents. Sometimes plain human intelligence is more efficient than machine learning.
There are many challenges in software engineering that can be handled much faster and cheaper using simple solutions. To distinguish hype from reality let’s look at some real world use case where applying machine learning is totally worth the investment.
Predict what customers want
Machine learning algorithms are widely used by retail, social media, and streaming services to predict user preferences and suggest products they’re most likely to buy. Recommender systems that power Amazon, Etsy, Airbnb, and Netflix rely on so called collaborative filtering technique. The idea of this method is that people who like the same things share similar tastes. The phrase “Customers Who Bought This Item Also Bought” on an ecommerce website is collaborative filtering in action.
Recognize what’s in the picture
To retrieve beach photos in your Google+ photo collection, all you need to do is type in “beach” and all the pictures with beach in them will show up. Google introduced this smart photo search in 2013, giving users the ability to use search terms to find their photos without having to manually label them.
The efficiency of image recognition depends on the ability of the computer system to classify images. This problem is solved with supervised learning algorithms. Here is how they work: you need to define what objects your machine learning model needs to detect in the images (eg. a dog) and train your model to recognize dogs using labeled example photos.
Image recognition technology is applied to filter unsafe user generated content, make products in the images searchable, discover content on stock photography and video platforms, tag people on users’ photos on social networks, and in a variety of other fields.
Understand natural language
Chatbots and voice assistants are becoming a common tool for shopping, paying bills, getting weather forecasts, and more. The technology behind these systems is called Natural Language Processing (NLP) and it’s a large area of artificial intelligence that makes it possible for humans to talk to machines using text and voice.
The process of understanding human language is complex. To develop an NLP model that understands language you need to break down this process into several steps. The first step is to split a paragraph into sentences. Then the system breaks down the sentence into words and identifies their part of speech. And after that it needs to figure out how words in one sentence relate to each other.
There are many complexities involved in this process. For example, because the NLP model examines one sentence at a time, it doesn’t understand what pronouns mean. To solve this problem programmers use coreference resolution or a method of tracking pronouns across sentences.
Make predictions about the future
We all use GPS navigation services to get from one place to another using the fastest route. But have you ever wondered how these services build a map of current traffic? Of course they use our location data and velocities! But this isn’t enough. Some cars have GPS navigation, but the majority don’t. Machine learning uses historical data to predict the regions with traffic congestion. Uber, for example, uses machine learning to predict demand for riders and define price surge hours.
Machine learning algorithms can help reduce these scary figures. These algorithms all work differently, but the most common ways include anomaly detection, similarity, and clustering. For example, using a credit card in an unusual location can be considered as an anomaly. In such scenario the system will alert fraud teams who will do the necessary actions to let the card owner know about this transaction so they could confirm or decline it.
One example of fraud detection and prevention systems based on machine learning is Stripe Radar, a suite of tools built by Stripe, one of the largest payment systems.
Where else can machine learning be found?
We’ve just described a few everyday use cases where machine learning is applied. But the range of applications for this technology is much larger. If you can think of any other applications of machine learning in your day-to-day life, we’d be glad if you could share them in comments!