🤖 AI Summary
This paper addresses the challenge of automated probabilistic model selection—enabling domain experts without statistical expertise to efficiently construct problem-appropriate probabilistic programs. To tackle the vast search space, high proportion of invalid programs, and difficulty in early invalidity detection, we propose a type-guided synthesis framework that integrates type-based static verification with heuristic program synthesis, ensuring both type safety and semantic validity of generated programs. We further combine static analysis with dynamic sampling to enhance search efficiency and correctness. Experimental evaluation on standard benchmarks demonstrates that our approach significantly outperforms random search and DaPPer, particularly on complex model synthesis tasks, while also supporting fast posterior sampling. The framework establishes a novel paradigm for automated modeling techniques such as genetic programming, advancing the accessibility and reliability of probabilistic programming for non-expert users.
📝 Abstract
Probabilistic programming has become a standard practice to model stochastic events and learn about the behavior of nature in different scientific contexts, ranging from Genetics and Ecology to Linguistics and Psychology. However, domain practitioners (such as biologists) also need to be experts in statistics in order to select which probabilistic model is suitable for a given particular problem, relying then on probabilistic inference engines such as Stan, Pyro or Edward to fine-tune the parameters of that particular model. Probabilistic Programming would be more useful if the model selection is made automatic, without requiring statistics expertise from the end user. Automatically selecting the model is challenging because of the large search space of probabilistic programs needed to be explored, because the fact that most of that search space contains invalid programs, and because invalid programs may only be detected in some executions, due to its probabilistic nature. We propose a type system to statically reject invalid probabilistic programs, a type-directed synthesis algorithm that guarantees that generated programs are type-safe by construction, and an heuristic search procedure to handle the vast search space. We collect a number of probabilistic programs from the literature, and use them to compare our method with both a type-agnostic random search, and a data-guided method from the literature (DaPPer). Our results show that our technique both outperforms random search and DaPPer, specially on more complex programs. This drastic performance difference in synthesis allows for fast sampling of programs and enables techniques that previously suffered from the complexity of synthesis, such as Genetic Programming, to be applied.