O que são embeddings de palavras para texto?

O que são embeddings de palavras para texto?

Embeddings de palavras são um tipo de representação de palavras que permite que palavras com significados semelhantes tenham uma representação semelhante.

Eles são uma representação distribuída de texto que talvez seja uma das principais descobertas para o desempenho impressionante dos métodos de aprendizado profundo em problemas desafiadores de processamento de linguagem natural.

Nesta postagem, você descobrirá a abordagem de incorporação de palavras para representar dados de texto.

Depois de concluir esta postagem, você saberá:

  • Qual é a abordagem de incorporação de palavras para representar texto e como ela difere de outros métodos de extração de recursos.
  • Que existem 3 algoritmos principais para aprender a incorporação de palavras a partir de dados de texto.
  • Que você pode treinar uma nova incorporação ou usar uma incorporação pré-treinada em sua tarefa de processamento de linguagem natural.

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.

O que são embeddings de palavras para texto?

O que são embeddings de palavras para texto?
Foto de Heather, alguns direitos reservados.

Visão geral

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

  1. O que são Word Embeddings?
  2. Algoritmos de incorporação de palavras
  3. Usando Word Embeddings

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

O que são Word Embeddings?

Uma incorporação de palavras é uma representação aprendida de texto em que palavras com o mesmo significado têm uma representação semelhante.

É essa abordagem para representar palavras e documentos que pode ser considerada uma das principais descobertas do aprendizado profundo em problemas desafiadores de processamento de linguagem natural.

Um dos benefícios de usar vetores densos e de baixa dimensão é computacional: a maioria dos kits de ferramentas de rede neural não funciona bem com vetores esparsos de dimensões muito altas. ... O principal benefício das representações densas é o poder de generalização: se acreditarmos que alguns recursos podem fornecer pistas semelhantes, vale a pena fornecer uma representação que seja capaz de capturar essas semelhanças.

- Página 92, Métodos de redes neurais em processamento de linguagem natural, 2017.

Embeddings de palavras são, na verdade, uma classe de técnicas em que palavras individuais são representadas como vetores de valor real em um espaço vetorial predefinido. Cada palavra é mapeada para um vetor e os valores do vetor são aprendidos de uma forma que se assemelha a uma rede neural e, portanto, a técnica é frequentemente agrupada no campo do aprendizado profundo.

A chave para a abordagem é a ideia de usar uma representação distribuída densa para cada palavra.

Cada palavra é representada por um vetor de valor real, geralmente dezenas ou centenas de dimensões. Isso é contrastado com os milhares ou milhões de dimensões necessárias para representações de palavras esparsas, como uma codificação one-hot.

associar a cada palavra no vocabulário um vetor de recurso de palavra distribuído ... O vetor de recurso representa diferentes aspectos da palavra: cada palavra está associada a um ponto em um espaço vetorial. O número de recursos ... é muito menor do que o tamanho do vocabulário

- A Neural Probabilistic Language Model, 2003.

A representação distribuída é aprendida com base no uso de palavras. Isso permite que palavras usadas de maneiras semelhantes resultem em representações semelhantes, capturando naturalmente seu significado. Isso pode ser contrastado com a representação nítida, mas frágil em um modelo de saco de palavras onde, a menos que explicitamente gerenciado, palavras diferentes têm representações diferentes, independentemente de como são usadas.

Há uma teoria lingüística mais profunda por trás da abordagem, ou seja, a “hipótese de distribuição”Por Zellig Harris que poderia ser resumido como: palavras que possuem contexto semelhante terão significados semelhantes. Para obter mais detalhes, consulte o artigo de 1956 de Harris “Estrutura de distribuição“.

Esta noção de deixar o uso da palavra definir seu significado pode ser resumida por uma piada freqüentemente repetida de John Firth:

Você deve saber uma palavra da empresa que mantém!

- Página 11, “Uma sinopse da teoria linguística 1930-1955“, em Studies in Linguistic Analysis 1930-1955, 1962.

Algoritmos de incorporação de palavras

