Insertion-based Decoding with automatically Inferred Generation Order

Conventional neural autoregressive decoding commonly assumes a fixed left-to-right generation order, which may be sub-optimal. In this work, we propose a novel decoding algorithm -- InDIGO -- which supports flexible sequence generation in arbitrary orders through insertion operations. We extend Transformer, a state-of-the-art sequence generation model, to efficiently implement the proposed approach, enabling it to be trained with either a pre-defined generation order or adaptive orders obtained from beam-search. Experiments on four real-world tasks, including word order recovery, machine translation, image caption and code generation, demonstrate that our algorithm can generate sequences following arbitrary orders, while achieving competitive or even better performance compared to the conventional left-to-right generation. The generated sequences show that InDIGO adopts adaptive generation orders based on input information.


Introduction
Neural autoregressive models have become the de facto standard in a wide range of sequence generation tasks, such as machine translation (Bahdanau et al., 2015), summarization (Rush et al., 2015), and dialogue systems (Vinyals and Le, 2015). In these studies, a sequence is modeled autoregressively with the left-to-right generation order, which raises the question of whether generation in an arbitrary order is worth considering * This work was completed while the author worked as an AI resident at Facebook AI Research. (Vinyals et al., 2016;Ford et al., 2018). Nevertheless, previous studies on generation orders mostly resort to a fixed set of generation orders, showing particular choices of ordering are helpful (Wu et al., 2018;Ford et al., 2018;Mehri and Sigal, 2018), without providing an efficient algorithm for finding adaptive generation orders, or restrict the problem scope to n-gram segment generation (Vinyals et al., 2016).
In this paper, we propose a novel decoding algorithm, Insertion-based Decoding with Inferred Generation Order (InDIGO), which models generation orders as latent variables and automatically infers the generation orders by simultaneously predicting a word and its position to be inserted at each decoding step. Given that absolute positions are unknown before generating the whole sequence, we use a relative-position-based representation to capture generation orders. We show that decoding consists of a series of insertion operations with a demonstration shown in Figure 1.
We extend Transformer (Vaswani et al., 2017) for supporting insertion operations, where the generation order is directly captured as relative positions through self-attention inspired by Shaw et al. (2018). For learning, we maximize the evidence lower-bound (ELBO) of the maximum likelihood objective, and study two approximate posterior distributions of generation orders based on a pre-defined generation order and adaptive orders obtained from beam-search, respectively.
Experimental results on word order recovery, machine translation, code generation, and image caption demonstrate that our algorithm can generate sequences with arbitrary orders, while achieving competitive or even better performance compared to the conventional left-to-right generation. Case studies show that the proposed method adopts adaptive orders based on input information. The code will be released as part of the official Figure 1: An example of InDIGO. At each step, we simultaneously predict the next token and its (relative) position to be inserted. The final output sequence is obtained by mapping the words based on their positions. repository of Fairseq (https://github.com/ pytorch/fairseq).

Neural Autoregressive Decoding
Let us consider the problem of generating a sequence y = (y 1 , ..., y T ) conditioned on some inputs, e.g., a source sequence x = (x 1 , ..., x T ). Our goal is to build a model parameterized by θ that models the conditional probability of y given x, which is factorized as: where y 0 and y T +1 are special tokens s and /s , respectively. The model sequentially predicts the conditional probability of the next token at each step t, which can be implemented by any function approximator such as RNNs (Bahdanau et al., 2015) and Transformer (Vaswani et al., 2017).
Learning Neural autoregressive model is commonly learned by maximizing the conditional likelihood log p(y|x) = T t=0 log p θ (y t+1 |y 0:t , x 1:T ) given a set of parallel examples.
Decoding A common way to decode a sequence from a trained model is to make use of the autoregressive nature that allows us to predict one word at each step. Given any source x, we essentially follow the order of factorization to generate tokens sequentially using some heuristicbased algorithms such as greedy decoding and beam-search.
3 Insertion-based Decoding with Inferred Generation Order (InDIGO) Equation 1 explicitly assumes a left-to-right (L2R) generation order of the sequence y. In principle, we can factorize the sequence probability in any permutation and train a model for each permutation separately. As long as we have an infinite amount of data with proper optimization performed, all these models are equivalent. Nevertheless, Vinyals et al. (2016) have shown that the generation order of a sequence actually matters in many real-world tasks, e.g., language modeling. Although the L2R order is a strong inductive bias, as it is natural for most human beings to read and write sequences from left to right, L2R is not necessarily the optimal option for generating sequences. For instance, people sometimes tend to think of central phrases first before building up a whole sentence. For programming languages, it is beneficial to be generated based on abstract syntax trees (Yin and Neubig, 2017).
Therefore, a natural question arises, how can we decode a sequence in its best order?

Orders as Latent Variables
We address this question by modeling generation orders as latent variables. Similar to Vinyals et al. (2016), we rewrite the target sequence y in a particular order π = (z 2 , ..., z T , z T +1 ) ∈ P T 1 as a set y π = {(y 2 , z 2 ), ..., (y T +1 , z T +1 )}, where (y t , z t ) represents the t-th generated token and its absolute position, respectively. Different from the common notation, the target sequence is 2-step drifted because the two special tokens (y 0 , z 0 ) = ( s , 0) and (y 1 , z 1 ) = ( /s , T + 1) are always prepended to represent the left and right boundaries, respectively. Then, we model the conditional probability as the joint distribution of words and positions by marginalizing all the orders: where for each element: p θ (y π |x) = p θ (y T +2 |y 0:T +1 , z 0:T +1 , x 1:T )· T t=1 p θ (y t+1 , z t+1 |y 0:t , z 0:t , x 1:T ) where the third special token y T +2 = eod is introduced to signal the end-of-decoding, and p(y T +2 |·) is the end-of-decoding probability. At decoding time, the factorization allows us to decode autoregressively by predicting word y t+1 and its position z t+1 step by step. The generation order is automatically inferred during decoding.

Relative Representation of Positions
It is difficult and inefficient to predict the absolute positions z t without knowing the actual length T . One solution is directly using the absolute positions z t 0 , ..., z t t of the partial sequence y 0:t at each autoregressive step t. For example, the absolute positions for the sequence ( s , /s , dream, I) are (z t 0 = 0, z t 1 = 3, z t 2 = 2, z t 3 = 1) in Figure 1 at step t = 3. It is, however, inefficient to model such explicit positions using a single neural network without recomputing the hidden states for the entire partial sequence, as some positions are changed at every step (as shown in Figure 1).

Relative Positions
We propose using relativeposition representations r t 0:t instead of absolute positions z t 0:t . We use a ternary vector r t i ∈ {−1, 0, 1} t+1 as the relative-position representation for z t i . The j-th element of r t i is defined as: where the elements of r t i show the relative positions with respect to all the other words in the partial sequence at step t. We use a matrix R t = r t 0 , r t 1 , ..., r t t to show the relative-position representations of all the words in the sequence. The relative-position representation can always be mapped back to the absolute position z t i by: One of the biggest advantages for using such vector-based representations is that at each step, updating the relative-position representations is simply extending the relative-position matrix R t with the next predicted relative position, because the (left, middle, right) relations described in Algorithm 1 Insertion-based Decoding Predict the next word y t+1 based on y, R. if y t+1 is eod then break end if Choose an existing word y k ∈ y; Choose the left or right (s) of y k to insert; Obtain the next position r t+1 with k, s (Eq. (6)). Update R by appending r t+1 (Eq. (5)). Update y by appending y t+1 Update t = t + 1 until Reach the maximum length Map back to absolute positions π (Eq. (4)) Reorder y: Equation (3) stay unchanged once they are created. Thus, we update R t as follows: (5) where we use r t+1 t+1 to represent the relative position at step t + 1. This append-only property enables our method to reuse the previous hidden states without recomputing the hidden states at each step. For simplicity, the superscript of r is omitted from now on without causing conflicts.

Insertion-based Decoding
Given a partial sequence y 0:t and its corresponding relative-position representations r 0:t , not all of the 3 t+2 possible vectors are valid for the next relative-position representation, r t+1 . Only these vectors corresponding to insertion operations satisfy Equation (4). In Algorithm 1, we describe an insertion-based decoding framework based on this observation. The next word y t+1 is predicted based on y 0:t and r 0:t . We then choose an existing word y k (0 ≤ k ≤ t)) from y 0:t and insert y t+1 to its left or right. As a result, the next position r t+1 is determined by where s = −1 if y t+1 is on the left of y k , and s = 1 otherwise. Finally, we use r t+1 to update the relative-position matrix R as shown in Equation (5).

