Cartilha sobre modelos de redes neurais para processamento de linguagem natural

Cartilha sobre modelos de redes neurais para processamento de linguagem natural

O aprendizado profundo está tendo um grande impacto no campo do processamento de linguagem natural.

Mas, como um iniciante, por onde você começa?

Tanto o aprendizado profundo quanto o processamento de linguagem natural são campos enormes. Quais são os aspectos salientes de cada campo para enfocar e quais áreas da PNL o aprendizado profundo está tendo mais impacto?

Neste post, você descobrirá uma cartilha sobre aprendizado profundo para processamento de linguagem natural.

Depois de ler esta postagem, você saberá:

  • As arquiteturas de rede neural que estão tendo o maior impacto no campo do processamento de linguagem natural.
  • Uma visão ampla das tarefas de processamento de linguagem natural que podem ser abordadas com sucesso com o aprendizado profundo.
  • A importância das representações de palavras densas e os métodos que podem ser usados ​​para aprendê-las.

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.

Cartilha sobre modelos de redes neurais para processamento de linguagem natural

Cartilha sobre modelos de redes neurais para processamento de linguagem natural
Foto de faungg's photos, alguns direitos reservados.

Visão geral

Este post está dividido em 12 seções que seguem a estrutura do artigo; eles estão:

  1. Sobre o artigo (introdução)
  2. Arquiteturas de rede neural
  3. Representação de recursos
  4. Redes Neurais Feed-Forward
  5. Word Embeddings
  6. Treinamento de rede neural
  7. Aprendizagem em cascata e multitarefa
  8. Previsão de saída estruturada
  9. Camadas Convolucionais
  10. Redes Neurais Recorrentes
  11. Arquiteturas de concreto RNN
  12. Árvores de modelagem

Quero dar uma ideia das seções principais e do estilo deste artigo, bem como uma introdução de alto nível ao tópico.

Se você quiser se aprofundar, recomendo fortemente a leitura do artigo na íntegra ou do livro mais recente.

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. Sobre o papel

O título do artigo é: “Uma cartilha sobre modelos de redes neurais para processamento de linguagem natural“.

Ele está disponível gratuitamente no ArXiv e foi datado pela última vez em 2015. É mais um relatório técnico ou tutorial do que um artigo e fornece uma introdução abrangente aos métodos de Aprendizado Profundo para Processamento de Linguagem Natural (PNL), destinados a pesquisadores e estudantes.

Este tutorial examina os modelos de rede neural da perspectiva da pesquisa de processamento de linguagem natural, em uma tentativa de trazer os pesquisadores de linguagem natural ao conhecimento das técnicas neurais.

A cartilha foi escrita por Yoav Goldberg, que é pesquisador na área de PNL e trabalhou como cientista pesquisador no Google Research. Yoav causou alguma polêmica recentemente, mas eu não usaria isso contra ele.

É um relatório técnico com cerca de 62 páginas e cerca de 13 páginas de referências.

O papel é ideal para iniciantes por dois motivos:

  • Ele pressupõe pouco sobre o leitor, exceto que você está interessado neste tópico e conhece um pouco de aprendizado de máquina e / ou processamento de linguagem natural.
  • Tem uma grande amplitude, cobrindo uma ampla gama de métodos de aprendizado profundo e problemas de linguagem natural.

Neste tutorial, tento fornecer aos praticantes de PNL (assim como aos novatos) o conhecimento básico, jargão, ferramentas e metodologia que lhes permitirá compreender os princípios por trás dos modelos de rede neural e aplicá-los em seu próprio trabalho. … Destina-se aos leitores interessados ​​em pegar a tecnologia útil existente e aplicá-la de maneiras úteis e criativas aos seus problemas favoritos de PNL.

Freqüentemente, os principais métodos de aprendizagem profunda são reformulados usando a terminologia ou nomenclatura da lingüística ou processamento de linguagem natural, fornecendo uma ponte útil.

Finalmente, esta cartilha de 2015 foi transformada em um livro publicado em 2017, intitulado “Métodos de redes neurais para processamento de linguagem natural“.

Métodos de rede neural para processamento de linguagem natural

