viernes, 19 de octubre de 2007

Soylent Grid: Cómo convertir los CAPTCHA en un sistema de computación humana distribuida

CAPTCHA A poco que uno se mueva por la red las posibilidades de enfrentarse a un CAPTCHA aumentan rápidamente. Basta con querer escribir un comentario en algún blog, crear una cuenta de correo electrónico, o acceder por primera vez a algún servicio on-line para que con gran probabilidad nos muestren alguna combinación distorsionada de caracteres que debemos identificar para proseguir. Este tipo de rudimentario test de Turing es preciso para evitar abusos en estos sistemas, impidiendo que bots accedan a los servicios. La idea básica es que el esfuerzo necesario para resolver uno de estos desafíos (de estar bien diseñado) sería enorme -imposible de manera ideal- para un sistema automatizado, pero mínimo para un humano, quizás unos pocos segundos.

Partiendo de la base de lo anterior, cabría preguntarse si ese esfuerzo cognitivo realizado por los usuarios humanos podría aprovecharse de algún modo adicional al de la propia detección de bots. Hay que tener en cuenta que aunque individualmente dicho esfuerzo es mínimo, si hay miles, centenares de miles o incluso millones de personas conectadas a Internet y sometidas a un CAPTCHA a diario, el esfuerzo acumulado pasa a ser enormemente considerable. Una utilidad para el mismo es la que Stephan Steinbach, Vincent Rabaud y Serge Belongie, del Departamento de Informática e Ingeniería de la Universidad de California San Diego, han propuesto en un trabajo titulado

presentado en la conferencia Interactive Computer Vision 2007. La idea de estos investigadores es la de emplear este esfuerzo cognitivo para el etiquetado o segmentación de imágenes, con vistas a su utilización en por ejemplo aplicaciones de asistencia a personas con discapacidad visual. Pensemos en lo siguiente: al entrar a un cierto sitio web se nos muestran una serie de fotografías de productos de un supermercado, y se nos pide que identifiquemos aquellas que contienen un determinado producto o clase de productos (conservas, bebidas gaseosas, etc.). De entre estas fotografías habrá unas cuantas que ya están correctamente etiquetadas con antelación. Si el usuario falla en la identificación de éstas no ha pasado el CAPTCHA y se le niega el acceso. Por el contrario, si las identifica correctamente, se asume que su respuesta a las fotografías no etiquetadas es la correcta (por supuesto en todo el proceso el usuario no sabe qué imágenes son de control y cuáles no, por lo que intenta contestar siempre correctamente). Mediante un adecuado dimensionamiento del número de fotografías se puede garantizar que por pura combinatoria la probabilidad de que se pase el test al azar, o de que conteste correctamente a las preguntas de control e incorrectamente a las no etiquetadas es muy pequeña. Más aún, el hecho de que hay miles de usuarios permitiría eliminar fácilmente este tipo de errores de etiquetados a través de análisis estadísticos.

Los tipos de prueba en los que los autores están pensando son cuatro: identificar el nombre de un objeto, identificar las fotografías que tengan un cierto objeto o las diferentes apariciones de un cierto objeto en una fotografía, dibujar el contorno de un objeto en una fotografía, o identificar si una imagen es estéticamente agradable o no. Este tipo de cuestiones serían proporcionadas por un grupo de investigación a las organizaciones cliente (aquellas que quieren disponer de CAPTCHA en sus páginas web), que se beneficiarían de un sistema de detección de bots eficaz y barato, a la vez que proporcionarían información muy útil a los investigadores. Todos contentos.

Como nota anecdótica, el nombre Soylent Grid es por supuesto una referencia a la película de ciencia-ficción Soylent Green (”Cuando el destino nos alcance“). Y es que el ingrediente básico tanto de la supuesta comida a base de plancton que da el nombre a la película, como de la red computacional que en este caso se usaría es el mismo.

No hay comentarios: