![]() |
Fuente – KDNuggets |
Si eres completamente nuevo en el campo de la PNL, te recomiendo que comiences leyendo Este artículo que toca una variedad de conceptos básicos de la PNL.
1. Un modelo de lenguaje probabilístico neural
2. Estimación eficiente de las representaciones de palabras en el espacio vectorial
Word2Vec – Modelo Skipgram
3. Representaciones distribuidas de palabras y frases y su composición
4. GloVe: vectores globales para la representación de palabras
5. Modelo de lenguaje basado en redes neuronales recurrentes
6. Extensiones del modelo de lenguaje de red neuronal recurrente
Comencemos con el número 1,
Un modelo de lenguaje probabilístico neuronal
Bengio et al. proponer una representación distribuida de las palabras para combatir la maldición de la dimensionalidad.
La maldición de la dimensionalidad proviene de usar una representación vectorial de una sola palabra igual al tamaño del vocabulario y aprender la distancia de una palabra con respecto a todas las palabras.
Por ejemplo, para modelar una distribución conjunta de 10 palabras consecutivas con un tamaño de vocabulario de 100.000 – El número de parámetros a aprender sería 1050-1.
Un idioma se puede modelar estadísticamente para representar la probabilidad condicional de la siguiente palabra dadas todas las palabras anteriores del corpus (dentro de una ventana):
Los autores señalan que la mayoría de los métodos anteriores de modelado del lenguaje adolecen del hecho de que no tienen en cuenta la “similitud” entre las palabras y se centran en la localidad temporal.
Esto ayuda a aprender la similitud semántica y gramatical entre las palabras y ayuda a generalizar mejor.
Para aprender la función de probabilidad conjunta de las secuencias de palabras, los autores proponen un enfoque basado en redes neuronales:
El objetivo básico de aprendizaje aquí es doble, los cuales suceden al unísono y se refuerzan entre sí:
1. Aprenda una representación distribuida C para las palabras anteriores (contexto) que significa similitud. (proyección lineal)
2. Prediga la siguiente palabra correcta dada una ventana de palabras anteriores (el tamaño de la ventana es n para modelos de n-gramas: capa oculta no lineal utilizada para aprender probabilidades conjuntas dado el contexto).
Nota – la Pérdida se denomina “penalizada” debido a la presencia del término de regularización. Además, la función de activación utilizada en esta arquitectura es una no linealidad hiperbólica bronceada.
Más adelante aprenderemos que incluso los modelos no lineales utilizados para los modelos de lenguaje tienden a aprender lineales (o casi lineales) implícitamente.
Los autores concluyen diciendo que los modelos de lenguaje basados en redes neuronales superan significativamente a su predecesor: el modelo N-Gram.
Estimación eficiente de las representaciones de palabras en el espacio vectorial
El problema con el modelo basado en redes neuronales (NLM) es su escalabilidad en grandes conjuntos de datos que comprenden miles de millones de palabras. Los autores – Mikolov et. Alabama. tratar de abordarlo con un esquema alternativo.
Donde la NLM trató de entrenar el modelo en la similitud de contexto/palabra. Los autores de este artículo señalan que las palabras pueden tener múltiples grados de similitud y que se pueden usar vectores de palabras para expresar esto.
Por ejemplo —
vector(“Rey”) – vector(“Hombre”) + vector(“Mujer”) lo acerca más al vector(“Reina”).
Los modelos de lenguaje pueden aprender significados implícitos como el género y las relaciones semánticas entre ellos.
La limitación de los NLM es el tamaño fijo de la ventana de contexto, esta limitación se puede abordar mediante el uso de una red neuronal recurrente para el modelado del lenguaje (RNNLM). También exhiben una forma de memoria a corto plazo que puede usarse para recordar/olvidar selectivamente secuencias que pueden ser importantes para una predicción posterior.
Las observaciones presentadas por los autores es que la mayor parte de la complejidad en estos modelos es causada por activaciones de capas ocultas no lineales. Los autores proponen 2 arquitecturas:
1. CBOW (Modelo de bolsa continua de palabras)
- Esto es muy similar al NLM. Sin embargo, la capa oculta no lineal se elimina y todas las palabras comparten la capa de proyección.
- En comparación con NLM, encontramos la función C (Matriz de proyección) que proyecta cada una de las palabras de contexto y las promediamos juntas para encontrar la palabra objetivo (Compartido se usa en el sentido de que los vectores se promedian).
- El orden de las palabras no es importante en este enfoque. Se da más importancia a la similitud y la escalabilidad.
2. Modelo continuo de saltos de gramo
La arquitectura es la inversa de CBoW: dada una palabra objetivo, predecimos las palabras de contexto. Aumentar el rango (t+/-n) mejora la calidad de los vectores de palabras pero aumenta la complejidad computacional.
Los autores muestran empíricamente que ambos modelos funcionan mejor que NLM en tareas sintácticas y semánticas.
Representaciones distribuidas de palabras y frases y su composición
Este es un artículo de seguimiento de Mikolov et. Alabama. que propone técnicas para mejorar el modelo CBoW y Skip-Gram presentado en el último artículo.
La idea de los dos modelos anteriores es aprender representaciones de palabras de calidad haciendo una tarea (o subtarea) diferente por completo. En el caso de Skip-gram, es predecir palabras cercanas.
El objetivo del modelo Skip Gram es:
1. Maximizar la probabilidad condicional de predicción para la siguiente palabra dadas todas las palabras anteriores
2. Maximice el producto escalar (distancia del coseno) entre los 2 vectores: el vector objetivo w
El limitación del modelo Skip-Gram surge de la ecuación no. 2 donde hacemos este enorme softmax para todo el vocabulario. Esto nos da una complejidad temporal de O(|V|) donde V es el tamaño del vocabulario.
- Los autores proponen utilizar Softmax jerárquico lo que reduce la complejidad del tiempo para log(|V|) ya que representa el softmax en un enfoque basado en un árbol binario.
- Además, los autores discuten otra técnica llamada Muestreo negativo que está inspirado en la Estimación Contrastiva de Ruido (NCE). Esta es una forma de aumentar explícitamente la distancia entre palabras no correlacionadas.
Otra técnica interesante presentada en el artículo es Submuestreo de palabras frecuentes. La idea es entrenar selectivamente a la red qué palabras son menos frecuentes. Por ejemplo, entrenar a la red con pares de palabras como “el” y cualquier sustantivo en realidad no ayuda a que la red aprenda nada. La idea es formar pares de palabras únicas y menos frecuentes que ayuden a aprender similitudes incrustadas como “Pares” y “Francia” (Objetivo y contexto o indistintamente).
El submuestreo mejora significativamente la precisión y la velocidad de entrenamiento.
Todas estas técnicas conservan la naturaleza aditiva lineal de los vectores aprendidos por Skip-Gram y al mismo tiempo mejoran la escalabilidad y la precisión.
GloVe: vectores globales para la representación de palabras
Todos los modelos anteriores discutidos consideran el contexto inmediato (palabras cercanas) para predecir el objetivo o el contexto.
En este artículo, Pennington et. Alabama. proponer una técnica que toma lo mejor de ambos mundos –
1. Factorización Matricial Global (Estadísticas globales del corpus de texto)
2. Métodos de ventana de contexto local (Skip-gram, CBoW, Neural LM)
Métodos como skip-gram no utilizan el conteo global de co-ocurrencia de palabras. Los autores señalan que los modelos simples como Skip-Gram, que utilizan una arquitectura simple de una sola capa basada en el producto punto entre dos vectores de palabras, tienden a funcionar mejor que las arquitecturas de redes neuronales. Sin embargo, estos métodos de ventana de contexto local no aprovechan la gran cantidad de correlación entre palabras cuando se ven como un corpus completo.
Para explicar mejor esta tabla, veamos la notación presentada:
Mirando la Tabla 1: Para palabras relacionadas con hielo pero no con vapor, la proporción será grande (como se ve para sólido). Sin embargo, para palabras relacionadas con vapor pero no con hielo, la proporción será pequeña. Para palabras relacionadas con ninguna, la proporción será cercana a 1. Esto nos dice que las estadísticas globales de grandes corpus pueden influir en la “similitud”.
El modelo GloVE funciona mucho mejor que el modelo Skip Gram y CBoW mejorado, como se muestra en los resultados de este documento.
También me gustaría discutir brevemente un par de artículos sobre modelos de lenguaje basados en RNN, estos son más una extensión del NNLM de Bengio et. todo [1]. Es posible que estos no sean los modelos de lenguaje con mejor rendimiento, pero brindan una gran perspectiva debido a su memoria conversacional a corto plazo.
Modelo de lenguaje basado en redes neuronales recurrentes (RNNLM)
Volviendo al objetivo con el que comenzamos, los modelos de lenguaje deben poder predecir secuencialmente las siguientes palabras.
La principal ventaja de usar RNNLM es que tienen su propio estado/contexto oculto similar a la memoria a corto plazo. Mediante el uso de redes recurrentes, la información puede circular dentro de la red durante un tiempo prolongado arbitrario (según lo aprendido por la red) y no está limitada por una ventana.
1. La entrada actual a la red es la palabra en el momento actual w
2. La RNN utiliza 2 no linealidades diferentes, siendo la primera el sigmoide para abarcar la información del contexto/estado oculto.
2. Softmax para proporcionar una salida probabilística para la siguiente palabra. Este es un softmax en forma de V.
Los autores también analizan el uso del entrenamiento dinámico durante las pruebas, lo que ayuda a la red a aprender mejor el uso de la memoria para realizar pruebas y proporciona resultados dinámicos sobre la marcha.
Un artículo de extensión a esto es otro artículo de Miklov et. Alabama. llamado:
Extensiones del modelo de lenguaje neuronal de red recurrente
En este artículo, los autores (Miklov et. al.) sugieren mejoras adicionales a la precisión del modelo RNN anterior con el concepto de retropropagación a través del tiempo (BTT). También ven algunos trucos para mejorar la aceleración y reducir la cantidad de parámetros.
Te animo a que leas estos documentos y los publiques en los comentarios si tienes preguntas 🙂
Por favor, avíseme si me he perdido algún otro documento importante aquí.