Information-theoretic User Interaction: Significant Inputs for Program Synthesis

by   Ashish Tiwari, et al.

Programming-by-example technologies are being deployed in industrial products for real-time synthesis of various kinds of data transformations. These technologies rely on the user to provide few representative examples of the transformation task. Motivated by the need to find the most pertinent question to ask the user, in this paper, we introduce the significant questions problem, and show that it is hard in general. We then develop an information-theoretic greedy approach for solving the problem. We justify the greedy algorithm using the conditional entropy result, which informally says that the question that achieves the maximum information gain is the one that we know least about. In the context of interactive program synthesis, we use the above result to develop an active program learner that generates the significant inputs to pose as queries to the user in each iteration. The procedure requires extending a passive program learner to a sampling program learner that is able to sample candidate programs from the set of all consistent programs to enable estimation of information gain. It also uses clustering of inputs based on features in the inputs and the corresponding outputs to sample a small set of candidate significant inputs. Our active learner is able to tradeoff false negatives for false positives and converge in a small number of iterations on a real-world dataset of


page 1

page 2

page 3

page 4


Augmenting Type Signatures for Program Synthesis

Effective program synthesis requires a way to minimise the number of can...

Neural Program Synthesis with a Differentiable Fixer

We present a new program synthesis approach that combines an encoder-dec...

Sample-efficient Linguistic Generalizations through Program Synthesis: Experiments with Phonology Problems

Neural models excel at extracting statistical patterns from large amount...

Improved Tree Search for Automatic Program Synthesis

In the task of automatic program synthesis, one obtains pairs of matchin...

Amortizing Pragmatic Program Synthesis with Rankings

In program synthesis, an intelligent system takes in a set of user-gener...

Comparative Synthesis: Learning Optimal Programs with Indeterminate Objectives

Quantitative program synthesis aims to generate a program that satisfies...

Playgol: learning programs through play

Children learn though play. We introduce the analogous idea of learning ...

Please sign up or login with your details

Forgot password? Click here to reset