Recurrent Neural Network Grammars

Chris Dyer, Adhiguna Kuncoro, Miguel Ballesteros, Noah A. Smith

Introduction

Sequential recurrent neural networks (RNNs) are remarkably effective models of natural language. In the last few years, language model results that substantially improve over long-established state-of-the-art baselines have been obtained using RNNs (Zaremba et al., 2015; Mikolov et al., 2010) as well as in various conditional language modeling tasks such as machine translation (Bahdanau et al., 2015), image caption generation (Xu et al., 2015), and dialogue generation (Wen et al., 2015). Despite these impressive results, sequential models are a priori inappropriate models of natural language, since relationships among words are largely organized in terms of latent nested structures rather than sequential surface order (Chomsky, 1957).

In this paper, we introduce recurrent neural network grammars (RNNGs; §2), a new generative probabilistic model of sentences that explicitly models nested, hierarchical relationships among words and phrases. RNNGs operate via a recursive syntactic process reminiscent of probabilistic context-free grammar generation, but decisions are parameterized using RNNs that condition on the entire syntactic derivation history, greatly relaxing context-free independence assumptions.

The foundation of this work is a top-down variant of transition-based parsing (§3). We give two variants of the algorithm, one for parsing (given an observed sentence, transform it into a tree), and one for generation. While several transition-based neural models of syntactic generation exist (Henderson, 2003, 2004; Emami and Jelinek, 2005; Titov and Henderson, 2007; Buys and Blunsom, 2015b), these have relied on structure building operations based on parsing actions in shift-reduce and left-corner parsers which operate in a largely bottom-up fashion. While this construction is appealing because inference is relatively straightforward, it limits the use of top-down grammar information, which is helpful for generation (Roark, 2001).The left-corner parsers used by Henderson (2003, 2004) incorporate limited top-down information, but a complete path from the root of the tree to a terminal is not generally present when a terminal is generated. Refer to Henderson (2003, Fig. 1) for an example. RNNGs maintain the algorithmic convenience of transition-based parsing but incorporate top-down (i.e., root-to-terminal) syntactic information (§4).

The top-down transition set that RNNGs are based on lends itself to discriminative modeling as well, where sequences of transitions are modeled conditional on the full input sentence along with the incrementally constructed syntactic structures. Similar to previously published discriminative bottom-up transition-based parsers (Henderson, 2004; Sagae and Lavie, 2005; Zhang and Clark, 2011, inter alia), greedy prediction with our model yields a linear-time deterministic parser (provided an upper bound on the number of actions taken between processing subsequent terminal symbols is imposed); however, our algorithm generates arbitrary tree structures directly, without the binarization required by shift-reduce parsers. The discriminative model also lets us use ancestor sampling to obtain samples of parse trees for sentences, and this is used to solve a second practical challenge with RNNGs: approximating the marginal likelihood and MAP tree of a sentence under the generative model. We present a simple importance sampling algorithm which uses samples from the discriminative parser to solve inference problems in the generative model (§5).

Experiments show that RNNGs are effective for both language modeling and parsing (§6). Our generative model obtains (i) the best-known parsing results using a single supervised generative model and (ii) better perplexities in language modeling than state-of-the-art sequential LSTM language models. Surprisingly—although in line with previous parsing results showing the effectiveness of generative models (Henderson, 2004; Johnson, 2001)—parsing with the generative model obtains significantly better results than parsing with the discriminative model.

RNN Grammars

Formally, an RNNG is a triple (N,Σ,Θ)(N,\Sigma,\Theta) consisting of a finite set of nonterminal symbols (NN), a finite set of terminal symbols (Σ\Sigma) such that NΣ=N\cap\Sigma=\emptyset, and a collection of neural network parameters Θ\Theta. It does not explicitly define rules since these are implicitly characterized by Θ\Theta. The algorithm that the grammar uses to generate trees and strings in the language is characterized in terms of a transition-based algorithm, which is outlined in the next section. In the section after that, the semantics of the parameters that are used to turn this into a stochastic algorithm that generates pairs of trees and strings are discussed.

Top-down Parsing and Generation

RNNGs are based on a top-down generation algorithm that relies on a stack data structure of partially completed syntactic constituents. To emphasize the similarity of our algorithm to more familiar bottom-up shift-reduce recognition algorithms, we first present the parsing (rather than generation) version of our algorithm (§3.1) and then present modifications to turn it into a generator (§3.2).

