P lot M achines: Outline-Conditioned Generation with Dynamic Plot State Tracking (2020)

Abstract: We propose the task of outline-conditioned story generation: given an outline as a set of phrases that describe key characters and events to appear in a story, the task is to generate a coherent narrative that is consistent with the provided outline. This task is challenging as the input only provides a rough sketch of the plot, and thus, models need to generate a story by interweaving the key points provided in the outline. This requires the model to keep track of the dynamic states of the latent plot, conditioning on the input outline while generating the full story. We present PlotMachines, a neural narrative model that learns to transform an outline into a coherent story by tracking the dynamic plot states. In addition, we enrich PlotMachines with high-level discourse structure so that the model can learn different writing styles corresponding to different parts of the narrative. Comprehensive experiments over three fiction and non-fiction datasets demonstrate that large-scale language models, such as GPT-2 and Grover, despite their impressive generation performance, are not sufficient in generating coherent narratives for the given outline, and dynamic plot state tracking is important for composing narratives with tighter, more consistent plots.

## introduction composing a story requires a complex planning process. first, the writer starts with a rough sketch of what key characters and events the story will contain. then, as they unfold the story, the writer must keep track of the elaborate plot that weaves together the characters and events in a coherent and consistent narrative. we study this complex storytelling process by formulating it as the task of outline-conditioned story generation, illustrated in figure 1 . given an outline, a set of phrases describing key characters and events to appear in a story, the task is to generate a coherent narrative that is consistent with the provided outline. this task is challenging as the input provides only the rough elements of the plot foot_0 . thus, the model needs to flesh out how these plot elements will intertwine with each other across different parts of the story. the flowchart in figure 1 demonstrates an example of a latent plot structure: different key phrases from the outline appear and re-appear jointly throughout different sentences and paragraphs. notably, the way that outline points are interwoven needs to be determined dynamically based on what's already been composed while also staying true to the original outline and overall narrative structure. we present plotmachines, a novel narrative transformer that simulates the outline-conditioned generation process described above. 2 our model learns to transform an outline into a multiparagraph story using dynamic memory blocks that keep track of the implicit plot states computed using the outline and the story generated thus far. we draw inspiration from prior work in dialogue state tracking @xcite @xcite , entity tracking @xcite , and memory networks @xcite for keeping track of plot states. we also inform our model with high-level narrative structure using discourse labels so that it can learn different styles of writing corresponding to different parts of the narrative (i.e. beginning, middle, and end). plotmachines is, to the best of our knowledge, the first model designed to generate multi-paragraph stories conditioned on outlines and can be trained end-to-end to learn the latent plot patterns without explicit plot annotations for supervision. to support research on outline-conditioned generation, we present three datasets, including both fiction and non-fiction domains, where multiparagraph narratives from existing datasets are paired with automatically constructed outlines using state-of-the-art key phrase extraction. importantly, our task formulation of outline-conditioned generation is general and can be applied to various forms of grounded language generation. comprehensive experiments on these datasets demonstrate that recently introduced state-of-the-art large-scale language models such as gpt-2 and grover @xcite , despite their impressive generation performance, still struggle to generate coherent narratives that are consistent with input outlines. our experiments indicate that dynamic plot state tracking is important for constructing narratives with tighter and more consistent plots compared to competitive baselines. our main contributions are: (1) a new task formulation of outline-conditioned story generation, (2) the presentation of three new datasets for this task, (3) plotmachines, a novel narrative transformer that learns to transform outlines to full stories with dynamic plot state tracking, and (4) empirical results demonstrating the limitations of state-of-the-art large-scale language models and the advantage of plotmachines compared to competitive baselines. ## outline-conditioned generation the task: our primary goal is to design a task for investigating how story generation models can plan long narrative according to controllable story elements. to that end, we introduce the outlineconditioned story generation task, which takes a plot outline as input and produces a long, multiparagraph story. in order to be flexible to multiple forms of control that might be required for different downstream tasks, we envision plot outlines to be defined loosely as lists of an arbitrary number of un-ordered plot points that should guide a story being generated. plot points could consist of highlevel concepts, low-level events, or even detailed sentences. for practical reasons, in this work, we limit the scope of plot points to events and phrases since these can be automatically extracted. future work could explore alternate methods of defining plot outlines, perhaps using an event-based planning systems @xcite @xcite for generating key points. more concretely, in this paper, we formulate the outline as a list of un-ordered bullet points which reflect key phrases to be loosely integrated in the output narrative. these plot outlines are inspired, in part, by previous work in short-form story generation tasks that conditioned on storylines @xcite , which were defined as an ordered list of exactly five single-word points. we extend this concept to long-form story generation by defining a plot outline more flexibly as: an un-ordered list of an arbitrary number of multiword plot elements. an outline also differs from a writing prompt, such as those found in other controllable writing tasks @xcite , which are more abstract and often just a starting point for a story. unlike a prompt, an outline is a list of concrete points that must appear somewhere in the narrative. one challenge of this task is to create stories that have appropriate discourse and narrative flow. a second challenge is for stories to include the outline in a natural way. for example, it may be appropriate for certain outline points to be used only later on in the story (e.g. the protagonist dying may be more typically used at the end). wikiplots # stories : 130k avg # pars : 3.1 data-split : 90/5/5 outline: • the rocky horror picture show • convention attendees includes servants (...) story: a criminologist narrates the tale of the newly engaged couple, brad majors and janet weiss, who find themselves lost and with a flat tire on a cold and rainy late november evening, somewhere near denton in 1974 (...) writingprompts # stories : 300k avg # pars : 5.9 data-split : 90/5/5 outline: • found something protruding • geometric shapes glowing • sister kneeling beside • dead bodies everywhere • darkness overwhelmed • firelight flickering (...) story: it was dark and levi was pretty sure he was lying on his back . there was firelight flickering off of what was left of a ceiling . he could hear something but it was muffled . he (...) nytimes # stories : 240k avg # pars : 15.2 data-split : 90/5/5 outline: • upcoming annual economic summit meeting • take intermediate steps (...) article: the long-simmering tensions in serbia's province of kosovo turned violent in recent weeks and threaten to ignite a wider war in the balkans. only a concerted diplomatic effort by the united states can keep the conflict from escalating. though he has been attentive to the problem (...) dataset: outline to story: we construct three datasets for outline-conditioned generation 3 by creating novel plot outlines to be used as inputs to generating stories from three existing story datasets. wikiplots corpus 4 consists of plots of tv shows, movies, and books scraped from wikipedia. writingprompts @xcite is a story generation dataset, collected from the /r/writingprompts subreddita forum where reddit users compose short stories inspired by other users prompts. we use the same train/dev/test split from the original dataset paper. nytimes @xcite contains news articles rather than fictional stories, unlike the other two datasets. 5 outline extraction we extract a list of plot outlines from each dataset to use as input using the rake (rapid automatic keyword extraction) algorithm @xcite 6 . rake is a domain independent keyword extraction algorithm, which determines key phrases in a document based on the word frequency and co-occurrence statistics. we filtered key-points with overlapping n-grams. this is inspired by similar rake-based methods for creating storylines @xcite , but differs in that we extract longer outline points (3-8 words 3 code for replicating data creation available at www. github.com/hrashkin/plotmachines 4 www.github.com/markriedl/wikiplots 5 due to concerns over fake news creation, we will not release the model trained on this data. ## plotmachines our approach to this task is to design a model that combines recent success in text generation with transformer-based architectures @xcite with memory mechanisms that keep track of the plot elements from the outline as they are used in the story. we also incorporate special discourse features into the modelling to learn a structure over the long multi-paragraph story format. we introduce plotmachines (pm), an endto-end trainable transformer built on top of the gpt model foot_2 @xcite , as shown in figure 2 . given an outline as input, the model generates paragraphs, recurrently, while updating a memory matrix m that keeps track of plot elements from the outline. this generation framework is motivated by human writing styles, in which each paragraph is a distinct section of related sentences. at each time step, i, plotmachines generates a new paragraph p i : ## experiments we present experiments comparing plotma-chines with competitive baselines and ablations using automatic metrics and human judgements targeting multiple aspects of performance. in sec. a.3, we also include example generations. ## related work state tracking there is a plethora of work in state tracking for dialogue where memory states are updated after each utterance @xcite @xcite . similarly, sc-lstms @xcite dynamically updated dialogue act representations as a form of sentence planning in spoken dialogue generation. memory and entity networks @xcite and neural checklists @xcite also used similar methods for tracking entities for other tasks. we adapt these techniques for generating stories while tracking plot state that is updated after each paragraph. our method of decoding paragraphs recurrently also draws on existing work in hierarchical decoding @xcite , which similarly decodes in multiple levels of abstraction over paragraphs, sentences, and words. ## conclusion we present outline-conditioned story generation, a new task for generating stories from outlines representing key plot elements. we facilitate training by altering three datasets to include plot outlines as input for long story generation. in order to keep track of plot elements, we create plotmachines which generates paragraphs using a high-level discourse structure and a dynamic plot memory keeping track of both the outline and story. quantitative analysis shows that plotmachines is effective in composing tighter narratives based on outlines compared to competitive baselines.