Logotipo de Zephyrnet

La IA te está hablando. Pero, ¿entiende lo que dice?

Fecha:

Digamos que estás en una habitación, solo.

Miras alrededor. La habitación no tiene ventanas ni puertas, solo una pequeña ranura en una de las paredes y estantes llenos de libros y tomos. Están llenos de símbolos extraños y acompañados de instrucciones en inglés que te ayudarán a convertirlos en otros nuevos e igualmente extraños.

Finalmente, un trozo de papel cae por la ranura. Contiene una serie de símbolos que no comprendes, similares a los que encontraste en los libros. Recorre todas las páginas de todos los libros hasta encontrar los caracteres que coinciden y sigue las instrucciones, que le indican qué escribir debajo del mensaje original y deslizar el papel por la ranura, lo que hace.

Esos no son símbolos sin sentido garabateados en una hoja de papel. Al otro lado de la sala, hay hablantes nativos de chino, que acaban de recibir una respuesta perfecta a la pregunta que hicieron. Naturalmente, concluyen que hay un hablante nativo de chino en la otra habitación. Solo nosotros sabemos que este no es el caso.

Esta es la Habitación China, un experimento mental muy debatido propuesto en 1980 por el filósofo John Searle. En el experimento, los libros no son diccionarios chino-inglés; en ningún momento intentan explicar el significado de los símbolos. Simplemente le dan instrucciones sobre cómo tomar una entrada, manipular los personajes en función de sus relaciones entre sí y proporcionar una salida. Los libros actúan como un programa de computadora.

Searle argumentó que la prueba de Turing no era una prueba confiable para la inteligencia de las máquinas. Cualquier programa de IA eficaz podría eventualmente aprender las reglas que gobiernan un idioma en particular y dar la ilusión de que tiene el mismo conocimiento que un hablante nativo.

Estas interacciones entre las computadoras y los lenguajes humanos están en el centro del campo del procesamiento del lenguaje natural, o PNL. Reconocimiento de voz, resumen de texto, análisis de opiniones, traducción automática: la PNL está en todas partes. Y ha visto mejoras masivas desde los años 80. Aunque todavía hay suficientes traducciones automáticas humorísticas para todos, hemos recorrido un largo camino desde los días de babelpeces. Nosotros, especialmente yo, un yanqui monolingüe que vive en Lisboa, damos por sentado el acceso a traducciones rápidas y bastante precisas.  

¿Alguna vez te has preguntado cómo los programas de computadora pueden procesar palabras?

Después de todo, incluso las oraciones más simples pueden ser campos de minas semánticos, llenos de connotaciones y matices gramaticales que solo los hablantes nativos pueden entender instantáneamente. Tomemos, por ejemplo, la siguiente oración: "Ayer fui al banco y me encontré con mi amigo". ¿Cómo podría una computadora traducir esto al francés? La forma más cruda, quizás, sería un reemplazo palabra por palabra con un diccionario bilingüe. Probablemente terminaríamos con la traducción, "Hier, je allé à le banque et couru dans mon ami". Para empezar, hay problemas de conjugación de verbos y concordancia de género entre el artículo y el sustantivo (“le banque” debería ser “la banque”). Pero si realmente quisiéramos traducir de esta manera, podríamos idear un conjunto de reglas que se encargarían de estos problemas gramaticales. Después de implementarlos, podríamos terminar con la siguiente traducción: "Hier, je suis allé à la banque et j'ai couru dans mon ami". Definitivamente una mejora, pero, en esta versión, todavía estoy atacando a mi amigo como un tackle defensivo.

En el momento de escribir este artículo, Google Translate, que no es exactamente conocido por su traducción perfecta, nos da esto: "Hier, je suis allé à la banque et suis tombé sur mon ami". Traduce correctamente la expresión idiomática que significa conocer a alguien inesperadamente. Este no puede ser el trabajo de reemplazo palabra por palabra solo.

