据我所知,简单的word2vec方法使用两个矩阵,如下所示: 假设语料库由N个单词组成。 加权输入矩阵(WI),尺寸为NxF(F为特征数)。 加权输出矩阵(WO),尺寸为FxN。 我们将一个热矢量1xN乘以WI,得到一个神经元1xF。 然后我们将神经元与WO相乘,得到输出矢量1xN。 我们应用softmax函数并在向量中选择最高的条目(概率)。 问题:使用Hierarchical Softmax模型时如何说明? 什么将乘以哪个矩阵来获得将导致分支左或右的二维向量? 附:我确实理解使用二叉树等的Hierarchical Softmax模型的想法,但我不知道乘法是如何以数学方式完成的。
由于
答案 0 :(得分:0)
为使事情变得简单,假设N为2的幂。然后,二叉树将具有N-1个内部节点。这些节点与尺寸为Fx(N-1)的WO相连。
一旦为每个内部节点计算了一个值,请计算左右分支值。使用诸如S形函数之类的东西来分配(例如)左分支。右边的分支只有左边的1分。
要进行预测,请找到从根到叶的最大概率路径。
要进行训练,请确定正确的叶子并确定内部节点到根的路径。从这些log(N)个节点开始进行反向传播。