Pergunta sobre Continuous Bag of Words

11

Estou tendo problemas para entender esta frase:

A primeira arquitetura proposta é semelhante ao feedforward NNLM, onde a camada oculta não linear é removida e a camada de projeção é compartilhada por todas as palavras (não apenas pela matriz de projeção); assim, todas as palavras são projetadas na mesma posição (seus vetores são calculados como média).

Qual é a camada de projeção versus a matriz de projeção? O que significa dizer que todas as palavras são projetadas na mesma posição? E por que isso significa que seus vetores são calculados em média?

A sentença é a primeira da seção 3.1 da Estimativa eficiente de representações de palavras no espaço vetorial (Mikolov et al. 2013) .

user70394
fonte

Respostas:

6

A Figura 1 esclarece um pouco as coisas. Todos os vetores de palavras da janela de um determinado tamanho são somados, o resultado é multiplicado por (1 / tamanho da janela) e depois alimentado na camada de saída.

Matriz de projeção significa uma tabela de pesquisa inteira em que cada palavra corresponde a um único vetor com valor real. A camada de projeção é efetivamente um processo que pega uma palavra (índice de palavras) e retorna o vetor correspondente. Pode-se concatená-los (obter entrada do tamanho k * n onde k é o tamanho da janela en é comprimento do vetor) ou, como no modelo CBOW, basta somar todos eles (obter entrada do tamanho n).

insira a descrição da imagem aqui

Denis Tarasov
fonte
Primeiro, obrigado pela sua resposta. Ainda estou um pouco confuso com a distinção entre matriz de projeção e camada de projeção. Eles parecem iguais.
user70394
@ user70394 Sim, acho a terminologia um pouco confusa. Basicamente, qualquer camada NN é uma função que mapeia entradas para saídas. A camada de projeção faz isso usando pesos da matriz de projeção, mas não é a própria matriz. Dada a mesma matriz, pode-se definir muitas funções diferentes. De fato, no caso do CBOW, poderíamos dizer que temos uma camada de projeção com atraso de tempo seguida pela camada de soma. No modelo RNNLM, a "camada de projeção" é de fato uma parte da camada oculta recorrente que combina pesos da matriz de projeção com pesos recorrentes para calcular as saídas.
Denis Tarasov
1

Como eu estava pesquisando sobre os problemas do CBOW e me deparei com isso, aqui está uma resposta alternativa à sua (primeira) pergunta ("O que é uma camada de projeção versus matriz ?"), Observando o modelo NNLM (Bengio et al., 2003):

Bengio et al., 2003, Figura 1: Arquitetura neural: f (i, w_ {t-1}, ···, w_ {t-n + 1}) = g (i, C (w_ {t-1}) ), ···, C (w_ {t-n + 1})) onde g é a rede neural e C (i) é o vetor de característica da i-ésima palavra.

tumanhC(WEu)Ctumanh

Para adicionar, e "apenas para constar": a parte mais interessante é a abordagem de Mikolov para resolver a parte em que na imagem de Bengio você vê a frase "mais computação aqui". Bengio tentou diminuir esse problema fazendo algo que é chamado softmax hierárquico (em vez de apenas usar o softmax) em um artigo posterior (Morin & Bengio 2005). Mas Mikolov, com sua estratégia de subamostragem negativa, deu um passo adiante: ele não calcula a probabilidade logarítmica negativa de todas as palavras "erradas" (ou codificações de Huffman, como Bengio sugeriu em 2005), e apenas calcula uma pequena amostra de casos negativos, que, dados tais cálculos e uma distribuição de probabilidade inteligente, funciona extremamente bem. E a segunda e ainda mais importante contribuição, naturalmente,P(context|Wt=Eu)

fnl
fonte