En este artículo, mi objetivo es dar una explicación de lo que son las redes de punteros, como se definen en el artículo «Redes de punteros» (este es el artículo que describe la red de punteros por primera vez, creo), y por qué se utilizan. Este trabajo se realiza en el contexto de mi doctorado, que se encuentra en el campo del Procesamiento del Lenguaje Natural (PNL).

Realmente escribo este tipo de notas para mi propia comprensión, sin embargo, espero que también pueda beneficiarse de ellas.

Recomendaría la primera lectura de «Pointer Networks» de Oriol Vinyals, Meire Fortunato y Navdeep Jaitly, y luego volver aquí para las explicaciones que doy.

En la primera parte de mi explicación, doy una visión general de cuáles son los términos clave utilizados en el documento.

En la segunda parte, hago un resumen del trabajo.

Como regla general, cuando estoy trabajando en aprender de un artículo científico, el primer paso que doy es escribir todos los términos desconocidos o ambiguos que se usan numerosas veces en el artículo o que parecen importantes para su comprensión.

Normalmente sigo estos sencillos pasos para encontrar una definición clara:

– Con ctrl + f, encuentro todas las ocurrencias de las palabras ambiguas en el artículo que estoy leyendo. Con el contexto, generalmente puedo empezar a intuir una definición de la palabra.

– busque la palabra en Internet con palabras clave cuidadosamente seleccionadas

A continuación se muestran algunos de los términos poco claros que encontré en el artículo:

– problemas combinatorios:
Un problema combinatorio consiste en encontrar, entre un conjunto finito de objetos, uno que satisfaga un conjunto de restricciones.

– fichas:
En un contexto NLP, un token es un w que satisface un conjunto de constraintsord o subword en un lenguaje.
En este artículo, sin embargo, los tokens son elementos de una secuencia de salida, que pueden ser de dos tipos: tokens «especiales» y tokens regulares.
> En el caso de los tokens «especiales», representan el principio o el final de la secuencia de salida.
> Los tokens regulares se componen de los índices utilizados para discriminar entre los diferentes elementos de una secuencia de entrada.

– diccionario de salida:
En este contexto, un diccionario de salida es una lista de todos los valores posibles que puede tomar un token.

Ejemplos de una secuencia de tokens y su correspondiente secuencia de entrada, extraída del artículo:

Cp1={⇒, (1, 2, 4), (1, 4, 5), (1, 3, 5), (1, 2, 3), ⇐} & P1={P_1 , . . . , P_5 } en el contexto del problema del casco convexo (uno de los 3 problemas combinatorios presentados en el artículo).

» ⇒ » y » ⇐ «son símbolos» especiales». Observe cómo se colocan al principio y al final de nuestra secuencia de salida de tokens.

«(1, 2, 4)» o» (1, 4, 5) » son fichas regulares. Se componen de 3 índices que se utilizan para discriminar elementos de la secuencia de entrada {P_1 , . . . , P_5 }.

tenga en cuenta que el siguiente no podía ser posible:

Cp1={⇒, (1, 2, 8), (1, 4, 5), (1, 3, 5), (1, 2, 3), ⇐} & P1={P_1 , . . . , P_5 } en el contexto del problema del casco convexo, porque no hay P_8 en nuestra secuencia de entrada.

Resumen del artículo

Después de leer el artículo por primera vez y buscar las definiciones anteriores, mi comprensión del artículo es la siguiente:

Este artículo se centra en los problemas combinatorios.
El objetivo del autor es construir un modelo que sea capaz de dar una secuencia de salida correcta Cp, dada una secuencia de entrada P de tamaño variable y un problema combinatorio asociado.

Este modelo aparentemente contrasta con un modelo basado exclusivamente en Redes Neuronales Recurrentes (RNN), donde el modelo solo se puede entrenar y luego usar en entradas del mismo tamaño.

Una vez que he terminado de aclarar los términos ambiguos, por lo general leo el artículo en el que estoy trabajando por segunda vez, para evaluar si mi comprensión es correcta o incorrecta. Para hacerlo, a menudo escribo un pequeño resumen de lo que creo que es relevante para mi comprensión, para cada parte que constituye el documento.

Información de la introducción:

Rom extraída del artículo

En la figura 1, vemos un modelo clásico basado en RNN de secuencia a secuencia junto con una red Ptr (red de puntero).
De la descripción de la figura, vemos que la red Ptr está compuesta por un RNN de codificación en un lado y una red generadora en el otro lado, en lugar de usar dos RNN para el modelo de secuencia a secuencia.

La red generadora de la Ptr-Net parece emitir una distribución de softmax sobre las entradas en cada paso, que es el llamado «puntero».

