word2vec如何从嵌入向量中提供一个热词向量?

时间:2016-08-03 08:51:42

标签: tensorflow word2vec

我理解word2vec是如何工作的。

我想使用word2vec(skip-gram)作为RNN的输入。输入是嵌入词向量。输出也嵌入了由RNN生成的字向量。

这是个问题!如何将输出向量转换为一个热字向量?我需要嵌入的逆矩阵,但我没有!

1 个答案:

答案 0 :(得分: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

以上操作将为您提供logits。此logits是您词汇表中的概率分布。 numpy.random.choice可能会帮助您使用这些日志进行预测。