Como a amostragem negativa funciona no word2vec?

19

Eu tenho me esforçado bastante para entender o conceito de amostragem negativa no contexto do word2vec. Eu sou incapaz de digerir a idéia de amostragem [negativa]. Por exemplo, nos trabalhos de Mikolov, a expectativa de amostragem negativa é formulada como

registroσ(W,c)+kEcNPD[registroσ(-W,cN)].

Entendo o termo esquerdo , mas não consigo entender a idéia de amostrar pares negativos de contexto de palavras.registroσ(W,c)

Upendra Kumar
fonte
4
É ridículo a dispersão da documentação para o word2vec. Você vai encontrar as derivações de amostragem negativo aqui: arxiv.org/pdf/1402.3722v1.pdf
Alex R.
Eu passei pela explicação que você se referiu e entendeu a matemática por trás dela. Mas sou incapaz de digerir a intuição por trás da amostragem.
precisa
Veja também: stackoverflow.com/a/27864657
ameba says Reinstate Monica

Respostas:

27

O problema

Existem alguns problemas com o aprendizado dos vetores de palavras usando uma rede neural "padrão". Dessa maneira, os vetores de palavras são aprendidos enquanto a rede aprende a prever a próxima palavra, em uma janela de palavras (a entrada da rede).

Prever a próxima palavra é como prever a classe. Ou seja, essa rede é apenas um classificador multinomial "padrão" (multi-classe). E essa rede deve ter tantos neurônios de saída quanto as classes que existem. Quando as aulas são palavras reais, o número de neurônios é, bem, enorme .

Uma rede neural "padrão" geralmente é treinada com uma função de custo de entropia cruzada que requer que os valores dos neurônios de saída representem probabilidades - o que significa que as "pontuações" de saída calculadas pela rede para cada classe devem ser normalizadas, convertidas em probabilidades reais para cada classe. Este passo de normalização é alcançado por meio da função softmax . O Softmax é muito caro quando aplicado a uma enorme camada de saída.

A (a) solução

Para lidar com esse problema, ou seja, o caro cálculo do softmax, o Word2Vec usa uma técnica chamada estimativa contrastante ao ruído. Essa técnica foi introduzida por [A] (reformulada por [B]) e depois usada em [C], [D], [E] para aprender a incorporação de palavras a partir de texto em idioma natural não rotulado.

A idéia básica é converter um problema de classificação multinomial (como é o problema de prever a próxima palavra ) em um problema de classificação binária . Ou seja, em vez de usar o softmax para estimar uma verdadeira distribuição de probabilidade da palavra de saída, é utilizada uma regressão logística binária (classificação binária).

Para cada amostra de treinamento, o classificador aprimorado (otimizado) recebe um par verdadeiro (uma palavra central e outra palavra que aparece em seu contexto) e um número de pares corrompidos aleatoriamente (consistindo na palavra central e em uma palavra escolhida aleatoriamente). vocabulário). Ao aprender a distinguir os pares verdadeiros dos pares corrompidos, o classificador finalmente aprenderá os vetores de palavras.k

Isso é importante: em vez de prever a próxima palavra (a técnica de treinamento "padrão"), o classificador otimizado simplesmente prevê se um par de palavras é bom ou ruim .

O Word2Vec personaliza levemente o processo e chama de amostragem negativa . No Word2Vec, as palavras das amostras negativas (usadas para os pares corrompidos) são extraídas de uma distribuição especialmente projetada, o que favorece que palavras menos frequentes sejam extraídas com mais frequência.

Referências

[A] (2005) - Estimativa contrastante: treinando modelos log-lineares em dados não rotulados

[B] (2010) - Estimativa contrastante ao ruído: um novo princípio de estimativa para modelos estatísticos não normalizados

[C] (2008) - Uma arquitetura unificada para processamento de linguagem natural: redes neurais profundas com aprendizado multitarefa

[D] (2012) - Um algoritmo rápido e simples para o treinamento de modelos de linguagem probabilística neural .

[E] (2013) - Aprendendo a incorporação de palavras de forma eficiente com estimativa contrastante ao ruído .


A resposta é baseada em algumas notas antigas - espero que estejam corretas :)

turdus-merula
fonte
2
Você mencionou "in Word2Vec, the words for the negative samples (used for the corrupted pairs) are drawn from a specially designed distribution, which favours less frequent words to be drawn more often". Eu estou querendo saber se isso está correto? Porque algumas outras fontes dizem que palavras mais frequentes são amostradas como amostras negativas. Essentially, the probability for selecting a word as a negative sample is related to its frequency, with more frequent words being more likely to be selected as negative samples.
Tyler #
( mccormickml.com/2017/01/11/… ) `, também, tensorflow.org/api_docs/python/tf/nn/… .
Tyler 29 来 国 主 29/08/19
BTW, qual é o motivo para escolher entre palavras altas ou baixas como amostras negativas? A amostragem aleatória de palavras sem contexto não é boa o suficiente?
precisa saber é o seguinte
@Tyler 主 来 国 主 Pelo que entendi, as palavras menos frequentes são mais informativas, pois tendem a ser específicas ao contexto. Palavras mais frequentes tendem a ser associadas a muitas outras palavras (veja o exemplo extremo "the"). Isso torna as palavras pouco frequentes "mais difíceis" de acertar (você aprende mais rápido) e também reduz a chance de escolher uma palavra que na verdade não é uma amostra negativa (uma vez que, com corpora grande, verificar isso é caro e geralmente é deixado de fora).
drevicko 15/12
@drevicko Palavras menos frequentes são mais informativas, mas palavras menos frequentes sendo amostras negativas são menos informativas. Segundo a teoria da informação, quanto maior a probabilidade, menor a auto-informação. O evento de palavras frequentes serem amostras negativas para uma determinada palavra-alvo deve ter menor probabilidade, o que significa Quantidades de informação mais altas.
Tyler 16 来 国 主 16/12