I’m a fifth-year PhD student at MIT’s Probabilistic Computing Project, co-advised by Vikash Mansinghka and Josh Tenenbaum, and supported by an NSF Graduate Research Fellowship. Before coming to MIT, I taught high school computer science at Commonwealth School in Boston. And before that, I was a student at Yale, where I received a B.S. in computer science and math in 2015.

I’m interested in designing systems and abstractions that help people apply, invent, and reason about sophisticated algorithms for probabilistic modeling and inference. I’m also interested in using those systems to explore ideas in knowledge representation, expert systems, logic, and program synthesis. *Selected research projects are listed below; please see Google Scholar for a complete list of publications.*

### ADEV: Sound Automatic Differentiation of Expected Values of Probabilistic Programs (POPL 2023, distinguished paper)

**Alexander Lew***, Mathieu Huot*, Sam Staton, Vikash MansinghkaADEV shows how to run automatic differentiation (AD) on programs that make random choices. Given a probabilistic program, ADEV produces a new probabilistic program, whose expected return value is the derivative of the original program’s expectation. This output program can be run to generate unbiased Monte Carlo estimates of the desired gradient, for use within stochastic gradient descent.

### Recursive Monte Carlo and Variational Inference with Auxiliary Variables (UAI 2022)

**Alexander Lew**, Marco Cusumano-Towner, Vikash MansinghkaWe introduce a new framework, Recursive Auxiliary-Variable Inference (RAVI), for designing Monte Carlo and variational inference algorithms. RAVI shows how to run SMC, Metropolis-Hastings, and Variational Inference with very expressive proposal distributions, which may lack tractable marginal densities. The key idea is to approximate these proposal densities with an additional layer of Monte Carlo or variational inference. We apply RAVI to develop an improved version of Markov Chain Variational Inference, and a new algorithm for inference in Dirichlet Process mixture models that outperforms strong SMC baselines.

### PClean: Bayesian Data Cleaning at Scale with Domain-Specific Probabilistic Programming (AISTATS 2021, oral presentation)

**Alexander Lew**, Monica Agrawal, David Sontag, Vikash MansinghkaWe present PClean, a probabilistic programming language for leveraging dataset-specific knowledge to automate Bayesian cleaning. PClean’s restricted problem domain enables new optimizations that significantly speed up inference. We show empirically that short (< 50-line) PClean programs can match state-of-the-art data-cleaning systems in terms of accuracy and runtime and scale to real-world datasets with millions of records.

### Trace Types and Denotational Semantics for Sound Programmable Inference in Probabilistic Languages (POPL 2020)

**Alexander Lew**, Marco Cusumano-Towner, Benjamin Sherman, Michael Carbin, Vikash MansinghkaWe develop a type system for probabilistic programs that enables us to mechanically verify measure-theoretic correctness properties of inference algorithms. Using our type system and semantics, we design sound-by-construction versions of programmable MCMC, SMC, and variational inference.

### Gen: A General-Purpose Probabilistic Programming System with Programmable Inference (PLDI 2019)

Marco Cusumano-Towner, Feras Saad,

**Alexander Lew**, Vikash MansinghkaWe introduce Gen, a new probabilistic programming system that outperforms state-of-the-art systems, sometimes by orders of magnitude, on diverse problems including object tracking, estimating 3D body pose from depth images, and inferring the structure of a time series.

Some of my research talks are available online with video recordings:

- Probabilistic Programming with Correct-by-Construction Densities (Zoom password: pNu!dLMc03)2021-02-18 / Joint PPS-PIHOC-DIAPASoN Workshop 2021
- 2021-01-17 / LAFI 2021
- 2020-08-03 / COGSCI 2020
- 2020-01-23 / POPL 2020
- 2019-09-14 / StrangeLoop 2019
- Gen: A General-Purpose Probabilistic Programming System (delivered in Marco Cusumano-Towner’s stead)2019-07-25 / JuliaCon 2019

**At MIT**, I co-taught a January-term course on applied probabilistic programming, and served twice as a TA for 6.885: Probabilistic Programming & AI.

**From 2015 to 2018**, I taught computer science full-time at Commonwealth School.

### CS 1: Intro to Program Design

In this hands-on introduction to computer science using Racket and Python, students create dozens of interactive programs while exploring core ideas in computation like data representation, abstraction, and recursion.

### CS 2: AP Computer Science Principles

Students explore big ideas in computing, from machine learning to networking to cryptocurrencies, by coding up the relevant algorithms themselves.

### CS 3: Data Structures and Algorithms

We take a deep dive under the covers to see how lists, trees, and arrays really work. Then we practice algorithmic thinking and algorithm design.

### CS 4: Advanced Topics in Computer Science

This course is different each year depending on student interest.

**From 2015 to 2019**, I served as a TA at the Duke Machine Learning Summer School.

### TensorFlow fundamentals

A slow and thorough introduction to TensorFlow from the ground up, designed for use at the Duke Machine Learning Summer School. Rather than jump straight into building a neural net, we focus first on the fundamentals: graphs, operations, tensors, placeholders, variables, and sessions.

### Robot Mind Meld

A fun little word game powered by machine learning. With a hundred thousand words to choose from, can you and the robot converge to the same one?

Email me at alexlew AT mit DOT edu.