Model
We present Transformer-InDIGO, an extension of Transformer (Vaswani et al., 2017), supporting insertion-based decoding. The overall framework is shown in Figure 2.

Network Design
We extend the decoder of Transformer with relative-position-based self-attention, joint word and position prediction, and position updating modules.
Self-Attention One of the major challenges that prevents the vanilla Transformer from generating sequences following arbitrary orders is that the absolute-position-based positional encodings are inefficient (as mentioned in Section 3.2), in that absolute positions are changed during decoding, invalidating the previous hidden states. In contrast, we adapt Shaw et al. (2018) to use relative positions in self-attention. Different from Shaw et al. (2018), in which a clipping distance d (usually d ≥ 2) is set for relative positions, our relativeposition representations only preserve d = 1 relations (Equation (3)). Each attention head in a multi-head self-attention module of Transformer-InDIGO takes the hidden states of a partial sequence y 0:t , denoted as U = (u 0 , ..., u t ), and its corresponding relative position matrix R t as input, where each input state u i ∈ R d model . The logit e i,j for attention is computed as: is the row vector indexed by r i,j + 1, which biases all the input keys based on the relative position, r i,j .

Word and Position Prediction
Like the vanilla Transformer, we take the representations from the last layer of self-attention, , to predict both the next word y t+1 and its position vector r t+1 in two stages based on the following factorization: It can also be factorized as predicting the position before predicting the next word, yet our preliminary experiments show that predicting the word first works slightly better. The prediction module for word and position prediction are shown in Figure 2(a). First, we predict the next word y t+1 from the categorical distribution p word (y|H) as: (8) where W ∈ R d V ×d model is the embedding matrix and d V is the size of vocabulary. We linearly project the last representation h t using F ∈ R d model ×d model for querying W . Then, as shown in Equation (6), the prediction of the next position is done by performing insertion operations to existing words that can be modeled similarly to Pointer Networks . We predict a pointer k t+1 ∈ [0, 2t + 1] based on: where C, D, E ∈ R d model ×d model and W [y t+1 ] is the embedding of the predicted word. C, D are used to obtain the left and right keys, respectively, considering that each word has two ''keys'' (its left and right) for inserting the generated word. The query vector is obtained by adding up the word embedding W [y t+1 ] , and the linearly projected state, h t E. The resulting relative-position vector, r t+1 is computed using k t+1 according to Equation (6). We manually set p pointer (0|·) = p pointer (2+t|·) = 0 to avoid any word from being inserted to the left of s and the right of /s .

