Written by Aaron “Hoss” Heise, Five-Star Software Consultant With J. Geiger Consulting
In the previous installment I talked about just how many parts of our lives “thinking computers” affect, and persuasively asserted that recent advances in artificial intelligence technology have made it easy to build into software. In this second part we’ll look at how to identify tangible improvements big data technology can make on the way that users use with software. At the end I’ll share about an almost unnoticeable application of machine learning that saves users valuable time in the first installment of Stories from the Client Site. (Sounds like a horror story! …ooo, spooky…)
Web Analytics as an Example
Web site analytics are really cool to look at. If you’re not familiar with the term, web analytics is a tool that tracks who visitors are and what visitors do on a web site. Google Analytics is probably the most popular platform out there for this. They make it simple enough, just drop a snippet of code into your site and the graphs and charts spring to life.
Then, in the case of an e-commerce site, you can wire up feedback for conversion and the data becomes far more interesting. Analytics can reveal how customers use a site, and with conversion feedback it can show what paths through the site are generating the most revenue.
Many online retailers use live analytics and A/B testing to test everything from slight wording differences to layouts to landing pages. This works well when your site has at least thousands of visitors per day. Set up two landing pages, divide the stream of visitors in two, sending half to one and half to the other, and then see which resulted in the most revenue, or the longest visit, or whatever metric you can think of. Make sure to leave a cookie on the visitor’s browser so you can track them and see if there’s some residual effect that that takes a couple days to manifest.
Applying Machine Learning
The web analytics example is a potential machine learning use case. In fact, web analytics usually has some kind of machine learning built in, so that by the time you see the data, the computer has already discovered some insights for you to feast your eyes on. It’s actually still a bigger/higher-level application of machine learning than what I hope to help you find and exploit for the benefit of your users, but it’s a relatable example that should help us unpack the idea.
When looking to apply machine learning, there must be volume. The “big” in big data is not as much about the machines on which the data is crunched or stored (though this does end up big as well); it’s about the size of the data set. The amount of data that would be considered “big” depends on the nature of the data, of course, but think in terms of thousands. Less than a few thousand inputs can result in frustrating biases. There are many cases where things will work with less data, but machine learning cannot perform miracles. Without enough data, the patterns and relationships are simply not present.
Secondly, the variables are defined. Some business intelligence systems can “discover” the variables, but these discovered variables still come from the data itself. Given a table of historical hourly temperatures, the system couldn’t discover that snow only fell when the temperature was in the bottom end of the 30s or lower. But if it had a table of historical temperatures and a table of historical hourly precipitation type, any machine learning system worth its bits could discover that relationship given an appropriate amount of input data.
Thirdly, the variables are related. Think of a spreadsheet; the columns are the variables, and the rows are each record of data, and no blanks are allowed. In our example, this means that for each visitor, we know the landing page they entered the site from, the city their IP address geolocates to, and how much they spent on the site.
Lastly, and finally, there is a prediction based on our variables. Ultimately, the output of the system guides a decision. “To maximize revenue, route west cost visitors to…landing page A.” This is the whole reason the system exists.
Making the Jump
The four points above should get your mind thinking about where it could be applied in your software. You are looking for processes that have a relatively high volume of transactions where a choice with a known set of options occurs that is related to a set of known variables. Plenty of buzzwords in that sentence, eh?!
Trying to find a way you can use a technology for the sake of using that technology isn’t generally a profitable business practice. If the technology is valuable, you’ll know, and otherwise, you click “Mark as spam”. But in this case, it’s different! (Spoken like a true marketer, right?) What I mean to say is, in this case, the application is something that you probably already decided was impossible and moved on.
Stories from the Client Site!
A widget manufacturer was rewriting their customer relationship tool, specifically the component used to report defects. They wanted to start collecting a bunch of new information along with the defect description so that the data could be mined using a business intelligence tool to improve the manufacturing process. The new information was a product id, a complaint category (cracked, scratched, etc.), a complaint location (top, bottom, etc.), and a resolution (repair, replace, not covered by warranty, etc.).
The problem is, the customer wouldn’t know the additional information that needed to be collected or couldn’t/wouldn’t do it accurately, and, though every complaint was reviewed by at least one employee who would know the information, they would not have the time to enter all of this information for every complaint.
However, it was a perfect application of machine learning. Each time the reviewers entered the additional information, that information was trained into the machine along with the customers complaint text. Then, whenever a customer entered a complaint, the machine would predict the additional information. The reviewer would correct it if it was wrong and the correction would be trained into the machine. After even a couple dozen complaints were reviewed and corrected, the system was pretty good at making those selections, saving valuable minutes per reviewer per day.
Without machine learning, collecting the additional information accurately would have been impossible, which would make the goal of obtaining mineable data on customer complaints impossible. How else could seemingly random text be related to a particular product? There are certainly many ways, but none are so hands-off and maintenance-free as this.
Next Time
In the next and final part of the series I’ll zoom in a little closer to the widget manufacturer solution to give you some practical details on using this technology to make small problems go away!
Copyright © 2017 Aaron Heise, used with permission.
