Learning logic programs by combining programs
This addresses a major bottleneck in inductive logic programming for domains like game playing and program synthesis, though it appears incremental as it builds on existing constraint-driven ILP systems.
The paper tackles the challenge of inducing complex logic programs with many rules and literals by learning small non-separable programs and combining them, resulting in drastic improvements in predictive accuracies and learning times, such as reducing times from over an hour to a few seconds in experiments.
The goal of inductive logic programming is to induce a logic program (a set of logical rules) that generalises training examples. Inducing programs with many rules and literals is a major challenge. To tackle this challenge, we introduce an approach where we learn small non-separable programs and combine them. We implement our approach in a constraint-driven ILP system. Our approach can learn optimal and recursive programs and perform predicate invention. Our experiments on multiple domains, including game playing and program synthesis, show that our approach can drastically outperform existing approaches in terms of predictive accuracies and learning times, sometimes reducing learning times from over an hour to a few seconds.