O que é um modelo de linguagem mascarada, e como está relacionado com o BERT?
A modelagem de linguagem mascarada é um exemplo de modelagem de linguagem autocodificada (a saída é reconstruída a partir de entrada corrompida) - tipicamente mascaramos uma ou mais palavras em uma frase e temos o modelo prever essas palavras mascaradas dadas as outras palavras na frase. Ao treinar o modelo com tal objetivo, ele pode essencialmente aprender certas (mas não todas) propriedades estatísticas das seqüências de palavras.
BERT é um modelo que é treinado em um objetivo de modelagem de linguagem mascarada.
Agências de modelagem de linguagem mostradas na figura abaixo.
Agências de modelagem de linguagem - Abordagem autoregressiva (por exemplo, previsão da esquerda para a direita, previsão da direita para a esquerda). Abordagem de linguagem mascarada - Usando a previsão de uma palavra usando todas as outras palavras em uma frase (as palavras em vermelho no caso BERT são mascaradas - substituídas por um símbolo especial [MASK]). O BERT mascara cerca de 15% das palavras de uma frase e utiliza as palavras de contexto para a prever. Imagem de Hands-on NLP model review
Masked language modeling é útil quando se tenta aprender representações profundas (ou seja, aprender múltiplas representações de uma palavra usando um modelo profundo - estas representações têm mostrado melhorar o desempenho em tarefas downstream. Por exemplo, representações de camadas inferiores de certos modelos são úteis para tarefas sintácticas enquanto que representações de camadas superiores para tarefas semânticas) para uma palavra usando palavras de cada lado de uma palavra em uma frase (representações profundas e bidirecionais).
Um modelo de linguagem mascarada é particularmente útil para aprender representações bidirecionais profundas porque a abordagem padrão de modelagem de linguagem (modelagem autoregressiva) não funciona em um modelo profundo com contexto bidirecional - a previsão de uma palavra se veria indiretamente tornando a previsão trivial, como mostrado abaixo (a palavra "tempos" pode ser usada em sua própria previsão a partir da camada 2). O BERT aborda este problema através da substituição da palavra a ser predita por um símbolo de máscara) . No entanto, também poderíamos aprender representações bidirecionais profundas sem ter que recorrer à modelagem de linguagem mascarada usando a abordagem de permutação de um modelo mais recente - XLNet.
Image from Hands-on NLP model review
Não está claro neste ponto se a abordagem da XLNet de aprender representações bidirecionais profundas é melhor para as tarefas a jusante do que o BERT, porque, após o lançamento da XLNet com melhorias no estado da arte em relação ao BERT, uma versão revista do BERT (RoBERTa) com alguns ajustes de hiperparâmetros mostrou ter um desempenho melhor do que a XLNet (é possível que vejamos um lançamento posterior da XLNet com ajustes semelhantes).
No entanto, pode-se argumentar que existe uma vantagem no treinamento usando uma abordagem autoregressiva em comparação com a abordagem de modelagem mascarada. A pergunta padrão que podemos fazer a um modelo de linguagem - "qual é a probabilidade de uma frase?" não faz sentido no caso do modelo mascarado (embora exista uma forma de emular tal pergunta, mascarando sequencialmente cada palavra e calculando uma pontuação de perplexidade) porque o objectivo do treino é simplesmente prever algumas palavras mascaradas (cerca de 15% das palavras de uma frase no BERT) numa frase - o modelo não está a aprender directamente o que é uma frase. O BERT também não pretende gerar frases (modelo generativo) pelo mesmo motivo (embora se possa criar uma aproximação até certo grau) pelo mesmo motivo. A XLNet, pelo contrário, pode.
Artigos semelhantes
- Qual é a diferença entre linguagem de máquina, linguagem de montagem e linguagem de alto nível em computadores?
- Qual é a diferença entre modelo AR, modelo ARMA e modelo ARIMA?
- Como é que o Kalman Filter está relacionado com a Robótica?
- Que software está relacionado com o smart grid, automação doméstica e micro grid?