Entonces, ¿qué está pasando aquí? Primero debemos considerar la forma en que los humanos aprendemos a resolver la ambigüedad verbal. Cuando experimentamos suficientes ejemplos de niños, comenzamos a asignar un valor semántico a las palabras, y a abstraer y extrapolar estos valores semánticos dadas combinaciones de palabras. En términos más simples, sin que se nos enseñe explícitamente, entendemos qué significan las palabras y cómo se ven afectadas por su contexto. Refiriéndonos al ejemplo anterior del inglés al francés, nuestro primer instinto es pensar que nos encontramos con nuestro amigo y no que chocamos con él. Tenemos experiencias del mundo físico y toda una vida de aportes lingüísticos que nos ayudan a poner las cosas en contexto.

¿Qué significan las palabras y frases para una computadora, que solo puede entender ceros y unos?

Aunque las computadoras no pueden realmente "entender" el lenguaje en un sentido humanocapacitarlos para generar información útil a partir del texto no es tan diferente de nuestra propia experiencia de adquisición del lenguaje. Muestre a una computadora suficientes ejemplos y comenzará a reconocer patrones. Pero, ¿cuál es el sustituto del entendimiento humano? Incrustaciones de palabras, las unidades fundamentales de cualquier tarea de procesamiento del lenguaje natural.

La incrustación de una palabra es esencialmente una secuencia de números, un vector, que almacena información sobre el significado de la palabra.

El objetivo de crear incrustaciones de palabras es doble: mejorar otras tareas de PNL, como la traducción automática, o analizar similitudes entre palabras y grupos de palabras.

Debido a una serie de avances en los métodos de inserción de palabras, 2018 ha sido aclamado como la edad de oro de la PNL. Estos nuevos métodos produjeron mejoras significativas en nuestra capacidad para modelar el lenguaje, que pronto debería manifestarse tanto en los productos de consumo como en las empresas.

Veamos un ejemplo simple para tener una idea de lo que es una palabra incrustada.

Supongamos que queremos crear incrustaciones de palabras bidimensionales (es decir, cada palabra está representada por un conjunto de dos números) para ciertos animales: hipopótamo, serpiente, mariposa, ornitorrinco. Además, supongamos que nuestras dos dimensiones representan dos características que los animales pueden exhibir en diversos grados: "peligrosidad" y "peluquería".

Las incrustaciones de palabras falsas para estos animales pueden ser las siguientes:

Animal peligroso Peludo
Hipopótamo 0.85 0.13
Snake 0.88 -0.97
Mariposa -0.91 -0.86
Ornitorrinco 0.61 0.79

En este ejemplo, "hipopótamo" está representado por el vector [0.85, 0.13], la serpiente por [0.88, -0.97], y así sucesivamente. Ahora tenemos una representación numérica, aunque muy simplificada, de cada uno de estos animales en términos de estas dos características. Se pueden realizar todo tipo de operaciones matemáticas en estos vectores para darnos nueva información.

Un ejemplo citado con frecuencia que destaca el poder de las operaciones de incrustación de palabras es Bookinghombre
+
mujer = kraliçe. En este diagrama, se podría decir que las flechas azules representan el género y las flechas naranjas la realeza.

Una de esas operaciones es la comparación. ¿Qué tan similar es una palabra a otra? En nuestro ejemplo con los animales, podemos imaginar la representación numérica de "hipopótamo", "serpiente", "mariposa" y "ornitorrinco" en un gráfico 2D, como una línea que se extiende desde el origen y pasa por los puntos indicados por el números. Por tanto, la similitud de estas palabras se puede determinar por el ángulo entre sus vectores (a esto lo llamamos similitud de coseno). Esencialmente, las palabras que están separadas por un ángulo de 90 ° no tienen relación semántica, mientras que las palabras que están separadas por un ángulo de 180 ° son exactamente opuestos.

