Do You Need Microsoft Machine Learning to Use Cortex in Sitecore 9.1?
No You Don’t! I will explain why in a moment… and why you might want to.
Sitecore 9.1 includes two new roles supporting Cortex, Sitecore’s Artificial Intelligence Engine focused to Machine Learning.
These are the Cortex Processing and Cortex Reporting Roles. Better known as the Sitecore Cortex Processing Engine and Sitecore Cortex Reporting Foundation.
Sitecore Cortex Processing Engine
The Sitecore Cortex Processing Engine is a worker role that performs data processing tasks. It leverages workers to perform these tasks and you can define custom workers for additional tasks beyond the default.
By default, the Cortex Processing Engine has three main components (per the Sitecore Cortex Processing Engine overview documentation):
- Message handlers receive tasks registered via the Task Manager API
- Agents delegate tasks to workers
- Workers perform data processing tasks, such as data projection or model training.
The processing tasks performed are focused on building personalization rules and publishing these to the reporting database. NOTE: “Content Testing does not use the Machine Learning Server Integration”
That note is pretty critical as Cortex can perform a bevy of tasks without leveraging a machine learning engine. Notice that I stated “A” machine learning engine?
That is because while the Cortex Processing Engine provides an integration point for a machine learning platform, and the default integration is Microsoft Machine Learning Server… you have a choice on what machine learning platform to use… and if you use one at all!
In fact, the Sitecore 9.1 installation guide clearly states “Sitecore 9.1 introduces the new Sitecore Cortex™ Processing Engine. You can use the Processing Engine with or without Microsoft Machine Learning Server.”
Sitecore Cortex Reporting Foundation
Processing without Reporting is useless and that is where the Sitecore Cortex Reporting Foundation comes into play.
The reporting foundation allows you to store and query two different types of data… facts and dimensions. These are stored using the Data Warehouse Star Schema design methodology.
Sitecore’s documentation has a great example of how to structure the data and how to query, add, update, and delete data.
Why Use Microsoft Machine Learning Server… or Any Other Machine Learning Platform with Cortex?
Given that the out of the box Cortex power provides a lot of capabilities, why would you need to leverage a Microsoft Machine Learning Server or another machine learning platform?
The answer is simple, because you have custom data processing requirements that Cortex can’t execute, or are outside of the scope of Sitecore’s default data crunching.
Using Microsoft Machine Learning (MML), you would send your machine learning scripts (written in R as Sitecore prefers this vs. Python) and the location of training data to the MML endpoint.
Doing so allows you to leverage the power of a platform like Microsoft Machine Learning with a tight integration to the data being collected by Sitecore.
In short, while you can run Sitecore 9.1 with Cortex and not use MML, you need to carefully weigh your data learning needs before integration with such a platform… as Sitecore may already meet a lot of what you need via the built in Cortex data analysis and predictive capabilities.