🤖 AI Summary
This work addresses the computational redundancy inherent in Markov chain Monte Carlo (MCMC) inference for probabilistic programming by proposing an incremental inference method based on dynamic dependency graphs. The approach compiles probabilistic programs into reactive computation graphs, enabling selective recomputation of only those subgraphs affected by updates to random variables, thereby substantially reducing the per-iteration sampling cost. Notably, this study is the first to integrate functional reactive programming with probabilistic programming, unifying the representational frameworks of Bayesian networks—formalized as applicative functors—and general-purpose probabilistic programs expressed as monads. The method achieves significant improvements in MCMC efficiency while preserving inference accuracy.
📝 Abstract
An important aspect of making inference based on a probabilistic program practical is efficiency; faster evaluation enables more work per unit of time, which can be translated into more precision. Inference via Markov chain Monte Carlo has a property that can be favorably exploited for efficiency: most proposed samples are computed as minor variations of previous samples, i.e., a clever implementation can skip computations pertaining to what is unchanged. This paper provides an approach for automatically translating a probabilistic program to a dynamic graph, reminiscent of functional reactive programming, that explicitly represents data dependencies, enabling proposals to only recompute the parts of the graph that depend on redrawn random variables. The graph-building interface follows familiar functional programming interfaces, which also connect to their expressiveness in terms of probabilistic programming: models using the applicative functor portion express Bayesian networks, while those using monads represent universal probabilistic programming languages.