Archivo de la etiqueta: TALP UPC

LAS SIMILITUDES SEMÁNTICAS

Comunicarse verbalmente con las máquinas ha sido uno de los objetivos principales desde el nacimiento de la informática. En el año 1968 Arthur C. Clarke hacía volar la imaginación de medio planeta con su novela 2001: Una odisea del espacio, que fue llevada paralelamente al cine por Stanley Kubrik con enorme éxito. La informática apenas había dado sus primeros pasos (el primer microprocesador aún no había sido desarrollado), pero la idea de una inteligencia artificial como la de HAL 9000 ya había seducido a una generación que aún no había podido tocar un ordenador personal.

blogSTS

De izq. a dcha: Aitor González Aguirre, Dr. LLuís Padró y Horacio Rodríguez Hontoria.

Tal y como suele ocurrir en estas situaciones, en pleno 2016, estamos muy lejos de replicar las capacidades comunicativas que HAL 9000 debería tener en el año 2001. Comprender el lenguaje humano puede parecer muy sencillo, las personas lo hacemos cada día, pero es una tarea muy difícil para las máquinas. El lenguaje está lleno de fenómenos que hacen que la comprensión sea muy compleja: polisemia, ironía, sarcasmos, dobles sentidos, múltiples formas de decir lo mismo… Y por si fuera poco la comprensión depende de nuestro conocimiento del mundo, que empleamos para razonar y entendernos entre nosotros, en un proceso que hacemos prácticamente sin darnos cuenta. Un claro ejemplo podrían ser las siguientes dos oraciones:

  • Ayer vi un avión volando sobre Nueva York.
  • Ayer vi un tren volando sobre Nueva York.

Aunque sólo cambien en una palabra ambas oraciones tienen significados muy diferentes. Para nosotros es fácil imaginar un avión sobrevolando Nueva York, pero al leer la segunda oración enseguida detectamos que un tren no vuela, y que por lo tanto se trata de algo distinto, como por ejemplo de un avión que sobrevuela Nueva York, y que la persona que va dentro del avión (porque las personas tampoco vuelan), ve un tren desde la ventanilla. Hacer este tipo de inferencias es muy complicado para los ordenadores, pero relativamente sencillo para las personas.

La Similitud Semántica Textual (STS: del inglés Semantic Textual Similarity) es una tarea, presentada originalmente en el SemEval 2012, que trata de abordar uno de los aspectos de la inteligencia artificial que permitirá que las máquinas se comuniquen de modo natural con las personas: la evaluación del significado. Dadas dos oraciones, saber si ambas tienen el mismo significado o no es vital para una buena comunicación. Pero el significado no es blanco o negro, tiene toda una variedad de tonos grises. La STS tiene como objetivo evaluar de forma automática la similitud entre oraciones en un rango que abarca desde el 0 hasta el 5, y en el que cada franja representa de forma fácilmente comprensible las diferencias que hacen que dos oraciones sean equivalentes o no.

Existen muchas técnicas y recursos para abordar esta tarea, como WordNet, Wikipedia y ontologías como SUMO, que permiten abordar muchas de las dificultades citadas anteriormente como la polisemia, la detección de entidades (personas, empresas, etc.) o el razonamiento. Pero estos recursos se crean manualmente, y es una tarea muy costosa tanto en tiempo empleado como económicamente. En tiempos recientes, y gracias a los avances realizados mediante Deep Learning, se han generado de forma automática nuevos recursos útiles para mejorar los sistemas de STS como los Word Embeddings, capaces de almacenar en un vector las características semánticas de las palabras, haciendo que las de significado similar queden más cerca, y las distintas más lejos. Estos nuevos sistemas son capaces de analizar el contexto en el que aparecen las palabras en un conjunto de textos muy amplio, y asumiendo que las palabras parecidas aparecen en contextos parecidos, coloca cada una de las palabras en un espacio N-dimensional, manteniendo la premisa de que las palabras parecidas deben permanecer cerca unas de otras. Una vez generados estos vectores podemos calcular la similitud de estas palabras calculando el coseno de sus vectores.

The same vector that converts man into King, converts woman into Queen (figure 1).

