基于Negative Sampling的word2vec模型原理

传送:Word2Vec词嵌入向量延伸-原理剖析

           基于Hierarchical Softmax的word2vec模型原理

1.基于Negative Sampling的梯度计算

Negative Sampling摒弃了霍夫曼树,采用负采样的方法求解(对生僻词的迭代求解进行运算优化)。训练样本中w表示中心词(是正例),周围上下文共2c个词context(w),通过Negative Sampling采样,得到neg个和w不同的中心词w_{i},组成负例

Negative Sampling是采用二元逻辑回归来求解模型参数,暂将正例定义为w_{0}。正例应期望满足:

负例期望满足:

期望最大化公式:

模型的似然函数:

对以上似然函数求对数,并采用随机梯度上升法,每次只用一个样本更新梯度,进行迭代更新得到需要的x_{w_{i}},\theta ^{w_{i}},i=1,2...neg

\theta ^{w_{i}}的梯度:

x ^{w_{i}}的梯度:

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

猜你喜欢

转载自blog.csdn.net/qq_38984677/article/details/81283427