Learning a Generative Model for Validity in Complex Discrete Structures
This addresses a bottleneck for researchers and practitioners using sequence-based models in domains like code generation and chemistry, though it is an incremental improvement over existing methods.
The paper tackles the problem of deep generative models producing invalid sequences when modeling discrete structures, and proposes a recurrent validator model that constrains generation to produce valid sequences, demonstrated by improving validity in Python code generation and molecular structure decoding.
Deep generative models have been successfully used to learn representations for high-dimensional discrete spaces by representing discrete objects as sequences and employing powerful sequence-based deep models. Unfortunately, these sequence-based models often produce invalid sequences: sequences which do not represent any underlying discrete structure; invalid sequences hinder the utility of such models. As a step towards solving this problem, we propose to learn a deep recurrent validator model, which can estimate whether a partial sequence can function as the beginning of a full, valid sequence. This validator provides insight as to how individual sequence elements influence the validity of the overall sequence, and can be used to constrain sequence based models to generate valid sequences -- and thus faithfully model discrete objects. Our approach is inspired by reinforcement learning, where an oracle which can evaluate validity of complete sequences provides a sparse reward signal. We demonstrate its effectiveness as a generative model of Python 3 source code for mathematical expressions, and in improving the ability of a variational autoencoder trained on SMILES strings to decode valid molecular structures.