【NLP】word2vec负采样

一、理解负采样之前,需要先回顾一下word2vec的训练流程:

1.初始化一个embedding权重矩阵W1(N*D)→2.根据输入单词直接挑出W1矩阵中对应的行向量→3.相加并求平均得一个向量(1*D)→4.和W2矩阵(D*N)相乘得最终预测置信度(1*N)→5.经过softmax得概率(注:N为词典大小,D为词向量维度)。

二、为什么要负采样?

为了解决计算量过大的问题。由于softmax计算分母要求和,在上文【word2vec的训练流程】的第4步时,每预测一个单词,都要进行一次计算,可以看出计算量和词典大小有关(W2矩阵为D“*N),计算量太大啦!

三、负采样是什么?

既然计算量大的事件起因是softmax,解决办法显而易见:把它干掉!用sigmoid函数进行二分类来代替多分类。

具体做法是在上文【word2vec的训练流程】的第4步,每预测一个词时,不和W2矩阵全部相乘,而是选择所要预测的那个词对应的向量(此为正例)+几个其余的词对应的向量(此为负例)。(这里如果不懂需要再抠抠word2vec训练流程的细节)

四、那么,负例如何选择?

依据语料库中对词语频率的统计,让高频单词容易被抽到,稀有单词不容易被抽到,因为稀有单词很难遇到,处理好高频单词才比较重要。

小细节:为了防止低频单词完全被遗忘,可以将各个概率乘以小于1的次方,这样大概率能稍微一点,小概率能稍微大一点(可以根据指数小于1的函数图像来判断)。

以上内容参照深度学习进阶 (豆瓣),根据个人理解整理而成。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值