  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.
