O BERT pode ser usado para tarefas de geração de sentenças?

12

Eu sou um novo aluno em PNL. Estou interessado na tarefa de gerar sentenças. Para mim, um método de última geração é o CharRNN , que usa o RNN para gerar uma sequência de palavras.

No entanto, o BERT saiu há várias semanas e é muito poderoso. Portanto, estou pensando se essa tarefa também pode ser realizada com a ajuda do BERT. Sou um aprendiz novo neste campo e obrigado por qualquer conselho!

ch271828n
fonte
11
O OpenAI GPT pode ser usado para isso? Acredito OpenAI GPT tem arquitetura diferente e é usado para a geração de texto
Sandeep Bhutani
Acredito que CharRNN definitivamente não é SOTA, devido ao tamanho limitado do contexto, de trabalhar na escala de caracteres. Em vez disso, há trabalho em subpalavras e codificações de pares de bytes
information_interchange

Respostas:

21

Para iniciantes, NÃO.

A geração de sentenças requer amostragem a partir de um modelo de linguagem, que fornece a distribuição de probabilidade da próxima palavra em contextos anteriores. Mas o BERT não pode fazer isso devido à sua natureza bidirecional.


Para pesquisadores avançados, SIM.

Você pode começar com uma frase de todos os tokens [MASK] e gerar palavras uma a uma em ordem arbitrária (em vez da decomposição comum da cadeia da esquerda para a direita). Embora a qualidade da geração de texto seja difícil de controlar.

Aqui está o relatório técnico que o BERT tem na boca e deve falar: O BERT como um modelo de linguagem de campo aleatório de Markov , suas erratas e o código-fonte .


Em suma:

  • Se você deseja fazer alguma pesquisa na área de decodificação com o BERT, há um espaço enorme para explorar
  • Se você deseja gerar textos de alta qualidade, pessoalmente recomendo que você verifique o GPT-2 .
soloice
fonte
3

esse experimento de Stephen Mayhew sugere que o BERT é péssimo na geração seqüencial 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, mascarei a "fome" para ver o que o BERT previa. Se pudesse prever corretamente sem o contexto certo, poderíamos estar em boa forma para geração.

Isso falhou. O BERT previu "muito" como a última palavra. Talvez seja porque o BERT acha que a ausência de um período significa que a sentença deve continuar. Talvez seja tão usado para completar frases que fique confuso. Não tenho certeza.

Alguém poderia argumentar que devemos continuar prevendo depois de "muito". Talvez isso produza algo significativo. Para isso, eu diria: primeiro, isso era para ser uma oferta inoperante, e qualquer humano previa "fome". Segundo, eu tentei e continua prevendo coisas idiotas. Depois de "much", o próximo token é ",".

Portanto, pelo menos usando esses métodos triviais, o BERT não pode gerar texto.

Stuart
fonte
1

Que opções alternativas existem para isso?

Não. A geração de sentenças está diretamente relacionada à modelagem de linguagem (dadas as palavras anteriores da sentença, qual é a próxima palavra). Devido à bidirecionalidade do BERT, o BERT não pode ser usado como modelo de linguagem. Se não puder ser usado como modelo de linguagem, não vejo como você pode gerar uma frase usando o BERT.

Shamit Bagchi
fonte