word2vec源码讲解,理论补充,公式解读,论文

对于word2vec的softmax就不说了,重点是要弄明白cbow、skip-gram的两种优化方式,一种是层次softmax,另外一种是负采样。二者都是优化方式,那么首先明白为什么要优化?同时这两种方式为什么可以优化。首先回答第一个问题,优化的主要原因就是原始的softmax是在全词表上进行,结果就是全词都要进行梯度更新,计算慢,同时softmax在每个词上的概率值较小,这样就使得非主要词的归一化作用不大了,因此要优化。那么层次softmax是采用哈夫曼树进行对词进行重新构造,使得每一个词的表示相比较于softmax的序列得到了缩短,这就可以优化了。比如softmax需要做的词个数是1万,那么层次归一化的路径就是5,这就极大的缩短了,这就是一个优化措施。而负采样更加明显,就是直接对全词采样,那么数量肯定就少了呀,这就是为什么这两种方式可以优化。不懂原理的可以在查一查别的地方。

源码解读一:https://zhuanlan.zhihu.com/p/40557458

源码解读二:https://blog.csdn.net/google19890102/article/details/51887344

公式解读:https://blog.csdn.net/google19890102/article/details/51887344

github地址:https://github.com/Wsl-hfut-nwpu/word2vecSource   里面的word2vec.c是源代码

细节小track的讲解:https://www.leiphone.com/category/yanxishe/eV8j3Nu8SMqGBnQB.html

基于tensorflow实现的skip—gram:https://www.leiphone.com/category/yanxishe/eV8j3Nu8SMqGBnQB.html    重点明白损失函数,其底层实现就是优化了目标函数的实现,只不过名字还是叫负采样的交叉熵,这个源码包含在上述github链接内部,叫做tf_skip_gram。

内部还包括原始论文。

对照上述资源对skip_gram做出的理解,下面5张图片。层次哈夫曼也差不多,只不过是多了个哈夫曼的构造以及路径的累乘而已。

  

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值