Authors: Wouter W. L. Nuijten, Dmitry Bagaev, Bert de Vries
Abstract
This paper presents GraphPPL.jl, a novel Probabilistic Programming Language designed for graphical models. GraphPPL.jl uniquely represents probabilistic models as Factor Graphs. A notable feature of GraphPPL.jl is its model nesting capability, which facilitates the creation of modular graphical models and significantly simplifies the development of large (hierarchical) graphical models. Furthermore, GraphPPL.jl offers a plugin system to incorporate inference-specific information into the graph, allowing integration with various well-known inference algorithms. To demonstrate that, GraphPPL.jl includes a flexible plugin to define a Constrained Bethe Free Energy minimization process, also known as Variational Inference. In particular, the constrained Bethe Free Energy defined by GraphPPL.jl serves as a potential inference framework for numerous well-known inference backends, making it a versatile tool for diverse applications. This paper details the design and implementation of GraphPPL.jl, highlighting its power, expressiveness, and user-friendliness. It also emphasizes the clear separation it maintains between model definition and inference while providing developers with extensibility and customization options.
Published in: MDPI Entropy