Charla cruzada sobre el conocimiento básico del modelo de lenguaje pre-entrenado

Tabla de contenido

1. Pre-entrenamiento

1.1 Pre-entrenamiento en el campo de la imagen

1.2 La idea del pre-entrenamiento

2. Modelo de lenguaje

2.1 Modelo de lenguaje estadístico

 2.2 Modelo de lenguaje de red neuronal

3. Vector de palabra

3.1 Codificación Onehot

3.2 Incrustación de palabras

4. Modelo Word2Vec

5. El ERROR de que el modelo de red neuronal tradicional no puede obtener información de tiempo


Sebastian Ruder, científico informático de DeepMind, ha presentado el progreso histórico del procesamiento del lenguaje natural desde el siglo XXI desde la perspectiva de la tecnología de redes neuronales, como se muestra en la siguiente tabla:

años Año 2013 Año 2014 2015 2016 2017
tecnología palabra2vec Guante LSTM/Atención Autoatención Transformador
años 2018 2019 2020
tecnología GPT/ELMo/BERT/GNN XLNet/BoBERTa/GPT-2/ERNIE/T5 GPT-3/ELECTRA/ALBERTO

1. Pre-entrenamiento

1.1 Pre-entrenamiento en el campo de la imagen

Antes de presentar el entrenamiento previo en el campo de la imagen, primero presentamos la red neuronal convolucional (CNN). La CNN se usa generalmente para tareas de clasificación de imágenes, y la CNN se compone de múltiples estructuras jerárquicas. Las características de la imagen aprendidas por diferentes capas también son diferentes. Cuanto más superficial Cuanto más generales sean las características aprendidas por la capa (horizontal y verticalmente), más fuerte será la correlación entre las características aprendidas por la capa más profunda y las tareas específicas (contorno cara a cara, contorno coche-coche), como se muestra a continuación. figura :

Supongamos que tenemos una tarea: hay 10 imágenes de gatos, perros y tigres cada una, y se diseña una red neuronal profunda para clasificar las imágenes de los tres. Para las tareas anteriores, es básicamente imposible diseñar una red neuronal profunda a mano, porque un punto débil del aprendizaje profundo es que la demanda de volumen de datos es particularmente grande durante la fase de entrenamiento . Solo tenemos 30, lo que obviamente no es suficiente. .

Aunque nuestro volumen de datos es muy pequeño, podemos utilizar la gran cantidad de imágenes clasificadas y etiquetadas que existen en Internet . Por ejemplo, hay 14 millones de imágenes en ImageNet y estas imágenes han sido clasificadas y etiquetadas.

La idea mencionada anteriormente de usar imágenes existentes en Internet es la idea de pre-entrenamiento.El método específico es:

  1. A través del conjunto de datos de ImageNet entrenamos un modelo A
  2. Dado que las funciones de aprendizaje superficial de la CNN mencionadas anteriormente son particularmente versátiles , podemos realizar algunas mejoras en el modelo A para obtener el modelo B (dos métodos)
  • Congelación: los parámetros de la capa superficial usan los parámetros del modelo A, los parámetros de alto nivel se inicializan aleatoriamente, los parámetros de la capa superficial permanecen sin cambios y luego usan 30 imágenes para entrenar los parámetros
  • Ajuste fino: los parámetros superficiales usan los parámetros del modelo A, los parámetros de alto nivel se inicializan aleatoriamente y luego los parámetros se entrenan con 30 imágenes, pero aquí los parámetros superficiales seguirán cambiando con el entrenamiento de la tarea

        A través de la explicación anterior, haga un resumen del entrenamiento previo de la imagen (consulte la imagen de arriba): Para una tarea A con una pequeña cantidad de datos, primero construya un modelo CNN A a través de una gran cantidad de datos existente, debido a la superficialidad. aprendizaje de CNN La versatilidad de características es particularmente fuerte, por lo que cuando se construye un modelo B de CNN, los parámetros superficiales del modelo B usan los parámetros superficiales del modelo A, y los parámetros de alto nivel del modelo B se inicializan aleatoriamente y luego usan los datos entrenamiento de la tarea A congelando o ajustando el Modelo B, el modelo B es el modelo correspondiente a la tarea A.

1.2 La idea del pre-entrenamiento

Con la introducción del pre-entrenamiento en el campo de la imagen, damos la idea del pre-entrenamiento aquí:

        Los parámetros del modelo A correspondientes a la tarea A ya no se inicializan aleatoriamente, sino que el modelo B se obtiene a través del entrenamiento previo de la tarea B, y luego el modelo A se inicializa con los parámetros del modelo B, y el modelo A se entrena con los datos de tarea A. NOTA: Los parámetros del modelo B se inicializan aleatoriamente.


2. Modelo de lenguaje

Aquí se cita a Youde, de veintitrés años.

A continuación, se presentarán dos ramas del modelo de lenguaje, el modelo de lenguaje estadístico y el modelo de lenguaje de red neuronal .

