Amortizing Pragmatic Program Synthesis with Rankings
This work addresses a bottleneck in program synthesis for AI systems that need to handle larger domains efficiently, though it is incremental as it builds on the RSA framework.
The paper tackled the computational burden of pragmatic program synthesis by introducing a method to amortize the Rational Speech Acts (RSA) algorithm using a global pragmatic ranking, resulting in orders of magnitude speedups while outperforming non-pragmatic synthesizers.
In program synthesis, an intelligent system takes in a set of user-generated examples and returns a program that is logically consistent with these examples. The usage of Rational Speech Acts (RSA) framework has been successful in building \emph{pragmatic} program synthesizers that return programs which -- in addition to being logically consistent -- account for the fact that a user chooses their examples informatively. However, the computational burden of running the RSA algorithm has restricted the application of pragmatic program synthesis to domains with a small number of possible programs. This work presents a novel method of amortizing the RSA algorithm by leveraging a \emph{global pragmatic ranking} -- a single, total ordering of all the hypotheses. We prove that for a pragmatic synthesizer that uses a single demonstration, our global ranking method exactly replicates RSA's ranked responses. We further empirically show that global rankings effectively approximate the full pragmatic synthesizer in an online, multi-demonstration setting. Experiments on two program synthesis domains using our pragmatic ranking method resulted in orders of magnitudes of speed ups compared to the RSA synthesizer, while outperforming the standard, non-pragmatic synthesizer.