Word2Vec-------CBOW连续词袋模型

Word2Vec原理

Word2vec使用单个隐藏层,完全连接的神经网络如下所示。隐藏层中的神经元都是线性神经元。输入层设置为具有与用于训练的词汇中的单词一样多的神经元,即整个词表大小V。隐藏图层大小设置为生成的单词向量的维度,可以理解为词嵌入中单词的稠密矩阵表达。输出图层的大小与输入图层相同。

因此,假设用于学习单词向量的词汇表由V个单词组成并且N为单词向量的维度(每个单词拥有N个特征),则对隐藏层连接的输入可以由大小为VxN的矩阵WI表示,其中每行表示词汇单词。以相同的方式,可以通过矩阵WO来描述从隐藏层到输出层的连接大小为NxV。
请添加图片描述
CBOW的方式是在知道词wt的上下文wt-2,wt-1,wt+1,wt+2的情况下预测当前词wt.而Skip-gram是在知道了词wt的情况下,对词wt的上下 文wt-2,wt-1,wt+1,wt+2进行预测,简单描述就是一个是一推多,一个是多推一。如下图所示:左侧为cbow,右侧为skipgram
在这里插入图片描述

参数传播流程

接下来我们来看下CBOW神经网络模型,CBOW的神经网络模型与skip-gram的神经网络模型也是互为镜像的
请添加图片描述

在上图中,该模型的输入输出与skip-gram模型的输入输出是相反的。这里输入层是由one-hot编码的输入上下文组成,其中窗口大小为C,即上下文单词的数量,词汇表大小为V。隐藏层是N维的向量。最后输出层是也被one-hot编码的输出单词y。被one-hot编码的输入向量。接下来,我们假设我们知道输入与输出权重矩阵的大小。
在这里插入图片描述
需要解释以下的是
input layer输入的X是单词的one-hot representation(考虑一个词表V,里面的每一个词wi 都有一个编号i∈{1,…,|V|},那么词 [公式] 的one-hot表示就是一个维度为|V|的向量,其中第i个元素值非零,其余元素全为0,相加之后,就是这几个单词所在位置为1,其他位置为0.
输入层到隐藏层之间有一个权重矩阵W,隐藏层得到的值是由输入X乘上权重矩阵得到的(细心的人会发现,0-1向量乘上一个矩阵,就相当于选择了权重矩阵的某几行,然后在相加。
隐藏层到输出层也有一个权重矩阵W’,因此,输出层向量y的每一个值,其实就是隐藏层的向量点乘权重向量W’的每一列。
来计算目标词wt的概率大小,最终的输出需要经过softmax函数,将输出向量中的每一个元素归一化到0-1之间的概率,概率最大的,就是预测的词。
随着不断的训练,通过交叉熵损失的计算,目标词的位置会趋向于1,其他位置趋向于0

参考:
https://zhuanlan.zhihu.com/p/55983009
https://blog.csdn.net/u010665216/article/details/78724856

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值