分析印度杂志
现在读
如何在Word2Vec模型中使用负抽样?
分析印度杂志

如何在Word2Vec模型中使用负抽样?

在a的训练期间神经网络,调整网络权值,以便更好地学习训练数据中的表示。如果训练数据的大小非常大,就会导致计算成本方面的许多问题。Word2Vec是一种基于神经网络的模型,广泛应用于自然语言处理应用。当训练数据过大时,word2vec模型面临问题。为了解决这个问题,word2vec模型使用了一种称为负抽样的方法,这种方法只允许在训练过程中修改一小部分网络权值。在这篇文章中,我们将详细讨论word2vec模型使用的负采样技术。下面列出了本文要讨论的要点。

表的内容

  1. Word2Vec模型
  2. Word2Vec模型的问题
  3. 负性抽样的目的
  4. 负抽样是如何工作的?
  5. 如何选择负面样本

首先,我们将快速了解一下Word2vec模型并理解负抽样的必要性。

注册我们的研讨会如何开始你的职业生涯在数据科学?

Word2Vec模型

Word2Vec是一种从语料库中获得高质量的词嵌入的技术。CBOW和Skip-gram是两个众所周知的词2vec模型。这两种模型有一些共同的特点。训练示例由一对术语组成,这些术语是根据它们在出现时的邻近程度选择的。网络的最后一层使用softmax功能。这些模型可以用下面的表示来说明。

word2vec模型背后的原则是,在相似上下文中(彼此相近)的单词应该有相似的单词向量。因此,在训练模型时,我们应该包含一些相似的概念。当向量相似时,它们的点积更大,因此这是用点积来做的。

Word2Vec模型的问题

考虑这样一个场景,我们有包含400个组件和10,000个单词的词汇表的单词向量。在这种情况下,神经网络将有两个权重矩阵:一个隐含层和一个输出层。这两层都有一个包含400 x 10000 = 400万个权重的权重矩阵

在如此庞大的神经网络上,梯度下降的速度会很慢。更糟糕的是,在调整许多权重的同时避免过拟合,需要大量的训练数据。训练这个模型将会是一个有着数百万个权重乘以数十亿个训练样本的庞然大物。

换句话说,我们可以这样描述这个问题:首先,对于每个训练样本,只有与目标词对应的权值才可能得到实质性的更新。在训练神经网络模型时,我们力求更新每一个反向传播通道中隐含层的所有权值。非目标词权重将只得到一个较小的或没有变化,这意味着我们在每次运行中只执行非常稀疏的修改。

其次,使用softmax为每个训练样本计算最终概率是一个相当昂贵的操作,因为它需要对我们词典中所有项目的分数进行归一化的总和。

因此,对于每个训练样本,我们都要进行昂贵的操作来计算权重可能根本没有被修改或更新得如此之小以至于额外费用不合理的单词的可能性。我们努力限制每个训练样本更新权重的数量,以避免这两个挑战,而不是强制使用我们的技术来构建我们的训练样本。

在他们的出版物, Word2Vec的发明者提出了以下两个创新的解决方案:

  • 为了减少训练示例的数量,子样本经常使用的术语。
  • 他们使用一种叫做“负抽样”的技术,使每个训练样本只更新模型权重的一小部分,从而改变了优化目标。

负抽样的目的

对频繁出现的单词进行子采样,减少训练示例的数量。他们使用一种被称为“负抽样”的技术来改变优化目标,这种技术使得每个训练样本只更新模型权重的很小一部分。

负抽样是如何工作的?

下面的例子展示了我们从“The quick brown fox jumps over The lazy dog”这句话中选择的一些训练样本(单词对)。为了说明问题,我将窗口大小设置为2像素。蓝色标记的字是输入字。

神经网络的训练方法是,取一个训练样本,稍微修改所有神经元的权值,使其更准确地预测训练样本。换句话说,每个训练样本都会改变所有神经网络的权值。由于我们的词汇库的广度,我们的跳图神经网络有大量的权值,所有这些权值都将被我们数十亿的训练示例稍稍改变!

负抽样通过在每个训练样本中只修改一小部分权重而不是全部来解决这个问题。事情是这样的。请注意,网络的“标签”或“正确输出”在对单词对(“fox”,“quick”)进行训练时是一个热点向量。也就是说,与“快速”相关的输出神经元应该输出一个1,而其余数百个输出神经元应该输出一个0。

相反,使用负采样,我们将随机选择少量的“负”单词(假设5个)来更新权重。(在这个上下文中,我们希望网络输出一个0作为“负”项。)我们还将继续更新“正”术语(在本例中是单词“quick”)的权重。因此,只会更新与它们相关的权重,而损失只会为它们传播回来。

另请参阅
GitHub副驾驶的8大替代方案

如何选择负面样本

负样本(将被训练为输出0的5个输出单词)使用unigram分布选择,使用频率越高的单词越有可能被选择为负样本。

假设你的整个训练语料库是一个单词列表,从列表中随机选择5个负面样本。在这种情况下,选择“monitor”的概率等于“monitor”在语料库中出现的次数除以语料库中出现的单词总数。根据作者的研究,他们尝试了这个方程的许多变体,其中效果最好的是将单词数增加到3/4次方。

为了更好地理解这种抽样方法,我在这里用一种叫做调整抽样的技术来阐述它。

调整抽样

基本抽样策略是随机选取数据点,但高频数据点是根据分布选取的。

例如,我们有一个背包,里面有三支钢笔,十本笔记本和一支铅笔。如果我们从包中选择一件物品,得到笔记本的几率是0.71(10/14),一支钢笔是0.21(3/14),一支铅笔是0.07(1/14)。

我们不想一直选择高频词汇,因为它们的价值低于不常见的词汇。3/4的幂应用于word2vec实现中的概率。例如,笔记本的概率从0.71变为0.77,铅笔的概率从0.07变为0.14。在这种情况下,使用铅笔的可能性是双重的。

结论

在这篇文章中,我们学习了如何使用跳跃图模型来训练单词向量,以及如何利用负抽样来达到这一目的。首先,我们理解了word2vec模型所面临的问题,然后讨论了负采样技术来解决这个问题。简单地说,它是一个接近softmax函数的过程,只需要从一组没有出现在主词上下文中的示例中提取几个示例即可。这样做是为了降低softmax函数的计算成本,它是在整个词汇表中执行的。

参考文献


订阅我们的通讯

通过分享你的电子邮件获得最新的更新和相关的优惠。
加入我们的Telegram Group。成为一个有吸引力的社区的一部分

188BET网页

滚动到顶部
Baidu