Position Updating
As mentioned in Sec. 3.1, we update the relative position representation R t with the predicted r t+1 . Because updating the relative positions will not change the pre-computed relativeposition representations, Transformer-InDIGO can reuse the previous hidden states in the next decoding step the same as the vanilla Transformer.

Learning
Training requires maximizing the marginalized likelihood in Equation (2). Yet this is intractable since we need to enumerate all of the T ! permutations of tokens. Instead, we maximize the ELBO of the original objective by introducing an approximate posterior distribution of generation orders q(π|x, y), which provides the probabilities of latent generation orders based on the groundtruth sequences x and y: where π = r 2:T +1 , sampled from q(π|x, y), is represented as relative positions. H(q) is the entropy term which can be ignored if q is fixed during training. Equation (10) shows that given a sampled order, the learning objective is divided into word and position objectives. For calculating the position prediction loss, we aggregate the two probabilities corresponding to the same position by where p pointer (k l |·) and p pointer (k r |·) are calculated simultaneously from the same softmax function in Equation (9). k l , k r (k l = k r ) represent the keys corresponding to the same relative position.
Here, we study two types of q(π|x, y): Pre-defined Order If we already possess some prior knowledge about the sequence, e.g., the L2R order is proven to be a strong baseline in many scenarios, we assume a Dirac-delta distribution q(π|x, y) = δ(π = π * (x, y)), where π * (x, y)) is a predefined order. In this work, we study a set of pre-defined orders, which can be found in Table 1, for evaluating their effect on generation.
Searched Adaptive Order (SAO) We choose the approximate posterior q as the point estimation that maximizes log p θ (y π |x), which can also be seen as the maximum-a-posteriori (MAP) estimation on the latent order π. In practice, we approximate these generation orders π through beam-search (Pal et al., 2006). Unlike the original beam-search for autoregressive decoding that searches in the sequence space to find the sequence maximizing the probability shown in Equation 1, we search in the space of all the permutations of the target sequence to find π maximising Equation 2, as all the target tokens are known in advance during training. More specifically, we maintain B sub-sequences with the maximum probabilities using a set B at each step t. For every sub-sequence y (b) 0:t ∈ B, we evaluate the probabilities of every possible choice from the remaining words y ∈ y \ y (b) 0:t and its position r . We calculate the cumulative likelihood for each y , r , based on which we select top-B sub-sequences as the new set B for the next step. After obtaining the B generation orders, we optimize our objective as an average over these orders: where we assume q(π|x, y) = 1/B π ∈ B 0 otherwise .

