Amazon finally reveals itself as the Matrix

Amazon’s new Mechanical Turk product is brilliant because it will help application developers overcome certain types of problems (resulting in the possibility for new kinds of applications) and somewhat scary because I can’t get the Matrix-we-are-all-plugged-into-a-machine vision out of my head.

The “machine” is a web service that Amazon is calling “artificial artificial intelligence.” If you need a process completed that only humans can do given current technology (judgment calls, text drafting or editing, etc.), you can simply make a request to the service to complete the process. The machine will then complete the task with volunteers, and return the results to your software.

Volunteers are paid different amounts for each task, and money earned is deposited into their Amazon accounts. Amazon keeps a 10% margin on what the requester pays.

Today, we build complex software applications based on the things computers do well, such as storing and retrieving large amounts of information or rapidly performing calculations. However, humans still significantly outperform the most powerful computers at completing such simple tasks as identifying objects in photographs – something children can do even before they learn to speak.

When we think of interfaces between human beings and computers, we usually assume that the human being is the one requesting that a task be completed, and the computer is completing the task and providing the results. What if this process were reversed and a computer program could ask a human being to perform a task and return the results? What if it could coordinate many human beings to perform a task?

Amazon Mechanical Turk provides a web services API for computers to integrate Artificial Artificial Intelligence directly into their processing by making requests of humans. Developers use the Amazon Mechanical Turk web services API to submit tasks to the Amazon Mechanical Turk web site, approve completed tasks, and incorporate the answers into their software applications. To the application, the transaction looks very much like any remote procedure call – the application sends the request, and the service returns the results. In reality, a network of humans fuels this Artificial Artificial Intelligence by coming to the web site, searching for and completing tasks, and receiving payment for their work.

All software developers need to do is write normal code. The pseudo code below illustrates how simple this can be.

read (photo);
photoContainsHuman = callMechanicalTurk(photo);
if (photoContainsHuman == TRUE){
else {

The name “Mechanical Turk” is a great one because it refers to a machine built in the 18th century that played chess against real people and beat them regularly. However, nearly a hundred years later it was finally revealed that the machine was in fact powered by a human being hidden inside of it. I actually read a book about the machine earlier this year – I was on a business trip and it was all I could find.

There are an enormous number of tasks that this can be used for. So plug in to the Matrix Machine and give it a try.

More on this from Rob Hof, Greg Yardley and others.