The parsing algorithm transforms a sequence of words x\boldsymbol{x} into a parse tree y\boldsymbol{y} using two data structures (a stack and an input buffer). As with the bottom-up algorithm of Sagae and Lavie (2005), our algorithm begins with the stack (SS) empty and the complete sequence of words in the input buffer (BB). The buffer contains unprocessed terminal symbols, and the stack contains terminal symbols, “open” nonterminal symbols, and completed constituents. At each timestep, one of the following three classes of operations (Fig. 1) is selected by a classifier, based on the current contents on the stack and buffer:

shift removes the terminal symbol xx from the front of the input buffer, and pushes it onto the top of the stack.

reduce repeatedly pops completed subtrees or terminal symbols from the stack until an open nonterminal is encountered, and then this open NT is popped and used as the label of a new constituent that has the popped subtrees as its children. This new completed constituent is pushed onto the stack as a single composite item. A single reduce operation can thus create constituents with an unbounded number of children.

The parsing algorithm terminates when there is a single completed constituent on the stack and the buffer is empty. Fig. 2 shows an example parse using our transition set. Note that in this paper we do not model preterminal symbols (i.e., part-of-speech tags) and our examples therefore do not include them.Preterminal symbols are, from the parsing algorithm’s point of view, just another kind of nonterminal symbol that requires no special handling. However, leaving them out reduces the number of transitions by O(n)O(n) and also reduces the number of action types, both of which reduce the runtime. Furthermore, standard parsing evaluation scores do not depend on preterminal prediction accuracy.

Our transition set is closely related to the operations used in Earley’s algorithm which likewise introduces nonterminals symbols with its predict operation and later completes them after consuming terminal symbols one at a time using scan (Earley, 1970). It is likewise closely related to the “linearized” parse trees proposed by Vinyals et al. (2015) and to the top-down, left-to-right decompositions of trees used in previous generative parsing and language modeling work (Roark, 2001, 2004; Charniak, 2010).

A further connection is to LL()LL(^{*}) parsing which uses an unbounded lookahead (compactly represented by a DFA) to distinguish between parse alternatives in a top-down parser (Parr and Fisher, 2011); however, our parser uses an RNN encoding of the lookahead rather than a DFA.

To guarantee that only well-formed phrase-structure trees are produced by the parser, we impose the following constraints on the transitions that can be applied at each step which are a function of the parser state (B,S,n)(B,S,n) where nn is the number of open nonterminals on the stack:

The shift operation can only be applied if BB is not empty and n1n\geq 1.

The reduce operation can only be applied if the top of the stack is not an open nonterminal symbol.

The reduce operation can only be applied if n2n\geq 2 or if the buffer is empty.

To designate the set of valid parser transitions, we write AD(B,S,n)\mathcal{A}_{D}(B,S,n).

2 Generator Transitions

The parsing algorithm that maps from sequences of words to parse trees can be adapted with minor changes to produce an algorithm that stochastically generates trees and terminal symbols. Two changes are required: (i) there is no input buffer of unprocessed words, rather there is an output buffer (TT), and (ii) instead of a shift operation there are \textscgen(x)\textsc{gen}(x) operations which generate terminal symbol xΣx\in\Sigma and add it to the top of the stack and the output buffer. At each timestep an action is stochastically selected according to a conditional distribution that depends on the current contents of SS and TT. The algorithm terminates when a single completed constituent remains on the stack. Fig. 4 shows an example generation sequence.

The generation algorithm also requires slightly modified constraints. These are:

The \textscgen(x)\textsc{gen}(x) operation can only be applied if n1n\geq 1.

The reduce operation can only be applied if the top of the stack is not an open nonterminal symbol and n1n\geq 1.

To designate the set of valid generator transitions, we write AG(T,S,n)\mathcal{A}_{G}(T,S,n).

This transition set generates trees using nearly the same structure building actions and stack configurations as the “top-down PDA” construction proposed by Abney et al. (1999), albeit without the restriction that the trees be in Chomsky normal form.

3 Transition Sequences from Trees

