05/26/2023
Optimizing your Customer Outreach with Kumo
Effective customer outreach is challenging, and building an ML system to solve this isn’t exactly easy either. As we discussed in our customer outreach blog, engineering a notifications system involves volume control optimization (identifying the right time, frequency, and cadence for each user), channel selection (each user has their own affinity based on notification and timing – i.e. email, text, in-app notification), and content personalization (the notification message should be aligned and relevant to the user).
Building a solution that takes all of these components into account involves many machine learning pipelines, with many predictions per user in order to create the right notifications strategy. Using Kumo, the process becomes much simpler: you build a single graph that captures your customer interactions and potential notifications, and then run a series of queries to uncover the ideal strategy in a matter of hours.
This blog will show you how to go from raw data to predictions you can use to directly build highly optimal and personalized customer outreach across all of your users.
Building your Graph
Your enterprise data naturally is represented by a graph – the entities include users, transactions, clicks, views, and attribute data. This graph includes the patterns and interactions between the entities that represent users, purchases, actions, and more.
Kumo lets you quickly connect your data sources to build the graph in a matter of seconds. This graph is built in a way that’s optimized for GNN learning.
To recommend notifications, you can include tables that are related to purchases, subscriptions, views, clicks, or anything applicable to user history and activity, etc. The more data the better!
In this example, we’ve added tables including anonymized customer information, which can analyze the ecommerce platform’s customers and their transactions. Link your tables based on Primary / Foreign Key relationships and you’re done!
Once you connect your tables, Kumo will automatically build the graph optimized around the relationships and interactions that exist, so making recommendations becomes easy. Things like what users are similar based on demographics and past behaviors, what items are likely to be purchased together or sequentially, what price ranges users typically focus on, are inherently learned through the graph structure.
You can scale to dozens of tables, terabytes in size, with tens of billions of rows collectively. With a large graph created, Kumo will enable you to learn complex patterns and interactions from the different schemas – the more tables you connect, the greater the depth of the learning.
You can reuse this graph to build any number of new models and deploy predictions across a broad range of use cases. Kumo.ai will maintain and update the graph as new data comes in or as tables are updated.
From Business Problem to ML Pipeline in A Few Lines of Simple Code
With your graph built, you can now start generating predictions! Kumo offers a flexible and customizable language called the Predictive Query, which specifies the machine learning problem you’re trying to solve.
Kumo uses the query to kick off an end-to-end ML pipeline (no feature engineering or pipelines needed!) where the Kumo AutoML process runs under the hood, identifying the best architecture, model, and parameters for your task and graph. You can run a near-infinite number of predictions for different types of problems in a matter of hours, each one deploying a new, unique GNN built for the specific task.
Below are examples of queries that are run to optimize the notifications strategy.
Given you send out notifications the next day, predict the open rate of the notifications for the day after:
PREDICT EXIST(NotificationOpen, 0, 2)
ASSUMING EXIST(NotificationSent, 0, 1)
FOR EACH Notifications.EventID
Notifications can be used to prevent churn or increase customer spend. Once you identify which notifications will have the highest open rate, you can predict how sending a coupon will impact customer behavior.
The following query predicts how sending a notification with a discount coupon to users will impact churn and their future transactions over the next 60 days:
PREDICT COUNT(Transactions.*, 0, 60, DAYS) = 0
FOR EACH Users.UserID
WHERE COUNT(Transactions.*, -60, 0, DAYS) > 0
ASSUMING COUNT(Notifications, 0, 7, DAYS) > 0
You can compare these results to the churn prediction results that determined which customers will likely churn without the notification.
Finally, to put it all together, you can perform comprehensive what-if analysis over the entire set of notifications you can send them to identify what the optimal strategy will be.
You can predict each active user’s expected transaction volume given each possible notification you can send them:
PREDICT SUM(Transactions.Price, 0, 30, DAYS)
FOR EACH Users.UserID
WHERE EXISTS(Transactions.*, -90, 0, DAYS)
WHAT IF EXISTS(NotificationSent.*, 0, 1, DAYS)
And compare this with the volume predictions without notifications.
Similarly, you can make product recommendations using a comprehensive what-if analysis, which shows you which products will be likely purchased by each user, for each notification that you can send them:
PREDICT LIST_DISTINCT(Transactions.ProductID, 0, 7, DAYS)
FOR EACH Users.UserID
WHERE EXISTS(Transactions.*, -90, 0, DAYS)
WHAT IF EXISTS(NotificationSent.*, 0, 1, DAYS)
You can compare the ideal recommendations with the results from the recommendations predictions you can run.
This will enable you to identify the right set of notifications for each user based on your target goals.
If you’d like to try this out with your data, you can reach out and we’ll help you set up!