2.1 Modelo de lenguaje estadístico

La idea básica del modelo de lenguaje estadístico es calcular la probabilidad condicional .

 2.2 Modelo de lenguaje de red neuronal

El modelo de lenguaje de red neuronal introduce la arquitectura de red neuronal para estimar la distribución de palabras y mide la similitud entre palabras por la distancia de los vectores de palabras Por lo tanto, para las palabras que no aparecen, también se pueden estimar por palabras similares, evitando así el problema de la escasez de datos .


3. Vector de palabra

Al describir el modelo de lenguaje de red neuronal, mencioné la codificación Onehot y los vectores de palabras para ver de qué se trata.

3.1 Codificación Onehot

La representación de palabras con vectores es una tecnología central para introducir modelos de lenguaje de redes neuronales profundas en el campo del procesamiento del lenguaje natural.

En las tareas de procesamiento de lenguaje natural, el conjunto de entrenamiento es principalmente una palabra o una palabra, y es muy importante convertirlos en datos numéricos adecuados para el procesamiento informático.

En los primeros días, el método en el que la gente pensaba era usar la codificación Onehot, como se muestra en la siguiente figura:

        Para la explicación de la figura anterior, supongamos que hay un diccionario V que contiene 4 veces, "Roma" se ubica en la primera posición del diccionario, "París" se ubica en la segunda posición del diccionario, usando la representación one-hot método, para "Roma" Para el vector, excepto la primera posición es 1, el resto de las posiciones son 0; para el vector de "Paris", excepto la segunda posición es 1, el resto de las posiciones son 0.

Para los vectores representados por una representación caliente, si se usa la similitud del coseno para calcular la similitud entre los vectores, se puede encontrar claramente que el resultado de la similitud de dos vectores cualesquiera es 0 , es decir, dos cualesquiera no están relacionados, es decir, digamos, la representación one-hot no puede resolver el problema de similitud entre palabras.

3.2 Incrustación de palabras

Dado que la representación one-hot no puede resolver el problema de similitud entre palabras, esta representación fue reemplazada rápidamente por una representación de vector de palabra, es decir, un vector de palabra C(wi) que aparece en el modelo de lenguaje de red neuronal, este C(wi) en de hecho, es el valor de Word Embedding correspondiente a la palabra, es decir, el vector de la palabra .

Por ejemplo, ahora hay cuatro codificaciones one-hot de las palabras w1, w2, w3 y w4:

w1=[1,0,0,0]

w2=[0,1,0,0]

w3=[0,0,1,0]

w4=[0,0,0,1]

Hay una matriz Q de V × m, esta matriz Q contiene V = 4 líneas, V representa el tamaño del diccionario y el contenido de cada línea representa el valor de incrustación de palabras de la palabra correspondiente. Es solo que el contenido de Q también es un parámetro de red, que debe aprenderse. Al comienzo del entrenamiento, la matriz Q se inicializa con valores aleatorios. Después de entrenar la red, el contenido de la matriz Q se asigna correctamente. y cada fila representa el valor de incrustación de Word correspondiente a una palabra.

Producto interno con w1, w2, w3, w4 respectivamente:

w1*Q=c1

w2*Q=c2

w3*Q=c3

w4*Q=c4

también equivalente a

w = [w1,w2,w3,w4] c = [c1,c2,c3,c4]

W*Q = C

softmax (U[tanh(WC+B1)]+B2)== [0.1,0.1,0.2,0.1, 0.5 ]

Si las cuatro palabras son "I", "Love", "You", "中", entonces la probabilidad de que la próxima palabra sea "国" es 0,5.

Q es una matriz aleatoria que se puede aprender, un parámetro y un subproducto del modelo de lenguaje de red neuronal. Es equivalente a que incluso si la matriz de codificación one-hot es muy grande y tiene una dimensión alta, el tamaño de la dimensión puede ser controlado por el producto interno con Q. A través de mucho aprendizaje, c se entrena cada vez con mayor precisión, y casi puede representar la palabra original w, y luego convertirse en un "vector de palabra".

Ahora, si da cualquier palabra, como "manzana": la codificación one-hot de manzana es w1 = [1,0,0,0, ...,0,0]

w1 * Q = c1    c1  es el vector de palabras para juzgar la palabra; 

Similar a la matriz aleatoria Q en la figura a continuación, esta matriz Q contiene V filas y V representa el tamaño del diccionario. Es solo que el contenido de Q también es un parámetro de red, que debe aprenderse. Al comienzo del entrenamiento, la matriz Q se inicializa con valores aleatorios. Después de entrenar la red, el contenido de la matriz Q se asigna correctamente. y cada fila representa el valor de incrustación de Word correspondiente a una palabra .

Sin embargo, la codificación one-hot tiene muchos defectos; por ejemplo, si se usa la codificación one-hot para 3500 palabras en inglés de secundaria, la memoria RAM no será suficiente durante el proceso de cálculo y la similitud de COS entre cada palabra es 0 , haciendo imposible seguir aprendiendo.