Any parse tree can be converted to a sequence of transitions via a depth-first, left-to-right traversal of a parse tree. Since there is a unique depth-first, left-ro-right traversal of a tree, there is exactly one transition sequence of each tree. For a tree y\boldsymbol{y} and a sequence of symbols x\boldsymbol{x}, we write a(x,y)\boldsymbol{a}(\boldsymbol{x},\boldsymbol{y}) to indicate the corresponding sequence of generation transitions, and b(x,y)\boldsymbol{b}(\boldsymbol{x},\boldsymbol{y}) to indicate the parser transitions.

4 Runtime Analysis

A detailed analysis of the algorithmic properties of our top-down parser is beyond the scope of this paper; however, we briefly state several facts. Assuming the availability of constant time push and pop operations, the runtime is linear in the number of the nodes in the parse tree that is generated by the parser/generator (intuitively, this is true since although an individual reduce operation may require applying a number of pops that is linear in the number of input symbols, the total number of pop operations across an entire parse/generation run will also be linear). Since there is no way to bound the number of output nodes in a parse tree as a function of the number of input words, stating the runtime complexity of the parsing algorithm as a function of the input size requires further assumptions. Assuming our fixed constraint on maximum depth, it is linear.

5 Comparison to Other Models

Our generation algorithm algorithm differs from previous stack-based parsing/generation algorithms in two ways. First, it constructs rooted tree structures top down (rather than bottom up), and second, the transition operators are capable of directly generating arbitrary tree structures rather than, e.g., assuming binarized trees, as is the case in much prior work that has used transition-based algorithms to produce phrase-structure trees (Sagae and Lavie, 2005; Zhang and Clark, 2011; Zhu et al., 2013).

Generative Model

RNNGs use the generator transition set just presented to define a joint distribution on syntax trees (y\boldsymbol{y}) and words (x\boldsymbol{x}). This distribution is defined as a sequence model over generator transitions that is parameterized using a continuous space embedding of the algorithm state at each time step (ut\mathbf{u}_{t}); i.e.,

and where action-specific embeddings ra\mathbf{r}_{a} and bias vector b\mathbf{b} are parameters in Θ\Theta.

The representation of the algorithm state at time tt, ut\mathbf{u}_{t}, is computed by combining the representation of the generator’s three data structures: the output buffer (TtT_{t}), represented by an embedding ot\mathbf{o}_{t}, the stack (StS_{t}), represented by an embedding st\mathbf{s}_{t}, and the history of actions (a<t\boldsymbol{a}_{<t}) taken by the generator, represented by an embedding ht\mathbf{h}_{t},

where W\mathbf{W} and c\mathbf{c} are parameters. Refer to Figure 5 for an illustration of the architecture.

The output buffer, stack, and history are sequences that grow unboundedly, and to obtain representations of them we use recurrent neural networks to “encode” their contents (Cho et al., 2014). Since the output buffer and history of actions are only appended to and only contain symbols from a finite alphabet, it is straightforward to apply a standard RNN encoding architecture. The stack (SS) is more complicated for two reasons. First, the elements of the stack are more complicated objects than symbols from a discrete alphabet: open nonterminals, terminals, and full trees, are all present on the stack. Second, it is manipulated using both push and pop operations. To efficiently obtain representations of SS under push and pop operations, we use stack LSTMs (Dyer et al., 2015). To represent complex parse trees, we define a new syntactic composition function that recursively defines representations of trees.

When a reduce operation is executed, the parser pops a sequence of completed subtrees and/or tokens (together with their vector embeddings) from the stack and makes them children of the most recent open nonterminal on the stack, “completing” the constituent. To compute an embedding of this new subtree, we use a composition function based on bidirectional LSTMs, which is illustrated in Fig. 6.

The first vector read by the LSTM in both the forward and reverse directions is an embedding of the label on the constituent being constructed (in the figure, NP). This is followed by the embeddings of the child subtrees (or tokens) in forward or reverse order. Intuitively, this order serves to “notify” each LSTM what sort of head it should be looking for as it processes the child node embeddings. The final state of the forward and reverse LSTMs are concatenated, passed through an affine transformation and a tanh\tanh nonlinearity to become the subtree embedding.We found the many previously proposed syntactic composition functions inadequate for our purposes. First, we must contend with an unbounded number of children, and many previously proposed functions are limited to binary branching nodes (Socher et al., 2013b; Dyer et al., 2015). Second, those that could deal with nn-ary nodes made poor use of nonterminal information (Tai et al., 2015), which is crucial for our task. Because each of the child node embeddings (u\mathbf{u}, v\mathbf{v}, w\mathbf{w} in Fig. 6) is computed similarly (if it corresponds to an internal node), this composition function is a kind of recursive neural network.

2 Word Generation

To reduce the size of AG(S,T,n)\mathcal{A}_{G}(S,T,n), word generation is broken into two parts. First, the decision to generate is made (by predicting gen as an action), and then choosing the word, conditional on the current parser state. To further reduce the computational complexity of modeling the generation of a word, we use a class-factored softmax (Baltescu and Blunsom, 2015; Goodman, 2001). By using Σ\sqrt{|\Sigma|} classes for a vocabulary of size Σ|\Sigma|, this prediction step runs in time O(Σ)O(\sqrt{|\Sigma|}) rather than the O(Σ)O(|\Sigma|) of the full-vocabulary softmax. To obtain clusters, we use the greedy agglomerative clustering algorithm of Brown et al. (1992).

3 Training

The parameters in the model are learned to maximize the likelihood of a corpus of trees.

4 Discriminative Parsing Model

A discriminative parsing model can be obtained by replacing the embedding of TtT_{t} at each time step with an embedding of the input buffer BtB_{t}. To train this model, the conditional likelihood of each sequence of actions given the input string is maximized.For the discriminative parser, the POS tags are processed similarly as in (Dyer et al., 2015); they are predicted for English with the Stanford Tagger (Toutanova et al., 2003) and Chinese with Marmot (Mueller et al., 2013).

Inference via Importance Sampling

Our generative model p(x,y)p(\boldsymbol{x},\boldsymbol{y}) defines a joint distribution on trees (y\boldsymbol{y}) and sequences of words (x\boldsymbol{x}). To evaluate this as a language model, it is necessary to compute the marginal probability p(x)=yY(x)p(x,y)p(\boldsymbol{x})=\sum_{\boldsymbol{y}^{\prime}\in\mathcal{Y}(\boldsymbol{x})}p(\boldsymbol{x},\boldsymbol{y}^{\prime}). And, to evaluate the model as a parser, we need to be able to find the MAP parse tree, i.e., the tree yY(x)\boldsymbol{y}\in\mathcal{Y}(\boldsymbol{x}) that maximizes p(x,y)p(\boldsymbol{x},\boldsymbol{y}). However, because of the unbounded dependencies across the sequence of parsing actions in our model, exactly solving either of these inference problems is intractable. To obtain estimates of these, we use a variant of importance sampling (Doucet and Johansen, 2011).

Our importance sampling algorithm uses a conditional proposal distribution q(yx)q(\boldsymbol{y}\mid\boldsymbol{x}) with the following properties: (i) p(x,y)>0    q(yx)>0p(\boldsymbol{x},\boldsymbol{y})>0\implies q(\boldsymbol{y}\mid\boldsymbol{x})>0; (ii) samples yq(yx)\boldsymbol{y}\sim q(\boldsymbol{y}\mid\boldsymbol{x}) can be obtained efficiently; and (iii) the conditional probabilities q(yx)q(\boldsymbol{y}\mid\boldsymbol{x}) of these samples are known. While many such distributions are available, the discriminatively trained variant of our parser (§4.4) fulfills these requirements: sequences of actions can be sampled using a simple ancestral sampling approach, and, since parse trees and action sequences exist in a one-to-one relationship, the product of the action probabilities is the conditional probability of the parse tree under qq. We therefore use our discriminative parser as our proposal distribution.

Importance sampling uses importance weights, which we define as w(x,y)=p(x,y)/q(yx)w(\boldsymbol{x},\boldsymbol{y})=p(\boldsymbol{x},\boldsymbol{y})/q(\boldsymbol{y}\mid\boldsymbol{x}), to compute this estimate. Under this definition, we can derive the estimator as follows:

We now replace this expectation with its Monte Carlo estimate as follows, using NN samples from qq:

To obtain an estimate of the MAP tree y^\hat{\boldsymbol{y}}, we choose the sampled tree with the highest probability under the joint model p(x,y)p(\boldsymbol{x},\boldsymbol{y}).

Experiments

We present results of our two models both on parsing (discriminative and generative) and as a language model (generative only) in English and Chinese.

