2016-08-03 3 views
0

word2vec의 작동 방식을 알고 있습니다.word2vec는 포함 벡터에서 하나의 핫 워드 벡터를 어떻게 제공합니까?

RNN의 입력으로 word2vec (건너 뛰기 그램)를 사용하고 싶습니다. 입력은 단어 벡터를 포함합니다. 출력은 또한 RNN에 의해 ​​생성 된 단어 벡터를 내장하고 있습니다.

여기에 질문이 있습니다. 어떻게 출력 벡터를 하나의 핫 워드 벡터로 변환 할 수 있습니까? 나는 embeddings의 역행렬을 필요로하지만 나는 가지고 있지 않다!

답변

0

RNN의 출력은 임베딩되지 않습니다. 적절한 행렬을 곱하여 RNN 셀의 마지막 레이어의 결과를 vocabulary_size의 벡터로 변환합니다.

더 좋은 아이디어를 얻으려면 PTB Language Model 예제를보십시오. 특히 133-136 줄을보십시오 :

softmax_w = tf.get_variable("softmax_w", [size, vocab_size], dtype=data_type()) 
softmax_b = tf.get_variable("softmax_b", [vocab_size], dtype=data_type()) 
logits = tf.matmul(output, softmax_w) + softmax_b 

위의 작업은 당신에게 로지를 줄 것입니다. 이 로그는 어휘에 대한 확률 분포입니다. numpy.random.choice은 이러한 로그를 사용하여 예측을하는 데 도움이 될 수 있습니다.