viernes, 27 de septiembre de 2013

¿Es un robot, o no es más que un humano?

Uno de los conceptos más interesantes de la Web 2.0 es la remezcla o mash-up. Básicamente consiste en combinar información obtenida de diferentes servicios para dar un valor añadido a los usuarios en forma de un nuevo servicio.
La mayoría de remezclas disponibles en la red se han construido sobre Google Maps, integrando algún tipo de información con la geolocalización proporcionada por el conocido servicio de Google. Tanto es así que se tiende a pensar que la remezcla es la unión de “algo” con Google Maps, pero es evidente que esta creencia es errónea, y hay muchísimos modos de combinar información de muy distintos tipos para dar origen afuncionalidades interesantes.
Afortunadamente, Tim Berners-Lee concibió la Web como una estructura abierta de información, de modo que, por mucho que se empeñen algunas empresas, la información publicada puede accederse no sólo por los usuarios “humanos”, sino también por robots y agentes capaces de reelaborarla o utilizarla para sus propios fines.
Nuestro robot Siitan Nootan, por ejemplo, deambula por Second Life charlando con los humanos, para lo cual utiliza diversos servicios externos además de los suyos propios, como por ejemplo el chatterbot elbot, del que ya hemos hablado en esta sección, y un servicio de citas famosas, entre otros.
En cuando a la remezcla, hay tres tipos de posicionamiento por parte de los proveedores de información en la Web: “úsame”, “no quiero que me uses” y “me da igual”. En muchos casos estos planteamientos indican la adhesión de los proveedores a la nueva o a la vieja economía. Es muy conocido el caso de Google, que no sólo no obstaculiza el uso de su información (al fin y al cabo su imperio se fundamenta en el uso de la información de otros para dar un servicio añadido: el de la búsqueda), sino que además impulsa la remezcla facilitando a los desarrolladores APIs de programación para que la utilización de su información sea sencilla, robusta e independiente del formato que la información adopte en las páginas web.
En los casos más restrictivos, los constructores de robots se ven obligados a utilizar diversos tipos de estrategias que le permitan acceder a la información “suplantando” a los humanos, y los proveedores intentan evitar el acceso de muchas maneras, siendo una de las más conocidas el uso de capchas o la detección de patrones de actuación típicos de robots. Estas estrategias podrían considerarse tests de Turing a pequeña escala.
Al margen de una cuestión filosófica de calado sobre el hecho de “¿por qué un humano sí y un robot no?”, que tiene implicaciones técnicas y legales complejísimas, un colaboradorplanteó el otro día un asunto interesante: ¿que hay del problema contrario? ¿Podemos elaborar un test que permita “cribar” a los humanos que se hagan pasar por robots?
La solución “ingenua” a este problema –aplicar el test de Turing y si el agente lo pasa sabremos que es un humano– no es válida es este caso, porque el humano se hará pasar por robot si éste es su objetivo. Por tanto es necesaria una especie de test inverso que sea imposible de resolver por un humano, al menos en un tiempo razonable para una máquina (ya sabemos que las máquinas son idiotas sabios).
Dentro de las respuestas que hemos barajado están las siguientes:
  • El “test de la geolocalización”: hacer alguna pregunta que se pueda resolver rápidamente consultando la red… por ejemplo: coordenadas del “bar Pepe en Madrid”. El que pregunta puede mirarlas en google maps, y el robot también, pero a un humano le llevaría cierto tiempo. Así que se mide el tiempo de respuesta y ¡bingo! Humanos detectados, esos agentes inteligentes tan leeeeeeentos. Si esto no es suficiente, se pueden encadenar consultas o extenderlas, por ejemplo: promedio de coordenadas de los cinco primeros bares (bar-i-centro) obtenidos de la búsqueda “bar pepe en Madrid”. Por supuesto el nombre del bar a buscar se elegiría de algún modo no predecible en cada aplicación del test.
  • El “test del Atlas” o “test de Euclides”: consiste en pasar un nombre de una ciudad y el bot responderá con las 10 o 15 ciudades más cercanas según su distancia euclídea.
  • El “test de Babel”: se le pasa una palabra o frase al bot y responderá la traducción de esa palabra o frase en distintos idiomas (inglés, francés, alemán, italiano, portugués…) rápidamente.
  • El “test de la Chi-cuadrado”: se le pasa la probabilidad y devuelve el X para los grados de libertad 1 a 10, por ejemplo.
  • El “test de formato numérico”: dado un decimal aleatorio de varias cifras solicitar su equivalente binario, octal y/o hexadecimal (obviamente, es algo que un robot haría de forma inmediata y un humano tendría que tirar hasta de los dedos de los pies).
  • El “test de las magnitudes”: dada una magnitud (p.ej. kJul) pedir el equivalente en calorías o similar.
  • El de las “letras repetidas”: dado un trozo de texto detectar cual es el grafismo que se repite más veces en la 2ª posición de cada palabra.
Finalmente, hubo también quien planteó que la pregunta perfecta sería: “¿cuál es el sentido de la vida?” Si el agente se queda pensando y balbucea, es que es un humano. Un bot debería responder: no es computable.
Y hubo alguien que respondió: “eso no es cierto. Un bot debería responder: «42»”.
Publicado originariamente en Computación creativa y otros sueños (Libro de Notas) el 25/12/2008.