For English, §2–21 of the Penn Treebank are used as training corpus for both, with §24 held out as validation, and §23 used for evaluation. Singleton words in the training corpus with unknown word classes using the the Berkeley parser’s mapping rules.http://github.com/slavpetrov/berkeleyparser Orthographic case distinctions are preserved, and numbers (beyond singletons) are not normalized. For Chinese, we use the Penn Chinese Treebank Version 5.1 (CTB) (Xue et al., 2005).§001–270 and 440–1151 for training, §301–325 development data, and §271–300 for evaluation. For the Chinese experiments, we use a single unknown word class. Corpus statistics are given in Table 1.This preprocessing scheme is more similar to what is standard in parsing than what is standard in language modeling. However, since our model is both a parser and a language model, we opted for the parser normalization.

For the discriminative model, we used hidden dimensions of 128 and 2-layer LSTMs (larger numbers of dimensions reduced validation set performance). For the generative model, we used 256 dimensions and 2-layer LSTMs. For both models, we tuned the dropout rate to maximize validation set likelihood, obtaining optimal rates of 0.2 (discriminative) and 0.3 (generative). For the sequential LSTM baseline for the language model, we also found an optimal dropout rate of 0.3. For training we used stochastic gradient descent with a learning rate of 0.1. All parameters were initialized according to recommendations given by Glorot and Bengio (2010).

Table 2 (last two rows) gives the performance of our parser on Section 23, as well as the performance of several representative models. For the discriminative model, we used a greedy decoding rule as opposed to beam search in some shift-reduce baselines. For the generative model, we obtained 100 independent samples from a flattened distribution of the discriminative parser (by exponentiating each probability by α=0.8\alpha=0.8 and renormalizing) and reranked them according to the generative model.The value α=0.8\alpha=0.8 was chosen based on the diversity of the samples generated on the development set.

Chinese parsing results were obtained with the same methodology as in English and show the same pattern (Table 3).

We report held-out per-word perplexities of three language models, both sequential and syntactic. Log probabilities are normalized by the number of words (excluding the stop symbol), inverted, and exponentiated to yield the perplexity. Results are summarized in Table 4.

Discussion

It is clear from our experiments that the proposed generative model is quite effective both as a parser and as a language model. This is the result of (i) relaxing conventional independence assumptions (e.g., context-freeness) and (ii) inferring continuous representations of symbols alongside non-linear models of their syntactic relationships. The most significant question that remains is why the discriminative model—which has more information available to it than the generative model—performs worse than the generative model. This pattern has been observed before in neural parsing by Henderson (2004), who hypothesized that larger, unstructured conditioning contexts are harder to learn from, and provide opportunities to overfit. Our discriminative model conditions on the entire history, stack, and buffer, while our generative model only accesses the history and stack. The fully discriminative model of Vinyals et al. (2015) was able to obtain results similar to those of our generative model (albeit using much larger training sets obtained through semisupervision) but similar results to those of our discriminative parser using the same data. In light of their results, we believe Henderson’s hypothesis is correct, and that generative models should be considered as a more statistically efficient method for learning neural networks from small data.

Related Work

Our language model combines work from two modeling traditions: (i) recurrent neural network language models and (ii) syntactic language modeling. Recurrent neural network language models use RNNs to compute representations of an unbounded history of words in a left-to-right language model (Zaremba et al., 2015; Mikolov et al., 2010; Elman, 1990). Syntactic language models jointly generate a syntactic structure and a sequence of words (Baker, 1979; Jelinek and Lafferty, 1991). There is an extensive literature here, but one strand of work has emphasized a bottom-up generation of the tree, using variants of shift-reduce parser actions to define the probability space (Chelba and Jelinek, 2000; Emami and Jelinek, 2005). The neural-network–based model of Henderson (2004) is particularly similar to ours in using an unbounded history in a neural network architecture to parameterize generative parsing based on a left-corner model. Dependency-only language models have also been explored (Titov and Henderson, 2007; Buys and Blunsom, 2015a, b). Modeling generation top-down as a rooted branching process that recursively rewrites nonterminals has been explored by Charniak (2000) and Roark (2001). Of particular note is the work of Charniak (2010), which uses random forests and hand-engineered features over the entire syntactic derivation history to make decisions over the next action to take.