Métodos de rede neural para processamento de linguagem natural

Se você gosta desta cartilha e quer ir mais fundo, recomendo o livro de Yoav.

2. Arquiteturas de rede neural

Esta curta seção fornece uma introdução aos diferentes tipos de arquiteturas de rede neural com referências cruzadas em seções posteriores.

Redes neurais de feed-forward totalmente conectadas são alunos não lineares que podem, em sua maior parte, ser usados ​​como um substituto imediato, sempre que um aluno linear é usado.

Um total de 4 tipos de arquiteturas de rede neural são cobertos, destacando exemplos de aplicativos e referências de cada um:

  • Redes neurais feed-forward totalmente conectadas, por exemplo, redes Perceptron multicamadas.
  • Redes com camadas convolucionais e de pool, por exemplo, redes neurais convolucionais.
  • Redes Neurais Recorrentes, por exemplo, redes de memória longa de curto prazo.
  • Redes Neurais Recursivas.

Esta seção fornece uma ótima fonte se você estiver interessado apenas em aplicativos para um tipo de rede específico e quiser ir direto para os documentos originais.

3. Representação de recursos

Esta seção enfoca o uso da transição de representações esparsas para densas que podem, por sua vez, ser treinadas junto com os modelos de aprendizado profundo.

Talvez o maior salto ao passar de modelos lineares de entrada esparsa para modelos baseados em rede neural seja parar de representar cada recurso como uma dimensão única (a chamada representação one-hot) e representá-los como vetores densos.

Uma estrutura geral dos sistemas de classificação de PNL é apresentada, resumida como:

  1. Extraia um conjunto de recursos linguísticos essenciais.
  2. Recupere o vetor correspondente para cada vetor.
  3. Combine os vetores de recursos.
  4. Alimente os vetores combinados em um classificador não linear.

A chave para esta formulação são os vetores de recursos densos, em vez de esparsos, e o uso de recursos principais em vez de combinações de recursos.

Observe que o estágio de extração de recursos nas configurações da rede neural lida apenas com a extração de recursos principais. Isso está em contraste com os sistemas de PNL baseados em modelos lineares tradicionais, nos quais o designer de recursos tinha que especificar manualmente não apenas os recursos principais de interesse, mas também as interações entre eles

4. Redes Neurais Feed-Forward

Esta seção fornece um curso intensivo sobre redes neurais artificiais feed-forward.

Rede neural feed-forward com duas camadas ocultas

Rede neural feed-forward com duas camadas ocultas, extraída de "A Primer on Neural Network Models for Natural Language Processing".

As redes são apresentadas usando uma metáfora inspirada no cérebro e usando notação matemática. Tópicos comuns de rede neural são abordados, tais como:

  • Poder de representação (por exemplo, aproximação universal).
  • Não linearidades comuns (por exemplo, funções de transferência).
  • Transformações de saída (por exemplo, softmax).
  • Embeddings de palavras (por exemplo, representação densa aprendida integrada).
  • Funções de perda (por exemplo, dobradiça e perda de log).

5. Embeddings de palavras

O tópico de representações de incorporação de palavras é a chave para a abordagem de rede neural no processamento de linguagem natural. Esta seção expande o tópico e enumera os métodos principais.

Um componente principal da abordagem de rede neural é o uso de embeddings - representando cada recurso como um vetor em um espaço de baixa dimensão

Os seguintes tópicos de incorporação de palavras são revisados:

  • Inicialização aleatória (por exemplo, começando com vetores aleatórios uniformizados).
  • Pré-treinamento supervisionado para tarefas específicas (por exemplo, aprendizagem por transferência).
  • Pré-treinamento não supervisionado (por exemplo, métodos estatísticos como word2vec e GloVe).
  • Objetivos de treinamento (por exemplo, a influência do objetivo nos vetores resultantes).
  • A escolha dos contextos (por exemplo, influência das palavras em torno de cada palavra).

Embeddings de palavras neurais originados do mundo da modelagem de linguagem, em que uma rede é treinada para prever a próxima palavra com base em uma sequência de palavras anteriores

6. Treinamento de rede neural

