cbow word2vec 损失_Word2Vec的核心思想

726fe00eef3d0407f8176ab3f25b7db9.png

本文介绍Word2Vec是基于Skip-Gram架构,本文只介绍核心思想,具体权重更新参考论文。

本文与论文同时饮用较好!

理解Word2Vec核心思想的步骤是先理解one word -> one word如何获取词向量,而Skip-Gram架构和CBOW架构是再次基础之上进行了输入或者输出的改变。

One-Word Context

One-Word Context是只是用一个单词预测另一个单词。其架构图为:

b26857580106516f7e89fea1be8819ec.png

即只有两层全连接神经网络,并且隐藏层为先行层。输入层为每个单词的one-hot encoder,输出为下一个单词的预测。输出是Softmax处理后的概率值,那个维度的概率值大则为某个单词。

其中词向量为W的行向量或者W'的列向量,一般使用W的行向量作为输入词的词向量,也即是输入向量(One-hot encoder)与W的转置相乘之后隐藏层的结果。

CBOW架构

CBOW架构只是在one->one的基础之上输入层到隐藏层为:输入层的平均和。

ffd8d6d2b45faadea57cbe1f35df661d.png

Skip-Gram架构

只是在输出时,偏差为所有panel的偏差之和。

d8c4412ac59eea0b68958f1cc800c8bf.png

cd94390212e7a3ad53dac35eb5c92128.png

其中u为预测输出。

Hierarchical Softmax

Hierarchical Softmax是使用output-layer的每一个panel(即单词的输出评分),该输出评分的每一个维度为输出向量输入向量的内积。根据每一维度的大小构建二叉树(常用哈夫曼树,建议看看哈夫曼树的构建)。

对于构建哈夫曼树的权重进行Sigmoid函数处理,把它压缩在[0,1]之间,形成往左子树走的概率,则往右子树走的概率为1-P(左)。

2431255d0305074fd73085c1bbcf2560.png

如上图,从根节点往w2走,走的方向有向左->向左->向右走。(上图非哈夫曼树,但思想一致。)

把从根节点走到w2的路径的概率乘积即为预测概率,从而求出每个panel维度的概率。

loss函数:

55f1dbc32bc4627b047c129fe53d331f.png

负采样

负采样是在Hierarchical Softmax的loss函数基础之上,添加了负采样。

因此,损失函数为:

b1bd498901f8eb70c2a3f78518c137fd.png

负采样的核心思想是根据词频进行选择sqmple更新权重,而不是所有权重;并且进行预测的单词权重必须更新,在所有非预测单词的权重进行负采样更新。

代码实现

from gensim.models import Word2Vec
# 必须为字符串,才能进行训练
docs = [['30760','157507']
       ,['289197','63746']
       ,['36162','168401']
       ,['50644','361620']]
wv = Word2Vec(docs,size=12,sg=1,window=2,workers=10,min_count=1,iter=10)
wv['30760']

参考文献

[1]. word2vec Parameter Learning Explained(论文)

[2].https://zhuanlan.zhihu.com/p/26306795

[3].深度学习与推荐系统(王喆)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值