Introdução suave à modelagem estatística de linguagem e modelos de linguagem neural

Introdução suave à modelagem estatística de linguagem e modelos de linguagem neural

A modelagem de linguagem é fundamental para muitas tarefas importantes de processamento de linguagem natural.

Recentemente, os modelos de linguagem baseados em redes neurais demonstraram melhor desempenho do que os métodos clássicos, tanto autônomos quanto como parte de tarefas mais desafiadoras de processamento de linguagem natural.

Nesta postagem, você descobrirá a modelagem de linguagem para processamento de linguagem natural.

Depois de ler esta postagem, você saberá:

  • Por que a modelagem de linguagem é crítica para lidar com tarefas no processamento de linguagem natural.
  • O que é um modelo de linguagem e alguns exemplos de onde são usados.
  • Como as redes neurais podem ser usadas para modelagem de linguagem.

Comece seu projeto com meu novo livro Deep Learning for Natural Language Processing, incluindo tutoriais passo a passo e a Código-fonte Python arquivos para todos os exemplos.

Vamos começar.

  • Atualizado em junho / 2019: Adicionados links para tutoriais de modelo de linguagem passo a passo.
Introdução suave à modelagem estatística de linguagem e modelos de linguagem neural

Introdução suave à modelagem estatística de linguagem e modelos de linguagem neural
Foto de Chris Sorge, alguns direitos reservados.

Visão geral

Este post está dividido em 3 partes; eles estão:

  1. Problema de linguagem de modelagem
  2. Modelagem de Linguagem Estatística
  3. Modelos de linguagem neural

Precisa de ajuda com Deep Learning for Text Data?

Faça meu curso intensivo de e-mail gratuito de 7 dias agora (com código).

Clique para se inscrever e também obter uma versão gratuita do Ebook em PDF do curso.

Comece Seu Crash-Course GRÁTIS Agora

1. Problema de linguagem de modelagem

Linguagens formais, como linguagens de programação, podem ser totalmente especificadas.

Todas as palavras reservadas podem ser definidas e as formas válidas como elas podem ser usadas podem ser definidas com precisão.

Não podemos fazer isso com linguagem natural. As linguagens naturais não são projetadas; eles surgem e, portanto, não há uma especificação formal.

Pode haver regras formais para partes da linguagem e heurísticas, mas a linguagem natural que não confirma é freqüentemente usada. As linguagens naturais envolvem um grande número de termos que podem ser usados ​​de maneiras que introduzem todos os tipos de ambigüidades, mas ainda podem ser compreendidos por outros humanos.

Além disso, os idiomas mudam, os usos das palavras mudam: é um alvo móvel.

No entanto, os linguistas tentam especificar a língua com gramáticas e estruturas formais. Pode ser feito, mas é muito difícil e os resultados podem ser frágeis.

Uma abordagem alternativa para especificar o modelo da linguagem é aprendê-lo com exemplos.

2. Modelagem de Linguagem Estatística

Modelagem Estatística de Linguagem, ou Modelagem de Linguagem e LM para abreviar, é o desenvolvimento de modelos probabilísticos que são capazes de prever a próxima palavra na sequência dadas as palavras que a precedem.

A modelagem de linguagem é a tarefa de atribuir uma probabilidade a sentenças em um idioma. […] Além de atribuir uma probabilidade a cada sequência de palavras, os modelos de linguagem também atribuem uma probabilidade da probabilidade de uma determinada palavra (ou sequência de palavras) seguir uma sequência de palavras

- Página 105, Métodos de rede neural em processamento de linguagem natural, 2017.

Um modelo de linguagem aprende a probabilidade de ocorrência de palavras com base em exemplos de texto. Modelos mais simples podem olhar para o contexto de uma sequência curta de palavras, enquanto modelos maiores podem funcionar no nível de sentenças ou parágrafos. Mais comumente, os modelos de linguagem operam no nível das palavras.

A noção de um modelo de linguagem é inerentemente probabilística. Um modelo de linguagem é uma função que coloca uma medida de probabilidade sobre strings extraídas de algum vocabulário.

- Página 238, An Introduction to Information Retrieval, 2008.

Um modelo de linguagem pode ser desenvolvido e usado de forma autônoma, como para gerar novas sequências de texto que parecem ter vindo do corpus.

