0% encontró este documento útil (0 votos)
15 vistas20 páginas

RNN en Procesamiento de Lenguaje Natural

El documento presenta un resumen del programa de la materia Procesamiento de Lenguaje Natural. Se detalla que la materia cubrirá temas como vectorización de documentos, preprocesamiento de texto, word embeddings, redes neuronales recurrentes como LSTM para análisis de sentimientos y traducción, y modelos más recientes como Transformers y BERT. También incluye un cronograma con las fechas clave en el desarrollo de redes neuronales recurrentes para procesamiento de lenguaje natural.

Cargado por

Fede Otero
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
15 vistas20 páginas

RNN en Procesamiento de Lenguaje Natural

El documento presenta un resumen del programa de la materia Procesamiento de Lenguaje Natural. Se detalla que la materia cubrirá temas como vectorización de documentos, preprocesamiento de texto, word embeddings, redes neuronales recurrentes como LSTM para análisis de sentimientos y traducción, y modelos más recientes como Transformers y BERT. También incluye un cronograma con las fechas clave en el desarrollo de redes neuronales recurrentes para procesamiento de lenguaje natural.

Cargado por

Fede Otero
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

NLP

Redes neuronales recurrentes


(RNNs)

Dr. Rodrigo Cardenas Szigety


[Link]@[Link]

Facultad de Ingeniería Universidad de Buenos Aires


Programa de la materia
Clase 1: Introducción a NLP, Vectorización de documentos.
Clase 2: Preprocesamiento de texto, librerías de NLP, bots de información.
Clase 3: Word Embeddings, CBOW y SkipGRAM, entrenamiento de embeddings.
Clase 4: Redes recurrentes (RNN), problemas de secuencia y estimación de
próxima palabra.
Clase 5: Redes LSTM, análisis de sentimientos.
Clase 6: Modelos Seq2Seq, traductores y bots conversacionales.
Clase 7: Celdas con Attention. Transformers, BERT & ELMo, fine tuning.
Clase 8: Cierre del curso, NLP hoy y futuro, deploy.

*Unidades con desafíos a presentar al finalizar el curso.


*Último desafío y cierre del contenido práctico del curso.

Facultad de Ingeniería Universidad de Buenos Aires


2
Timeline
1990: Celda RNN básica (Elman)
1997: LSTM

2016: LSTMs se convierten en


SotA para traducción automática
Facultad de Ingeniería Universidad de Buenos Aires
3
Redes Neuronales Recurrentes (RNNs)
Es un tipo de neurona con un estado interno (o memoria) de manera que la
información del pasado influye en los resultados futuros.

Se utiliza principalmente para resolver problemas de secuencia, en


donde el valor anterior está relacionado con el valor futuro.

Permite construir modelos cuyos vectores de entrada o salida no posean


una dimensión fija.

Implementa modelos de lenguaje de la forma:

"Hoy el día está hermoso y despejado, se puede ver un hermoso cielo... azul”

Facultad de Ingeniería Universidad de Buenos Aires


4
Algunos problemas de secuencia

Bots Name entity Traducción de


Conversacionales recognition idiomas

Speech to text Generar música Completar una


Facultad de Ingeniería Universidad de Buenos Aires imagen 5
Celda RNN básica (Elman) LINK API KERAS
Forward (implementación de TF SimpleRNN)
ht = σ(Whh * ht-1 + Whx * x + bh)
yt zt = h t yt

ht-1 ht
ht

xt Salida general xt
zt = σ(Why * h t + b z)
Representación
Unidad básica
compacta

Facultad de Ingeniería Universidad de Buenos Aires


6
Propagación (ejemplo)

En este ejemplo conceptual


entra una palabra/letra y sale
otra
En estas redes de secuencia su
grafo de cómputo es en serie,
no es posible paralelizar, ya
que el estado futuro depende
del estado anterior.

Con cada salida se actualizan


los pesos Whh, Wxh y Why para
el próximo cómputo

