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.
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.)?
machine-learning
neural-network
word2vec
Satrajit Maitra
fonte
fonte
Respostas:
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
fonte
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 :
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.
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
fonte