Presenting Sitecore Machine Learning.

Every so often a new statistic about how much data we generate makes the rounds. The numbers are so large they are hard - if not impossible - to fully appreciate. What do you do with something like "every day we generate 2.5 quintillion bytes of data"?

Machine learning offers a tantalizing answer to this question: instead of creating an algorithm and having a computer run it, point the machine in the right direction and let the machine build the algorithm itself.

Machine learning is becoming more accessible, both in terms of the hardware needed to run it, and the tools available to use it.

Microsoft offers machine learning through Azure ML. One of the big advantages of Azure ML is that it is easy to replace existing algorithms, as well as add new ones.

We are happy to announce an experimental module for Sitecore that leverages Azure ML to recommend segmentation based on the results of a multivariate test that is run in Sitecore.

PLEASE NOTE: this is an unsupported module that you use at your own risk. This module was developed as a proof-of-concept to explore how to integrate Azure ML with Sitecore's testing features.

This module should not be considered ready for product use. In addition, it should not be assumed to be representative of the direction Sitecore plans to take with respect to machine learning.

This module is being made available to provide inspiration to the community on one way machine learning can be incorporated into the Sitecore Experience Platform.

We want to create a Machine learning component containing a framework that will allow ML to take place locally or in the cloud. Sitecore ML provides access to machine learning capabilities to any Sitecore component that needs access to those capabilities.

Running a machine-learning algorithm requires much more than just running the prediction function, there are the scheduling of the training of the model as well as data retrieval and persistence of results. Sitecore ML provides the framework for all of this.

To solve these problems we have come up with the following architecture:

This framework is not much in itself, and we have therefore added an integration with Sitecore Content Testing, replacing the already existing k-means clustering algorithm with an Azure Machine Learning (AML) service. This will empower customers to customize their algorithms in AML, to fit their needs. Let’s take a closer look at the content testing integration.

Content testing.

Using content testing Sitecore enables site owners to test content and find the content that provides the highest values for most users. However, there may be large segments of visitors for whom the winning content isn't effective. The marketer needs help identifying those segments, identifying the content that might be more effective, and creating personalization rules that can connect those segments with the appropriate content. And, of course, this personalization should be tested as well.

When content has been tested and there is a statistical significant proof that some content is better, our feature takes the data collected during the test. The following drawing describes the feature.

  1. All page view data concerning the test is uploaded to Azure Storage, and a k-means clustering algorithm divides the visitors into different segments. The result is saved in Azure Storage.
  2. The result is downloaded. For each of the segments a function calculates the overall winning content.
  3. Take away the segments where the overall winning content was equal to the test winner. Between the rest find the highest lift compared to the average of all the sample and return it.

The machine learning component has been placed on Sitecore marketplace for partners to test and evaluate. Please find the component here. Machine learning has many uses in personalization and more, more central, pieces will come in the future.

We look forward to hear what you think!

Kim Falk Jørgensen
Technical Product Manager, Machine Learning.