Buenas, esto es BIMPRAXIS, el podcast donde el
BIM se encuentra con la inteligencia artificial.
Exploramos la ciencia, la tecnología y el futuro
desde el enfoque de la arquitectura,
ingeniería y construcción.
¡Empezamos! Hola y bienvenidos.
Gracias por acompañarnos en este nuevo episodio del
podcast de BIMPRAXIS.
Hoy vamos a meternos en un tema que,
hasta hace no mucho, sonaba a ciencia ficción,
pura y dura.
¿Cómo es posible que una máquina entienda el
significado de una palabra?
No que la reconozca o la repita,
sino que entienda su esencia,
su relación con otras.
Es una pregunta fascinante, la verdad.
La distancia entre ellas representa la similitud de
su significado.
Entiendo. Es como un mapa conceptual,
pero generado matemáticamente.
Pero aquí me surge una duda.
Un mapa normal tiene dos dimensiones,
tres a lo sumo.
Pero en las fuentes se habla de espacios
de 100, 300 o incluso más dimensiones.
¿Cómo se mide la distancia ahí?
No puedes usar una regla, ¿no?
Esa es la pregunta clave.
Y la respuesta es sorprendentemente elegante.
En lugar de medir la distancia en línea
recta, que puede ser engañosa en tantas dimensiones,
lo que se mide es el ángulo entre
los vectores.
¿El ángulo?
Sí. El artículo de IBM lo detalla muy
bien, con el concepto de similitud del coseno.
Imagina dos flechas que parten del mismo punto,
se apuntan casi en la misma dirección,
el ángulo entre ellas es muy pequeño y
su similitud del coseno es cercana a 1.
Lo que significa que son semánticamente parecidas.
Justo. Ah, claro.
Así que océano y mar serían dos vectores
con un ángulo minúsculo entre ellos.
Precisamente. Si los vectores son perpendiculares,
un ángulo de 90 grados,
su similitud es cero.
No tienen nada que ver,
como democracia y tornillo, y se apuntan en
direcciones opuestas, las similitudes menos uno,
lo que indicaría que son antónimos.
Vale, es una forma muy eficiente de capturar
estas relaciones complejas, sin importar las dimensiones.
Eso es. El modelo aprende a orientar los
vectores según el significado que extrae del texto.
Y ese es el siguiente paso.
¿Cómo aprende la máquina a crear este mapa,
porque alguien no se sienta a colocar río
cerca del agua a mano?
Las fuentes dicen que el truco está en
alimentarlo con cantidades masivas de texto.
Con toda la Wikipedia, por ejemplo.
Claro. Ahí entra en juego lo que se
conoce como la hipótesis distribucional,
una idea que es la base de todo
esto, y que se resume en una frase
famosa.
Sabrás lo que es una palabra por las
compañías que frecuenta.
Me gusta esa frase.
El modelo no aprende conceptos. Aprende relaciones.
La relación entre hombre y mujer es un
cierto vector, una dirección y una distancia en
ese espacio.
Y resulta que esa misma flecha vectorial es
la que conecta rey con reina o tío
con tía.
El modelo captura la relación masculino-femenino como una
dirección constante.
Fascinante. Y lo que es más increíble,
y esto lo detallan en el paper,
es que no se limita a analogías semánticas.
También captura relaciones sintácticas.
Por ejemplo, la relación entre caminar y caminando
es el mismo vector que la que hay
entre correr y corriendo.
O sea, captura el concepto de gerundio.
Justo. Para probar esto, los autores crearon un
conjunto de pruebas con miles de estas preguntas
de analogías.
Por primera vez, se podía medir objetivamente la
calidad del conocimiento semántico de un modelo.
Diendo lo de Word2Vec y su análisis del
contexto cercano, pero me da la sensación de
que se está perdiendo información al mirar solo
una ventana de unas pocas palabras a la
vez.
Absolutamente. Y esa es precisamente la idea que
el equipo de la Universidad de Stanford exploró
con su modelo GLOBE, que son las siglas
de Global Vectors.
Vectores globales. Exacto.
Mientras Word2Vec aprende de forma indirecta,
prediciendo palabras en contextos locales,
GLOBE ataca el problema de frente.
Construye primero una matriz gigantesca de coocurrencias. Básicamente,
cuenta cuántas veces aparece cada palabra junto a
cualquier otra palabra en todo el corpus.
Por ejemplo, contará que hielo y frío aparecen
juntas muy a menudo, mientras que hielo y
fuego aparecen juntas con menos frecuencia,
aunque siguen teniendo una relación.
Su objetivo es que los vectores generados reproduzcan
las proporciones de esas probabilidades de coocurrencia.
Le da una base estadística muy sólida y
robusta. Muchísimo más, vale.
Un enfoque diferente para llegar a un resultado
similar.
Y las fuentes mencionan un tercer modelo, FastText,
de Facebook.
Este parece que introduce una idea interesante,
no mirar solo la palabra entera.
Sí, esa fue su gran aportación.
FastText descompone las palabras en sus partes,
en n-gramas de caracteres.
Por ejemplo, la palabra planeta la descompone en
pla, lan, ane, net, eta,
además de la palabra completa.
Y esto tiene dos ventajas enormes.
Así es.
Sirve para palabras que no ha visto nunca.
El topográfico no se queda en blanco.
Puede inferir su significado a partir de las
partes que sí conoce.
Claro, como si aprendiera las letras de las
palabras.
Justo. Por eso, si se encuentra con una
palabra inventada como caminanteando, aunque no la haya
visto nunca, puede intuir que tiene que ver
con caminar o caminante.
Y la segunda ventaja, que mencionan los artículos,
es especialmente útil para un idioma como el
español, con tantas conjugaciones y derivaciones.
Totalmente. Para un modelo como Word2Vec, correr,
corría y corredor son tres palabras totalmente distintas.
FastText, al compartir los n-gramas de caracteres,
entiende que están intrínsecamente relacionadas y sus vectores
estarán mucho más cerca.
Es una forma de entender la morfología.
Sin embargo, todos estos modelos, Word2Vec, Glove, FastText,
comparten una limitación fundamental.
Crean representaciones estáticas. Es decir,
la palabra banco tiene un único vector,
un único punto en el mapa,
sin importar si hablo del banco de un
parque, de un banco de peces o de
un banco para sacar dinero.
Y ese es el problema.
El significado de una palabra depende totalmente del
contexto.
Necesitábamos modelos que generaran vectores dinámicos, contextuales.
Exactamente. Ahí es donde entra en escena el
nombre que cambió todo. BERT,n-gramas
desarrollado por Google en 2018.
El artículo original de BERT es denso,
pero la idea central que lo diferencia de
todo lo anterior es que es profundamente bidireccional.
¿Y qué significa eso en la práctica?
Pues significa que lee como lo haría un
humano.
Los modelos anteriores, incluso los más avanzados de
la época, como GPT, eran unidireccionales.
Para entender una palabra, solo miraban el texto
que venía antes, de izquierda a derecha.
Claro, no podían esperar al final de la
frase para entender el principio.
Era un problema. Lo que hizo BERT,
y esto es lo que su artículo describe
como la clave de su éxito,
fue forzar al modelo a mirar en ambas
direcciones a la vez.
Para ello, inventaron una tarea de entrenamiento muy
ingeniosa llamada Masked Language Model.