Facultad de Ingeniería Universidad de Buenos Aires Misma celda RNN en diferentes instantes 7
Grafo de cómputo de una RNN y BPTT
(Backpropagation through time)

Hasta que no se complete la


secuencia que permite calcular
el loss no se actualizan los
pesos (W) de la/s celda/s
Facultad de Ingeniería Universidad de Buenos Aires
8
Forward & backward LINK BACKPROPAGATION NUMPY

Facultad de Ingeniería Universidad de Buenos Aires


9
Arquitecturas LINK

y y y y
RNN

RNN

RNN

RNN

RNN

RNN
x x x x x x

many-to-one many-to-many

Facultad de Ingeniería Universidad de Buenos Aires


10
Multi-layer RNN
Tal como se vio en los ejemplos se trata de apilar layers RNN en
donde la salida de una se traslada a la entrada de la siguiente

Facultad de Ingeniería Universidad de Buenos Aires


11
Problema de una RNN tradicional LINK

"Una RNN tradicional solo usa información del pasado y no de las futuras palabras
para predecir"

Ejemplo: Data una sentencia determinar si existe una entidad que


represente al nombre de una persona utilizando (name entity recognition)

Ejemplo 1:
“Hoy escuche que Victoria terminó su bot para NLP” → persona La
contextualización
de la palabra es
Ejemplo 2:
a futuro
“Hoy escuche que Victoria cambió de intendente” → ciudad

Facultad de Ingeniería Universidad de Buenos Aires


12
Bidirectional RNN (BRNN) BRNN PAPER API KERAS

“La palabra anterior y la palabra futura tienen impacto en la presente predicción”

y1 y2 y3

h23 h23 h21 h20

h10 h11 h12 h13

h1t = σ(Whh1 * h1t-1 + Whx1 * x + b1)


x1 x2 x3 h2t = σ(Whh2 * h2t+1 + Whx2 * x + b2)

Las dos salidas pueden concatenarse, sumarse o


Facultad de Ingeniería Universidad de Buenos Aires promediarse 13
many-to-one
"Dada una sentencia o oración de entrada de tamaño fijo, el sistema arroja un
único resultado que la representa”.

Este tipo de estructuras se utilizan para determinar cuál es


y la siguiente palabra o elemento en la secuencia o para
clasificación (sentiment analysis).
RNN

RNN

RNN

x x x Predicción de Análisis de
próxima palabra sentimientos

many-to-one
Facultad de Ingeniería Universidad de Buenos Aires
14
many-to-one

Link al Colab

LINK

Facultad de Ingeniería Universidad de Buenos Aires


15
Predicción de texto/modelos de lenguaje
Se utilizará many-to-one, por lo que hay que seleccionar la
dimensión de la sentencia de entrada y dividir el texto en grupos:

Sentencia

Tokens
Predicción de
próxima palabra

Vectores de entrada de 4 tokens

Facultad de Ingeniería Universidad de Buenos Aires


16
Generación de texto en modelos de lenguaje:
Beam search
num_beams=2

Paso 1:
“The nice” → 0.5
“The dog” → 0.4

Paso 2:
“The nice woman” → 0.5x0.4 = 0.2
“The dog has” → 0.4x0.9 = 0.36

Siempre encuentra una secuencia


con prob >= que Greedy Search

Es un método heurístico. No
asegura que encontrar la más
probable. (“The car drives”)

Facultad de Ingeniería Universidad de Buenos Aires


Generación de texto en modelos de lenguaje:
Muestreo con temperatura

Temperatura = 0.5 Temperatura = 1 Temperatura = 10


Facultad de Ingeniería Universidad de Buenos Aires
Text prediction

Link al Colab

LINK

Facultad de Ingeniería Universidad de Buenos Aires


19
Desafio

Utilizar otro dataset y


poner en práctica
la generación de
secuencias con las
estrategias presentadas.

Facultad de Ingeniería Universidad de Buenos Aires


20

También podría gustarte