Word2vec - Word2vec

Word2vec é uma técnica para processamento de linguagem natural publicada em 2013. O algoritmo word2vec usa um modelo de rede neural para aprender associações de palavras a partir de um grande corpo de texto . Uma vez treinado, esse modelo pode detectar palavras sinônimas ou sugerir palavras adicionais para uma frase parcial. Como o nome indica, word2vec representa cada palavra distinta com uma lista particular de números chamada vetor . Os vetores são escolhidos cuidadosamente de forma que uma função matemática simples (a semelhança de cosseno entre os vetores) indique o nível de semelhança semântica entre as palavras representadas por esses vetores.

Abordagem

Word2vec é um grupo de modelos relacionados que são usados ​​para produzir embeddings de palavras . Esses modelos são redes neurais superficiais de duas camadas que são treinadas para reconstruir contextos linguísticos de palavras. Word2vec toma como entrada um grande corpus de texto e produz um espaço vetorial , normalmente de várias centenas de dimensões , com cada palavra única no corpus sendo atribuída a um vetor correspondente no espaço. Os vetores de palavras são posicionados no espaço vetorial de forma que as palavras que compartilham contextos comuns no corpus estejam localizadas próximas umas das outras no espaço.

História

Word2vec foi criado, patenteado e publicado em 2013 por uma equipe de pesquisadores liderada por Tomas Mikolov no Google em dois artigos. Outros pesquisadores ajudaram a analisar e explicar o algoritmo. A incorporação de vetores criados com o algoritmo Word2vec tem algumas vantagens em comparação com algoritmos anteriores, como a análise semântica latente .

CBOW e pular gramas

Word2vec pode utilizar qualquer uma das duas arquiteturas de modelo para produzir uma representação distribuída de palavras: saco de palavras contínuo (CBOW) ou grama de salto contínua . Na arquitetura de saco de palavras contínuo, o modelo prevê a palavra atual a partir de uma janela de palavras de contexto circundantes. A ordem das palavras do contexto não influencia a previsão ( suposição do saco de palavras ). Na arquitetura de ignorar grama contínua, o modelo usa a palavra atual para prever a janela circundante de palavras de contexto. A arquitetura de grama de salto pesa palavras de contexto próximas mais fortemente do que palavras de contexto mais distantes. De acordo com a nota dos autores, o CBOW é mais rápido, enquanto o skip-gram faz um trabalho melhor para palavras pouco frequentes.

Parametrização

Os resultados do treinamento do word2vec podem ser sensíveis à parametrização . A seguir estão alguns parâmetros importantes no treinamento do word2vec.

Algoritmo de treinamento

Um modelo Word2vec pode ser treinado com softmax hierárquico e / ou amostragem negativa. Para aproximar o log de verossimilhança condicional que um modelo busca maximizar, o método hierárquico softmax usa uma árvore de Huffman para reduzir o cálculo. O método de amostragem negativa, por outro lado, aborda o problema de maximização, minimizando a probabilidade log de instâncias negativas amostradas. De acordo com os autores, o softmax hierárquico funciona melhor para palavras pouco frequentes, enquanto a amostragem negativa funciona melhor para palavras frequentes e melhor com vetores de baixa dimensão. À medida que os períodos de treinamento aumentam, o softmax hierárquico deixa de ser útil.

Sub-amostragem

Palavras de alta frequência geralmente fornecem poucas informações. Palavras com uma frequência acima de um certo limite podem ser subamostradas para acelerar o treinamento.

Dimensionalidade

A qualidade da incorporação de palavras aumenta com a dimensionalidade mais alta. Mas depois de atingir algum ponto, o ganho marginal diminui. Normalmente, a dimensionalidade dos vetores é definida entre 100 e 1.000.

Janela de contexto

O tamanho da janela de contexto determina quantas palavras antes e depois de uma determinada palavra são incluídas como palavras de contexto dessa palavra. De acordo com a nota dos autores, o valor recomendado é 10 para skip-gram e 5 para CBOW.

Extensões

Uma extensão do word2vec para construir embeddings de documentos inteiros (ao invés de palavras individuais) foi proposta. Esta extensão é chamada de paragraph2vec ou doc2vec e foi implementada nas ferramentas C, Python e Java / Scala (veja abaixo), com as versões Java e Python também suportando inferência de embeddings de documentos em documentos novos e não vistos.

Vetores de palavras para bioinformática: BioVetores

Uma extensão de vetores de palavras para n-gramas em sequências biológicas (por exemplo , DNA , RNA e proteínas ) para aplicações de bioinformática foi proposta por Asgari e Mofrad. Biovetores nomeados (BioVec) para se referir a sequências biológicas em geral com vetores de proteínas (ProtVec) para proteínas (sequências de aminoácidos) e vetores de genes (GeneVec) para sequências de genes, esta representação pode ser amplamente utilizada em aplicações de máquina aprendizagem em proteômica e genômica. Os resultados sugerem que os BioVectors podem caracterizar sequências biológicas em termos de interpretações bioquímicas e biofísicas dos padrões subjacentes. Uma variante semelhante, dna2vec, mostrou que há correlação entre a pontuação de similaridade Needleman-Wunsch e a similaridade de cosseno de vetores de palavras dna2vec.

Vetores de palavras para radiologia: incorporação inteligente de palavras (IWE)

