By: Jason Laverty
22 July, 2015
How machine learning is being used in web development.
Machine learning or deep learning is everywhere at the moment. You can't even take a 5 minute break with a piping hot mocha and flip through the tech news without seeing half a dozen new articles on the topic.
Whilst artificial intelligence is something engineers have been tinkering away at for decades, it's only recently that several key factors have come together to make this technology more mainstream. Hardware has become more powerful, new types of machine learning have emerged and there is a lot more documentation available that allows engineers to get their foot in the door with relative ease.
Machine learning is exactly as it sounds - you teach and the machine learns. Now there are different types of machine learning, some require human assistance or supervision, and some do not. Most Machine learning at the moment is supervised. It may sound like you need to pace around your computer making sure it's doing its homework, but it's far from it. Supervised learning involves sending information for the machine to learn along with a reference or tag.
Companies like Google and Facebook have been doing this for years.
How is it that Facebook magically knows when you post a photo of you and your friends who is who? Because users have been uploading photos (information) and tagging themselves and their friends (tag). This is the basis of image recognition - show a machine enough images along with a corresponding tag, and the machine will be able to recognise what is what. One issue with machine learning is that the learning or training period needs to be quite exhaustive.
Google's most obvious use of machine learning is Google Search. What better way to train a machine that requires enormous amounts of learning than to have people around the world train it? The user enters a search query (tag) and then clicks on a result, which becomes the information. You're teaching the machine what page is most relevant for that search query allowing Google to disseminate the information on the page and work out why. The result, an amazingly powerful search engine. Google's use of machine learning to advance its services extends to spam detection, sentiment understanding and more.
This is all well and good, but how does this apply to web development? The question really is, how does it not?
Websites, particularly ecommerce websites often have issues with big data, that is there is often so much information to analyse it becomes impossible for people to understand trends. If you applied this philosophy to say, conversions on your website, the outcome could very well be an increase in conversion and therefor an increase in profit.
When someone comes across your ecommerce website, the goal is usually to have them convert in some way, sign up to a mailing list, clicking an affiliate link or making a purchase. What if you could trend all the previous customers who perused your website, what they clicked on, what they read, what they watched along with a flag for whether or not they converted? This is quite hard for a human, the sheer amount of information to process is astronomical.
That's where machine learning comes in. You gather all the interaction points the user had on their journey through your website, the more the better, that becomes the information, then you tag that information with a conversion or a non-conversion and the machine can being to understand what factors are important for a conversion.
Now what do you do? You have your machine trained, what next? Now we predict.
Predict what? Predict if a user on our website is going to convert or not. It might sound like something from a divination class at Hogwarts, but these predictions are data driven - they are based on facts. A prediction in the scenario we just outlined would involve sending the trained machine more information, in this case all the current information we have on a users journey. They may have landed on our website from another referral website, hit the homepage, clicked on the FAQ page, browsed several products, stopped momentarily to queue up another episode of The Block on the Chromecast, and then checked out the returns policy. If we pass all this information to the machine it can predict if the user will convert or not.
Sounds great so far right? But how do we use this prediction in a way that can benefit us as an ecommerce website? It's easier than you or the machine think.
Lets say the machine return a value of 0.13, or a 13% chance of conversion - things are looking pretty slim, but armed with this knowledge we might be able to do something about that.
If we know the user is unlikely to convert maybe we could offer them an incentive? How about utilising a pop-up offering a discount on their first order if they submit their email address? You may just get another email address for your database, or you might even get a sale.
Machine learning is vast landscape but as tech companies like Google, Microsoft and Amazon arm us with the tools to implement machine learning easily, it is quickly becoming not only mainstream throughtout web development, but soon to be a prerequisite.