Beam-Search with Dropout
The goal of beamsearch is to approximately find the most likely generation orders, which limits learning from exploring other generation orders that may not be favourable currently but may ultimately be deemed better. Prior research (Vijayakumar et al.,

Pre-defined Order
Descriptions Left-to-right (L2R) Generate words from left to right. (Wu et al., 2018) Right-to-left (R2L) Generate words from right to left. (Wu et al., 2018) Odd-Even (  2016) also pointed out that the search space of the standard beam-search is restricted. We encourage exploration by injecting noise during beam-search (Cho, 2016). Particularly, we found it effective to keep the dropout on (e.g., dropout = 0.1).
Bootstrapping from a Pre-defined Order During preliminary experiments, sequences returned by beam-search were often degenerated by always predicting common or functional words (''the'', '','', etc.) as the first several tokens, leading to inferior performance. We conjecture that is due to the fact that the position prediction module learns much faster than the word prediction module, and it quickly captures spurious correlations induced by a poorly initialized model. It is essential to balance the learning progress of these modules.
To do so, we bootstrap learning by pre-training the model with a pre-defined order (e.g., L2R), before training with beam-searched orders.

Decoding
As for decoding, we directly follow Algorithm 1 to sample or decode greedily from the proposed model. However, in practice beam-search is important to explore the output space for neural autoregressive models. In our implementation, we perform beam-search for InDIGO as a two-step search. Suppose the beam size B, at each step, we do beam-search for word prediction and then with the searched words, try out all possible positions and select the top-B sub-sequences. In preliminary experiments, we also tried doing beam-search for word and positions simultaneously with their joint probability. However, it did not seem helpful.

Experiments
We evaluate InDIGO extensively on four challenging sequence generation tasks: word order recovery, machine translation, natural language to code generation (NL2Code, Ling et al., 2016) and image captioning. We compare our model trained with the pre-defined orders and the adaptive orders obtained by beam-search. We use the same architecture for all orders including the standard L2R order.

Experimental Settings
Dataset The machine translation experiments are conducted on three language pairs for studying how the decoding order influences the translation quality of languages with diversified characteristics: WMT'16 Romanian-English (Ro-En), 2 WMT 18 English-Turkish (En-Tr), 3 and KFTT English-Japanese (En-Ja, Neubig, 2011  Models We set d model = 512, d hidden = 2048, n heads = 8, n layers = 6, lr max = 0.0005, warmup = 4000, and dropout = 0.1 throughout all the experiments. The source and target embedding matrices are shared except for En-Ja, as our preliminary experiments showed that keeping the embeddings not shared significantly improves the translation quality. Both the encoder and decoder use relative positions during self-attention except for the word order recovery experiments (where the position embedding is removed in the encoder, as there is no ground-truth position information in the input). We do not introduce task-specific modules such as copying mechanism (Gu et al., 2016).
Training When training with the pre-defined orders, we reorder words of each training sequence in advance accordingly, which provides supervision of the ground-truth positions that each word should be inserted. We test the pre-defined orders listed in Table 1. The SYN orders were generated according to the dependency parse obtained by a dependency parse parser from Spacy (Honnibal and Montani, 2017) following a parent-to-children left-to-right order. The CF & RF orders are obtained based on vocabulary cut-off so that the number of common words and the number of rare words are approximately the same (Ford et al., 2018). We also consider on-the-fly sampling a random order for each sentence as the baseline (RND). When using L2R as the pre-defined order, Transformer-InDIGO is almost equivalent to the vanilla Transformer, as the position prediction simply learns to predict the next position as the left of the s symbol. The only difference is that it enhances the vanilla Transformer with a small number of additional parameters for the position prediction.
We also train Transformer-InDIGO using the SAO where we set the beam size to 8. In default, models trained with SAO are bootstrapped from a slightly pre-trained (6,000 steps) model in L2R order.
Inference During the test time, we do beamsearch as described in Sec. 4.3. We observe from our preliminary experiments that models trained with different orders (either pre-defined or SAO) have very different optimal beam sizes for decoding. Therefore, we perform sensitivity studies, in which the beam sizes vary from 1 ∼ 20 and pick the beam size with the highest BLEU score on the validation set for each particular model.

Results and Analysis
Word Order Recovery Word order recovery takes a bag of words as input and recovers its original word order, which is challenging as the search space is factorial. We do not restrict the vocabulary of the input words. We compare our model trained with the L2R order and eight SAO from beam-search for word order recovery. The BLEU scores over various beam sizes are shown in Figure 3. The model trained with SAO lead to higher BLEU scores over that trained with L2R with a gain up to 3 BLEU scores. Furthermore, increasing the beam size brings more improvements for SAO compared with L2R, suggesting that InDIGO produces more diversified predictions so that it has higher chances to recover the order.  Table 3: Results of translation experiments for three language pairs in different decoding orders. Scores are reported on the test set with four widely used evaluation metrics (BLEU↑, Meteor↑, TER↓, and Ribes↑). We do not report models trained with SYN order on En-Tr and En-Ja due to the lack of reliable dependency parsers. The statistical significance analysis 6 between the outputs of SAO and L2R are conducted using BLEU score as the metric, and the p-values are ≤ 0.001 for all three language pairs. Table 3, we compare our model trained with pre-defined orders and the SAO with varying setups. We use four evaluation metrics including BLEU (Papineni et al., 2002), Ribes (Isozaki et al., 2010), Meteor (Banerjee and Lavie, 2005), and TER (Snover et al., 2006) to avoid using a single metric that might be in favor of a particular generation order.

Machine Translation As shown in
Most of the pre-defined orders (except for the random order and the balanced tree [BLT] order) perform reasonably well with InDIGO on the three language pairs. The best score with a predefined word ordering is reached by the L2R order among the pre-defined orders except for En-Ja, where the R2L order works slightly better according to Ribes. This indicates that in machine translation, the monotonic orders are reasonable and reflect the languages. ODD, CF, and RF show similar performance, which is below the L2R and R2L orders by around 2 BLEU scores. The tree-based orders, such as the SYN and BLT orders, do not perform well, indicating that predicting words following a syntactic path is not preferable. On the other hand, Table 3 shows that the model with SAO achieves competitive and even statistically significant improvements over the L2R order. The improvements are larger for Turkish and Japanese, indicating that a flexible generation order may improve the translation quality for languages with different syntactic structures from English.  Code Generation The goal of this task is to generate Python code based on a natural language description, which can be achieved by using a standard sequence-to-sequence generation framework such as the proposed Transformer-InDIGO. As shown in Table 4, SAO works significantly better than the L2R order in terms of both BLEU and accuracy. This shows that flexible generation orders are more preferable in code generation.
Image Captioning For the captioning task, one caption is generated per image and is compared against five human-created captions during testing. As show in Table 4, we observe that SAO obtains higher BLEU and CIDEr-D (Vedantam et al., 2015) compared to the L2R order, and it implies that better captions are generated with different orders.

Ablation Study
Model Variants Table 5 shows the results of the ablation studies using the machine translation task. SAO without bootstrapping nor beam-search degenerates by approximate 1 BLEU score on Ro-En, demonstrating the effectiveness of these Running Time As shown in Table 6, InDIGO decodes sentences as efficient as the standard L2R autoregressive models. However, it is slower in terms of training time using SAO as the supervision, as additional efforts are needed to search the generation orders, and it is difficult to parallelize the SAO. SAO with beam sizes 1 and 8 are 3.8 and 7.2 times slower than L2R, respectively. Note that enlarging the beam size during training won't affect the decoding time as searching the best orders only happen in the training time.
We will investigate off-line searching methods to speed up SAO training and make InDIGO more scalable in the future.

Visualization
Relative-Position Matrix In Figure 4, we show an instantiated example produced by InDIGO,  We also compare beam sizes of 1 and 8 for SAO to search the best orders during training. We report the decoding speed of all three models based on greedy decoding.
which is randomly sampled from the validation set of the KFTT En-Ja dataset. The relativeposition matrices (R t ) and their corresponding absolute positions (z t ) are shown at each step. We argue that relative-position matrices are flexible to encode position information, and its append-only property enables InDIGO to reuse previous hidden states.
Case Study We demonstrate how InDIGO works by uniformly sampling examples from the validation sets for machine translation (Ro-En), image captioning, and code generation. As shown in Figure 5, the proposed model generates sequences in different orders based on the order used for learning (either pre-defined or SAO). For instance, the model generates tokens approximately following the dependency parse when we used the SYN order for the machine translation task. On the other hand, the model trained using the RF order learns to first produce verbs and nouns first, before filling up the sequence with remaining functional words. We observe several key characteristics about the inferred orders of SAO by analyzing the model's output for each task: (1) For machine translation, the generation order of an output sequence does not deviate too much from L2R. Instead, the sequences are shuffled with chunks, and words within each chunk are generated in a L2R order; (2) In the examples of image captioning and code generation, the model tends to generate most of the words in the L2R order and insert a few words afterward in certain locations. Moreover, we provide more examples in the appendix.

Related Work
Decoding for Neural Models Neural autoregressive modelling has become one of the most successful approaches for generating sequences (Sutskever et al., 2011;Mikolov, 2012), which has been widely used in a range of applications, such as machine translation (Sutskever et al., 2014), dialogue response generation (Vinyals and Le, 2015), image captioning (Karpathy and Fei-Fei, 2015), and speech recognition (Chorowski et al., 2015). Another stream of work focuses on generating a sequence of tokens in a nonautoregressive fashion (Gu et al., 2018;Lee et al., 2018;van den Oord et al., 2018), in which the discrete tokens are generated in parallel. Semiautoregressive modelling (Stern et al., 2018;Wang et al., 2018a) is a mixture of the two approaches, while largely adhering to left-to-right generation. Our method is different from these approaches as we support flexible generation orders, while decoding autoregressively.

Non-L2R Orders
Previous studies on generation order of sequences mostly resort to a fixed set of generation orders. Wu et al. (2018) empirically show that R2L generation outperforms its L2R counterpart in a few tasks. Ford et al. (2018) devise a two-pass approach that produces partially-filled sentence ''templates'' and then fills in missing tokens. Zhu et al. (2019) also propose to generate tokens by first predicting a text template and infill the sentence afterwards while in a more general way. Mehri and Sigal (2018) propose a Figure 5: Examples randomly sampled from three tasks that are instructed to decode using InDIGO with various learned generation order. Words in red and underlined are the inserted token at each step. For visual convenience, we reordered all the partial sequences to its correct positions at each decoding step. middle-out decoder that firstly predicts a middleword and simultaneously expands the sequence in both directions afterwards. Previous studies also focused on decoding in a bidirectional fashion such as (Sun et al., 2017;Zhou et al., 2019a,b). Another line of work models sequence generation based on syntax structures (Yamada and Knight, 2001;Charniak et al., 2003;Chiang, 2005;Emami and Jelinek, 2005;Zhang et al., 2016;Dyer et al., 2016;Aharoni and Goldberg, 2017;Wang et al., 2018b;Eriguchi et al., 2017). In contrast, Transformer-InDIGO supports fully flexible generation orders during decoding.
There are two concurrent papers (Welleck et al., 2019;Stern et al., 2019) that study sequence generation in a non-L2R order. Welleck et al. (2019) propose a tree-like generation algorithm. Unlike this work, the tree-based generation order only produces a subset of all possible generation orders compared to our insertion-based models. Further, Welleck et al. (2019) find L2R is superior to their learned orders on machine translation tasks, while transformer-InDIGO with searched adaptive orders achieves better performance. Stern et al. (2019) propose a very similar idea of using insertion operations in Transformer for machine translation. The major difference is that they directly use absolute positions, whereas ours utilizes relative positions. As a result, their model needs to re-encode the partial sequence at every step, which is computationally more expensive. In contrast, our approach does not necessitate reencoding the entire sentence during generation. In addition, knowledge distillation was necessary to achieve good performance in Stern et al. (2019), while our model is able to match the performance of L2R even without bootstrapping.

Conclusion
We have presented a novel approach-InDIGOthat supports flexible sequence generation. Our model was trained with either pre-defined orders or searched adaptive orders. In contrast to conventional neural autoregressive models that often generate from left to right, our model can flexibly generate a sequence following an arbitrary order. Experiments show that our method achieved competitive or even better performance compared with the conventional left-to-right generation on four tasks, including machine translation, word order recovery, code generation and image captioning.
For future work, it is worth exploring a trainable inference model to directly predict the permutation (Mena et al., 2018) instead of beam-search. Also, the proposed InDIGO could be extended for postediting tasks such as automatic post-editing for machine translation and grammatical error correction by introducing additional operations such as ''deletion' ' and ''substitution''. David Chiang. 2005