¿Se puede usar BERT para tareas generadoras de oraciones?

12

Soy un nuevo alumno en PNL. Estoy interesado en la tarea de generación de oraciones. En lo que a mí respecta, un método de vanguardia es el CharRNN , que utiliza RNN para generar una secuencia de palabras.

Sin embargo, BERT salió hace varias semanas y es muy poderoso. Por lo tanto, me pregunto si esta tarea también se puede hacer con la ayuda de BERT. Soy un nuevo alumno en este campo, y gracias por cualquier consejo.

ch271828n
fuente
1
¿Se puede usar OpenAI GPT para esto? Creo que OpenAI GPT tiene una arquitectura diferente y se usa para la generación de texto
Sandeep Bhutani
Creo que CharRNN definitivamente no es SOTA, debido a la longitud limitada del contexto, de trabajar a escala de personajes. En su lugar, hay trabajo en palabras parciales, y el byte de par codificaciones
information_interchange

Respuestas:

21

Para los novatos, NO.

La generación de oraciones requiere un muestreo de un modelo de lenguaje, que proporciona la distribución de probabilidad de la siguiente palabra en contextos previos. Pero BERT no puede hacer esto debido a su naturaleza bidireccional.


Para investigadores avanzados, SÍ.

Puede comenzar con una oración de todos los tokens [MASK] y generar palabras una por una en orden arbitrario (en lugar de la descomposición de cadena de izquierda a derecha común). Aunque la calidad de generación de texto es difícil de controlar.

Aquí está el informe técnico BERT tiene una boca, y debe hablar: BERT como un modelo de lenguaje de campo aleatorio de Markov , sus erratas y el código fuente .


En resumen:

  • Si desea investigar un poco en el área de decodificación con BERT, hay un gran espacio para explorar
  • Si desea generar textos de alta calidad, personalmente le recomiendo que revise GPT-2 .
soloice
fuente
3

Este experimento de Stephen Mayhew sugiere que BERT es pésimo en la generación secuencial de texto:

http://mayhewsw.github.io/2019/01/16/can-bert-generate-text/

although he had already eaten a large meal, he was still very hungry

Como antes, enmascaré "hambriento" para ver qué predeciría BERT. Si pudiera predecirlo correctamente sin un contexto adecuado, podríamos estar en buena forma para la generación.

Esto falló. BERT predijo "mucho" como la última palabra. Quizás esto se deba a que BERT piensa que la ausencia de un punto significa que la oración debe continuar. Tal vez solo se usa para completar oraciones y se confunde. No estoy seguro.

Se podría argumentar que deberíamos seguir prediciendo después de "mucho". Tal vez va a producir algo significativo. A eso diría: primero, esto estaba destinado a ser un regalo muerto, y cualquier humano predeciría "hambriento". En segundo lugar, lo probé y sigue prediciendo cosas tontas. Después de "mucho", el siguiente token es ",".

Entonces, al menos usando estos métodos triviales, BERT no puede generar texto.

Estuardo
fuente
2

No. La generación de oraciones está directamente relacionada con el modelado del lenguaje (dadas las palabras anteriores en la oración, cuál es la siguiente palabra). Debido a la bidireccionalidad de BERT, BERT no puede usarse como modelo de lenguaje. Si no se puede usar como modelo de lenguaje, no veo cómo puede generar una oración usando BERT.

Astariul
fuente
1
Mi respuesta ya no es correcta. Puede que quieras aceptar la respuesta de
@soloice
1

¿Qué opciones alternativas existen para esto?

No. La generación de oraciones está directamente relacionada con el modelado del lenguaje (dadas las palabras anteriores en la oración, cuál es la siguiente palabra). Debido a la bidireccionalidad de BERT, BERT no puede usarse como modelo de lenguaje. Si no se puede usar como modelo de lenguaje, no veo cómo puede generar una oración usando BERT.

Shamit Bagchi
fuente