word2vec学习笔记

         词向量作为自然语言处理中最基本同样也是很重要的部分,熟悉并掌握词向量的实现原理是学习NLP必不可少的过程,以下主要通过XiRong的《word2vec Parameter Learning Explained》论文来介绍词向量的具体计算过程。

        首先介绍两类词向量模型,第一个是Skip-Gram模型,其目的是通过给定中心词来预测中心词上下文词汇;而另外一类是CBOW模型,通过上下文词汇来预测中心词汇。


1、Skip-Gram模型

               

    设定每一个输入向量的大小为v*1,其中输入向量是以one-hot进行编码(称之为独热编码,也就是该向量中只有一位数字为1,其他为都是0,目的是体现不同输入向量的特征),输入向量到隐层的权重矩阵为W_{v*N}  ,隐层向量大小为N*1,隐层向量到输出层的权重为W'_{N*v},输出向量的维度为v*1。

    计算隐层的输出为:h = W_{v*N}^{T} \cdot x_{k}, 输出层的结果为:

                                                                           u_{c,j} = W^{'T}_{N*V} \cdot h

 接下来就是在中心词确定的情况下,取概率最大的上下文单词,也就是计算输出上下文词汇是Wc,j的条件概率:   

                                                       P(w_{c,j} = w_{O,c} | w_{I}) = y_{c,j} = softmax(u_{c,j})

随后设定损失函数为:
                                                       J(\Theta ) = -log\prod_{c=1}^{C} \frac{exp(u_{c,j})}{ \sum_{j} exp(u_{j})}

对损失函数求导并利用随机梯度下降方法,不断更新梯度以达到损失最小的条件,最终获得词向量。

 

2、CBOW模型 

 

CBOW模型与Skip-Gram模型类似,只需要把输入输出调换一下即可。需要注意的地方是在隐层的处理上,h_{j} 的值是各个输入的值与不同权重矩阵相乘后相加再求平均,后面的处理过程与Skip-Gram模型相同。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值