Esta seção mais longa enfoca como as redes neurais são treinadas, escrito para aqueles que são novos no paradigma de rede neural.

O treinamento da rede neural é feito tentando minimizar uma função de perda em um conjunto de treinamento, usando um método baseado em gradiente.

A seção enfoca a descida gradiente estocástica (e amigos como minilote), bem como tópicos importantes durante o treinamento, como regularização.

Interessante, a perspectiva de gráfico computacional de redes neurais é apresentada, fornecendo uma cartilha para bibliotecas numéricas simbólicas como Theano e TensorFlow, que são bases populares para implementar modelos de aprendizado profundo.

Uma vez que o gráfico é construído, é simples executar um cálculo progressivo (calcular o resultado do cálculo) ou retroativo (calcular os gradientes)

7. Aprendizagem em cascata e multitarefa

Esta seção se baseia na seção anterior, resumindo o trabalho para aplicar modelos de PNL em cascata e modelos para aprender em várias tarefas de linguagem.

Modelagem em cascata: Explora a definição de gráfico computacional de modelos de rede neural para alavancar representações intermediárias (codificação) para desenvolver modelos mais sofisticados.

Por exemplo, podemos ter uma rede feed-forward para prever a classe gramatical de uma palavra com base nas palavras vizinhas e / ou nos caracteres que a compõem.

Aprendizagem multitarefa: Onde há tarefas de previsão de linguagem natural relacionadas que não se alimentam umas das outras, mas as informações podem ser compartilhadas entre as tarefas.

As informações para prever limites de blocos, limites de entidades nomeadas e a próxima palavra na frase dependem de alguma representação sintática-semântica subjacente compartilhada

Ambos os conceitos avançados são descritos no contexto de redes neurais que permitem a conectividade entre modelos ou informações durante o treinamento (retropropagação de erros) e fazendo previsões.

8. Previsão de saída estruturada

Esta seção trata de exemplos de tarefas de linguagem natural em que métodos de aprendizado profundo são usados ​​para fazer previsões estruturadas, como sequências, árvores e gráficos.

Os exemplos canônicos são a marcação de sequência (por exemplo, marcação de parte do discurso), segmentação de sequência (chunking, NER) e análise sintática.

Esta seção cobre a previsão estruturada gananciosa e baseada em pesquisa, com foco na última.

A abordagem comum para prever estruturas de linguagem natural é baseada em pesquisa.

9. Camadas convolucionais

Esta seção oferece um curso intensivo sobre Redes Neurais Convolucionais (CNNs) e seu impacto na linguagem natural.

Notavelmente, as CNNs têm se mostrado muito eficazes para tarefas de classificação da PNL, como análise de sentimento, por exemplo, aprender a procurar subseqüências ou estruturas específicas em texto para fazer previsões.

Uma rede neural convolucional é projetada para identificar preditores locais indicativos em uma grande estrutura e combiná-los para produzir uma representação vetorial de tamanho fixo da estrutura, capturando esses aspectos locais que são mais informativos para a tarefa de previsão em questão.

10. Redes Neurais Recorrentes

Como na seção anterior, esta seção enfoca o uso de um tipo específico de rede e sua função e aplicação na PNL. Neste caso, Redes Neurais Recorrentes (RNNs) para modelagem de sequências.

Redes neurais recorrentes (RNNs) permitem representar entradas estruturadas de tamanho arbitrário em um vetor de tamanho fixo, prestando atenção às propriedades estruturadas da entrada.

Dada a popularidade dos RNNs e, especificamente, da Long Short-Term Memory (LSTM) na PNL, esta seção maior trabalha com uma variedade de tópicos e modelos recorrentes, incluindo:

  • A abstração RNN (por exemplo, conexões recorrentes no gráfico da rede).
  • Treinamento RNN (por exemplo, retropropagação ao longo do tempo).
  • RNNs multicamadas (empilhados) (por exemplo, a parte “profunda” do aprendizado profundo).
  • BI-RNN (por exemplo, fornecendo sequências para frente e para trás como entrada).
  • RNNs para representar pilhas

O tempo é gasto nas arquiteturas de modelo RNN ou elementos arquitetônicos, ...

Você também pode estar interessado em