¿Cómo funciona Watson?

3920 lecturas

URL destacada (www-943.ibm.com): http://www-943.ibm.com/innovation/us/watson/

Ayer tuve la oportunidad de asistir a un panel y charla por parte de Chris Welty, Adam Lally y otros ingenieros que crearon Watson, la máquina de IBM que juega Jeopardy! El sistema en sí es impresionante (quienes han podido ver los vídeos lo saben), pero me parece aún más interesante cómo está construido. Contrario a lo que opina Tama creo que es una gran pieza de ingeniería, mezclando variadas técnicas de Inteligencia Artificial y en este artículo cuento algunos detalles de su implementación.

Primer paso: Entender la pregunta

Quizás lo más difícil (e impresionante) de Watson es entender sobre qué trata la pregunta. Para eso utiliza varios procesos (principalmente basados en procesamiento de lenguaje natural donde se obtienen diferentes cuñas (elementos dentro de la pregunta que permite identificar elementos distintivos de la respuesta) e idealmente el tipo de respuesta que se espera (una persona, una pintura, un país, etcétera). Lo anterior no es tan fácil sobre todo porque (en mi opinión) el inglés es un lenguaje en el que hay una gran sobrecarga semántica en las palabras (muchos significados, muy diferentes entre si): Por ejemplo place significa "lugar (físico)" pero también es la posición en una competencia.

Utilizando estos elementos, Watson genera una serie de posibles candidatos de respuesta sobre los cuales luego se realizará una búsqueda usando las cuñas antes mencionadas.

Buscando una respuesta

Una vez se obtienen los elementos, se procede a una búsqueda de elementos comunes que hagan sentido con el (o los) tipo(s) identificados en el paso anterior: Para esto se usan una serie de bases de conocimientos (entre ellas algunas tomadas desde la Web Semántica, tales como DBpedia, Yago y Wordnet. Utilizando estos datos y un sistema de inferencia más algunas reglas para casos particulares (una persona no es un país, Sólo existen 12 meses) Watson encuentra diferentes candidatos potenciales como respuesta. Esta no es una tarea trivial, sobre todo en inglés que (en mi opinión) es un lenguaje en el que las palabras son especialmente sobrecargadas de diversos significados.

Dando la respuesta correcta

Un aspecto fundamental de este problema es que Watson debe dar 1 respuesta: Esto es diferente de una búsqueda de Google, la cual entrega cientos (o miles) de documentos que pueden (o no) ser relevantes con la consulta. Un ejemplo que Chris mencionó fue la búsqueda de "El país con la frontera más extensa con Chile". Al buscar las palabras frontera, chile, la respuesta más popular era "Bolivia", debido a los conflictos limítrofes históricos entre ambos países.

Watson usa una serie de heurísticas y algoritmos de Aprendizaje de máquinas para evaluar el resultado de cada una de las posibles soluciones contra cada una de las fuentes de datos. Finalmente, se hace entrega de los 3 resultados más probables (incluyendo la probabilidad de error).

El resultado

Cabe destacar que todo lo anterior se hace en aproximadamente 2 segundos en un computador que, sin ser pequeño, no puede ser considerado un supercomputador (según recuerdo tiene 3000 CPUs). En lo personal, quedé bastante impresionado al ver a Watson ganar (en la segunda jornada) más de 35.000USD (el siguiente competidor terminó con 10.000USD). Aunque una buena parte (sino todo) este proyecto está pensado para publicitar a IBM, no deja de ser impresionante el resultado final y sobre todo las posibilidades que la misma gente de IBM describe como posibles aplicaciones (ayudar en diagnósticos difíciles es el ejemplo más usado) en un futuro cercano.

Imagen: Creación propia a partir del sitio Web de IBM's Watson

Foto de Alvaro

— PhD en Ciencias Cognitivas e Investigador en temas de Open Data, Visualizaciones, Web Semántica, eScience y Web Science. Ingeniero civil en computación. Más información »