Uplift Modeling: A Quick Introduction
Tags: Marketing, Machine Learning, Analytics, Python, Data Science

It may seem like the project was a success but how do you know if the outbound call campaign caused the customer to convert? It could just be cherry picking easy wins.

In other words, all the propensity model did was gather the leads that were most likely going to convert to sales. It did not separate the customers who were already going to purchase from the customers that needed the outbound call to be persuaded.

Welcome to the world of uplift modeling — a bridge between causal inference and machine learning. What the case study above forgot to consider is persuasion, incrementality, or the true effect of the outbound lead campaign.

Uplift Modeling

So how does uplift modeling work?

The propensity to purchase model, highlighted in the last section, uses machine learning to answer the question:

“How likely is the customer going to purchase in the future?”

Uplift modeling improves on that by answering more important questions:

“Did my advertising cause the customer to purchase from me?”

“Did I waste money advertising to customers who were already going to purchase from me?”

Did my advertising make the probability of someone purchasing worse (negative impact)?

In other words, the classic propensity model (and most machine learning algorithms) predict target (y) given features (x). Uplift looks to solve for the impact of treatment (t) on target (y) given features (x).

Uplift modeling is often explained by using four customer segments (Siegel 2011):

1. People who will purchase no matter what (sure things)

2. People who will purchase only if they are exposed to an advertisement (persuadables)

3. People who will not purchase no matter what (lost causes)

4. People who will not purchase if they are exposed to an advertisement (sleeping dogs)

A propensity model adds value by helping you avoid lost causes. Uplift modeling improves the targeting even further by focusing on only the customers who are in the persuadables segment.

Common Applications

How can this be applied to any business unit or industry?

Political Campaigns:

Uplift modeling has been used to identify and target voters who are on the fence (Stedman 2013). By leveraging uplift models, a political marketing campaign can avoid people who are dead set on their party and instead only focus on persuadables.

A New Health Treatment:

Rather than just evaluating the results to the whole treatment group vs control group uplift modeling can help understand how treatments might impact certain groups differently. Also, by how much those impacts differ.

Perhaps the treatment has a large positive impact to people who are age 50+ and have underlying health conditions, but has a small impact to people who are under 50 and healthy.

Lead Optimization: (this should sound familiar)

A company has a lead database but they generate more leads than can be worked and a lot of the leads are a waste of time — currently agents can work the leads in any order they choose.

Cross-Sell:

A company wants to run a cross-sell campaign and the assumption is they don’t want to cross-sell to their entire customer base because budget is limited and some people may not need or want the other products.

Retention:

A company wants to reach out to customers who are about to churn and save them. The company wants to prevent further upsetting customers when reaching out and to only focus on high risk savable customers.

User Experience Testing:

A company wants to understand if a change to their website or app caused the intended result.

Commonly Used Techniques

In a quickly evolving space I feel like techniques can currently be bucketed into three pillars.

Traditional Propensity Model

This is actually not an uplift model but needs to be included because it is the classic approach to the uplift problem. The algorithm will typically be a classifier like logistic regression. These algorithms can output a probability 0 to 1 that can be used to sort the audience. Then a threshold can be selected (perhaps .70 probability or greater) as the cutoff for those who should be treated.

Direct Uplift Models

This pillar represents techniques and algorithms that allow you to directly model treatment effects. It requires the algorithm like random forest to be completely redesigned to feature select, hyper parameter tune, and fit to solve for the impact of (t) on (y) given (x). Typical algorithms found in a package like Scikit-learn cannot do that. You can implement uplift trees with the package Uplift for R and CausalML for Python.

Meta-Learners

The final pillar represents techniques and algorithms that can be used to model uplift but use some sort of shortcut to get to a proxy for uplift. The proxy approaches tend to be useful in most applications and these shortcuts usually provide benefits in speed and/or simplicity.

There seems to be many techniques so the list below is by no means comprehensive. There also seems to be different ways to implement each of these techniques depending on where you go.

Current Challenges with Uplift Modeling

Why Uplift modeling can be tricky.

The ground truth labels aren’t available unless the data is synthetic.

In machine learning, you usually have features (inputs to help with a prediction) and the ground truth labels (the target to predict).

In uplift modeling, the ground truth is never available because an individual cannot both see and not see the advertisement. Causal inference simulates the scenario that didn’t happen so then it is possible to estimate the ground truth labels and treat it as a machine learning problem.

Because the ground truth labels are not available, this makes measurement and validation a little less straightforward. Typically, you can see how the model is performing by comparing the predictions to actual. In uplift modeling, you see how the model is performing by comparing to an estimated actual.

Generating synthetic data for validation has an advantage in that it can be constructed to have both scenarios simulated. That way different techniques can be more cleanly evaluated to select a winner. However, the synthetic data probably will never perfectly reflect the real world data you want to uplift model on.

2. Highly optimized packages like Scikit-learn are not set up to solve for uplift.

As previously mentioned, machine learning algorithms are set up to predict target (y) given features (x). Direct modeling requires both the algorithm and the entire machine learning pipeline to be adapted. Feature selection, model selection, hyper parameter tuning, and fitting with an optimized package like Scikit-learn is not straightforward.

Currently, (at the time of writing) direct methods are available but are slow even on small datasets.

3. The names of things and techniques are unorganized with no consensus.

To prove the point, even the name of uplift modeling changes depending on where you look:

Estimating heterogeneous treatment effects (Example)

Incremental response modeling (Example)

Net scoring (Example)

True response modeling (Example)

Based on my own research, I am unsure if there is a comprehensive list of the techniques or a consensus on how to implement each technique.

Resources

Relisting my own collection, then also other links that are noteworthy.

This is the first article in an Uplift Modeling Collection.

A Quick Uplift Modeling Introduction Applied Uplift Modeling Example with Python (coming soon) Lead Optimization Example with Uplift Modeling (coming soon) Comparison of Different Uplift Packages (coming soon) 5 Tips for Uplift Modeling (coming soon) End-to-End Uplift Modeling Project (coming soon)

Recommended Packages:

CasualML: Uplift Modeling Python Package by Uber

Pylift Uplift Meta-learner Python Package

R Uplift Package

Opossum: a Python package to create synthetic uplift datasets

References:

Fei, G. (2019, October 29). Modeling Uplift Directly: Uplift Decision Tree with KL Divergence and Euclidean Distance as Splitting Criteria.

Gutierrez, P. & Gerardy, J. (2016). Causal Inference and Uplift Modeling A review of the literature. JMLR: Workshop and Conference Proceedings 67:1–13

Künzel S., Sekhon J., Bickel P., and Yu B. (2019) Metalearners for estimating heterogeneous treatment effects using machine learning. Proceedings of the National Academy of Sciences, 116(10):4156–4165

Michel René, Schnakenburg, I., & Martens, T. von. (2019). Targeting Uplift: An Introduction to Net Scores. Cham: Springer International Publishing.

Siegel, E. (2011, October 19). Persuasion by the Numbers: Optimize Marketing Influence by Predicting It.

Stedman, C. (2013, November 11). How uplift modeling helped Obama’s campaign — and can aid marketers — Machine Learning Times — machine learning & data science news.

Yi, R., & Frost, W. (2019, February 7). Pylift: A Fast Python Package for Uplift Modeling.