From recommending what to buy, which movies to watch, to selecting the news to read, people to follow and jobs to apply for, online systems have become an important part of our daily lives. A natural question to ask is how these socio-technical systems impact our behavior. However, because of the intricate interplay between the outputs of these systems and people's actions, identifying their impact on people's behavior is non-trivial.
Fortunately, there is a rich body of work on causal inference that we can build on. In the first part of the tutorial, I will show the value of counterfactual reasoning for studying socio-technical systems, by demonstrating how predictive modeling based on correlations can be counterproductive. Then, we will discuss different approaches to causal inference, including randomized experiments, natural experiments such as instrumental variables and regression discontinuities, and observational methods such as stratification and matching. Throughout, we will try to make connections with graphical models, machine learning and past work in the social sciences.
The second half will be more hands-on. We will work through a practical example of estimating the causal impact of a recommender system, starting from simple to more complex methods. The goal of the practical exercise will be to appreciate the pitfalls in different approaches to causal reasoning and take away best practices for doing causal inference with messy, real-world data.
Code used is available at: https://github.com/amit-sharma/causal-inference-tutorial/