Auto ML (automated machine learning) is getting baked into more & more data analytics and Line of Business systems. The result is a new set of point & click functionality that non-data scientists can use to take their first steps into machine learning.
This emerging Auto ML market is taking off quickly. Forrester has a wave dedicated to automation-focused machine learning solutions, and you can find this functionality included in software offerings like SalesForce, the Google Cloud Platform, PowerBI, RapidMiner and several others.
Some solutions take the ‘auto’ part of ML further than others, but all of them automate the statistics-heavy work around the selection of the ML model. RapidMiner’s Auto Model functionality lets you select which model you want to use and then trains them all. You can then see the results and select your favorite model. Google’s AutoML takes it a step further and doesn’t even tell you what type of model they will use for your data set. I’m sure that they trim down the model options based on the shape of your data - For example, whether you’re trying to solve a regression problem, or a classification problem. Beyond that, I haven’t a clue what they’re doing behind the scenes.
The pros & cons of AutoML
The main pro of using Auto ML is obvious - It lowers the barrier to entry. You can start a machine learning project or proof of concept without knowing anything about AI/ML. You can run ad-hoc experiments for very small investments. RapidMiner provides a free 30 day trial of its Auto Model functionality and you can run Google’s AutoML for less than $20 per compute hour.
That low barrier to entry can also become a con if the simplicity of Auto ML leads to a lack of commitment & resourcing of the organization’s AI/ML discipline. If expectations aren’t managed correctly, the low barrier to entry can diminish the perceived value/importance of the discipline. The risk is the HIPPO saying, 'we tried that. It didn't work for us'.
What’s missing from Auto ML?
Most the Auto ML point solutions & add-ons that I've seen assume that you have a clean & useful data set to begin with. You're never going to have that. Some of the data analytics platforms have tools for data wrangling. Rapidminer, Knime & PowerBI all have tooling to consume different types of data, clean, and transform data into something that’s usable by Auto ML. But, even with great tools, this is typically the heaviest lift of any machine learning project.
Another thing missing from Auto ML is the business side of data science. There is a whole set of soft skills are important to machine learning.
Navigating the organization (politics)
Defining/articulating/presenting the problem
Identifying data sources
Negotiating access to the data sources
Using the tools to access the data, where it is, and get it to where you need it to be, and in the format you need it to be in
All this needs to happen before we can start the modeling part of an ML project.
Bringing this topic back to Sitecore
Since we live exclusively in the Sitecore world, all our ML work is (directly or indirectly) related to customer experience. A few thoughts.
Customer segmentation: The more customer data you can get into xDB, the more data you’ll have for ML. Out-of-the-box profile data can be used to drive categorization models. Engagement value can be used to as a proxy for interest or satisfaction, and can drive regression models. xDB can be easily extended with custom facets to store customer data from other systems. There are other roll-up data points in Sitecore that can be used in ML models.
Activities & interactions: If you have a nice customer data model (above) built out, you can layer on all sorts of rich activity data. Think about what Sitecore collects - visit data, device data, location data, campaign data, goal data, and lots more. In Sitecore 9 we can now collect non-page data (interactions) from other systems. Examples may include things like actions from native mobile apps, in-store point-of-sale events, CRM activities, etc. Layer activity data on top of the customer data and you have even more to work with when building out a model.
Cortex: Cortex is the brand for all of Sitecore’s AI/ML initiatives. A foundational piece of Cortex is a processing engine that you can use to get data out of Sitecore, into an ML ready format, and over to the ML system/service of your choosing.
Projection: We might use multiple projection tasks to get customer segmentation data and activity & interaction data out of xDB. Each projection task will have a specific set of instructions for what data to pull out of xDB and how to transform it for ML.
Merge: The merge task grabs each of the projection outputs (think tables) and merges them together into a single flat table that is set up for ML.
Train: The train task takes that flat table, sends it to an external service, and may even kick off the ML model training. In the Google AutoML mention above, the train worker could upload the merge table to Google’s bucket storage and kick off a new AutoML training session.
Other tasks: The coding framework is available for you to extend however you need to. So, you can string together as many custom tasks together as you want.
This post was intended to introduce the emerging market of Auto ML and hopefully get the wheels spinning on how you might use it. In future posts, I’ll touch on some of those ‘soft skills’ that I referenced above.