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

El Deep Learning revoluciona las tecnologías del habla

Hablar e interactuar con las máquinas en cualquier idioma ha sido  uno de los objetivos de los expertos en tecnologías del lenguaje. No es algo nuevo, pero cada vez más este tipo de tecnologías se está extendiendo a nivel de usuario.

La nueva generación de sistemas de reconocimiento del habla y también de procesado del lenguaje natural ya han empezado a llegar a los usuarios a través de mejoras en los asistentes personales (por ejemplo Apple Siri, Google Now, Microsoft Cortana) o mediante nuevos productos como el traductor de voz de Skype o el altavoz inteligente Amazon Echo.

grafico 1

Fig. 1: Esquema genérico de una red neuronal

El Deep Learning (los algoritmos que intentan reproducir las mecánicas del cerebro humano en la codificación y decodificación de mensajes y permiten el auto aprendizaje) no es más que la evolución de las clásicas redes neuronales. Pero su uso masivo parece estar reinventando el desarrollo y la investigación en diversos ámbitos como el tratamiento de la imagen, el procesado del lenguaje y las tecnologías del habla. Las redes neuronales son sistemas de aprendizaje que utilizan unidades matemáticas relativamente sencillas, denominadas neuronas, que trabajan interconectadas, creando así varias capas (ver Fig. 1). Estas capas permiten diferentes niveles de abstracción y, en cierto modo, un aprendizaje más parecido al humano. Esto contrasta con las técnicas utilizadas hasta el momento, como las estadísticas, donde se aprende de los datos, al igual que con Deep Learning, pero sin considerar abstracciones.

Las redes neuronales existen desde los años 50, pero ahora funcionan

Una pregunta común es por qué las redes neuronales artificiales (una técnica matemática que se remonta a los años 50) son ahora tan populares. De hecho, en 1969, Minsky & Papert definieron claramente las limitaciones de las mismas, incluyendo por un lado que las redes de una sola capa son incapaces de computar la función XOR entre dos condiciones (el resultado es verdad sólo si uno de las dos es verdad pero no ambas, ej. Juan es alto o bajo); y, por otro lado, que la capacidad computacional del momento no era suficiente para procesar redes neuronales de varias capas. El problema del entrenamiento de la función XOR se solucionó con el algoritmo de propagación inversa (Rumlelhart et al, 1986) y la capacidad computacional ha mejorado enormemente con el uso de las GPUs (Graphical Processing Units) que permiten hacer cientos operaciones al mismo tiempo. Esto sin olvidar que en 2006 se alcanzó un hito importante, que marcó la introducción del concepto Deep Learning, cuando se consiguió una manera efectiva de entrenar redes neuronales muy profundas (esto es, de varias capas) (Hinton et al., 2006). Actualmente, los algoritmos neuronales avanzan con tal rapidez que las arquitecturas particulares que hoy son efectivas puede que mañana se remplacen en beneficio de otras, lo que significa que hablamos de un campo en continua evolución.

El Uso de Deep Learning en aplicaciones del habla

De forma natural, las redes neuronales se han convertido en una herramienta para el aprendizaje automático. Así pues, las arquitecturas de múltiples capas con variedad de tipologías de redes se han utilizado satisfactoriamente para técnicas de clasificación o predicción. Recientemente este aprendizaje automático ha cruzado fronteras y ha conquistado otras áreas, de manera que el reconocimiento de voz o la traducción automática se pueden plantear como problemas de aprendizaje automático solucionables mediante determinadas arquitecturas neuronales. Veamos qué arquitecturas neuronales han resultado efectivas para campos de las tecnologías del habla como reconocimiento de voz, traducción automática y síntesis de voz.

Reconocimiento de voz y su salto de calidad

En los últimos años, los algoritmos de Deep Learning han sido la clave para obtener un salto muy significativo en las prestaciones de los sistemas de reconocimiento automático del habla. Las redes neuronales han mostrado ser una herramienta versátil capaz de modelar todos los aspectos acústicos, fonéticos y lingüísticos asociados con esta tarea. Los complejos sistemas tradicionales basados en una multitud de componentes específicos han sido ya sustituidos por estructuras genéricas de gran versatilidad y mayores prestaciones. Y año a año siguen apareciendo nuevas arquitecturas basadas únicamente en redes neuronales recurrentes (Karparthy, 2014) con mejoras significativas en la tasa de acierto.

Puede que estos nuevos sistemas no aporten conocimiento sobre la complejidad del problema, pero sí han ayudado a resolverlo. Ahora sabemos construir máquinas con una capacidad sorprendente de aprender, a partir de ejemplos, modelos tan complejos como los implicados en el reconocimiento del habla.

Traducción de texto en un solo paso

lfuentdest

Fig. 2: Auto-codificador

