word2vec模型原理(一):基于哈夫曼树的word2vec

    在nlp领域,文本词的向量表示往往是第一步,笔者在做一些推荐相关性的工作中也用到了其中很常见的word2vec模型,因此也具体学习了一下word2vec的具体实现原理,本文主要参考了github开源的c语言版的word2vec源码以及相关的博客。

一、要解决的问题

     对于语料中的每一个词,最简单的表达方式就是one-hot,即利用位数编码的方式每个词占据一个“1”位,其余为0,。这样做虽然简单,但由于工业上语料往往非常大,词语很多时候会达到百万甚至更多,对于单个词而言百万级别的维度表达显然是效率不高的,因此,目前往往都会使用word embedding的方式将词降维压缩至可计算的维度。这个降维的过程有很多实现的方式,今天就来探讨一下其中目前最火的神经网络语言模型-word2vec。

二、CBOW与Skip-Gram

     在word2vev中,对于数据的训练目标而言有两种方式:CBOW和Skip-Gram。CBOW表示基于上下文来预测目标词,即输入是2c个上下文词(c表示窗口大小),输出是目标词的概率;Skip-Gram则是恰恰相反,输入是当前的目标词,输出则是上下文词的概率。

     在确定了输入输出之后,其实训练的方式也就很明显了,(例如CBOW)输入层经过隐藏层最后softmax输出所有词的概率,然后反向传播梯度下降decrease loss。但这其中有一个很大的问题:从隐藏层到输出的softmax层的计算量很大,因为要计算所有词的softmax概率,再去找概率最大的值。这样的性能显然是对于一个embedding操作来讲是得不偿失的,因此,word

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值