En este ejemplo, la distancia entre el hipopótamo y el ornitorrinco es de unos 16 °, mientras que la distancia entre el hipopótamo y la mariposa es de 104 °.

Por supuesto, este es solo un ejemplo divertido e hipotético, simplemente resaltando qué son las incrustaciones de palabras y comenzando a describir cómo podrían ser útiles. En la práctica, se utilizan vectores de dimensiones mucho más altas (típicamente en cientos), y tratar de asignar campos semánticos como "peligroso" y "peludo" a estas dimensiones sería difícil e injusto, ya que el algoritmo no realmente sabes qué el significado de las palabras. Además, se necesitan corpus muy grandes del orden de decenas de millones de palabras para "aprender" incrustaciones de palabras satisfactorias.

Pero primero, necesitamos tocar rápidamente un campo de la lingüística llamado semántica distributiva.

Las incrustaciones de palabras capturan eficientemente algo llamado "hipótesis distributiva", resumido acertadamente por el lingüista británico John Rupert Firth en su trabajo de 1957, Una sinopsis de la teoría lingüística:

"Sabrás una palabra por la compañía que mantiene".

El campo de la semántica distributiva postula que las palabras y frases que ocurren en contextos similares (distribuciones similares) tienen significados similares.

Por ejemplo, supongamos que tenemos un corpus de varias oraciones:

  • Acarició al perro peludo.
  • Acarició al gato peludo.
  • Jugó a buscar con el perro.

Para un ser humano, es inmediatamente evidente que los gatos y los perros están relacionados (ambas mascotas), mientras que "acariciar" y "jugar a buscar" están relacionados (ambas actividades de las mascotas). Pero también es evidente de inmediato que no se puede hacer que un gato juegue a buscar, ¡aunque no por falta de intentos!

Los métodos computacionales de incrustación de palabras aprovechan esta idea: que el contexto de una palabra puede ayudarnos a decirnos qué significa la palabra si hemos visto una cantidad suficiente y variedad de ejemplos.

Esto finalmente nos lleva a los algoritmos reales para calcular incrustaciones de palabras, como Word2Vec, introducido por Tomas Mikolov y sus colegas investigadores en Google, en 2013. La idea principal detrás del algoritmo es predecir, para cualquier palabra dada, términos vecinos, usando mucho texto como datos de entrenamiento.

Volvamos a una ligera variación de nuestra frase original: "Ayer fui al banco y leí el periódico".

Con Word2Vec, primero queremos definir una ventana de contexto de palabras, digamos dos. Entonces, para cada palabra en nuestros datos de entrenamiento, miraremos las dos palabras anteriores y las dos posteriores y crearemos pares con la palabra actual y cada una de las cuatro palabras de contexto. La palabra central es la entrada y la palabra de contexto es la salida, donde queremos usar la palabra de entrada para predecir la palabra de salida.

Por ejemplo, si nuestra palabra central es "banco", los pares de entrenamiento son: (banco, a), (banco, el), (banco y), (banco, I).

Este proceso de creación de pares se repite para cada palabra de la oración, y el uso de la palabra de entrada para predecir la palabra de salida de cada par es lo que finalmente genera las incrustaciones de palabras.

Si puede imaginar que tenemos millones de líneas de texto para entrenar, se producirán emparejamientos más comunes con mayor frecuencia en estos ejemplos, lo que hará que el modelo tenga más probabilidades de aprender estas combinaciones. Incluso en esta única oración podemos ver que (banco, el) / (periódico, el) y (fui, yo) / (leer, yo) son pares similares, ya que siguen los paradigmas sustantivo-artículo y pronombre de verbo-sujeto, respectivamente.

El siguiente paso es transformar estas palabras en vectores distributivos, como en el ejemplo de los animales, donde los números tienen significado entre sí.

