word2vec深入浅出,保证你一看就会(3)
上一期介绍了word2vec中的模型更新优化的比较“弱”的形式NEGATIVE SAMPLING。这一期将推出另一种优化方案,Hierarchical Softmax。
Hierarchical Softmax
我们的目标是加速project->output层的计算。下图描述了新的project->output层情况
回到我们的初衷,我们的目的是对于一个输入词,把周围词作为输出词,期待输出词的值是最大的。
假设我们期待的输出词(答案)是\(w_2\)(不是权值矩阵 \(w2\))。那么我们扔一个小球从root开始,有向左滚概率0.8,向右0.2,然后继续滚,最后总会滚到低,我们期望滚到\(w_2\)洞的概率最大。
图示的情况下,滚到\(w_2\)的概率为0.80.40.7,显然滚到所有洞的概率和为1。
明确每个部分的含义:
每个白色