word2vec学习笔记#1Hierarchical Softmax

word2vec学习笔记#1

文章来自于**码农场**大佬的博文,做自己的摘抄笔记。

word2vec

word2vec作为神经概率语言模型的输入,其本身其实是神经概率模型的副产品,是为了通
过神经网络学习某个语言模型而产生的中间结果。具体来说,“某个语言模型”指的是
“CBOW”和“Skip-gram”。具体学习过程会用到两个降低复杂度的近似方法——Hierarchical 
Softmax或Negative Sampling。两个模型乘以两种方法,一共有四种实现。

Hierarchical Softmax

模型共同点

图一
两种模型的网络结构如下
在这里插入图片描述
上图中w(t)表示句子中t位置处的词语

CBOW

原理:一种根据上下文词语预测当前空缺位置的概率的模型,如上左图。
学习目标是最大化下面的似然函数:
在这里插入图片描述
其中W为语料库中的认一个词。
输入层是上下文的词语的词向量(现在是在训练CBOW模型,词向量只是个副产品,确切来说,是CBOW模型的一个参数。训练开始的时候,词向量是个随机值,随着训练的进行不断被更新)。
输出层输出最可能的w。由于语料库中词汇量是固定的|C|个,所以上述过程其实可以看做一个多分类问题。给定特征,从|C|个分类中挑一个。

由上输出层的分析可知,最后是对输出层的数据进行分类,下方用的Hierarchical Softmax
在这里插入图片描述
非叶子节点就是一个分类器(感知机),用1或者0来代替分类的结果,每一个叶子节点即为语料库中的一个词语,可以通过上述的概率表述出条件概率 P ( w ∣ c o n t e x t ( w ) ) P(w|context(w)) P(wcontext(w))
引入下列符号:
1、 p w p^w pw:从根节点到w对应的叶子节点的路径
2、 l w l^w lw:路径包含的节点个数
3、 P 1 w P_{1}^{w} P1w P 2 w P_{2}^{w} P2w P 3 w P_{3}^{w} P3w…… P l w w P_{l^w}^{w} Plww:为路径中的各个节点
4、 d 2 w d_{2}^{w} d2w d 3 w d_{3}^{w} d3w d 4 w d_{4}^{w} d4w…… d l w d_{l}^{w} dlw在零到一范围内,其中 d l w d_{l}^{w} dlw表示第j个对应的编码(根节点无编码)
5、 Θ 1 w \Theta _{1}^{w} Θ1w Θ 2 w \Theta _{2}^{w} Θ2w Θ 3 w \Theta _{3}^{w} Θ3w…… Θ l w w \Theta _{l^w}^{w} Θlww为路径 p w p^w pw中非叶节点对应的参数向量
得w的条件概率:
在这里插入图片描述
从根节点到叶节点经过了 l w l^w lw-1个节点,编码从下标2开始(根节点无编码),对应的参数向量下标从1开始(根节点为1)。

每一项是一个逻辑斯谛回归:(即为每一个0或者1的选择都有着两个不同的概率,且二者的和为一)在这里插入图片描述
将上式两种情况综合到一个公式中去:(下式中 d l w d_{l}^{w} dlw有两种取值:0或者1)
在这里插入图片描述
目标函数取对数似然:(一种结果转化方式?)
在这里插入图片描述
将上面几个公式结合得到如下:
在这里插入图片描述
简化为:
在这里插入图片描述
上式就是结果似然函数,将其最大化则得到我们最初需要通过CBOW预测的结果,将上式各项都取到最大化
每一项有两个参数,一个是每个节点的参数向量 Θ j − 1 w \Theta _{j-1}^{w} Θj1w,另一个是输出层的输入 X w X_{w} Xw(即是中间层的输出结果转变为Hierarchical Softmax的输入)对这两个值求偏导:
在这里插入图片描述
因为有如下的性质
在这里插入图片描述
所以带入上式即可得到
在这里插入图片描述
最终结果为
在这里插入图片描述
Θ j − 1 w \Theta _{j-1}^{w} Θj1w的迭代公式即为
在这里插入图片描述
X w X_{w} Xw偏导式为
在这里插入图片描述
所有直接将 Θ j − 1 w \Theta _{j-1}^{w} Θj1w的偏导数中的 Θ j − 1 w \Theta _{j-1}^{w} Θj1w替换为 X w X_{w} Xw,得到关于 X w X_{w} Xw的偏导数在这里插入图片描述
得到的是 X w X_{w} Xw的更新迭代,因为 X w X_{w} Xw并不是输入的向量,而是一个中间产物,所以必须把该结果向上传递至每个单词的词向量中:
在这里插入图片描述
重点:两个参数的更新伪代码
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值