在word2vec中,有3层:输入层,隐藏层和输出层。
如果我们使用传统的softmax方法, 对于大小为V的语料库,输出层的单位数也将是V(单热矢量输入)。
如果我们使用Hierarchical Softmax, 文章说只有V-1节点(在Huffman二叉树中)。 这是否意味着输出层中只有V-1单位?
以下是我正在阅读的参考资料: https://arxiv.org/pdf/1411.2738.pdf
非常感谢。
答案 0 :(得分:1)
在实践中,word2vec hierarchical-softmax实现创建一个输出层,其节点与词汇单词一样多。例如,请参阅原始Google word2vec.c行:
https://github.com/tmikolov/word2vec/blob/20c129af10659f7c50e86e3be406df663beff438/word2vec.c#L356
或者在gensim Python实现行中:
然后,您可以看到如何在CreateBinaryTree(C)或create_binary_tree函数的输出层中为单词分配单独的霍夫曼代码和节点(“点”)。