In a previous posting, SAS Customer Intelligence 360 was highlighted in the context of delivering relevant product, service, and content recommendations using automated machine learning within digital experiences. Shifting gears, SAS recognizes there are different user segments for our platform. This post will focus on building custom analytical recommendation models for delivering customer personalization.
Competition in customer experience management has never been as challenging as it is now. Customers spend more money in aggregate, but less per brand. The average size of a single purchase has decreased, partly because competitive offers are just one click away. Predicting offer relevance to potential (and existing) customers plays a key role in segmentation strategies, increasing macro- and micro-conversion rates, and the average order size.
The topics that I will cover are:
- What are factorization machines?
- How do factorization machines support personalized marketing?
- How does SAS Customer Intelligence 360 support building and deploying factorization machines within digital experiences?
- A step-by-step demonstration and a business use case for the sas.com bookstore.
Introduction to factorization machines
A factorization machine is a predictive model that combines features of a support vector machine and matrix factorization. By modeling all variable interactions with factorized parameters, factorization machines can handle large data with high volumes of missing values (i.e. sparse data).
Factorization models have attracted a lot of research in the fields of intelligent information systems and machine learning. They have shown excellent prediction capabilities in several important applications, such as personalized marketing and recommendation engines.
How do factorization machines help data-driven marketers?
The algorithm aims to learn consumer preferences to recommend items such as movies, books or songs. The purpose is to predict how a user would react to a set of items, and then recommend items that the user is likely to prefer the most. Whether in real time while customers browse, or through outbound marketing later, several things need to happen.
- At first, while learning about your users' tastes and preferences, recommendations can be based on item attributes alone.
- Over time (and with enough data), factorization machines enable useful analysis to deliver more meaningful recommendations.
- Other users’ inputs can improve the results, qualifying why the system should be retrained periodically.
The application of a factorization machine model within a customer experience will follow these phases in SAS Customer Intelligence 360:
SAS Customer Intelligence 360 is an end-to-end solution, and the platform consists of:
- A scalable front end that records user interactions to collect, prepare and store aggregated data that is analytically-ready.
- Machine learning capabilities.
- Algorithms that can analyze and create relevant recommendations.
- Storage of user scoring that can be used by the deployment front end, in real time or later, based on the timeliness requirements for interactions.
Use Case: SAS bookstore
In this example, you will see how the SAS bookstore can use factorization machines to compute relevant recommendations and present them to customers who are browsing the brand’s website. With countless titles available, predicting how customers would rate books enables a personalization strategy to prioritize showing specific book titles that they are likely to be interested in.
SAS Customer Intelligence 360 can collect data about users based on:
- Implicit behavior.
- Explicit input.
For a bookstore, it is common for a subset of users to leave ratings. In this example, users and items share a data trail that analysts can use to form a data-table matrix for modeling. Suppose you have user ratings of 1-5 where each value represents rating given by the user.
You can see that some of the ratings are missing, and you would like to predict these. Below is our rating goal:
Notice that you can closely recreate the existing ratings, as well as get an approximation to the missing values. The idea behind using matrix factorization to solve this problem is that there should be some latent features that determine how a user rates a book. Based on your digital property's traffic volumes, this matrix can become very large, because there can be millions of users and product items. Moreover, it is sparsely observed, because typically only a small fraction of historical ratings is available for analysis.
For readers technically interested in learning how to overcome these rating prediction challenges by factorizing the matrix into lower-dimensional user and item factors, please check out this white paper by Jorge Silva and Raymond E. Wright.
Moving on, because this example draws on data based on visitor interactions with the SAS bookstore, the marketing strategy is to proactively offer recommendations of books users didn’t click on explicitly, but may like. Our analysis data set in support of this objective has four columns provided from SAS Customer Intelligence 360: Book ID, Visitor ID, Book Rating, and Time ID.
(Image 5: SAS Customer Intelligence 360 - Modeling input data)
Let’s produce rating predictions for every specified Visitor ID and Book ID. Users select the factorization machine analysis object, drop it into the work space (see figure below), assign attributes to roles and the model executes to provide results.
Using FACTMAC, the procedure implements the factorization machine model. It can be used to read and write data in distributed form to perform factorization in parallel by making full use of multi-core computers or distributed computing environments.
Here is an introductory video of building factorization machine models in SAS.
The FACTMAC procedure estimates factors for each of the predictors (Book ID, Visitor ID), in addition to estimating a global and level bias. After specifying the target variable (Book Rating), the procedure computes the biases and factors by using the stochastic gradient descent (SGD) algorithm, which minimizes the root mean square error (RMSE) criterion. In this method, each iteration attempts to reduce the RMSE. The SGD algorithm proceeds until the maximum number of iterations is reached, shown by the loss function within the iteration plot.
As shown in the image below, analysts have many optimization modeling options available. For example, the learn-step parameter controls how fast the stochastic gradient descent solver learns. Smaller values increase accuracy, but might require a larger number of iterations to reach a good solution. Auto tuning is supported in selecting optimal values for factor count, maximum iterations and learn-step. Lastly, to ensure model stability, data partitioning for table stratification is available for training, validation and testing.
Further demystification of the model includes the scored response and assessment plots. The scored response visualization shows the distribution of the model’s predicted book ratings. The assessment graphic shows the overall performance of the model by comparing the predicted and observed book ratings. Assuming we are happy with this model, the next step is to make the rating scores available for deployment.
The output of this selection enables an analyst to produce the following data view.
Each user now has a predicted rating score for every product available at the SAS bookstore. And every visitor can have a rank-ordered set of scores associated with their profile. Rest assured, there are different approaches in making analytically scored data available within (and outside) of the SAS platform beyond a table. What options do analysts have in helping their marketing teams?
- Scoring identifiable and anonymous traffic.
- The ability to score in batch or real-time.
- Access to the model scoring engine (SAS, Python or REST) for APIs through SAS analytic services.
This is the part where the actionable prescription is ready for the marketer. Whether the intent is to display a single recommendation like this:
Or if the intent is to allocate multiple recommendations at once:
The beauty is all the execution ideas are options for the marketer to consider. When it comes to targeting audiences for web personalization, mobile cross-sell opportunities, or email acquisition programs, this modeling output is crucial in including (or excluding) individuals for recommendations.
The marketing strategy will lead with a recommendation concerning the best offer to deliver within the touchpoint. The decision(s) can be made in real time for inbound interactions, and triggered for outbound communications. The decision will select only the highest ranked proposition out of the possible book title offers, depending on the individual’s predicted score(s), their eligibility and other relevant criteria. Here is an example of how a marketer would set up the nested targeting logic.
In closing, we welcome readers to obtain a free copy of the Forrester Wave™: Customer Analytics Solutions, Q2 2018 research report. It provides analyst validation of the strategy and ability for SAS to perform against different customer analytic challenges. The creation of custom recommendation systems and delivering personalization across multi-channel customer experiences is simply one relevant use case of many that can be accommodated.