Programming Poems with Mechanical Turk

29 12 2010

Mechanical Turk has received some bad press recently (this is one example). It has been pointed out that Mechanical Turk can be used to do evil, which got me interested in seeing whether if and how it can do any good (or at least: creative). This has led to the post here, and resulted in the following poem – collaboratively produced by independent workers on Mechanical Turk.

In the daily life of a Mechanical Turk

In the daily life of a Mechanical Turk,
Never have I quite finished my work,

For I return and refresh and come back for more
In quest of a yet higher score

Now and then my eyes may tire
If I said they didn’t, I’d be a liar

Though I am spent, It’s hard to stop
Even when I’m ready to drop

My available HITs are waiting for me
Ocassionally I’d rather go and watch TV

Nevertheless, I need the cash
Keen to throw a birthday bash!

Ever so slowly my earnings increase
Yet my passion for Mechanical Turk would never cease …

The structure of the poem is fully algorithmically determined. It has been written collaboratively by a crowd of Mechanical Turkers interacting with each other only through HITs. Before designing the poem algorithm, I’ve done some research on the structure and different types of poems, which led me to Acrostics.

“An acrostic (Greek: ákros “top”; stíchos “verse”) is a poem or other form of writing in which the first letter, syllable or word of each line, paragraph or other recurring feature in the text spells out a word or a message.” (wikipedia)

In my poem algorithm, I’ve constrained the first letter of each sentence in the poem, thereby forming an acrostic. As an additional constraint, I required the poem to consist of pairs of sentences that rhyme (similar to a Limerick).

While I determined (i.e. programmed) the structure of the poem, the content was completely produced by mechanical turkers. The only input provided was the title, which acts as the first sentence of the poem as well. Each rhyming pair of sentences was written by 2 different turkers, i.e. the output of one turker was used as an input for another turker. Total price of the poem was 1.804 USD. The poem was built incrementally, each subsequent turker had access to the output of all previous turkers. All tasks were requested at least 3 times, selection among alternatives was done by me, although it could have easily been done by Turkers themselves. In total, the contributions of 7 different Turkers were used in the poem above (while many more have worked on the HITs).

With that, I’ve initialized the poem algorithm with the acrostic “Infinite Monkey” and the title “In the daily life of a Mechanical Turk” and ran it on Mechanical Turk. The result can be seen above.

The Infinite Monkey acrostic refers to the Infinite Monkey Theorem:

“The Infinite Monkey Theorem states that a monkey hitting keys at random on a typewriter keyboard for an infinite amount of time will almost surely type a given text, such as the complete works of William Shakespeare.” (Wikipedia)

That’s what we are trying to test here, in a less statistic and a more informed manner though. Instead of producing all possible poems, we are interested in producing constrained yet plausible poems, efficiently (i.e. in very few iterations).

Which leads to a variation of the Infite Monkey Theorem that I’d like to propose here:

The Finite Turker Theorem states that a finite (yet potentially large) number of independent writers (here: Mechanical Turkers) will almost surely produce a poem that is creative, enjoyable and mostly indistinguishable from a single author poem.

With the Finite Turker Theorem, and market places such as Mechanical Turk, it might be possible to outsource creative work – such as poem writing – to a large set of workers without much penalty in terms of beauty or enjoyability. Algorithms such as the one above can constraint and influence the resulting poems, giving greater control about the outcome of creative processes (which sounds like an oxymoron).

Because HITs were requested multiple times, there were several rejects that did not make it into the final poem, but which show some of the difficulties as well as the creative potential of programmed poems, including:

For I return and refresh and come back for more
Info, my pimp: [I’m] a Dolores Labs penny whore

Conclusion: It has been suggested that the primary use of Mechanical Turk is the execution of simple, easily replacable and often spam-related work. This little experiment suggests that Mechanical Turk can serve richer purposes, by tapping into the creative energy of an underestimated, underutilized but also (currently) underpaid work force.