So I was poring over some of the output from NaNoGenMo 2015
and came across the frustrating realization that none of the stories presented (or at least those I read) had much of anything to do with stories of actual substance: the most ambitious aimed to mimic the narrative structure of an adventure without anything in the way of an underlying theme or message being developed. So that sucks.
And, at the ungodly hour of 9 am, as I lay wide awake in my parents' guest room and bored out of my skull for want of a proper computer, I found it vexing. So, self-styled machine learning expert from the distant land of biological sequence analysis, what can you tell us about hacking's oldest game since the Turing test?
First: the best simple narrative generators are those that present themselves as trees, expanding from most basic plot point (in them, this may be as dumb as exploring a room) down to individual clauses. This isn't an inherently flawed model, but it needs substantial regularization to prevent the production of incoherent gibberish.
One: the kernel of a story is not
its narrative. The kernel is the development and exploration of one or more central themes, which themselves can be explored and described in a tree-like manner. Romeo and Juliet is a mallet about prejudice and its consequences. Brave New World is a mallet about the toxicity of entertainment culture—as an inevitable consequence of scientifically-run society—to genuine living. Operas—lookin' at you, George Lucas—need not apply. These ideas fall into a few key categories: novel concepts (anywhere from the Garden of Forking Paths to Atlas Shrugged), moral tales, and (somewhat less popular today) sensibilities (The Great Gatsby.) Conveying a sensibility is somewhat more challenging as it involves many little facets that may not naturally fit into an essay structure and generally must be presented alongside a driving human narrative—again, Gatsby—so it would have to be handled in a different architecture altogether. Moral tales are relatively easy: demonstrate failure one or more times and provide a path to salvatory success.
If you tried to generate, say, Foundation
without this sort of anchoring, you'd get perhaps as far as men talking and smoking and maybe some stuff happening in between. You might even develop a trajectory for the galaxy's development and recovery from decline—but it would read rather like the historical summary in Dwarf Fortess and have no cohesive narrative.
Alright. So what does this mean from a computer science perspective? (I am using rhetorical questions because I am a grownup, and one has to be a stupendously arrogant snot to actually believe in an audience so credulous that they cannot follow the speaker's logic.)
It means self-organizing maps—that incredible, useless disaster of an algorithm—finally gets a meaningful application that can't just be done better by something else. An SOM threaded through a simple event tree could be used to plant revelations from the essay tree—the novel's idea—while keeping the spacing consistent and agreeable for human consumption. One SOM per major essay should suffice. This provides something exciting that generative stories until now have lacked: both a cue and a motivation to create points of high tension (e.g. cliffhangers) beyond the simplest initiation and climax structures.
Of course, you still need a way to structure what happens when these intersections occur; that may require a few more posts to work out.