Tema 9. Aplicaciones Del Procesamiento Del Lenguaje Natural
Tema 9. Aplicaciones Del Procesamiento Del Lenguaje Natural
Tema 9. Aplicaciones Del Procesamiento Del Lenguaje Natural
Ideas clave
A fondo
Deep Learning
Test
Esquema
neuronales más actuales, cómo poder evaluar los resultados obtenidos, así como
otros aspectos éticos para tener en cuenta en el desarrollo del modelo, como es el
como una explicación sobre elementos para tener en cuenta en su desarrollo. Tras
ello, se verá una de las aplicaciones más relevantes de PLN en la industria: los
sistemas de Question Answering, con los que se busca responder a consultas de los
Finalmente, se verán las aplicaciones de PLN tanto para generar texto desde audio,
Objetivos
▸ Entender cómo funciona un sistema de traducción automática, así como contar con
las nociones clave de qué algoritmos basados en redes neuronales se pueden usar
para diseñarlo.
▸ Conocer los conceptos básicos del problema de análisis de sentimientos, así como
entender algunos de los elementos clave necesarios para construir un sistema que
▸ Conocer cómo funcionan los sistemas de reconocimiento automático del habla y los
de text-to-speech.
(Machine Translation, MT), junto con algunos aspectos para tener en cuenta y las
continuación, una traducción precisa no pasa por convertir las palabras individuales
existen elementos universales del lenguaje comunes a todas las lenguas, existen
también diferencias entre ellas. Estas diferencias pueden ser a nivel de palabras
concretas, lo que hace referencia a aspectos idiosincrático o léxicos (como, por
ejemplo, palabras que significan cosas distintas en según qué lengua), o pueden ser
orden en el que se sitúan los verbos y los objetos directos). Estas diferencias hacen
que la traducción de un texto de una lengua a otra sea una tarea compleja, donde no
es suficiente con traducir las palabras individualmente, sino que hay que tener en
Para completar el estudio de esta sección y ver en detalle los distintos aspectos
que diferencias entre sí las lenguas, puedes leer el Capítulo 10 del libro:
Modelo encoder-decoder
singularidades de cada lengua y las diferencias que existen entre ellas cuando se
respuestas.
puede apreciar que estos modelos reciben la secuencia de datos de entrada dentro
(language model, LM) con el que se prediga cada palabra dada la información de la
secuencia hasta ese momento de la frase que se quiere traducir, junto con la
imagen:
Figura 2. Arquitectura de MT basada en un esquema encoder-decoder con RNN. Fuente: Jurafsky, 2021.
siguiente manera:
siguiente:
Donde el vector x hace referencia a la secuencia del texto de origen. Con ello, el
secuencia del texto traducido hasta ese momento. La imagen previa muestra como el
token que conecta ambos modelos es un token separador <s> a partir del cual se
considerando el vector del contexto como entrada directa solo en la primera etapa de
la capa encoder. Ahora bien, esto podría hacer que la información del contexto fuese
perdiendo relevancia a medida que se avanza por las etapas del modelo decoder.
Para evitar esto, una versión más sofisticada de la arquitectura consideraría el vector
del contexto como entrada de todas las etapas de la capa decoder, tal como muestra
la siguiente imagen.
Figura 5. Arquitectura de MT donde el contexto sirve de entrada en todas las etapas del decoder. Fuente:
Jurafsky, 2021.
predicho en cada fase del decoder con respecto a las palabras que ha predicho el
modelo.
Ahora bien, el modelo, tal y como se ha descrito hasta ahora, estaría considerando la
palabra previa predicha como entrada junto con el vector de salida de la capa
oculta de la etapa anterior y el vector del contexto. El problema que tiene esta
cada vez más de la frase correcta. Por este motivo se ha propuesto el uso del
sino que se usa la palabra objetivo que se tendría que haber predicho. El esquema
Figura 8. Esquema de entrenamiento del modelo para MT usando teacher forcing. Fuente: Jurafsky, 2021.
solo recibe la información de la última etapa del encoder, sin que se reciba
directamente la información que hay en el resto de las etapas. Para solventar esta
modelos. Con ello, en lugar de usar como contexto un vector estático resultante de la
última etapa del encoder, se construye uno en base a la suma ponderada de los
vectores de todas las etapas del encoder. Esto se ilustra en la siguiente imagen.
, que para una etapa i del decoder se ajustará en función de una métrica de
similitud entre el vector de la etapa j del encoder y el vector de la etapa i-1 del
decoder. De esta manera, en el vector del contexto se dará más importancia a unas
etapas u otras del encoder en función de la etapa concreta del decoder. El valor de
este parámetro, normalizado con una función softmax y para una etapa i del decoder
es:
La métrica de similitud (el score) se puede calcular de distintas maneras. Puede ser,
por ejemplo, el producto escalar entre el vector de cada una de las etapas del
El valor del score con este producto escalar también se puede ajustar usando una
matriz de pesos propia,
del modelo:
Figura 15. Esquema en detalle de un bloque de transformers del modelo decoder. Fuente: Jurafsky, 2021.
Como se puede observar, hay dos tipos de modelos de attention. Por un lado,
Ahora bien, también aparece una capa cross-attention, donde el valor Q (query)
softmax) sería:
Evaluación de un modelo de MT
La fidelidad se puede medir con métricas como character F-score (chrF), que
compara el solape en n-gramas que hay entre la frase traducida con el modelo de
hace todos los n-gramas anteriores (es decir, se calcula para bigramas y para
Especificando un parámetro
frente a un mismo conjunto de datos, más que como métrica para analizar un
Existen otro tipo de métricas con las que, en lugar de comparar las traducciones
de referencia
de datos de origen que puede contener distintos tipos de sesgos que se propagarán
Figura 19. Ejemplo de traducciones sesgadas entre textos con género neutro (en húngaro) y textos con el
esta especificación del género no aparece en las frases de origen que se quieren
que en los textos de origen no hay un equilibrio entre las referencias a determinadas
profesiones y las referencias a determinados géneros (ej., hay muchos más textos
que hablan de engineers junto con he que con she), el modelo aprende en base a
De cara a tratar con este problema de sesgos en los modelos de PLN y MT, existen
estudio con el Capítulo 10 del libro, pg. 25: Jurafsky, D. y Martin, J. H. (2021).
https://web.stanford.edu/~jurafsky/slp3/10.pdf
imagen:
Figura 20. Arquitectura para un modelo de autocompletado de texto basado en transformers. Fuente:
Jurafsky, 2021.
El modelo va prediciendo uno a uno los siguientes tokens, generando así el texto
autocompletado. Una vez que genera el primer token, este junto con la secuencia de
usando un token que delimite una de la otra. La secuencia final sería, por tanto:
Con
el token que delimita una de la otra, m el tamaño de la secuencia del texto original,
como una única. Una vez entrenado un modelo con los datos de entrenamiento, se
podrá usar para, dado un texto de origen, obtener la secuencia que le seguiría tras el
token final
en la siguiente imagen:
Figura 20. Arquitectura para un modelo de resumen de textos basado en transformers. Fuente: Jurafsky,
2021.
El análisis de sentimientos es una tarea dentro del ámbito de PLN con el que se
automática.
Por ejemplo, dadas las siguientes frases, el objetivo sería detectar que en la primera
el sentimiento es negativo, y en la segunda, positivo:
devolver.
▸ Magnífica compra y muy buena atención por parte del vendedor. El producto me ha
encantado.
en base a rasgos (features) obtenidas de cada uno de los textos. Existen distintas
maneras de obtener esos rasgos, como por ejemplo con las técnicas de
transformarían los textos de entrada en una matriz donde cada fila representa uno de
los textos y cada uno de los rasgos correspondería a una de las palabras del
Teniendo esta matriz, y teniendo las clases (los sentimientos) que se quieren
sólo se tiene por qué realizar con técnicas como BoW, sino que también se puede
sentimiento asociado a todo el texto desde el sentimiento que tienen sus palabras
definidas a priori, que asocian como sentimiento principal de un texto aquél que
aparezca más veces entre las palabras que lo componen. Así, se puede calcular una
https://web.stanford.edu/~jurafsky/slp3/20.pdf
Coliseo?» o «¿A qué edad se puede conducir legalmente en USA?». Este tipo de
responder con una única respuesta (como un dato concreto o un hecho particular).
piano?»
Information retrieval
Donde, dado que la query tendrá menos términos que un documento, sólo se
contiene un elemento adicional, el bloque inverted index, con el que se hace que la
colección para una query de entrada, se usa un diccionario intermedio que tiene
como claves los distintos términos, y asociado a ellas los documentos que tienen
esos términos, junto con información adicional como la frecuencia de los términos en
esos documentos. De esta manera, frente a esa query se seleccionan sólo los
para una palabra concreta. De cara a representar todo el texto como un único vector,
se pueden usar técnicas de pooling, de manera que se combinen los valores de los
IR para factoid QA
para una consulta, sino también para poder responder a consultas que consisten
pueden diseñar con una aproximación de recuperación y lectura, tal y como indica la
siguiente imagen.
fragmento de texto concreto que respondería a la consulta del usuario. Así, esta fase
respuesta,
Figura 27. Arquitectura de un modelo para QA basado en fragmentos de documentos. Fuente: Jurafsky,
2021.
de encoding, como por ejemplo uno basado en la arquitectura de BERT. Con ello, se
del documento. Este vector de salida se usa en un producto escalar con un vector
al token j, con
error.
Además de esto, el modelo tiene que ser capaz de predecir también los casos en los
secuencia).
de entrada (512 como máximo para la arquitectura estándar). El problema es que los
tokens de una pregunta-documento pueden superar este valor. Para tratar estas
superior al caso por defecto de que la respuesta sea [CLS] (es decir, que no hay
una pregunta con la respuesta adecuada, existen métricas como mean reciprocal
rank (MRR). Con MRR, se compara la lista de respuestas posibles ordenadas por
(reciprocal rank) sería 1/3. Con ello, para un conjunto de evaluación de Q preguntas,
la métrica final sería la media de los distintos RR, como expresa la siguiente
ecuación:
https://web.stanford.edu/~jurafsky/slp3/23.pdf
Automático del Habla (Automatic Speech Recognition, ASR), con el que se busca
importante para muchas aplicaciones basadas en PLN, como por ejemplo los
Así, con el ASR se busca poder tener una interfaz de comunicación con
computacionalmente.
usado por los usuarios. La complejidad de la tarea de ASR no es la misma si, por
ejemplo, se espera que el usuario conteste con un «Sí» o «No», frente a un caso en
(donde las órdenes o cuestiones que formula son relativamente claras o directas),
encuentra conversando con otra persona. La tarea de ASR será menos compleja en
donde se esté comunicando el usuario con el sistema, siendo, por ejemplo, más
compleja cuando se está en un lugar ruidoso (como una calle) frente a otros lugares
concretas de cada usuario particular. No serán igual de precisos los resultados del
onda acústica.
Figura 31. Tareas de reconocimiento del habla: ASR para pasar de voz a texto, y TTS para pasar de texto
a voz. Fuente:
Para poder pasar de una onda acústica al texto correspondiente mediante el uso de
técnicas de ASR, el primer paso es identificar una serie de variables o rasgos que
A nivel intuitivo, la idea es, partiendo de la onda, tener un vector de variables que
Una de las arquitecturas más habituales para ASR usando redes neuronales se basa
MT. Partiendo de la señal acústica, se extraen los rasgos que sirven de entrada al
modelo. La salida del modelo será o bien una predicción a nivel de palabras (qué
letras. El siguiente ejemplo muestra una arquitectura en la que la salida sirve para
Figura 32. Ejemplo de arquitectura encoder-decoder para un sistema de ASR. Fuente: Jurafsky, 2021.
Una consideración para tener en cuenta es que, aunque los modelos encoding-
salida de caracteres asociados a una palabra (que podrían ser, por ejemplo, cinco
para una palabra como perro), está asociada a una gran cantidad de variables de
entrada. El motivo es que la señal acústica que asociada a esa palabra sería del
orden de segundos (por ejemplo, 2 seg.), y las variables que se generan desde esa
duración.
Por este motivo, se añade un paso adicional antes de llegar al modelo de encoding
con el que comprime la información de entrada para que el vector de variables sea
más reducido. Hecho esto, el resto del modelo funciona como un modelo estándar de
Una métrica de evaluación habitual para los ASR es la tasa de error por palabra
(word error rate). Con esta métrica se analiza cuanto difiere la secuencia predicha de
Como ocurre con otras aplicaciones de PLN, los sistemas de TTS también se pueden
Ahora bien, hay una diferencia en la aproximación de un TTS frente a un ASR más
allá de que un proceso sea el inverso del otro. En el caso del ASR, el sistema
debería ser independiente del hablante. Es decir, que se debe entrenar con audios
de distintos hablantes para ser agnóstico al usuario concreto que se comunique con
el sistema. En el caso del TTS no es relevante que el sistema sea entrenado con
voz fija.
Por este motivo los TTS son dependientes del hablante, y se necesitan
menos datos para entrenarlos que en el caso de los ASR.
una cadena de texto para predecir el espectrograma asociado a ella (en concreto,
lugar, los elementos del espectrograma se mapean a la señal acústica asociada con
«dólares»). Ahora bien, en algunos casos esto dependerá del contexto de la frase.
Por ejemplo, un mismo número, como por ejemplo 1910, se podría leer distinto
nueve uno cero»), o a una fecha (donde sería «mil novecientos diez»). Así, aparecen
Figura 35. Distintos ejemplos de normalización en función de la verbalización buscada. Fuente: Jurafsky,
2021.
hacer con reglas predefinidas. Con estas reglas se identifican estos caracteres y,
según el contexto.
Con todo ello, un ejemplo de arquitectura TTS es la Tacotron2 (Shen et al., 2018),
Figura 36. Arquitectura Tacotron2 para TTS. Fuente: Shen et al., 2018.
adicional que tiene esta arquitectura es que, en cada fase, se lleva a cabo una
predicción de stop token de cara a que el sistema decida si tiene que seguir
aspectos del sistema TTS, puedes consultar el capítulo 26 del libro: Jurafsky, D.
Linguistics. Prentice-Hall.
Shen, J., Pang, R., Weiss, R. J., Schuster, M., Jaitly, N., Yang, Z., Chen, Z., Zhang
Y., Wang, Y., Skerry-Ryan, R., Saurous, R. A., Agiomyrgiannakis Y., and Wu, Y.
predictions. ICASSP.
Una parte importante de las referencias del curso en general, y de este tema en
particular, provienen de este libro. En concreto, para entender en más detalles las
distintas aplicaciones de PLN, se puede consultar este libro. También, sirve de base
para tener una referencia sobre las publicaciones científicas más relevantes
Deep Learning
Como se ha visto en este tema, así como en temas previos, gran parte de las
profundo. Si se quiere conocer más sobre estos modelos, cómo funcionan, el detalle
B. Las traducciones entre dos lenguas son directas ya que las diferencias que
pueda haber entre ellas no son relevantes para hacer una traducción.
dos lenguas en relación con la variación en el significado que puede tener una
decoder?
en t-1, y no la palabra que se predijo en t-1. Con ello, se busca evitar que se
decoder.
3. ¿Qué diferencias existen entre una capa cross-attention y otra causal self-
ese momento.
encoder, mientras que la capa causal self-attention es una capa estándar que
momento.
individuales.
entrenaría un modelo, como por ejemplo una Red Neuronal Recurrente, con
hoc retrieval?
intermedio que indica los documentos que tienen ciertas palabras, calculando
con ello la similitud entre consulta-documento solo si ese documento tiene
factoid QA:
responda a la consulta.
respuesta a una consulta particular. Para ello, se usa como token por defecto
respuesta.
distintas.