Para hacer esto, revisamos cada par de entrenamiento que hemos creado y aplicamos el siguiente procedimiento. Primero inicializamos la incrustación de la palabra de entrada como un vector de números aleatorios. Luego, se aplica una serie de funciones matemáticas al vector. El resultado de estas operaciones es otro vector que a su vez representa una palabra, que queremos que sea la palabra de salida de nuestro par de entrenamiento. Si la palabra predicha no es nuestra palabra de salida, ajustamos ligeramente los números de la palabra de entrada incrustada para que el resultado de las operaciones se parezca más al vector de la palabra de salida.

En este ejemplo, nuestro par de entrenamiento es (banco, el). Después de aplicar las funciones de salida a la incrustación de palabras para "banco" (en naranja), miramos el vector de palabras predichas (verde) para ver si corresponde a la palabra de destino, "el". Finalmente, modificamos la incrustación naranja de "banco" para que el vector predicho verde esté más cerca de "el".

Actualizamos estas incrustaciones de palabras para maximizar la probabilidad de que, dada una palabra de entrada, la palabra de salida producida aparezca con frecuencia como una palabra de contexto en los datos. Las palabras similares tendrán contextos similares y, por lo tanto, incorporaciones de palabras similares.

Para resaltar la robustez de estos modelos, aquí hay algunos ejemplos del original presentando Word2Vec.

Relación familiar Exa
ejemplo 1
ejemplo 2 ejemplo 3
Francia: París Italia: Roma Japón: Tokio Florida: Tallahassee
Einstein: científico Messi: centrocampista Mozart: violinista Picasso: pintor
Microsoft: Ballmer Google: yahoo IBM: Mc Nealy Apple: Empleos

Nota: como puede verse, la precisión es bastante buena, aunque claramente hay mucho margen para mejoras adicionales.

Mediante incrustaciones de palabras, podemos pedirle al modelo que realice analogías como "¿Francia es para París como Italia es para ___?" Mientras que la computadora todavía no entender , es como si supiera que Roma es la capital de Italia y que Picasso fue pintor. Basado en la hipótesis distributiva, traduciría el nombre “Steve Jobs” como “Steve Jobs” en un artículo de tecnología, pero “trabajos” como “empleos” en un informe económico. Detectaría que no derribé a mi amigo al suelo; Simplemente me la encontré en el banco.

Utilizando este tipo de técnica de incrustación de palabras, hemos visto resultados sorprendentes en diferentes tareas, como el análisis de sentimientos, la generación de texto y, lo más importante para Unbabel, la traducción automática.

Sin embargo, El problema del lenguaje de la IA no se resuelve Estamos lejos de lograr que las computadoras alcancen una verdadera comprensión del lenguaje natural. Después de todo, el lenguaje es una actividad inherentemente humana, que distingue a nuestra inteligencia. Se necesita una mezcla de abstracción y asociación, interacción con el mundo físico que nos rodea y quizás un poco de ingenio humano, algo que tenemos en abundancia pero que la IA carece.

En la búsqueda de máquinas verdaderamente inteligentes, es difícil imaginar un sistema de inteligencia artificial complejo que no tenga el lenguaje en su núcleo. Pero a pesar de lo que algunas compañías y titulares te hagan creer, eso no va a suceder pronto.

Fuentes:

Herbelot, A. Semántica distributiva: una introducción ligera. https://aurelieherbelot.net/research/distributional-semantics-intro/.

McCormick, C. (2016 de abril de 19). Tutorial de Word2Vec: el modelo Skip-Gram. Obtenido de http://www.mccormickml.com

Mikolov, T. y col. Estimación eficiente de representaciones de palabras en el espacio vectorial. 2013. https://arxiv.org/pdf/1301.3781.pdf. Mikolov, T. y col. Representaciones distribuidas de palabras y frases y su composicionalidad. 2013. https://arxiv.org/pdf/1301.3781.pdf.

Fuente: https://unbabel.com/blog/ai-talking-understanding/

punto_img

Información más reciente

punto_img