of the generation process. We do not provide any specific examples of architectures but provide an overview of the basic underlying modules which can be used with any learning paradigm. @xie2017neural provides a practical guide to the neural generation process describing it in terms of initialization, optimization, regularization and decoding strategies. Our work on the other hand does not delve into the implementation details of the generation pipeline but provides an overall schema for understanding of the various components involved.

In the remainder of the paper, we denote the representation of the control attribute by ${\mathbf{s}}$ and the representation of the input or [*source*]{} sentence returned by the encoder as ${\mathbf{h}}_e$. In what follows, we first describe the possible ways of controlling attributes by modulating the [*external input*]{} in [§\[sec:bg-dec-init\]]{}, the [*sequential input*]{} in [§\[sec:bg-dec-inp\]]{}, the [*generator operations*]{} in [§\[sec:bg-gen\]]{}, the [*output*]{} in [§\[sec:bg-out\]]{} and the [*training objective*]{} in [§\[sec:bg-train-obj\]]{}. At the end of each section, we provide an analysis of each of the techniques described and how they fit together.

External Input {#sec:bg-dec-init}
==============

In this section we discuss the different techniques which can be used to control the generation process by updating the initialization of the generator ${\mathbf{h}}_0$. 