word2vec两种改进方法
在进行最优化的求解过程中:从隐藏层到输出的Softmax层的计算量很大,因为要计算所有词的Softmax概率,再去找概率最大的值,可以使用层次softmax和负采样两种方法解决
层次softmax
对输出层进行优化的策略,输出层从原始模型利用softmax计算概率值改为利用Huffman树计算概率值
使用霍夫曼树的好处:
首先,由于是二叉树,之前计算量为V,现在变成了logV;
第二,由于使用霍夫曼树是高频的词靠近树根,这样高频词需要更少的时间会被找到,这符合我们的贪心优化思想
层次softmax缺点
使用霍夫曼树来代替传统的神经网络,可以提高模型训练的效率。但是如果我们的训练样本里的中心词w是一个很生僻的词,那么就得在霍夫曼树中辛苦的向下走很久了。能不能不用搞这么复杂的一颗霍夫曼树,将模型变的更加简单呢?
负采样
把语料中的一个词串的中心词替换为别的词,构造语料D中不存在的词串作为负样本,每次训练只更新部分隐藏权重矩阵。
比如我们有一个训练样本,中心词是w,它周围上下文共有2c个词,记为context(w)。由于这个中心词w和context(w)相关存在,因此它是一个真实的正例。通过Negative Sampling采样,我们得到

word2vec模型中,为解决softmax层计算量大的问题,提出了层次softmax和负采样两种优化方法。层次softmax利用霍夫曼树减少计算复杂度,但对生僻词处理较慢;负采样则通过随机采样构造负样本,简化模型训练,且比层次softmax更高效。负采样时,依据词频确定采样概率,构建虚拟负样本进行训练。
最低0.47元/天 解锁文章
1882

被折叠的 条评论
为什么被折叠?



