Colección de citas famosas - Colección de versos - Introducción a los modelos de PNL utilizados habitualmente

Introducción a los modelos de PNL utilizados habitualmente

Unificación de símbolos: X es la matriz de muestra

LSI: descomposición SVD (valor singular), X≈UΣVT (VT representa la transpuesta de V), sea , ***m documentos, cada documento consta de n palabras y Σ es una matriz s × s, que representa s temas, V es m × s y cada fila representa la similitud entre cada documento y cada tema. Por lo general, la clasificación de texto utiliza la matriz V. La matriz U es n × s y cada fila representa la similitud de cada palabra y cada tema. U y V se convierten en matrices singulares izquierda y derecha respectivamente. PD: Sabemos que PCA consiste en encontrar los valores propios y los vectores propios de XTX. Dado que U y V son matrices ortogonales, → Lo mismo ocurre con la matriz singular izquierda.

Word2Vec: la expresión digital de lenguaje natural más utilizada. En resumen, si hay *** 100 artículos y vocabulario_size = 10000, entonces cada palabra se puede expresar mediante un vector unidimensional de 10000 dimensiones. , y después de la incrustación de word2vec, cada palabra se puede representar mediante, por ejemplo, un vector de 300 dimensiones, lo que no solo reduce la dimensión, sino que también las palabras con significados similares tendrán representaciones vectoriales más cercanas. word2vec se divide en dos modelos, CBOW (predice palabras según el contexto) y SkipGram (predice el contexto según palabras).

CBOW: utilice C conjuntos de diferentes pesos W para conectar completamente cada palabra de contextos C a una capa oculta de N dimensiones, obtenga valores de capa oculta de N dimensiones C, promedielos y luego Para este promedio N -capa oculta dimensional, utilice la conexión completa + softmax de peso W' para asignar valores de probabilidad a V palabras, V es vocabulario_sizee. W y W' son matrices V × N y N × V respectivamente (¿completamente conectadas? Transpuesta de la matriz de peso multiplicada por la izquierda Supongamos que una determinada palabra es la j-ésima palabra del vocabulario, luego la j-ésima fila de W). se llama vector de palabra de entrada de la palabra, el vector de la j-ésima columna de W' es el vector de palabra de salida de la palabra. Haga clic aquí para ver el artículo original, pero no entiendo qué vector es la salida final de la llamada capa de incrustación, entrada, salida o capa oculta de palabras.

SkipGram: La operación inversa de CBOW.

Ambas se actualizan mediante el algoritmo BP.

LSTM: suponga que la longitud de la oración de entrada es 10 y que cada palabra se muestra con un vector de 32 dimensiones, luego LSTM combinará esto) y el estado final de la celda. Y puede agregar una reducción de dimensionalidad completamente conectada o un softmax al vector k-dimensional de salida para lograr la clasificación. La diferencia entre LSTM y RNN es que existe un control de puerta, que utiliza principalmente puertas de olvido para retener la memoria a largo plazo y evitar la desaparición del gradiente.

Seq2Seq: Seq2Seq originalmente tiene una definición muy amplia, pero generalmente se refiere a un modelo clásico de seq2seq basado en redes neuronales y LSTM. Los populares Transformer, BERT, GPT3, etc. posteriores se basan en esto. La función general es implementar la traducción automática. Después de convertir el texto original en una matriz de comprensión a través del codificador, el decodificador de palabras se utiliza para generar la oración correspondiente al idioma de destino en función de esta comprensión palabra por palabra. La estructura consiste aproximadamente en incrustar primero cada palabra del texto original y luego ingresarla en un codificador llamado LSTM, y usar su salida (es decir, h y c de la última celda del LSTM) como comprensión del texto original. Luego, un LSTM llamado decodificador convertirá esta comprensión en una respuesta. El decodificador usa BOS para representar el comienzo de la oración y EOS para representar el final. Durante el entrenamiento, por ejemplo, para traducir "Te amo" a "Te amo", la primera entrada es BOS. Después de la incrustación, pasa por la celda (inicializada con h y c obtenidos previamente) y usa la activación softmax para obtener. la primera salida "yo", "yo" se vuelve a incrustar como segunda entrada a través de la celda y se realiza la activación softmax para obtener la segunda salida "amor". De la misma manera se obtiene la tercera salida "tú", y finalmente. Se obtiene EOS. Una vez completado el entrenamiento de descenso de gradiente de BP, la tarea de predicción de traducción automática se completa de la misma manera.

Atención: utilizado por primera vez en el modelo Seq2Seq. Por ejemplo, cuando quieres traducir "Te amo" a "Te amo", primero obtienes la comprensión de cada palabra del texto original según el codificador, es decir, encoder_output. Cada vez que el decodificador sale, encuentra una distribución de atención adecuada para la entrada actual, es decir, un peso (el llamado lugar donde se presta más atención, es decir, un lugar con un peso mayor se multiplica por). encoder_output y luego la suma es la entrada actual después del mecanismo de atención. En resumen, cada vez que el decodificador emita, se le dará una distribución de atención diferente a encoder_output según la entrada. (Este párrafo no ha sido verificado y debe revisarse después de leer el documento)

Autoatención: apareció por primera vez en Transformer Dado que Transformer no usa RNN o LSTM utilizados en los s2 tradicionales, afirma que Atención. es todo lo que necesitas (no necesitas RNN o LSTM). Hay muchas diferencias entre la autoatención y la atención. En primer lugar, puede completar la autoatención directamente en el codificador sin un decodificador. En segundo lugar, no presta atención a la información de la secuencia, por lo que requiere codificación posicional adicional para agregar información de secuencia. . Su objetivo es que cuando se centra en una palabra, se puede calcular junto con otras palabras en el contexto, y se puede prestar más atención (peso) a las palabras con mayores asociaciones. El método de cálculo consiste en multiplicar la entrada X por tres matrices de peso diferentes para obtener tres matrices Q K V, es decir, dividir el texto original. Cuanto mayor es este número, más promedio es la distribución de probabilidad y cuanto más pequeña es, más extrema es, lo que también hará que el gradiente desaparezca) y luego use softmax para encontrar la K correspondiente a Q, y luego use esta K para encontrar la V correspondiente, que representa el contenido de preocupación en este momento.

Transformer (papel y una mejor introducción): aunque existen codificadores y decodificadores, el desarrollo y las mejoras posteriores generalmente solo utilizan el codificador, y la parte principal del codificador es la autoatención. La estructura general consta de 6 capas de codificador seguidas de 6 capas de decodificador. La estructura general de cada capa de codificador es que después de la entrada Después de la entrada de atención), cada salida está completamente conectada a través de la red directa (por un lado, evita que la dimensión de concat directa sea demasiado grande y, por otro lado, se puede calcular en paralelo) y se suma a sus propios residuos y se normaliza. El decodificador es más o menos el mismo, con la adición de una autoatención de máscara en el medio para aceptar la entrada del codificador. La máscara se debe a que el decodificador emite en orden y las máscaras posteriores deben eliminarse.