阅读 83

层次结构模型,n个独立同分布指数分布的和

如下图的框架所示,在进行最优化求解的过程中,从隐藏层到输出的softmax层的计算量多是为了计算所有词的softmax概率,寻找概率最大的值。

1 )对cbow周围词的调整得到统一:求出的gradient的值同样作用于每个周围词的词向量。 那么,cbow的预测行为的次数与文本整体的词数大致相同(虽然每个预测行为都进行backpropgation,但多数情况下这也是花费时间最多的部分),复杂度为o(v );

2 )在Skip-gram中,各词作为中心词时,使用周围词进行一次预测。 因为这相当于比cbow方法多进行了k次,所以假设k为窗口大小,时间复杂度为o(kv ),训练时间比cbow长。

word2vec原理

基于Hierarchical Softmax的模型:

从层到隐藏层的输入:对所有输入的单词向量进行求和和平均的方法。

从隐藏层到输出层:从隐藏层输出到softmax层的计算改进,即层次softmax。 我们把之前所有必须计算的输出softmax层的概率计算变成了四叉树,所以我们的softmax概率计算按照树结构进行就可以了。 如下图所示,可以沿着霍夫曼树从根节点到叶节点的词w2。

与以前的神经网络语言模型相比,我们霍夫曼树所有的内部节点都类似于以前的神经网络隐藏层神经元,其中根节点的词向量对应于我们的投影后的词向量,所有的叶节点都对应于以前的神经节点在霍夫曼树中,从隐藏层到输出层的softmax映射不是一次性进行的,而是沿着霍夫曼树一步一步进行的,因此该softmax被命名为“Hierarchical Softmax”。

如何“沿着霍夫曼树一步一步地完成”? word2vec采用的是二元逻辑回归方法,如果沿着左部分树走的话是负类(霍夫曼树代码1 ),如果沿着右部分树走的话是正类(霍夫曼树代码0 )。 判断正类和负类的方法是使用sigmoid函数。 使用霍夫曼树的优点:首先,因为是二叉树,以前计算量是v,现在变成了log2V。 第二,使用霍夫曼树是因为高频词接近树根,所以需要更多的时间才能找到高频词,这符合我们的贪婪优化思想。

因此,目标:我们的目标是找出合适的所有节点的词向量和所有内部节点,使训练样本最大化。

基于Hierarchical Softmax的CBOW模型

首先,定义词向量的维度大小m和CBOW的上下文大小2c。 这样,对于训练样本中的各个词,前面的c词和后面的c词将成为CBOW模型的输入,该词本身将成为样本的输出,期望softmax概率最高。

1 )在建立CBOW模型之前,需要将词汇表转换为霍夫曼树。

2 )从输入层到隐藏层(投影层),将w周围的2c个词向量相加进行平均即可。

3 )用梯度上升法更新我们的和x。 请注意,这里的xw是将2c个单词向量相加而成的。 我们在坡度更新结束后,在坡度项下直接更新原来的各xi。

转载: https://www.cn blogs.com/pinard/p/7243513.html


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