Thursday, May 10, 2007

Human computation

Lo prometido es deuda. Ahí va la explicación de cómo hace Google para etiquetar las imágenes de Google-Images. (voy a intentar ser breve)

La introducción de la computación ha supuesto una revolución social que en algunos textos se compara a la revolución industrial. Mecanización de procesos de cálculo, rapidez de computación son dos de los muchos atributos que definen a la computación o, por simplificar el término, a los ordenadores. No vamos a descubrir la ventaja que ha supuesto en el día a día en el todos los ámbitos sociales, laborales, científicos...
Ahora, hay tareas que a los ordenadores no se les da todo lo bien que quisiésemos. Una de ella es el reconocimento de imágenes. De hecho, en cierto modo, nos aprovechamos de esta deficiencia o incompletitud. Seguro que todos, cuando os dáis de alta en algún sitio de internet después de introducir todos los datos tenéis que escribir una serie de caracteres que aparecen en una imagen con los mismos caracteres pero deformados. Estas imágenes son las conocidas como catch-ups y su papel es el evitar que un proceso automático sea capaz de generar infinitas altas aleatorias basándose en el hecho de que dicho proceso no puede leer esa imagen deformada. Este es sólo un ejemplo de una tarea, la de la lectura de la imagen, que un ordenador no puede completar (dejamos temas de inteligencia artificial a parte) y un ser humano puede hacer sin problema.
Ahora, la pregunta es ¿qué pasaría si pusiesemos a un montón de personas haciendo este tipo de tareas en paralelo?... es cuando el término "Human Computation" aparece.

Vamos ahora con el ejemplo de Google. Google tiene un serio problema en etiquetar sus imágenes de manera que cuando tú buscas algo en Google-Images la imagen resultado se corresponda con el criterio de búsqueda. Por ejemplo para que cuando introduzcas "agujetas" no te salga un ciclista en la París-Roubaix, como me ha pasado a mi en el anterior post :-) Lo que hacía Google antes era hacer la búsqueda o por el nombre del fichero o por palabras cercanas a la imagen dentro de la página web que contiene la misma. Esta técnica se demostró poco efectiva y hubo que buscar un modo un poco más inteligente de hacer la calificación de las imágenes.

Si en este momento las personas somos los que sabemos etiquetar a las imágenes ¿por qué no utilizar el concepto de Human Computation para esta tarea? esto es ¿por qué no poner a un montón de gente en paralelo a etiquetar todas las imágenes de Google? Claro... esta tarea es un coñazo y nadie se va a poner a hacerla o al menos sin dinero de por medio ¿o no?

Lo que se les ocurrió a los amigos de California fue crear un juego OnLine que se jugaba en parejas, de manera que dos personas veían una imagen y tenían que escribir lo que les sugería esa imagen, o lo que la describía consiguiendo puntos cuando coincidían en un cierto número de descripciones. A lo tonto el juego fue un éxito y consiguió su objetivo: que un montón de personas trabajasen en paralelo y ¡¡¡gratis!!! etiquetando imágenes. Genial ¿verdad?

Pues este concepto, es el mismo que se utiliza para marcar como spam los correos en gmail. Cuando un montón de usuarios marcan un correo como spam ese correo queda marcado como spam en las bases de datos de gmail y nunca más vuelve a dar la lata a los usuarios. Por eso funciona tan bien el filtro antispam de gmail.

Os dejo un vídeo que explica con detalle (y mucho mejor que yo que lo estoy escribiendo con prisas y mal) esto que os acabo de contar. Merece la pena verlo en casa (dura 1 hora) Espero que os guste.

Éste es el link directo por si no lo véis embebido


4 comments:

Anonymous said...

Gracias. El video me lo saltaré. Me quedo con tu human explanation of human computation.
Fdo Sargent Spanjaard.

Arturo said...

Hola, Sergio. Hablas de algunos conceptos que me resultan muy interesantes.

Uno es el de que, a pesar del enorme avance de la computación, que hoy por hoy pone a nuestra disposición una formidable capacidad de cálculo a un coste reducido, hay problemas que, aun siendo triviales para un humano, aún no hemos podido modelar adecuadamente para poder resolverlos por la vía computacional. Un ejercicio interesante y divertido es jugar a imaginar qué serán capaces de hacer los ordenadores del futuro, sobre todo si se combina con los avances en inteligencia artificial.

Y otro tema digno de estudio es el de cómo se puede conseguir poner a trabajar a cientos, miles o millones de cerebros para tí sin que te cueste nada, si sabes motivarlos adecuadamente.

Muy interesante tu Post.

vsblanco said...

Wenas Sergio.

Me anoto tu blog y te enlazo. No te digo ná ;-)

Sergio said...

Vicente y Arturo linkados quedáis por aquí.

Un abrazo