0
我明白word2vec是如何工作的。word2vec如何從嵌入向量中提供一個熱門詞向量?
我想使用word2vec(skip-gram)作爲RNN的輸入。輸入是嵌入單詞向量。輸出還嵌入由RNN生成的單詞向量。
這裏有問題!如何將輸出向量轉換爲一個熱門詞向量?我需要嵌入的逆矩陣,但我沒有!
我明白word2vec是如何工作的。word2vec如何從嵌入向量中提供一個熱門詞向量?
我想使用word2vec(skip-gram)作爲RNN的輸入。輸入是嵌入單詞向量。輸出還嵌入由RNN生成的單詞向量。
這裏有問題!如何將輸出向量轉換爲一個熱門詞向量?我需要嵌入的逆矩陣,但我沒有!
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
上面的操作會給你logits。這個logits是你的詞彙量的概率分佈。 numpy.random.choice可能會幫助您使用這些logits進行預測。