¿Qué función de pérdida debo usar para calificar un modelo RNN seq2seq?

10

Estoy trabajando en el documento Cho 2014 que introdujo la arquitectura codificador-decodificador para el modelado seq2seq.

En el documento, parecen usar la probabilidad de la entrada dada de salida (o es la probabilidad de registro negativa) como la función de pérdida para una entrada de longitud M y salida y de longitud N :xMyN

P(y1,,yN|x1,,xM)=P(y1|x1,,xm)P(y2|y1,x1,,xm)P(yN|y1,,yN1,x1,,xm)

Sin embargo, creo que veo varios problemas al usar esto como una función de pérdida:

  1. Parece suponer que el maestro fuerza durante el entrenamiento (es decir, en lugar de utilizar la suposición del decodificador para una posición como entrada para la próxima iteración, utiliza el token conocido.
  2. No penalizaría secuencias largas. Como la probabilidad es de a N de la salida, si el decodificador generara una secuencia más larga, todo después de la primera N no tendría en cuenta la pérdida.1NN
  3. Si el modelo predice un token de Fin de Cadena temprano, la función de pérdida aún exige pasos, lo que significa que estamos generando salidas basadas en una "variedad" no entrenada de los modelos. Eso parece descuidado.N

¿Alguna de estas preocupaciones es válida? Si es así, ¿ha habido algún progreso en una función de pérdida más avanzada?

usuario3243135
fuente

Respuestas:

1

Parece suponer que el maestro fuerza durante el entrenamiento (es decir, en lugar de utilizar la suposición del decodificador para una posición como entrada para la próxima iteración, utiliza el token conocido.

logP(y1,,yN)P(y)=iP(yi|y<i)x

Dada la ubicuidad de MLE y la falta de buenas alternativas, no creo que suponer que "forzar al maestro" sea objetable.

No obstante, es cierto que hay problemas con él, es decir, el modelo asigna una alta probabilidad a todos los puntos de datos, pero las muestras del modelo no necesariamente tienen la verdadera distribución de datos (lo que da como resultado muestras de "baja calidad"). Puede interesarle el "Profesor Forcing" (Lamb et al.) Que mitiga esto a través de un procedimiento de entrenamiento contradictorio sin renunciar a MLE.

No penalizaría secuencias largas. Como la probabilidad es de 1 a N de la salida, si el decodificador generara una secuencia más larga, todo después de la primera N no tendría en cuenta la pérdida.

y

Si el modelo predice un token de Fin de Cadena temprano, la función de pérdida aún exige N pasos, lo que significa que estamos generando resultados basados ​​en una "variedad" no entrenada de los modelos. Eso parece descuidado.

Ninguno de estos son problemas que ocurren durante el entrenamiento. En lugar de pensar en un modelo de secuencia autorregresiva como un procedimiento para generar una predicción, piense en él como una forma de calcular qué tan probable es una secuencia dada. El modelo nunca predice nada: puede muestrear una secuencia o un token de una distribución, o puede preguntar cuál es el próximo token más probable, pero estos son muy diferentes de una predicción (y no muestra durante el entrenamiento ya sea).

Si es así, ¿ha habido algún progreso en una función de pérdida más avanzada?

Es muy posible que haya objetivos específicamente diseñados caso por caso para diferentes tareas de modelado. Sin embargo, diría que MLE sigue siendo dominante: el reciente modelo GPT2 que logró un rendimiento de vanguardia en un amplio espectro de tareas de modelado y comprensión del lenguaje natural fue entrenado con él.

shimao
fuente