基于Hierarchical Softmax的word2vec模型原理

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

           基于Negative Sampling的word2vec模型原理

1.基于Hierarchical Softmax的梯度计算

与神经网路语言模型相比,霍夫曼树的所有内部节点类似神经网络隐藏层的神经元,根节点对应投影后的词向量,叶子节点类似神经网络输出softmax层的神经元,叶子节点的个数是词汇表大小。在霍夫曼树中,隐藏层到输出层的softmax映射不是一下子完成的,而是沿着霍夫曼树一步步完成的,因此这种softmax取名为"Hierarchical Softmax"

x_{w}是当前内部节点的词向量,θ是需要从训练样本中求出的逻辑回归模型参数,判断是从左子树或右子树走的标准是P(+)、P(-)的大小。Hierarchical Softmax的目标是找到合适的所有节点的词向量和所有内部节点向量θ,使得训练样本达到最大似然

参数定义如下:

w      输出的词

x_{w}    输入词向量求和求平均后的霍夫曼根节点词向量

l_{w}     从根节点在w所在叶子节点,包含的节点总数

p_{i}^{w}    w词在霍夫曼树经过的第i个节点

d_{i}^{w}    第i个节点对应的霍夫曼编码{0,1},i定义域{2,3,4...l_{w}}

\theta _{i}^{w}    第i个节点对应的模型参数,i定义域{1,2,3,4...l_{w}-1}

定义w经过霍夫曼树某个节点j的逻辑回归概率表达式(j为霍夫曼编码对应的下标):

那么对于某一个目标输出词w,其最大似然为:

在word2vec中,使用随机梯度上升法,每次仅使用一个样本更新梯度,目的是减少梯度计算量。先对上式等号两边同时取对数得似然函数L,要得到模型中w词向量和内部节点的模型参数θ,使用梯度上升法即可,计算得模型参数\theta _{j-1}^{w}梯度为:

x_{w}的梯度表达式为

有了梯度表达式,可利用梯度上升法进行一步步迭代求解

2.基于Hierarchical Softmax的CBOW模型

1.基于语料训练样本建立霍夫曼树

2.随机初始化所有的模型参数θ,所有的词向量w

3.进行梯度上升迭代过程,对于训练集中的每一个样本(context(w),w)做如下处理:

注意点:梯度收敛时,所有的词向量是一起得到的;需要训练的所有模型参数改变量小于一个阈值的时候,就可认为收敛

3.基于Hierarchical Softmax的skip-gram模型

对于训练样本中的每一个词,该词本身作为样本的输入,其前面的c个词和后面的c个词作为了Skip-Gram模型的输出,期望这些词的softmax概率比其他的词大。从输入层到隐含层(投影层),只有一个单词

1.基于语料训练样本建立霍夫曼树

2.随机初始化所有的模型参数θ,所有的词向量w

3.进行梯度上升迭代过程,对于训练集中的每一个样本(context(w),w)做如下处理:是对2c个输出进行迭代更新

猜你喜欢

转载自blog.csdn.net/qq_38984677/article/details/81281246
今日推荐