Uma extensão de vetores de palavras para criar uma representação vetorial densa de relatórios de radiologia não estruturados foi proposta por Banerjee et al. Um dos maiores desafios do Word2Vec é como lidar com palavras desconhecidas ou fora do vocabulário (OOV) e palavras morfologicamente semelhantes. Isso pode ser particularmente um problema em domínios como a medicina, onde sinônimos e palavras relacionadas podem ser usados ​​dependendo do estilo preferido do radiologista, e as palavras podem ter sido usadas com pouca frequência em um grande corpus. Se o modelo word2vec não encontrou uma palavra específica antes, ele será forçado a usar um vetor aleatório, que geralmente está longe de sua representação ideal.

IWE combina Word2vec com uma técnica de mapeamento de dicionário semântico para enfrentar os principais desafios da extração de informações de textos clínicos, que incluem ambiguidade do estilo narrativo de texto livre, variações lexicais, uso de fases não gramaticais e telegráficas, ordenação arbitrária de palavras e aparecimento frequente de abreviações e siglas. De particular interesse, o modelo IWE (treinado em um conjunto de dados institucional) foi traduzido com sucesso para um conjunto de dados institucional diferente que demonstra boa generalização da abordagem entre as instituições.

Análise

As razões para o sucesso da aprendizagem de incorporação de palavras na estrutura word2vec são mal compreendidas. Goldberg e Levy apontam que a função objetivo word2vec faz com que palavras que ocorrem em contextos semelhantes tenham embeddings semelhantes (conforme medido pela semelhança do cosseno ) e observam que isso está de acordo com a hipótese distributiva de JR Firth . No entanto, eles observam que esta explicação é "muito ondulada" e argumentam que uma explicação mais formal seria preferível.

Levy et al. (2015) mostram que muito do desempenho superior do word2vec ou embeddings semelhantes em tarefas downstream não é resultado dos modelos em si, mas da escolha de hiperparâmetros específicos. Transferir esses hiperparâmetros para abordagens mais 'tradicionais' produz desempenhos semelhantes em tarefas posteriores. Arora et al. (2016) explicam word2vec e algoritmos relacionados como realizando inferência para um modelo gerativo simples para texto, que envolve um processo de geração de passeio aleatório baseado em modelo de tópico loglinear. Eles usam isso para explicar algumas propriedades de embeddings de palavras, incluindo seu uso para resolver analogias.

Preservação de relações semânticas e sintáticas

A abordagem de incorporação de palavras é capaz de capturar vários graus diferentes de similaridade entre as palavras. Mikolov et al. (2013) descobriram que os padrões semânticos e sintáticos podem ser reproduzidos usando aritmética vetorial. Padrões como "Homem está para a mulher como o irmão está para a irmã" podem ser gerados por meio de operações algébricas nas representações vetoriais dessas palavras, de modo que a representação vetorial de "Irmão" - "Homem" + "Mulher" produza um resultado mais próximo para a representação vetorial de "Irmã" no modelo. Essas relações podem ser geradas para uma gama de relações semânticas (como País-Capital), bem como relações sintáticas (por exemplo, tempo presente-pretérito).

Avaliando a qualidade de um modelo

Mikolov et al. (2013) desenvolvem uma abordagem para avaliar a qualidade de um modelo word2vec que se baseia nos padrões semânticos e sintáticos discutidos acima. Eles desenvolveram um conjunto de 8.869 relações semânticas e 10.675 relações sintáticas que usam como referência para testar a precisão de um modelo. Ao avaliar a qualidade de um modelo vetorial, um usuário pode recorrer a este teste de precisão que é implementado no word2vec, ou desenvolver seu próprio conjunto de testes que seja significativo para os corpora que compõem o modelo. Essa abordagem oferece um teste mais desafiador do que simplesmente argumentar que as palavras mais semelhantes a uma determinada palavra de teste são intuitivamente plausíveis.

Parâmetros e qualidade do modelo

O uso de diferentes parâmetros de modelo e diferentes tamanhos de corpus pode afetar muito a qualidade de um modelo word2vec. A precisão pode ser melhorada de várias maneiras, incluindo a escolha da arquitetura do modelo (CBOW ou Skip-Gram), aumentando o conjunto de dados de treinamento, aumentando o número de dimensões do vetor e aumentando o tamanho da janela de palavras consideradas pelo algoritmo. Cada uma dessas melhorias vem com o custo de maior complexidade computacional e, portanto, maior tempo de geração de modelo.

Em modelos que usam grandes corpora e um grande número de dimensões, o modelo skip-gram produz a maior precisão geral e produz consistentemente a maior precisão nas relações semânticas, além de produzir a maior precisão sintática na maioria dos casos. No entanto, o CBOW é menos caro em termos computacionais e produz resultados de precisão semelhantes.

No geral, a precisão aumenta com o número de palavras usadas e o número de dimensões. Mikolov et al. relatam que dobrar a quantidade de dados de treinamento resulta em um aumento na complexidade computacional equivalente a dobrar o número de dimensões do vetor.

Altszyler e co-autores (2017) estudaram o desempenho do Word2vec em dois testes semânticos para diferentes tamanhos de corpus. Eles descobriram que o Word2vec tem uma curva de aprendizado acentuada , superando outra técnica de incorporação de palavras ( LSA ) quando é treinado com corpus de médio a grande porte (mais de 10 milhões de palavras). Porém, com um pequeno corpo de treinamento, o LSA apresentou melhor desempenho. Além disso, eles mostram que a melhor configuração de parâmetros depende da tarefa e do corpus de treinamento. Entretanto, para modelos skip-gram treinados em corpora de médio porte, com 50 dimensões, um tamanho de janela de 15 e 10 amostras negativas parece ser um bom parâmetro de configuração.

Veja também

Referências

links externos

Implementações