Os métodos de incorporação de palavras aprendem uma representação vetorial com valor real para um vocabulário de tamanho fixo predefinido a partir de um corpus de texto.

O processo de aprendizagem é conjunto com o modelo de rede neural em alguma tarefa, como classificação de documentos, ou é um processo não supervisionado, usando estatísticas de documentos.

Esta seção revisa três técnicas que podem ser usadas para aprender a incorporação de palavras a partir de dados de texto.

1. Camada de incorporação

Uma camada de incorporação, por falta de um nome melhor, é uma incorporação de palavras que é aprendida em conjunto com um modelo de rede neural em uma tarefa de processamento de linguagem natural específica, como modelagem de linguagem ou classificação de documentos.

Exige que o texto do documento seja limpo e preparado de forma que cada palavra tenha uma codificação a quente. O tamanho do espaço vetorial é especificado como parte do modelo, como 50, 100 ou 300 dimensões. Os vetores são inicializados com pequenos números aleatórios. A camada de incorporação é usada na extremidade frontal de uma rede neural e é ajustada de forma supervisionada usando o algoritmo de retropropagação.

... quando a entrada para uma rede neural contém características categóricas simbólicas (por exemplo, características que pegam um dos k símbolos distintos, como palavras de um vocabulário fechado), é comum associar cada valor de característica possível (ou seja, cada palavra no vocabulário) com um vetor dimensional d para alguns d. Esses vetores são então considerados parâmetros do modelo e são treinados em conjunto com os outros parâmetros.

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

As palavras codificadas one-hot são mapeadas para os vetores de palavras. Se um modelo Perceptron multicamadas for usado, os vetores de palavras serão concatenados antes de serem alimentados como entrada para o modelo. Se uma rede neural recorrente for usada, cada palavra pode ser considerada como uma entrada em uma sequência.

Essa abordagem de aprender uma camada de incorporação requer muitos dados de treinamento e pode ser lenta, mas aprenderá uma incorporação direcionada aos dados de texto específicos e à tarefa de PNL.

2. Word2Vec

Word2Vec é um método estatístico para aprender com eficiência uma incorporação de palavras autônoma a partir de um corpus de texto.

Foi desenvolvido por Tomas Mikolov, et al. no Google em 2013 como uma resposta para tornar o treinamento baseado em rede neural de incorporação mais eficiente e, desde então, tornou-se o padrão de fato para o desenvolvimento de incorporação de palavras pré-treinada.

Além disso, o trabalho envolveu a análise dos vetores aprendidos e a exploração da matemática vetorial nas representações de palavras. Por exemplo, subtrair o “masculinidade" a partir de "Rei”E adicionando“feminilidade”Resulta na palavra“rainha“, Capturando a analogia“o rei está para a rainha assim como o homem está para a mulher“.

Descobrimos que essas representações são surpreendentemente boas em capturar regularidades sintáticas e semânticas na linguagem, e que cada relacionamento é caracterizado por um deslocamento de vetor específico de relação. Isso permite o raciocínio orientado a vetores com base nos deslocamentos entre as palavras. Por exemplo, a relação homem / mulher é aprendida automaticamente, e com as representações vetoriais induzidas, "Rei - Homem + Mulher" resulta em um vetor muito próximo de "Rainha".

- Regularidades linguísticas em representações de palavras em espaço contínuo, 2013.

Foram introduzidos dois modelos de aprendizagem diferentes que podem ser usados ​​como parte da abordagem word2vec para aprender a palavra embedding; eles estão:

  • Continuous Bag-of-Words, ou modelo CBOW.
  • Modelo Contínuo Skip-Gram.

O modelo CBOW aprende a incorporação, prevendo a palavra atual com base em seu contexto. O modelo de pulo-grama contínuo aprende prevendo as palavras ao redor dadas uma palavra atual.

O modelo de pulo-grama contínuo aprende prevendo as palavras ao redor dadas uma palavra atual.

Modelos de treinamento Word2Vec

Modelos de treinamento Word2Vec
Retirado de "Efficient Estimation of Word Representations in Vector Space", 2013

