Hola a todos,
¡Hay un montón de modelos de lenguaje hoy en día! Muchos de los cuales tienen su forma única de aprender representaciones de lenguaje “autosupervisadas” que pueden ser utilizadas por otras tareas posteriores.
En este artículo, decidí resumir las tendencias actuales y compartir algunas ideas clave para unir todos estos enfoques novedosos. 😃 (Créditos de diapositivas: Delvin et. al. Stanford CS224n)
Problema: Representaciones de palabras atómicas/sin contexto
Comenzamos con enfoques libres de contexto como word2vec, incrustaciones de guantes en mi publicación anterior. El inconveniente de estos enfoques es que no tienen en cuenta el contexto sintáctico. por ejemplo, “abrir un banco cuenta “v/s” en el río banco“. La palabra banco tiene diferentes significados dependiendo del contexto en el que se use la palabra.
Solución #1: Representaciones de palabras contextuales
Con ELMo la comunidad comenzó a construir modelos de lenguaje de secuencia hacia adelante (de izquierda a derecha) y hacia atrás (de derecha a izquierda), y usó incrustaciones extraídas de ambos (concatenados) estos modelos como incrustaciones pre-entrenadas para tareas de modelado posteriores como clasificación (sentimiento, etc.)
Posible inconveniente:
ELMo puede considerarse un “modelo bidireccional débil” ya que entrenaron 2 modelos separados aquí.
Solución #2: Representaciones contextuales verdaderamente bidireccionales
Para resolver el inconveniente del enfoque “débilmente bidireccional” y el cuello de botella de información que viene con los enfoques LSTM/recurrentes, se desarrolló la arquitectura Transformer. Los transformadores, a diferencia de LSTM/RNN, son una red completamente realimentada. Aquí hay un breve resumen de la arquitectura:
Consejo: Si es nuevo en los transformadores pero está familiarizado con Vanilla Multi-Layer Perceptron (MLP) o las redes neuronales totalmente conectadas. Puede pensar en los transformadores como similares a MLP/NN estándar con campanas y silbatos elegantes además de eso.
Pero, ¿qué hace que el transformador sea mucho más efectivo?
2 ideas clave:
1. Cada palabra tiene la oportunidad de aprender una representación con respecto a cualquier otra palabra (Verdaderamente bidireccional) en la oración (piense en cada palabra como una característica dada como entrada a una red completamente conectada). Para desarrollar aún más esta idea, consideremos el transformador como una red completamente conectada con 1 capa oculta, como se muestra a continuación:
Si x1 y x5 son 2 palabras/tokens de mi ejemplo anterior (en el río banco), ahora x1 tiene acceso a x5 sin importar la distancia entre x1 y x5 (la palabra en puede aprender una representación dependiendo del contexto provisto por la palabra banco)
2. Esencialmente, dado que cada capa se puede representar como un multiplicación de matrices grandes (cálculo paralelo) sobre una multiplicación por token que ocurre en un LSTM, el transformador es mucho más rápido que un LSTM.
Problema con los modelos bidireccionales:
Pero, ¿se supone que los modelos de lenguaje (LM) modelan P(w_t+1/w_1..w_t)? ¿Cómo aprende algo el modelo si le expones todas las palabras?
BERT desarrolla esta idea utilizando transformadores para aprender Modelado de lenguaje enmascarado (MLM) y traduce la tarea a P (w_masked/w_1..wt)
Compensación: en MLM, podría estar enmascarando y prediciendo ~ 15% de palabras en la oración. Sin embargo, en LM de izquierda a derecha está prediciendo el 100% de las palabras en la oración (mayor eficiencia de muestra).
Hay algunos cambios en la entrada al modelo con respecto al enfoque anterior basado en LSTM. La entrada ahora tiene 3 incrustaciones:
1. Incorporaciones de tokens – (Igual que las incorporaciones introducidas en el modelo LSTM)
2. Embebidos de segmento –
- Simplemente le dice al modelo a qué oración pertenece este token, por ejemplo, “Oración A: El hombre fue a comprar leche. Oración B: La tienda estaba cerrada”.
3. Colocar incrustaciones –
- Se puede pensar como un número simbólico, por ejemplo, The – 0, man – 1 y así sucesivamente.