El mismo vector que convierte a un hombre en rey, convierte a una mujer en reina (figura 1)

Pero la característica más interesante de estos vectores es la preservación del significado, de tal forma que podemos operar con ellos mediante sumas y restas. Por ejemplo, el resultado de la operación Rey-Hombre+Mujer sería igual a Reina, o, dicho de otra forma, si al vector que codifica el significado de Rey se le resta el vector con el significado de Hombre y se le suma el de Mujer, da como resultado el vector con el significado de Reina (ver Figura 1).

Estas medidas de equivalencias de significado son útiles para muchas herramientas, por ejemplo, para el conocido Siri, el asistente personal de iOS, o para evaluar los comandos de voz en un sistema domótico instalado en una vivienda, de modo que la casa pueda deducir que la frase «Necesito más luz» pueda significar «Sube las persianas» o «Enciende las luces», dependiente de la luz que haya en ese momento en el exterior. Otras posibles aplicaciones son las de ayuda a la tercera edad, ya que en general las personas de este rango de edad tienen mayor dificultad en aprender y utilizar los comandos de voz, y la ayuda a la docencia, donde un sistema de STS es capaz de evaluar si la respuesta del alumno significa lo mismo que la respuesta correcta asignada por el profesor, facilitando la tarea al docente.

Otra tarea muy popular es la búsqueda de la respuesta (QA: Question Answering) en la que nuestro grupo trabaja activamente. QA se puede definir como la tarea en la que el usuario plantea una pregunta en lenguaje natural y el sistema debe devolverle la respuesta (en lugar de distintos documentos, como haría Google). Los primeros sistemas de QA abordaban preguntas de tipo factual: ¿dónde nació Obama?, ¿cuándo acabó la 2ª guerra mundial?, ¿quién descubrió la penicilina? Más adelante se abordaron preguntas más complejas en las que la respuesta no se encontraba en un solo documento, sino que debía construirse a partir de componentes parciales como: ¿Quiénes fueron los tres primeros cancilleres de la RFA?, preguntas de tipo definicional: ¿Quién fue Picasso?, ¿para qué se usa el paracetamol?, preguntas de opinión, o argumentos a favor y en contra del control de armas en USA. En paralelo se han desarrollado sistemas de dominio restringido y sistemas que buscan la respuesta no sólo en documentos textuales sin fuentes estructuradas, como los repositorios de Linked Open Data (FreeBase, DBPedia, BioPortal y otros). En todos estos sistemas se hace un uso amplio de las medidas de distancia entre la pregunta y las potenciales respuestas.

Un tipo de QA que ha adquirido últimamente cierta notoriedad es el de los Community QA (CQA). En los CQA se parte de una pregunta inicial planteada por un miembro de la comunidad. A partir de ella se activa una estructura compleja de intervenciones de los miembros de la comunidad que responden, opinan, replantean, refinan, etc. Ello da lugar al uso de diferentes medidas de similitud entre preguntas y otras preguntas, entre preguntas y respuestas, entre distintas respuestas, etc. Obviamente las medidas son diferentes para las diferentes sub-tareas. Recientemente nuestro grupo participó en una competición de CQA en el marco de SemEval 2016 en la que existía la dificultad añadida de que los textos se comparaban en la lengua original, el árabe, y su traducción al inglés.

Tanto la STS como la QA son aproximaciones parciales a la comprensión del lenguaje natural (NLU: Natural Language Understanding), que consisten en que un programa pueda leer un texto y construir a partir de él una representación conceptual de su significado. Si dos textos tienen el mismo significado, o significados parecidos, tendrán representaciones conceptuales similares. Pero dicha representación puede usarse para otras aplicaciones (traducción, resumen, etc.). El futuro sin duda traerá investigaciones en esta dirección, que combinarán Deep Learning y grandes recursos semánticos online para la comprensión automática del lenguaje. Quizá HAL no esté tan lejos…

Dr. Lluís Padró, Dr. Horacio Rodríguez Hontoria, investigadores del Centro Tecnologías del Lenguaje y del Habla (TALP UPC), y Aitor González del Grupo de investigación IXA