Qual é a matriz de recursos no word2vec?

10

Sou iniciante em redes neurais e atualmente estou explorando o modelo word2vec. No entanto, estou tendo um momento difícil para entender o que exatamente é a matriz de recursos.

insira a descrição da imagem aqui

Eu posso entender que a primeira matriz é um vetor de codificação one-hot para uma determinada palavra, mas o que a segunda matriz significa? Mais especificamente, o que significa cada um desses valores (por exemplo, 17, 24, 1 etc.)?

Satrajit Maitra
fonte
Tenho uma pergunta sobre o W gerado pelo google, você pode me dar mais informações sobre os valores fornecidos pelo google? quais são esses recursos usados? thx por sua ajuda.
hambi

Respostas:

8

A idéia por trás do word2vec é representar palavras por um vetor de números reais da dimensão d . Portanto, a segunda matriz é a representação dessas palavras.

A i- ésima linha desta matriz é a representação vetorial da i- ésima palavra.

Digamos que no seu exemplo você tenha 5 palavras: ["Leão", "Gato", "Cão", "Cavalo", "Mouse"], então o primeiro vetor [0,0,0,1,0] significa que você está considerando a palavra "cavalo" e, portanto, a representação de "cavalo" é [10, 12, 19]. Da mesma forma, [17, 24, 1] é a representação da palavra "Leão".

Para meu conhecimento, não há "significado humano" especificamente para cada um dos números nessas representações. Um número não está representando se a palavra é um verbo ou não, um adjetivo ou não ... São apenas os pesos que você altera para resolver seu problema de otimização e aprender a representação de suas palavras.

Este tutorial pode ajudar: http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/ , embora eu ache que a imagem que você colocou seja deste link.

Você também pode verificar isso, o que pode ajudá-lo a começar com vetores de palavras com o TensorFlow: https://www.tensorflow.org/tutorials/word2vec

Pierre L.
fonte
5

TL; DR :

A primeira matriz representa o vetor de entrada em um formato quente

A segunda matriz representa os pesos sinápticos dos neurônios da camada de entrada para os neurônios da camada oculta

Versão mais longa :

"qual é exatamente a matriz de recursos"

Parece que você não entendeu a representação corretamente. Essa matriz não é uma matriz característica, mas uma matriz de peso para a rede neural. Considere a imagem abaixo. Observe especialmente o canto superior esquerdo, onde a matriz da camada de entrada é multiplicada pela matriz de peso. insira a descrição da imagem aqui

Agora olhe no canto superior direito. Essa InputLayer de multiplicação de matrizes, produzida por pontos com o Weights Transpose, é apenas uma maneira prática de representar a rede neural no canto superior direito.

Portanto, para responder à sua pergunta, a equação que você postou é apenas a representação matemática da rede neural usada no algoritmo do Word2Vec.

A primeira parte, [0 0 0 1 0 ... 0] representa a palavra de entrada como um vetor quente e a outra matriz representa o peso para a conexão de cada um dos neurônios da camada de entrada com os neurônios da camada oculta.

À medida que o Word2Vec treina, ele se retropropõe nesses pesos e os altera para fornecer melhores representações de palavras como vetores.

Depois de concluído o treinamento, você usa apenas essa matriz de peso, pega [0 0 1 0 0 ... 0] para dizer 'cachorro' e multiplica-a pela matriz de peso aprimorada para obter a representação vetorial de 'cachorro' em uma dimensão = não de neurônios da camada oculta.

No diagrama que você apresentou, o número de neurônios da camada oculta é 3

Portanto, o lado direito é basicamente o vetor de palavras.

Créditos da imagem: http://www.datasciencecentral.com/profiles/blogs/matrix-multiplication-in-neural-networks

aneesh joshi
fonte