Ambos os modelos são focados em aprender sobre palavras de acordo com seu contexto de uso local, onde o contexto é definido por uma janela de palavras vizinhas. Esta janela é um parâmetro configurável do modelo.

O tamanho da janela deslizante tem um forte efeito nas semelhanças vetoriais resultantes. Janelas grandes tendem a produzir semelhanças mais atuais […], enquanto janelas menores tendem a produzir mais semelhanças funcionais e sintáticas.

- Página 128, Métodos de redes neurais em processamento de linguagem natural, 2017.

O principal benefício da abordagem é que embeddings de palavras de alta qualidade podem ser aprendidos de forma eficiente (baixa complexidade de espaço e tempo), permitindo que embeddings maiores sejam aprendidos (mais dimensões) a partir de corpora de texto muito maiores (bilhões de palavras).

3. GloVe

O algoritmo Global Vectors for Word Representation, ou GloVe, é uma extensão do método word2vec para a aprendizagem eficiente de vetores de palavras, desenvolvido por Pennington, et al. em Stanford.

As representações clássicas de modelos de espaço vetorial de palavras foram desenvolvidas usando técnicas de fatoração de matriz, como Análise Semântica Latente (LSA), que fazem um bom trabalho no uso de estatísticas de texto globais, mas não são tão boas quanto os métodos aprendidos como word2vec em capturar significado e demonstrá-lo em tarefas como calcular analogias (por exemplo, o exemplo do Rei e da Rainha acima).

GloVe é uma abordagem para combinar as estatísticas globais de técnicas de fatoração de matrizes, como LSA, com o aprendizado baseado em contexto local em word2vec.

Em vez de usar uma janela para definir o contexto local, o GloVe constrói um contexto de palavra explícito ou matriz de coocorrência de palavras usando estatísticas em todo o corpo do texto. O resultado é um modelo de aprendizagem que pode resultar em embeddings de palavras geralmente melhores.

GloVe é um novo modelo de regressão log-bilinear global para a aprendizagem não supervisionada de representações de palavras que supera outros modelos em analogia de palavras, similaridade de palavras e tarefas de reconhecimento de entidades nomeadas.

- GloVe: Global Vectors for Word Representation, 2014.

Usando Word Embeddings

Você tem algumas opções quando se trata de usar incorporação de palavras em seu projeto de processamento de linguagem natural.

Esta seção descreve essas opções.

1. Aprenda uma incorporação

Você pode escolher aprender uma incorporação de palavras para o seu problema.

Isso exigirá uma grande quantidade de dados de texto para garantir que embeddings úteis sejam aprendidos, como milhões ou bilhões de palavras.

Você tem duas opções principais ao treinar a incorporação de palavras:

  1. Aprenda autônomo, em que um modelo é treinado para aprender a incorporação, que é salvo e usado como parte de outro modelo para sua tarefa posteriormente. Essa é uma boa abordagem se você quiser usar a mesma incorporação em vários modelos.
  2. Aprenda em conjunto, em que a incorporação é aprendida como parte de um grande modelo específico de tarefa. Essa é uma boa abordagem se você pretende usar a incorporação em apenas uma tarefa.

2. Reutilizar uma incorporação

É comum que pesquisadores disponibilizem embeddings de palavras pré-treinados gratuitamente, geralmente sob uma licença permissiva para que você possa usá-los em seus próprios projetos acadêmicos ou comerciais.

Por exemplo, os embeddings de palavras word2vec e GloVe estão disponíveis para download gratuito.

Eles podem ser usados ​​em seu projeto em vez de treinar seus próprios embeddings do zero.

Você tem duas opções principais quando se trata de usar embeddings pré-treinados:

  1. Estático, onde a incorporação é mantida estática e é usada como um componente do seu modelo. Essa é uma abordagem adequada se a incorporação for adequada para o seu problema e fornecer bons resultados.
  2. Atualizada, em que a incorporação pré-treinada é usada para propagar o modelo, mas a incorporação é atualizada em conjunto durante o treinamento do modelo ....

Você também pode estar interessado em