负采样的优点

Word2Vec介绍: 为什么使用负采样(negtive sample)?


1. 随机梯度下降法有什么问题?


通过对代价函数求权重的梯度,我们可以一次性对所有的参数
在这里插入图片描述进行优化,但是如果每次等全部计算完成再优化升级,我们将等待很长时间(对于很大的语料库来说)。

所以我们采用随机梯度下降( Stochastic Gradient Descent),也就是说每次完成一次计算就进行升级。
但是,还有两个问题导致目前的模型效率低下!
第一个问题,我们每次只对窗口中出现的几个单词进行升级,但是在计算梯度的过程中,我们是对整个参数矩阵进行运算,这样参数矩阵中的大部分值都是0。
在这里插入图片描述
计算效率低下!
第二个问题:我们使用的目标函数是softmax函数
在这里插入图片描述
我们观察分母,分母需要把窗口中所有单词的“得分”都算出来再求和,效率低下!
softmax函数,又称归一化指数函数。它是二分类函数sigmoid在多分类上的推广,目的是将多分类的结果以概率的形式展现出来。下图展示了softmax的计算方法:
在这里插入图片描述
下面为大家解释一下为什么softmax是这种形式。
首先,我们知道概率有两个性质:1)预测的概率为非负数;2)各种预测结果概率之和等于1。

softmax就是将在负无穷到正无穷上的预测结果按照这两步转换为概率的。
1)将预测结果转化为非负数
下图为y=exp(x)的图像,我们可以知道指数函数的值域取值范围是零到正无穷。softmax第一步就是将模型的预测结果转化到指数函数上,这样保证了概率的非负性。
在这里插入图片描述
2)各种预测结果概率之和等于1
为了确保各个预测结果的概率之和等于1。我们只需要将转换后的结果进行归一化处理。方法就是将转化后的结果除以所有转化后结果之和,可以理解为转化后结果占总数的百分比。这样就得到近似的概率。
下面为大家举一个例子,假如模型对一个三分类问题的预测结果为-3、1.5、2.7。我们要用softmax将模型结果转为概率。步骤如下:
1)将预测结果转化为非负数

y1 = exp(x1) = exp(-3) = 0.05

y2 = exp(x2) = exp(1.5) = 4.48

y3 = exp(x3) = exp(2.7) = 14.88

2)各种预测结果概率之和等于1

z1 = y1/(y1+y2+y3) = 0.05/(0.05+4.48+14.88) = 0.0026

z2 = y2/(y1+y2+y3) = 4.48/(0.05+4.48+14.88) = 0.2308

z3 = y3/(y1+y2+y3) = 14.88/(0.05+4.48+14.88) = 0.7666

总结一下softmax如何将多分类输出转换为概率,可以分为两步:

1)分子:通过指数函数,将实数输出映射到零到正无穷。

2)分母:将所有结果相加,进行归一化。

2. 使用负采样

负采样的核心思想是:计算目标单词和窗口中的单词的真实单词对“得分”,再加一些“噪声”,即词表中的随机单词和目标单词的“得分”。

真实单词对“得分”和“噪声”作为代价函数。

每次优化参数,只关注代价函数中涉及的词向量。

下面给出公式:
在这里插入图片描述
采用上述公式解决了之前说的两个问题:

1.我们仅对K个参数进行采样
2.我们放弃softmax函数,采用sigmoid函数,这样就不存在先求一遍窗口中所有单词的‘“得分”的情况了。

3.计算梯度

既然代价函数已经更新了,那么我们需要对梯度进行更新。

首先考虑一下,我们想要求导的目标,也就是对谁求导?

答案是,对我们想要优化的参数求导,前面说了,负采样的目的是不需要对整个向量矩阵 U或 V 进行优化,而是仅对求代价过程中涉及的词向量进行优化,因此,求导对象是目标向量
在这里插入图片描述,窗口中的其他词向量 在这里插入图片描述和负采样时随机选取的词向量 在这里插入图片描述

此篇文章关注的问题不是求导的过程,因此下面直接给出梯度:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值