关于Word2Vec的简单理解

关于Word2Vec的简单理解

Word2vec中有两个方法,第一个方法是CBOW用上下文预测当前词,第二个方法是Skip-gram用当前词预测上下文。两个方法都有三层的神经网络
在这里插入图片描述
如图,左边是CBOW框架,输入是词的上下文,中间层是对每个词向量求合,第三层是输出的预测词。右边是Skip-gram框架,输入是当前词,中间层相当于输入层的投影,输出层是预测的当前词的上下文。
基于Hierarchical Softmax的CBOW
在这里插入图片描述
以“我喜欢看巴西足球世界杯”这句话为例。如图,输入的是上下文的初始化词向量,中间层对输入的词向量做累加,输出层是用整个文章分出来的词做词频统计构建的huffman树,以预测的词作为叶子节点,以各词出现的次数作为权值。
假设我要预测的词是“足球”,上下文是“巴西”和“世界杯”,初始化向量再求合最后进入huffman树,根据huffman树确定足球的huffman编码为1001,于是足球的从根节点到叶子节点的路径确定了,二叉树每经过一个节点都会选择是走向“1”或是走向“0”,这就相当于一个二分类问题,于是涉及到sigmoid函数对输入的值转变为“0”或“1”,每一个经过的节点都有一个sigmoid函数,根据sigmoid函数的计算公式得到在每个节点分为“0”的概率为
在这里插入图片描述
分为“1”则是1减这个值,其中θ是函数的参数,假如词向量是10维,则每个sigmoid函数的参数有10个
在这里插入图片描述
经过所有的节点得到的概率再求积得到最后的如图的目标函数,也是这个样子
在这里插入图片描述
然后对目标函数用梯度上升优化算法进行优化,也就是目标函数对θ求偏导,找到概率最大的值相对应的参数θ。
在这里插入图片描述
然而x和θ从公式中来看是相对称的,于是目标函数对x求偏导就可以更新最开始初始化的词向量
在这里插入图片描述
对每一个词都进行训练于是就得到了词预测的模型。
其实我只是个小白只懂大概的思路,涉及到的计算还不太会。n(≧▽≦)n

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值