La traducción de texto mediante Deep Learning pasa de un lenguaje fuente a un lenguaje destino mediante una estructura de auto-codificador (Cho, 2015) (ver Fig. 2): un codificador aprende una representación (M) de los datos de entrada (lenguaje fuente, S) para luego decodificarlos a datos de salida (lenguaje destino, T).  Este auto-codificador se entrena con textos traducidos. Las palabras fuente se mapean a un espacio reducido (ver Fig. 3). Esta operación permite reducir el vocabulario y aprovechar sinergias entre palabras similares (en términos morfológicos, sintácticos y/o semánticos). Esta nueva representación de palabras se codifica en un vector resumen (una representación del lenguaje fuente que tenemos que decodificar al lenguaje destino) utilizando una red neuronal recurrente. Este tipo de redes tiene la ventaja de que ayuda a encontrar las palabras más precisas en función del contexto. La decodificación se realiza siguiendo los pasos inversos al codificador.

Recientemente, se han aplicado mejoras a esta arquitectura mediante un mecanismo de atención que permite utilizar el contexto de la palabra que está siendo traducida en lugar de usar toda la oración como tal.

grafico2

Fig. 2: Mapeado ilustrativo de palabras

 

Síntesis de voz con entonación natural en contextos largos

En la síntesis de voz se transforman frases escritas en una de las posibles formas correctas de leerlas. La tecnología más madura hasta ahora concatena segmentos pregrabados. Sin embargo, en la última década se han realizado avances en síntesis estadística (tecnología tradicional), que modela la voz mediante parámetros que definan el discurso oral (por ejemplo, las pausas o la entonación) y son aprendidos estadísticamente. Dada una frase, se seleccionan los modelos adecuados a sus fonemas y un algoritmo de generación produce lo que finalmente se transforma en la voz. Una de las primeras aplicaciones de Deep Learning ha sido generalizar la definición de los contextos: en la síntesis estadística, se define un fonema preciso según el contexto. En cambio, a través de Deep Learning, es posible encontrar los parámetros adecuados sin una definición explícita de contextos (Zen et al., 2013).

Recientemente se han utilizado redes neuronales recurrentes que modelan secuencias temporales: el propio sistema de aprendizaje aprende la continuidad del habla. Concretamente, las redes recurrentes denominadas LSTM (long short-term memory) facilitan el aprendizaje de elementos como la entonación de una pregunta o la lectura de frases relativas, que se producen en contextos de lectura largos.

Tanto los sistemas tradicionales estadísticos como los actuales no realizan una lectura que muestre todavía la comprensión del texto. Ambos basan su aprendizaje en tres elementos: algoritmos, datos y capacidad de cálculo. Los enormes avances en tratamiento de Big Data, en capacidad para ejecutar cálculos complejos y múltiples operaciones simultáneas abren nuevas perspectivas para el Deep Learning. Aumentando los datos observables y la capacidad de cálculo, ¿Podrá este paradigma modelar los intrincados procesos mentales que utilizamos en la lectura?

Lo que queda por ver

Para los escépticos, los que vieron fracasar las redes neuronales en los 80 (precursoras del actual Deep Learning) conviene explicar que las mejoras alcanzadas con las nuevas técnicas neuronales ya se han materializado en la calidad de los sistemas del habla y son revolucionarias (LeCun et al., 2015). Por ejemplo, en reconocimiento de voz se han conseguido reducciones de la tasa de error cercanas al 10% (ver TIMIT). Además, el hecho de que no se necesite diseñar las funciones que caracterizan un problema, ya que se aprenden automáticamente, ha permitido, sólo en el campo de las tecnologías del habla, ampliar retos, como son el reconocimiento de voz end-to-end (aprende una única función que permite el paso directo de voz a texto) (Hannun et al., 2014), traducción multilingüe (Firat et al., 2016), y multimodal (imagen y texto) (Elliot et al., 2015)

De izquierda a derecha: José A. R. Fonollosa, Marta R. Costa-jussà y Antonio Bonafonte.

En el Centro de Tecnologías del Lenguaje y del Habla (TALP UPC) somos pioneros en el desarrollo de la línea de investigación  sobre la granularidad de caracteres (Costa-jussà & Fonollosa, 2016). Esta técnica permite aprender la traducción de texto detectando subsecuencias de palabras con significado, como prefijos o sufijos, y reduciendo el tamaño del vocabulario. Esto aporta un alto nivel de generalización especialmente para lenguas morfológicamente flexibles, aportando un alto beneficio en la calidad de la traducción.

Puede ser que volvamos a alcanzar ciertos límites en las redes neuronales, pero estas arquitecturas ya han abierto nuevos horizontes tanto para la investigación como para una amplio abanico de aplicaciones, desde el “simple” diseño de una máquina capaz de vencer en el popular juego japonés GO, hasta el fuerte impacto que puede significar en sectores en crecimiento como la inteligencia artificial (IA), internet of things (IoT), social computing, o el reconocimiento de imagen además de los ya mencionados. Nos asomamos a la implementación de las redes neuronales en ámbitos como la industria aerospacial, la educación, las finanzas, la defensa, el e-commerce o la salud (diagnósticos, prescripción de medicamentos). Afrontamos algunas innovaciones tecnológicas que con técnicas clásicas, como la estadística, no han sido factibles o no han sido satisfactoriamente abordables, por lo que parece razonable pensar que  los sistemas neuronales han venido para quedarse algún tiempo.

¿Te unes?

Marta R. Costa-jussà, José A. R. Fonollosa y Antonio Bonafonte
Investigadors del Centre de Tecnologies i Aplicacions del Llenguatge i de la Parla (TALP UPC)