A modelagem de linguagem é um problema raiz para uma grande variedade de tarefas de processamento de linguagem natural. De forma mais prática, os modelos de linguagem são usados ​​no front-end ou back-end de um modelo mais sofisticado para uma tarefa que requer compreensão de linguagem.

… A modelagem de linguagem é um componente crucial em aplicações do mundo real, como tradução automática e reconhecimento automático de fala, […] Por essas razões, a modelagem de linguagem desempenha um papel central no processamento de linguagem natural, IA e pesquisa de aprendizado de máquina.

- Página 105, Métodos de rede neural em processamento de linguagem natural, 2017.

Um bom exemplo é o reconhecimento de voz, onde os dados de áudio são usados ​​como entrada para o modelo e a saída requer um modelo de linguagem que interpreta o sinal de entrada e reconhece cada nova palavra dentro do contexto das palavras já reconhecidas.

O reconhecimento de fala preocupa-se principalmente com o problema de transcrever o sinal de fala como uma sequência de palavras. […] Deste ponto de vista, a fala é considerada gerada por um modelo de linguagem que fornece estimativas de Pr (w) para todas as cadeias de palavras w independentemente do sinal observado […] O objetivo do reconhecimento de fala é encontrar a sequência de palavras mais provável de acordo com o sinal acústico observado.

- Páginas 205-206, The Oxford Handbook of Computational Linguistics, 2005.

Da mesma forma, os modelos de linguagem são usados ​​para gerar texto em muitas tarefas semelhantes de processamento de linguagem natural, por exemplo:

  • Reconhecimento Ótico de Caracteres
  • Reconhecimento de caligrafia.
  • Maquina de tradução.
  • Correção ortográfica.
  • Legendagem de imagens.
  • Resumo de Texto
  • E muito mais.

Modelagem de linguagem é a arte de determinar a probabilidade de uma sequência de palavras. Isso é útil em uma grande variedade de áreas, incluindo reconhecimento de voz, reconhecimento óptico de caracteres, reconhecimento de caligrafia, tradução automática e correção ortográfica

- A Bit of Progress in Language Modeling, 2001.

O desenvolvimento de melhores modelos de linguagem geralmente resulta em modelos com melhor desempenho na tarefa de processamento de linguagem natural pretendida. Esta é a motivação para desenvolver modelos de linguagem melhores e mais precisos.

[language models] desempenharam um papel fundamental nas tarefas tradicionais da PNL, como reconhecimento de voz, tradução automática ou resumo de texto. Freqüentemente (embora nem sempre), treinar melhores modelos de linguagem melhora as métricas subjacentes da tarefa downstream (como taxa de erro de palavras para reconhecimento de fala ou pontuação BLEU para tradução), o que torna a tarefa de treinar melhores LMs valiosa por si só.

- Explorando os limites da modelagem de linguagem, 2016.

3. Modelos de linguagem neural

Recentemente, o uso de redes neurais no desenvolvimento de modelos de linguagem tornou-se muito popular, a tal ponto que agora pode ser a abordagem preferida.

O uso de redes neurais na modelagem de linguagem é freqüentemente chamado de Modelagem de Linguagem Neural, ou NLM para abreviar.

As abordagens de rede neural estão obtendo resultados melhores do que os métodos clássicos, tanto em modelos de linguagem autônomos quanto quando os modelos são incorporados em modelos maiores em tarefas desafiadoras, como reconhecimento de fala e tradução automática.

Um dos principais motivos para os saltos no desempenho aprimorado pode ser a capacidade de generalização do método.

Os modelos de rede neural não lineares resolvem algumas das deficiências dos modelos de linguagem tradicionais: eles permitem o condicionamento em tamanhos de contexto cada vez maiores com apenas um aumento linear no número de parâmetros, eles aliviam a necessidade de projetar manualmente os pedidos de retirada e suportam a generalização em diferentes contextos .

- Página 109, Métodos de rede neural em processamento de linguagem natural, 2017.

Especificamente, é adotada uma incorporação de palavras que usa um vetor de valor real para representar cada palavra em um espaço vetorial de projeto. Essa representação aprendida de palavras com base em seu uso permite que palavras com significado semelhante tenham uma representação semelhante.

