- Documentos de la API
- Introducción
- Uso de la API
- Tutorial de la API
- Resumen
- Fuentes
- Conjuntos de datos
- Comentarios
- Archivos adjuntos
- Predictions
- Crear una transmisión
- Actualizar una transmisión
- Obtener una transmisión por nombre
- Obtener todas las transmisiones
- Eliminar una transmisión
- Obtener resultados de la transmisión
- Obtener comentarios de una transmisión (heredado)
- Avanzar una transmisión
- Restablecer una transmisión
- Etiquetar una excepción
- Desetiquetar una excepción
- Eventos de auditoría
- Obtener todos los usuarios
- CLI
- Guías de integración
- Blog
- Cómo aprenden las máquinas a entender palabras: una guía para las incrustaciones en PNL
- Aprendizaje basado en solicitudes con Transformers
- Efficient Transformers II: destilación de conocimientos y ajuste
- Transformadores eficientes I: mecanismos de atención
- Modelado de intenciones jerárquico profundo no supervisado: obtener valor sin datos de entrenamiento
- Corrección del sesgo de anotación con Communications Mining
- Aprendizaje activo: mejores modelos ML en menos tiempo
- Todo está en los números: evaluar el rendimiento del modelo con métricas
- Por qué es importante la validación del modelo
- Comparación de Communications Mining y Google AutoML para la inteligencia de datos conversacional
Cómo aprenden las máquinas a entender palabras: una guía para las incrustaciones en PNL
Los algoritmos de aprendizaje automático de Communications Mining se basan en modelos de Transformer preentrenados, que aprenden representaciones semánticamente informativas de secuencias de texto, conocidas como incrustaciones. En los últimos años, los modelos de Transformer han logrado resultados de vanguardia en la mayoría de las tareas comunes de procesamiento del lenguaje natural (NLP).
Pero, ¿cómo hemos llegado hasta aquí? ¿Qué ha llevado a Transformer a ser el modelo elegido para el entrenamiento de incrustaciones? Durante la última década, las mayores mejoras en PNL se han debido a los avances en el aprendizaje de incrustaciones de texto preentrenadas no supervisadas. En esta publicación, analizamos el historial de los métodos de inserción y cómo han mejorado con el tiempo.
Esta publicación
- Explicar qué son las incrustaciones y cómo se utilizan en las aplicaciones comunes de PNL.
- Presentar un historial de métodos populares para entrenar incrustaciones, incluidos métodos tradicionales como word2vec y métodos modernos basados en Transformer como BERT.
- Discutir las debilidades de los métodos de inserción y cómo pueden abordarse.
Imagina que tenemos un gran corpus de documentos en los que queremos realizar una tarea, como reconocer la intención del hablante. La mayoría de los métodos de PNL modernos y de última generación utilizan enfoques basados en redes neuronales. Estos primeros codifican cada palabra como un vector de números, lo que se conoce como incrustación. La red neuronal puede tomar estas incrustaciones como entrada para realizar la tarea dada.
Supongamos que el corpus contiene 10 000 palabras únicas. Podríamos codificar cada palabra utilizando una incrustación 'one-hot' (es decir, un vector disperso de 10 000 dimensiones con ceros en todas partes excepto en la única posición correspondiente a la palabra, donde el valor es un 1), por ejemplo
'a' = [1, 0, 0, ..., 0, 0]
...
'my' = [0, ..., 0, 1, 0, ..., 0]
...
'you' = [0, 0, ..., 0, 0, 1]
'a' = [1, 0, 0, ..., 0, 0]
...
'my' = [0, ..., 0, 1, 0, ..., 0]
...
'you' = [0, 0, ..., 0, 0, 1]
Sin embargo, este enfoque tiene algunos problemas:
- Incorporaciones semánticamente poco informativas
- Con el enfoque de codificación one-hot, todas las incrustaciones son ortogonales entre sí. Idealmente, nos gustaría que las palabras que están semánticamente relacionadas entre sí tengan incrustaciones "similares", pero las incrustaciones one-hot no codifican directamente la información de similitud.
- Alta dimensionalidad
- Tener un vector de 10 000 dimensiones para cada palabra significa que podríamos quedarnos rápidamente sin memoria al utilizar un enfoque basado en redes neuronales. En muchos dominios, 10 000 se considera un tamaño de vocabulario pequeño: los vocabularios suelen ser entre 5 y 10 veces más grandes.
Como resultado, las incrustaciones densas de menor dimensión son más populares. Además de abordar los problemas de memoria de las incrustaciones one-hot, también pueden codificar la idea de que dos palabras son semánticamente similares. Por ejemplo, supongamos que tenemos incrustaciones densas de 4 dimensiones. Es posible que queramos que las incrustaciones de 'apple' y 'banana' sean similares, por ejemplo
apple = [3.14, -0.03, -0.26, -2.27]
banana = [2.95, -0.18, -0.11, 0.09]
apple = [3.14, -0.03, -0.26, -2.27]
banana = [2.95, -0.18, -0.11, 0.09]
Ambos tienen un valor positivo grande en la primera posición. También podemos querer que las incrustaciones de 'apple' y 'microsoft' sean similares, por ejemplo
apple = [3.14, -0.03, -0.26, -2.27]
microsoft = [-0.12, 0.48, -0.05, -2.63]
apple = [3.14, -0.03, -0.26, -2.27]
microsoft = [-0.12, 0.48, -0.05, -2.63]
Ambos tienen un gran valor negativo en la cuarta posición.
¿Cómo se utilizan las incrustaciones?
Las incrustaciones que codifican información semántica son cruciales en todas las aplicaciones de PNL. Independientemente de lo bien diseñado que esté el modelo que las consume, si las incrustaciones no son informativas, el modelo no podrá extraer las señales necesarias para hacer predicciones precisas.
Clasificación
Para tareas de clasificación (p. ej. análisis de sentimientos), el enfoque más común es agregar las incrustaciones de un documento en un solo vector, y pasar este vector de documento como entrada a una red de retroalimentación que es responsable de hacer predicciones (consulte la Figura 1 para ver una ilustración).
La incrustación agregada se puede calcular utilizando una heurística simple (p. ej. tomando la media de las incrustaciones), o puede ser la salida de una red neuronal (por ejemplo, un LSTM o un transformador).
Búsqueda semántica
Más allá de las tareas de clasificación, las incrustaciones también son especialmente útiles para la búsqueda semántica. Esta es la tarea de recuperar resultados no solo basados en palabras clave, sino también en función del significado semántico de la consulta de búsqueda.
La búsqueda semántica funciona calculando primero una incrustación agregada para cada documento en un corpus (de nuevo, la función de agregación puede ser heurística o aprendida). A continuación, la consulta de búsqueda dada también se incrusta, y se devuelven los documentos con las incrustaciones más cercanas a la incrustación de la consulta de búsqueda (consulta la Figura 2 para ver una ilustración). La cercanía suele medirse según una métrica que compara la distancia entre dos incrustaciones, por ejemplo, la similitud del coseno.
La mayoría de los métodos de inserción de palabras se entrenan tomando un gran corpus de texto y observando qué palabras suelen aparecer una al lado de la otra dentro de las oraciones del corpus. Por ejemplo, la palabra "ordenador" puede aparecer a menudo junto a palabras como "teclado", "software" e "internet"; estas palabras vecinas comunes son indicativas de la información que debe codificar la incrustación de "computer".
Esta sección cubre cuatro técnicas populares para aprender incrustaciones, desde word2vec hasta el BERT basado en Transformer.
word2vec
word2vec, lanzado en 2013, es posiblemente el primer método que ha popularizado las incrustaciones de palabras preentrenadas y las ha llevado a la corriente principal en la PNL moderna. word2vec abarca dos enfoques para aprender incrustaciones:
- Bolsa continua de palabras (consulta la Figura 3 para ver un ejemplo).
- Predecir una palabra dada condicionada a las k palabras vecinas a cada lado.
- Esto se hace proyectando (es decir, multiplicación de matriz) las codificaciones one-hot de las palabras vecinas hasta incrustaciones densas de menor dimensión, tomando la media, y usándola para predecir la palabra que falta.
- Predecir una palabra dada condicionada a las k palabras vecinas a cada lado.
- Skipgram (consulta la Figura 4 para ver un ejemplo).
- Predecir las k palabras vecinas a cada lado dada una palabra.
- Esto se hace proyectando (es decir, matrix-multiplying) la codificación one-hot de la palabra dada hasta una incrustación densa de menor dimensión, y usar esto para predecir las palabras que faltan.
- Predecir las k palabras vecinas a cada lado dada una palabra.
Los autores demuestran varias analogías lineales notablemente intuitivas entre las incrustaciones. Dadas dos palabras x e y con una relación específica, y otra palabra z en la misma 'categoría' que y, los autores encuentran la palabra w cuya incrustación es más cercana (utilizando la distancia del coseno) a emb(x)−emb(y)+ emb(z). La palabra resultante w suele tener la misma relación con la z que la x con la y (consulta la Tabla 1 para ver algunos ejemplos).
Tabla 1: Analogías aprendidas por el modelo word2vec.
X | y | z | w=nearest(emb(x)−emb(y)+emb(z)) |
---|---|---|---|
mayor | grande | Pequeño | más pequeño |
París | Francia | Italia | Roma |
Cu | Cobre | zinc | Zn |
Guante
Como se ha descrito anteriormente, word2vec se basa en una ventana deslizante local. Esto significa que word2vec no utiliza directamente las estadísticas globales de coocurrencia de palabras, excepto a través del número de ejemplos de entrenamiento creados. Por ejemplo, las incrustaciones no incorporan directamente el hecho de que la palabra "banco" aparece con más frecuencia en el contexto de la palabra "dinero" que en el de "río", aparte del hecho de que "banco" y "dinero" aparecerán juntos en más ejemplos de entrenamiento que "banco" y "río".
Por lo tanto, un año después de word2vec, se lanzó GloVe , que combina las ventajas de los enfoques locales basados en ventanas deslizantes con los enfoques globales (es decir, a nivel de corpus) recuentos de coocurrencia de palabras. Lo hace entrenando incrustaciones de forma que el recuento global de coocurrencias entre dos palabras determina la similitud de sus incrustaciones.
donde V es el vocabulario, u son vectores de palabras, v son vectores de contexto y b y c son sesgos. f(Xi,j) es una función de ponderación para evitar dar demasiado peso a las co-ocurrencias tanto con valores extremadamente bajos como extremadamente altos. Una vez entrenada, la palabra final incrustada para la palabra i es Wi,j=Ui+Vi.
Las incrustaciones de GloVe superan significativamente a word2vec en la tarea de analogías de palabras (descrita anteriormente), y son ligeramente mejores para el reconocimiento de campos generales con nombre. Como resultado, los vectores GloVe fueron las incrustaciones de palabras preentrenadas durante varios años, y siguen siendo populares hasta la fecha.
Una debilidad clave de los métodos presentados hasta ahora es que son estáticos, es decir, la incrustación de una palabra determinada es siempre la misma. Por ejemplo, considera la palabra "banco", que puede referirse a la orilla de un río o a una institución financiera; su incrustación tendría que codificar ambos significados.
ELMo
A mediados de la década de 2010, las redes neuronales recurrentes (RNN) eran las arquitecturas más populares para la mayoría de las tareas de PNL. Los RNN realizan cálculos sobre secuencias de texto paso a paso, leyendo y procesando cada palabra de una en una. Actualiza un "estado oculto", que realiza un seguimiento de toda la secuencia hasta el momento.
Una de las primeras técnicas populares de inserción contextual fue ELMo, lanzada en 2018. ELMo aprende las incrustaciones entrenando previamente un modelo RNN bidireccional en un gran corpus de lenguaje natural utilizando un objetivo de predicción de la siguiente palabra. En concreto, ELMo entrena tanto un LSTM apilado hacia adelante como hacia atrás prediciendo, en cada paso, la palabra siguiente o anterior, respectivamente, como se muestra en la figura 5.
Una vez entrenados, los pesos de los LSTM hacia adelante y hacia atrás se congelan y las salidas se concatenan en cada paso de cada capa. Los autores encuentran que las diferentes capas aprenden diferentes aspectos del lenguaje: las capas iniciales modelan aspectos de la sintaxis, mientras que las capas posteriores capturan aspectos dependientes del contexto del significado de las palabras. Por lo tanto, se toma un promedio ponderado específico de la tarea sobre las capas como incrustación para cada palabra.
En ese momento, ELMo superó significativamente a los métodos de vanguardia anteriores en una serie de tareas, incluida la respuesta a preguntas, el reconocimiento de implicaciones textuales y el análisis de sentimientos.
BERT
Al mismo tiempo que el desarrollo de ELMo, se lanzó el (ahora famoso) Transformer como arquitectura para realizar la traducción automática. Reemplaza los cálculos secuenciales de RNN con un mecanismo de atención : esto calcula una representación contextual de cada palabra en paralelo y, por lo tanto, es mucho más rápido de ejecutar que un RNN.
Rápidamente se dio cuenta de que la arquitectura de Transformer podía generalizarse más allá de la traducción automática a otras tareas, incluyendo las incrustaciones de aprendizaje. BERT, lanzado en 2019, es uno de los primeros métodos de integración contextual, y posiblemente el más popular, que se basa en la arquitectura de Transformer.
Sin embargo, a diferencia de los métodos presentados hasta ahora, BERT no aprende directamente las incrustaciones de palabras. En su lugar, aprende las incrustaciones de tokens de 'subpalabra'. El principal problema al aprender incrustaciones de palabras es que se requiere un vocabulario de un tamaño fijo; de lo contrario, nos quedaríamos sin memoria. En su lugar, BERT utiliza un algoritmo conocido como WordPiece para tokenizar oraciones en unidades de subpalabras. Esto significa que las palabras pueden dividirse en tokens independientes, por ejemplo, las palabras {'wait', 'waiting', 'waiter'} pueden tokenizarse como {['wait'], ['wait', '## ing'], ['wait', '##er']}, todos compartiendo la misma raíz pero con diferentes sufijos.
BERT está preentrenado utilizando dos funciones objetivo (que se muestran en la Figura 6):
- Modelado de lenguaje enmascarado
- Algunos tokens elegidos aleatoriamente se eliminan de la secuencia, y el modelo tiene la tarea de predecirlos.
- Predicción de la siguiente frase
- Se concatenan dos secuencias (enmascaradas), con un token [CLS] especial al principio y un token [SEP] al final de cada secuencia. A continuación, el modelo debe predecir si el segundo sigue directamente al primero en el corpus original, utilizando la incorporación de la capa final del token [CLS].
Al realizar tareas posteriores, la incrustación de CLS se puede utilizar para tareas a nivel de oración/documento, por ejemplo reconocimiento de intenciones o análisis de sentimientos, mientras que las incorporaciones de tokens individuales pueden utilizarse para tareas a nivel de palabra, por ejemplo reconocimiento de campo general con nombre.
Como el Transformador no es una arquitectura secuencial, la capa de entrada no es simplemente una proyección de la codificación de tokens de acceso rápido. En cambio, es la suma de tres incrustaciones diferentes:
- Una proyección de la codificación one-hot token.
- Una incrustación posicional (es decir, una incrustación de la posición en la que se encuentra el token en la secuencia).
- Un segmento incrustado (es decir, si el token es de la primera secuencia o de la segunda, en el siguiente objetivo de predicción de frases descrito anteriormente).
Una vez preentrenado, BERT suele "ajustarse" para las tareas posteriores (es decir, sus pesos se actualizan aún más para cada tarea; no se congelan como ELMo). En una serie de tareas, incluyendo SQuAD (respuesta a preguntas) y el banco de pruebas GLUE, BERT superó significativamente a los métodos de vanguardia anteriores en ese momento.
BERT (y sus variantes de seguimiento) han revolucionado el campo de la PNL; ahora es extremadamente raro encontrar métodos de última generación que no se basen en incrustaciones contextuales basadas en la arquitectura de Transformer.
Como se ha comentado a lo largo de esta publicación, los avances en las incrustaciones de entrenamiento han revolucionado la PNL. Sin embargo, hay ciertos peligros que hay que tener en cuenta al trabajar con incrustaciones preentrenadas.
En primer lugar, los modelos integrados pueden codificar, e incluso amplificar, los sesgos contenidos en los conjuntos de datos en los que se entrenan. Por ejemplo, se ha demostrado que las incorporaciones pueden codificar estereotipos ocupacionales basados en el género, por ejemplo, que las mujeres están asociadas a trabajos como las tareas domésticas, mientras que los hombres están asociados a trabajos como la programación informática. Investigaciones posteriores han demostrado que los modelos integrados pueden detectar lenguaje despectivo, racismo y otras ideologías dañinas de los datos de entrenamiento. Eliminar el sesgo de los modelos de lenguaje es un área activa de investigación; las formas óptimas de identificar y mitigar tales sesgos siguen siendo una pregunta abierta.
En segundo lugar, los métodos modernos de integración contextual implican entrenar modelos con cientos de miles de millones de parámetros en clústeres de miles de GPU durante varias semanas. Esto puede ser extremadamente costoso, tanto desde el punto de vista financiero como para el medio ambiente. Existe una amplia gama de métodos para entrenar modelos más eficientes, como hemos revisado anteriormente.
Esta publicación ha presentado una introducción al concepto de 'incrustaciones': vectores densos de números que se entrenan para representar el significado semántico de secuencias de texto. Esta publicación tiene
- Se explica qué son las incrustaciones y cómo se utilizan en las aplicaciones comunes de PNL.
- Presentó un historial de métodos populares para entrenar incrustaciones, incluidos métodos tradicionales como word2vec y métodos modernos basados en Transformer como BERT.
- Discutió las debilidades de los métodos de integración y cómo se pueden abordar.