The neural networks we use to model sentences are structured according to the syntax of the sentence being generated. Syntactically structured neural architectures have been explored in a number of applications, including discriminative parsing (Socher et al., 2013a; Kiperwasser and Goldberg, 2016), sentiment analysis (Tai et al., 2015; Socher et al., 2013b), and sentence representation (Socher et al., 2011; Bowman et al., 2006). However, these models have been, without exception, discriminative; this is the first work to use syntactically structured neural models to generate language. Earlier work has demonstrated that sequential RNNs have the capacity to recognize context-free (and beyond) languages (Sun et al., 1998; Siegelmann and Sontag, 1995). In contrast, our work may be understood as a way of incorporating a context-free inductive bias into the model structure.

Outlook

RNNGs can be combined with a particle filter inference scheme (rather than the importance sampling method based on a discriminative parser, §5) to produce a left-to-right marginalization algorithm that runs in expected linear time. Thus, they could be used in applications that require language models.

A second possibility is to replace the sequential generation architectures found in many neural network transduction problems that produce sentences conditioned on some input. Previous work in machine translation has showed that conditional syntactic models can function quite well without the computationally expensive marginalization process at decoding time (Galley et al., 2006; Gimpel and Smith, 2014).

A third consideration regarding how RNNGs, human sentence processing takes place in a left-to-right, incremental order. While an RNNG is not a processing model (it is a grammar), the fact that it is left-to-right opens up several possibilities for developing new sentence processing models based on an explicit grammars, similar to the processing model of Charniak (2010).

Finally, although we considered only the supervised learning scenario, RNNGs are joint models that could be trained without trees, for example, using expectation maximization.

Conclusion

We introduced recurrent neural network grammars, a probabilistic model of phrase-structure trees that can be trained generatively and used as a language model or a parser, and a corresponding discriminative model that can be used as a parser. Apart from out-of-vocabulary preprocessing, the approach requires no feature design or transformations to treebank data. The generative model outperforms every previously published parser built on a single supervised generative model in English, and a bit behind the best-reported generative model in Chinese. As language models, RNNGs outperform the best single-sentence language models.

Acknowledgments

We thank Brendan O’Connor, Swabha Swayamdipta, and Brian Roark for feedback on drafts of this paper, and Jan Buys, Phil Blunsom, and Yue Zhang for help with data preparation. This work was sponsored in part by the Defense Advanced Research Projects Agency (DARPA) Information Innovation Office (I2O) under the Low Resource Languages for Emergent Incidents (LORELEI) program issued by DARPA/I2O under Contract No. HR0011-15-C-0114; it was also supported in part by Contract No. W911NF-15-1-0543 with the DARPA and the Army Research Office (ARO). Approved for public release, distribution unlimited. The views expressed are those of the authors and do not reflect the official policy or position of the Department of Defense or the U.S. Government. Miguel Ballesteros was supported by the European Commission under the contract numbers FP7-ICT-610411 (project MULTISENSOR) and H2020-RIA-645012 (project KRISTINA).

References

Corrigendum to Recurrent Neural Network Grammars

RNNG Composition Function and Implementation Error

The composition function reduces a completed constituent into a single vector representation using a bidirectional LSTM (Figure 8) over embeddings of the constituent’s children as well as an embedding of the resulting nonterminal symbol type. The implementation error (Figure 8) composed the constituent (NP the hungry cat) by reading the sequence “NP the hungry NP”, that is, it discarded the rightmost child of every constituent and replaced it with a second copy of the constituent’s nonterminal symbol. This error occurs for every constituent and means crucial information is not properly propagated upwards in the tree.

Results after Correction

The implementation error affected both the generative and discriminative RNNGs.The discriminative model can only be used for parsing and not for language modeling, since it only models p(yx)p(\boldsymbol{y}\mid\boldsymbol{x}). We summarize corrected English phrase-structure PTB §23 parsing result in Table 5, Chinese (CTB 5.1 §271–300) in Table 6 (achieving the the best reported result on both datasets), and English and Chinese language modeling perplexities in Table 7. The considerable improvement in parsing accuracy indicates that properly composing the constituent and propagating information upwards is crucial. Despite slightly higher language modeling perplexity on PTB §23, the fixed RNNG still outperforms a highly optimized sequential LSTM baseline.