Os Modelos de Linguagem Neural (NLM) abordam a questão da dispersão de dados de n-gramas por meio da parametrização de palavras como vetores (embeddings de palavras) e usando-os como entradas para uma rede neural. Os parâmetros são aprendidos como parte do processo de treinamento. Embeddings de palavras obtidos por meio de NLMs exibem a propriedade em que palavras semanticamente próximas são igualmente próximas no espaço vetorial induzido.

- Character-Aware Neural Language Model, 2015.

Essa generalização é algo que a representação usada nos modelos clássicos de linguagem estatística não pode alcançar facilmente.

A “generalização verdadeira” é difícil de obter em um espaço de índice de palavra discreto, uma vez que não há relação óbvia entre os índices de palavra.

- Modelagem de linguagem conexionista para reconhecimento de fala contínuo de grande vocabulário, 2002.

Além disso, a abordagem de representação distribuída permite que a representação embutida seja melhor escalonada com o tamanho do vocabulário. Os métodos clássicos que têm uma representação discreta por palavra lutam contra a maldição da dimensionalidade com vocabulários cada vez maiores de palavras que resultam em representações mais longas e esparsas.

A abordagem de rede neural para modelagem de linguagem pode ser descrita usando as três propriedades de modelo a seguir, retiradas de "A Neural Probabilistic Language Model", 2003.

  1. Associe cada palavra do vocabulário a um vetor de recurso de palavra distribuída.
  2. Expresse a função de probabilidade conjunta de sequências de palavras em termos dos vetores de características dessas palavras na sequência.
  3. Aprenda simultaneamente o vetor de características da palavra e os parâmetros da função de probabilidade.

Isso representa um modelo relativamente simples, onde tanto a representação quanto o modelo probabilístico são aprendidos juntos, diretamente a partir de dados de texto brutos.

Recentemente, as abordagens baseadas em neurais começaram a superar as abordagens estatísticas clássicas e, em seguida, começaram a superar de forma consistente.

Fornecemos ampla evidência empírica para sugerir que os modelos de linguagem conexionistas são superiores às técnicas padrão de n-gram, exceto por sua alta complexidade computacional (treinamento).

- Modelo de linguagem baseado em rede neural recorrente, 2010.

Inicialmente, modelos de rede neural feed-forward foram usados ​​para apresentar a abordagem.

Mais recentemente, as redes neurais recorrentes e depois as redes com uma memória de longo prazo, como a rede de memória de longo prazo, ou LSTM, permitem que os modelos aprendam o contexto relevante por meio de sequências de entrada muito mais longas do que as redes feed-forward mais simples.

[an RNN language model] fornece mais generalização: em vez de considerar apenas várias palavras anteriores, os neurônios com entrada de conexões recorrentes são assumidos para representar a memória de curto prazo. O modelo aprende com os dados como representar a memória. Enquanto as redes neurais de feedforward rasas (aquelas com apenas uma camada oculta) só podem agrupar palavras semelhantes, a rede neural recorrente (que pode ser considerada uma arquitetura profunda) pode realizar o agrupamento de histórias semelhantes. Isso permite, por exemplo, uma representação eficiente de padrões com comprimento variável.

- Extensões do modelo de linguagem de rede neural recorrente, 2011.

Recentemente, pesquisadores têm buscado os limites desses modelos de linguagem. No artigo “Explorando os Limites da Modelagem de Linguagem“, avaliando modelos de linguagem em grandes conjuntos de dados, como o corpus de um milhão de palavras, os autores descobriram que os modelos de linguagem neural baseados em LSTM superam os métodos clássicos.

… Mostramos que os RNN LMs podem ser treinados em grandes quantidades de dados e superar os modelos concorrentes, incluindo N-gramas cuidadosamente ajustados.

- Explorando os limites da modelagem de linguagem, 2016.

Além disso, eles propõem algumas heurísticas para o desenvolvimento de modelos de linguagem neural de alto desempenho em geral:

  • Tamanho importa. Os melhores modelos foram os modelos maiores, especificamente o número de unidades de memória.
  • Questões de regularização. O uso de regularização, como queda nas conexões de entrada, melhora os resultados.
  • CNNs x Embeddings. Modelos de Rede Neural Convolucional (CNN) em nível de caractere podem ser usados ​​no front-end em vez de embeddings de palavras, obtendo resultados semelhantes e às vezes melhores.
  • Conjuntos importam. Combinando a previsão ...

Você também pode estar interessado em