The field of probabilistic logic programming (PLP) focuses on integrating probabilistic models into programming languages based on logic. Over the past 30 years, numerous languages and frameworks have been developed for modeling, inference and learning in probabilistic logic programs. While originally PLP focused on discrete probability, more recent approaches have incorporated continuous distributions as well as neural networks, effectively yielding neural-symbolic methods. We provide a unified algebraic perspective on PLP, showing that many if not most of the extensions of PLP can be cast within a common algebraic logic programming framework, in which facts are labeled with elements of a semiring and disjunction and conjunction are replaced by addition and multiplication. This does not only hold for the PLP variations itself but also for the underlying execution mechanism that is based on (algebraic) model counting.
翻译:概率逻辑编程(PLP)领域主要研究如何将概率模型集成到基于逻辑的编程语言中。过去三十年间,针对概率逻辑程序的建模、推理和学习,学界已开发出众多语言和框架。尽管PLP最初专注于离散概率,但近年来已有方法融入连续分布及神经网络,有效催生了神经符号方法。我们为PLP提供统一的代数视角,表明PLP的诸多扩展(若非绝大多数)均可纳入共同的代数逻辑编程框架——在该框架中,事实用半环元素标注,析取与合取分别由加法和乘法替代。这一统一性不仅适用于PLP本身的各种变体,也适用于基于(代数)模型计数的底层执行机制。