Información de los modelos:

En esta sección, vemos una revisión del modelo de secuencia a secuencia, el modelo de entrada-atención y, finalmente, el modelo de red Ptr.

Modelo A/ Seq-to-seq:

Asumimos que el lector sabe qué son las RNN y cómo se usan para crear un modelo seq-to-seq (si no, recomendaría leer esto y/o esto).

Los autores definen la probabilidad de una secuencia de salida de tokens, como el producto de la probabilidad condicional de los tokens que constituyen nuestra salida, dados los tokens anteriores a ellos, así como la secuencia de entrada.

Probabilidad de una secuencia de salida

Si nuestro Cp de salida está hecho de 3 tokens, entonces tendremos m(P) = 3. El símbolo theta representa los parámetros del modelo que se utiliza para encontrar esta probabilidad.

Aquí, el RNN que se utiliza para generar la secuencia de salida (el llamado decodificador) modela las probabilidades condicionales asociadas con los posibles tokens, en cada momento de salida, dados los tokens generados en tiempos de salida anteriores.

Durante el entrenamiento, el modelo se entrena para generar la secuencia de salida adecuada, y el conjunto de entrenamiento se usa en consecuencia.

Entrenamiento de los parámetros del modelo

Después de entrenar al modelo, lo usamos para encontrar soluciones a problemas similares a los que están en el conjunto de entrenamiento. Este es el llamado proceso de inferencia.

Durante la inferencia (cuando el modelo se utiliza para predecir una respuesta para el problema combinatorio), se utiliza un procedimiento de búsqueda por haz. Modela la mejor secuencia de salida posible.

Principal para llevar:

El modelo secuencia a secuencia no funciona cuando se usa en entradas de diferente tamaño. Tiene que haber un modelo separado para cada «n» / tamaño de entrada.

Mi mejor suposición es que esto se debe al tamaño de la salida que se establece al inicializar el modelo.
Con mayor precisión, el RNN de decodificación genera estados ocultos en cada momento de salida. Estos estados ocultos se utilizan de dos maneras:
– como entrada para el RNN en el siguiente paso
– para calcular la salida/token

Este segundo uso del estado oculto se caracteriza por el producto escalar con un conjunto de pesos W(S) que convierte el estado oculto en un vector de tamaño fijo, normalmente el tamaño del diccionario de salida.

Computación en la salida del paso de tiempo t

Debido a que el tamaño de W(S) se fija en la inicialización, se hace imposible para el modelo de tren en problemas con la salida diferente diccionario tamaños.

B / Atención de entrada basada en contenido:

El concepto de atención se manifiesta en este artículo con la fórmula:

Atención de entrada basada en contenido

donde e significa estados ocultos del codificador, d para estados ocultos del decodificador, W1, W2 y v son parámetros de la red de atención.

Ya estoy familiarizado con el concepto de atención al estudiar modelos basados en transformadores como BERT, que utiliza la «Atención de Producto Escalar».

Aunque el mecanismo de atención aquí no es el mismo, el propósito general detrás del uso de la atención es idéntico. El objetivo es enfocarse en sub-partes de la secuencia de entrada. Para ello, los autores concatenan una distribución normalizada sobre las salidas o los estados ocultos del codificador a los estados ocultos del decodificador.

Esto contrasta con un modelo normal de secuencia a secuencia, donde el codificador solo da el último estado oculto como entrada para el decodificador.

Comida principal para llevar:

El mecanismo de atención permite obtener mejores rendimientos en comparación con el modelo regular de secuencia a secuencia. Sin embargo, el problema de las entradas de diferente tamaño no se resuelve.

C / Ptr-Net:

La idea detrás de Ptr-Net es en realidad bastante simple. Utiliza la salida del mecanismo de atención para modelar la probabilidad condicional de cada token.
En otras palabras, el paso donde el estado oculto se multiplica por un conjunto de pesos W(S) simplemente se omite.

Probabilidades de modelado de red Ptr de una secuencia de salida de tokens

Principal para llevar:

El uso de este modelo permite entrenar e inferir en entradas de diferentes tamaños, manteniendo un buen nivel de rendimiento.

El resto del artículo muestra qué tan bien funcionan los diferentes modelos anteriores en tres problemas combinatorios diferentes.

Pensamientos finales:

Los artículos científicos son una muy buena fuente de información, sin embargo, he encontrado por experiencia que a veces son un poco complicados. Una gran cantidad de información tiene que transmitirse a través de una cantidad limitada de texto. Como consecuencia, los autores no pueden explicarlo todo, asumen que el lector tiene conocimientos básicos sobre el tema de interés.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.