基于Hierarchical Softmax的word2vec模型原理
1.基于Negative Sampling的梯度计算
Negative Sampling摒弃了霍夫曼树,采用负采样的方法求解(对生僻词的迭代求解进行运算优化)。训练样本中w表示中心词(是正例),周围上下文共2c个词context(w),通过Negative Sampling采样,得到neg个和w不同的中心词,组成负例
Negative Sampling是采用二元逻辑回归来求解模型参数,暂将正例定义为。正例应期望满足:
负例期望满足:
期望最大化公式:
模型的似然函数:
对以上似然函数求对数,并采用随机梯度上升法,每次只用一个样本更新梯度,进行迭代更新得到需要的
的梯度:
的梯度:
2.Negative Sampling负采样方法
如果词汇表的大小为V ,那么可将一段长度为1的线段分成V 份,每份对应词汇表中的一个词。当然每个词对应的线段长度是不一样的,高频词对应的线段长,低频词对应的线段短。每个词w 的线段长度由下式决定:
采样前,将这段长度为1的线段等分成M份(M默认10^8),M>>V,保证每个词对应的线段都被划分成对应的小块。采样时,只需要从M个位置中采样出neg个位置,这样采样到的每一个位置对应到的线段所属的词就是负例词
3.基于Negative Sampling的CBOW模型
输入:基于CBOW的语料训练样本,词向量的维度大小M,CBOW的上下文大小2c,步长η,负采样的个数neg
输出:词汇表每个词对应的模型参数θ,所有词向量xw
4.基于Negative Sampling的skip-gram模型
输入:基于skip-gram的语料训练样本,词向量的维度大小M,skip-gram的上下文大小2c,步长η,负采样的个数neg
输出:词汇表每个词对应的模型参数θ,所有词向量xw