Al mismo tiempo, este vector de palabras resuelve el problema de similitud entre palabras.El proceso de cálculo es el siguiente:

A través del cálculo del vector de palabras anterior, se puede encontrar que el vector de palabras de la cuarta palabra se expresa como [10 12 19].

Si la similitud del coseno se usa nuevamente para calcular la similitud entre dos palabras, el resultado ya no es 0, lo que puede describir la similitud entre dos palabras hasta cierto punto.

La siguiente imagen es un ejemplo en Internet. Después de expresar una palabra como Word Embedding, es fácil encontrar otras palabras con una semántica similar.


4. Modelo Word2Vec

 Simple comprensión, Word2Vec es un modelo de lenguaje de red neuronal, su tarea principal es generar el vector de palabras Q;

Word2Vec tiene dos métodos de entrenamiento:

  1. El primero se llama CBOW, la idea central es eliminar una palabra de una oración y usar el contexto y el contexto de la palabra para predecir la palabra que se ha eliminado;
  2. El segundo se llama Skip-gram, que es justo lo contrario de CBOW.Ingresa una palabra y pide a la red que prediga sus palabras de contexto.

Ejemplo: como se muestra en la figura a continuación, un modelo de PNL de respuesta a preguntas: Dada una pregunta Pregunta-X, dada una respuesta-Y, juzgue si la oración Y es la respuesta correcta a la pregunta X.

Cada palabra en la oración se ingresa en forma de Onehot, y luego se multiplica por la matriz Q de incrustación de palabras aprendida, y la incrustación de palabras correspondiente a la palabra se elimina directamente.

La matriz de incrustación de palabras Q es en realidad la matriz de parámetros de red asignada desde la capa de red Onehot a la capa de incrustación.

Usar Word Embedding es equivalente a inicializar la red desde la capa Onehot a la capa de incrustación con la matriz de parámetros preentrenada Q. En realidad, esto es lo mismo que el proceso de entrenamiento previo de bajo nivel en el campo de la imagen. La diferencia es que Word Embedding solo puede inicializar los parámetros de red de la primera capa, y los parámetros de nivel superior no tienen poder .

Las tareas de NLP posteriores también son similares a las imágenes cuando se usa Word Embedding.Hay dos formas:

  • Uno es Frozen, lo que significa que los parámetros de red de la capa de Word Embedding son fijos;
  • El otro es el ajuste fino, es decir, los parámetros de la capa de incrustación de palabras deben actualizarse con el proceso de capacitación cuando se usa un nuevo conjunto de capacitación para la capacitación.

El modelo de lenguaje preentrenado resume una oración (primero usamos la codificación one-hot y luego usamos la  matriz preentrenada por  Word2Vc  para obtener directamente el vector de palabra y luego pasamos a la siguiente tarea)

  • 1. Congelación: la matriz Q no se puede cambiar
  • 2. Ajuste fino: cambie la matriz Q a medida que cambia la tarea


5. El ERROR de que el modelo de red neuronal tradicional no puede obtener información de tiempo

Las redes neuronales tradicionales no pueden obtener información de tiempo, pero la información de tiempo es muy importante en las tareas de procesamiento del lenguaje natural.

Al explicar Word Embedding, los lectores cuidadosos deben haber descubierto que estos métodos de representación de palabras son de naturaleza estática, y cada palabra tiene un vector de palabra determinado de forma única , que no se puede cambiar de acuerdo con diferentes oraciones y no puede manejar tareas de procesamiento de lenguaje natural problema de polisemia .

Ejemplo:

  • "Me comí una manzana", la parte del discurso y el significado de "manzana" depende de la información de la palabra anterior, si no hay palabras como "Me comí una manzana", "manzana" también se puede traducir como mordida uno creado por Jobs Un bocado de manzana.
  • Como se muestra en la siguiente figura, por ejemplo, la palabra polisémica Banco tiene dos significados comunes, pero Word Embedding no puede distinguir entre estos dos significados al codificar la palabra banco.

Aunque las palabras que aparecen en el contexto de banco en las dos oraciones que contienen banco son diferentes, cuando se usa el modelo de lenguaje para el entrenamiento, sin importar en qué contexto pase la oración a través de Word2Vec, se predice el mismo banco de palabras y la misma palabra ocupa el el espacio de parámetros de la misma fila hará que se codifique dos información de contexto diferente en el mismo espacio de Word Embedding, lo que hará que Word Embedding no pueda distinguir diferentes semánticas de palabras polisémicas.


¿Entonces lo que hay que hacer? ¿Volveré a escribir mañana? Gracias por la explicación del espacio personal del programador que se fue a pescar _哔哩哔哩_bilibili!

Próximo problema: de RNN a LSTM a ELMo para resolver este problema.

Supongo que te gusta

Origin blog.csdn.net/weixin_68191319/article/details/129207930
Recomendado
Clasificación