Un artículo que explica la intuición detrás de la "incrustación posicional" en los modelos de transformadores del renombrado trabajo de investigación: "La atención es todo lo que necesita".
La introducción de la arquitectura transformadora en el campo del aprendizaje profundo, sin duda, ha allanado el camino para la revolución silenciosa, especialmente en las ramas de la PNL. Una de las partes más integrales de la arquitectura del transformador es la "incrustación posicional" , que brinda a las redes neuronales la capacidad de comprender el orden de las palabras y sus dependencias en una oración larga.
Sin embargo, sabemos que RNN y LSTM, que se introdujeron mucho antes de que los transformadores tuvieran la capacidad de comprender el orden de las palabras incluso sin incrustación posicional. Entonces, tendría una duda obvia de por qué se introdujo este concepto en los transformadores y la ventaja real detrás de instigar esta noción. Conceptualicemos toda esta información en este artículo.
La incrustación es un proceso utilizado en el procesamiento del lenguaje natural para convertir texto sin procesar en vectores matemáticos. Esto se debe a que un modelo de aprendizaje automático no podrá consumir directamente una entrada en formato de texto para los diversos procesos computacionales internos.
El proceso de incrustación realizado por algoritmos como Word2vec, Glove, etc. se denomina incrustación de palabras o incrustación estática.
Aquí, un corpus de texto grande que contiene muchas palabras se pasa dentro de un modelo para el proceso de entrenamiento. El modelo asignará un valor matemático correspondiente a cada palabra suponiendo que las palabras que aparecen cerca unas de otras con mayor frecuencia son similares. Después de este proceso, los valores matemáticos derivados se utilizan para cálculos posteriores.
Por ejemplo,
Considere que nuestro cuerpo de texto tenía 3 oraciones como se menciona aquí:
Aquí, podemos ver que las palabras "Rey" y "Reina" aparecen con frecuencia. Por lo tanto, el modelo asumirá que podría haber algunas similitudes entre estas palabras. Cuando estas palabras se transformen en valores matemáticos, se colocarán a una pequeña distancia cuando se representen en un espacio multidimensional.
Fuente de la imagen: Ilustrado por el autor
Imagine que hay otra palabra "Road", entonces, lógicamente, no aparecerá con más frecuencia con "King" y "Queen" en un corpus de texto grande. Por lo tanto, esa palabra se colocará muy separada en el espacio.
Fuente de la imagen: Ilustrado por el autor
Matemáticamente, un vector se representa usando una secuencia de números donde cada número representa la magnitud de la palabra en una dimensión particular.
Por ejemplo,
Aquí representamos la palabra “Rey” en 3 dimensiones. Por lo tanto, se puede representar hipotéticamente en un espacio [0.21,0.45,0.67] .
La palabra "Reina" se puede representar hipotéticamente como [0.24,0.41,0.62] .
La palabra "Road" se puede representar hipotéticamente como [0.97,0.72,0.36] .
Como discutimos en la parte de introducción, la necesidad de la incrustación posicional es hacer que la red neuronal comprenda el orden y la dependencia posicional en la oración.
Por ejemplo, consideremos las siguientes oraciones:
Oración 1 : "Aunque Sachin Tendulkar no cumplió un siglo hoy, llevó al equipo a una posición ganadora".
Oración 2 : "Aunque Sachin Tendulkar cumplió un siglo hoy, no pudo llevar al equipo a una posición ganadora".
Ambas oraciones se ven similares ya que comparten la mayoría de las palabras, pero el significado intrínseco de ambas es muy diferente. El orden y la posición de una palabra como "no" han cambiado todo el contexto de la información que se transmite aquí.
Por lo tanto, comprender la información posicional es muy importante al trabajar en proyectos de PNL. Si el modelo malinterpreta el contexto al usar solo los números en un espacio multidimensional, puede llevarnos a graves consecuencias, especialmente en modelos predictivos.
Para superar este desafío, se introdujeron arquitecturas de redes neuronales como RNN (red neuronal recurrente) y LSTM (Memoria a corto plazo a largo plazo). Hasta cierto punto, estas arquitecturas tuvieron mucho éxito en la comprensión de la información posicional. El principal secreto detrás de su éxito es que intentan aprender oraciones largas conservando el orden secuencial de las palabras. Además de eso, tendrán información sobre las palabras que se colocan muy cerca de la “palabra de interés” y las palabras que se colocan muy lejos de la “palabra de interés”.
Por ejemplo,
Considere la siguiente oración-
“Sachin es el mejor jugador de críquet de todos los tiempos”.
Fuente de la imagen: Ilustrado por el autor
Las palabras subrayadas con color rojo es la "palabra de interés". Es la palabra que la red neuronal (RNN/LSTM) intenta aprender a través de procesos matemáticos complejos como la incrustación. Podemos ver aquí que la “palabra de interés” se recorre secuencialmente como en el texto original.
Además, pueden memorizar la dependencia entre las palabras al recordar las "palabras de contexto" . Aquí, las palabras de contexto son aquellas que se colocan cerca de la “palabra de interés”. Como una simple demostración, podemos considerar las palabras de contexto como las palabras subrayadas con el color verde en la siguiente imagen mientras aprendemos cada “ palabra de interés” .
Fuente de la imagen: Ilustrado por el autor
A través de estas técnicas, RNN/LSTM puede comprender la información posicional en un gran corpus de texto.
Todos van bien. ¿Derecha?
Entonces, ¿cuál es el verdadero problema aquí?
El verdadero problema es el desplazamiento secuencial de las palabras en un gran corpus de texto. Imagine que tenemos un corpus de texto realmente grande con 1 millón de palabras, tomará mucho tiempo recorrer secuencialmente cada una de las palabras. A veces, no es factible permitirse tanto tiempo de cálculo para entrenar los modelos.
Para superar este desafío, se introdujo una nueva arquitectura avanzada: "Transformadores".
Una de las características importantes de la arquitectura transformadora es que puede aprender un corpus de texto procesando todas las palabras en paralelo. Incluso si tiene 10 palabras o 1 millón de palabras, realmente no le importa la longitud del corpus.
Fuente de la imagen: Ilustrado por el autor
Fuente de la imagen: Ilustrado por el autor
Ahora, hay un desafío asociado con este procesamiento paralelo de palabras. Dado que se accede a todas las palabras simultáneamente, la información de dependencia se perderá. Por lo tanto, el modelo no podrá recordar el "contexto" de una palabra en particular y la información sobre la relación entre las palabras no se podrá conservar con precisión. Este problema nos lleva de nuevo al reto inicial de preservar la dependencia contextual aunque el tiempo de cálculo/entrenamiento del modelo se reduce considerablemente.
Ahora bien, ¿cómo podemos abordar esta situación?
La solución es "Incrustación posicional".
Inicialmente, cuando se introdujo este concepto, los investigadores estaban ansiosos por derivar un método optimizado que pudiera preservar la información posicional en una arquitectura de transformador.
El primer método probado como parte de este experimento de prueba y error fue "Incrustación posicional basada en el Índice de palabras" .
Aquí, la idea era introducir un nuevo vector matemático junto con este vector de palabra que puede contener el índice de una palabra en particular.
Fuente de la imagen: Ilustrado por el autor
Supongamos que esta es la representación de las palabras en el espacio multidimensional.
Fuente de la imagen: Ilustrado por el autor
Después de agregar el vector posicional, la magnitud y la dirección pueden cambiar la posición de cada palabra de esta manera:
Fuente de la imagen: Ilustrado por el autor
Una de las grandes desventajas asociadas con esta técnica es que si la longitud de la oración es muy grande, la magnitud del vector posicional también aumentará proporcionalmente. Digamos que una oración tiene 25 palabras, entonces la primera palabra se agregará con un vector posicional con una magnitud de 0 y la última palabra se agregará con un vector posicional con una magnitud de 24. Esta gran disparidad podría causar un problema cuando están proyectando estos valores en dimensiones superiores.
Otra técnica que intenta reducir la gran magnitud del vector posicional es la “incrustación posicional basada en la fracción de longitud de la oración” .
Aquí, el valor fraccionario de cada palabra con respecto a la longitud de la oración se calcula como una magnitud del vector posicional.
El valor fraccionario se calcula usando la fórmula-
Valor = 1/N-1
Por ejemplo,
Consideremos esta oración-
Fuente de la imagen: Ilustrado por el autor
En esta técnica, la magnitud máxima del vector posicional se puede acotar a 1 independientemente de la longitud de la oración. Pero, hay una gran laguna en este sistema.
Si estamos comparando 2 oraciones con diferentes longitudes, el valor de incrustación de una palabra en una posición particular será diferente. Una palabra o posición en particular debe poseer el mismo valor de incrustación en todo el corpus de texto para facilitar la comprensión de su contexto. Si la misma palabra en varias oraciones posee diferentes valores de incrustación, representar la información de todo el corpus de texto en un espacio multidimensional se convertirá en una tarea muy compleja. Incluso si logramos un espacio tan complejo, existe una alta probabilidad de que el modelo colapse en algún momento debido a la distorsión de demasiada información. Por lo tanto, esta técnica se eliminó del progreso posterior para la integración posicional en transformadores.
Finalmente, los investigadores idearon un sistema de "incrustaciones posicionales basadas en frecuencia" que recibió elogios de la crítica en todo el mundo y finalmente se incorporó a la arquitectura del transformador y se mencionó en el renombrado libro blanco: "Todo lo que necesita es atención" .
De acuerdo con esta técnica, los investigadores recomiendan una forma única de incrustar las palabras en función de la frecuencia de onda utilizando la siguiente fórmula:
Fuente de la imagen: Ilustrado por el autor
Dónde,
Fuente de la imagen: Ilustrado por el autor
Fuente de la imagen: Ilustrado por el autor
Fuente de la imagen: Ilustrado por el autor
Dado que la altura de la curva depende de la posición de la palabra representada en el eje x, la altura de la curva se puede utilizar como indicador de las posiciones de las palabras.
Si 2 palabras tienen una altura similar entonces podemos considerar que su proximidad en la oración es muy alta.
De manera similar, si 2 palabras tienen alturas drásticamente diferentes, podemos considerar que su proximidad en la oración es muy baja.
De acuerdo con nuestro texto de ejemplo: "Sachin es un gran jugador de críquet" ,
Para la palabra “Sachin” ,
Al aplicar la fórmula,
Fuente de la imagen: Ilustrado por el autor
Para i = 0,
PE(0,0) = sin(0/10000^2(0)/3)
PE(0,0) = sen(0)
PE(0,0) = 0
Para i = 1,
PE(0,1) = coseno(0/10000^2(1)/3)
PE(0,1) = cos(0)
PE(0,1) = 1
Para i = 2,
PE(0,2) = pecado(0/10000^2(2)/3)
PE(0,2) = sen(0)
PE(0,2) = 0
Para la palabra "Grande",
Al aplicar la fórmula,
Fuente de la imagen: Ilustrado por el autor
Para i = 0,
PE(3,0) = pecado(3/10000^2(0)/3)
PE(3,0) = sen(3/1)
PE(3,0) = 0,05
Para i = 1,
PE(3,1) = cos(3/10000^2(1)/3)
PE(3,1) = cos(3/436)
EP(3,1) = 0,99
Para i = 2,
PE(3,2) = pecado(3/10000^2(2)/3)
PE(3,2) = sen(3/1.4)
EP(3,2) = 0,03
Fuente de la imagen: Ilustrado por el autor
Aquí, el valor máximo se limitará a 1 (ya que estamos usando funciones sin/cos). Por lo tanto, no hay margen para vectores posicionales de gran magnitud, lo que era un problema en técnicas anteriores.
Además, las palabras con una gran proximidad entre sí pueden caer a alturas similares en frecuencias más bajas y su altura será un poco diferente en frecuencias más altas.
Si las palabras tienen poca proximidad entre sí, su altura será muy diferente incluso en frecuencias más bajas y su diferencia de altura aumentará a medida que aumente la frecuencia.
Por ejemplo,
Considere la oración: "El rey y la reina caminan por el camino".
Las palabras "Rey" y "Camino" se colocan muy separadas.
Considere que estas 2 palabras tienen alturas aproximadamente similares después de aplicar la fórmula de frecuencia de onda. Cuando alcancemos frecuencias más altas (como 0), sus alturas serán más diferentes.
Fuente de la imagen: Ilustrado por el autor
Fuente de la imagen: Ilustrado por el autor
Fuente de la imagen: Ilustrado por el autor
Las palabras "Rey" y "Reina" se colocan a una distancia cercana.
Estas 2 palabras se colocarán a una altura similar en frecuencias más bajas (como 2 aquí). Cuando alcanzamos frecuencias más altas (como 0), su diferencia de altura habría aumentado un poco para la diferenciación.
Fuente de la imagen: Ilustrado por el autor
Pero debemos tener en cuenta que si las palabras tienen menos proximidad, sus alturas diferirán drásticamente cuando progresemos a frecuencias más altas. Si las palabras tienen una gran proximidad, sus alturas diferirán solo un poco cuando progresemos a frecuencias más altas.
A través de este artículo, espero que tenga una comprensión intuitiva de los complejos cálculos matemáticos detrás de la incrustación posicional en el aprendizaje automático. En resumen, discutimos la postulación detrás del concepto de "Embedding", algunos de sus diversos tipos y la necesidad de implementar la inserción posicional para lograr ciertos objetivos.
Para los entusiastas de la tecnología cuyo área de interés es el "procesamiento del lenguaje natural", creo que este contenido será útil para comprender algunos de los cálculos sofisticados en pocas palabras. Para obtener información más detallada, puede consultar el renombrado trabajo de investigación: "Todo lo que necesita es atención" (he agregado la ul para acceder a este trabajo de investigación en la sección de referencia).