我一直在努力理解word2vec中否定采样的概念。我无法消化[负]采样的想法。例如,在米科洛夫(Mikolov)的论文中,负采样期望被表示为
我了解左边的,但是我无法理解对否定的词-语境对采样的想法。
我一直在努力理解word2vec中否定采样的概念。我无法消化[负]采样的想法。例如,在米科洛夫(Mikolov)的论文中,负采样期望被表示为
我了解左边的,但是我无法理解对否定的词-语境对采样的想法。
Answers:
使用“标准”神经网络学习单词向量存在一些问题。以这种方式,在网络学习给定单词窗口(网络的输入)的情况下学习单词向量的同时学习单词向量。
预测下一个单词就像预测班级。也就是说,这样的网络仅仅是“标准”多项式(多类)分类器。并且该网络必须具有与类一样多的输出神经元。当类是实际的单词时,神经元的数量是巨大的。
通常使用交叉熵代价函数训练“标准”神经网络,该函数需要输出神经元的值来表示概率-这意味着必须对网络为每个类别计算的输出“分数”进行归一化,转换为每个类别的实际概率。该标准化步骤是通过softmax函数实现的。当将Softmax应用于巨大的输出层时,其成本非常高。
为了解决此问题,即softmax的昂贵计算,Word2Vec使用了一种称为噪声对比估计的技术。此技术由[A]引入(由[B]进行了重组),然后在[C],[D],[E]中用于从未标记的自然语言文本中学习单词嵌入。
基本思想是将多项式分类问题(因为它是预测下一个单词的问题)转换为二进制分类问题。也就是说,不是使用softmax来估计输出单词的真实概率分布,而是使用二进制逻辑回归(二进制分类)。
对于每个训练样本,增强型(优化的)分类器被提供一个真对(一个中心词和另一个出现在其上下文中的词)和随机破坏的对(由中心词和一个随机选择的词组成)。词汇)。通过学习区分真对和损坏的对,分类器将最终学习单词向量。
这一点很重要:不是预测下一个单词(以下简称“标准”培训技术),优化的分类只是预测了对词是否是好还是坏。
Word2Vec 稍微自定义了该过程,并将其称为否定采样。在Word2Vec中,用于负样本的单词(用于损坏的对)是从专门设计的分布中提取的,这有利于将频率较低的单词更频繁地绘制出来。
[A] (2005)-对比估计:针对未标记的数据训练对数线性模型
[B] (2010)-噪声对比估算:非标准化统计模型的新估算原理
[C] (2008)-用于自然语言处理的统一架构:具有多任务学习的深度神经网络
[D] (2012)-一种训练神经概率语言模型的快速简单算法。
答案基于我的一些较早的笔记-我希望它们是正确的:)
"in Word2Vec, the words for the negative samples (used for the corrupted pairs) are drawn from a specially designed distribution, which favours less frequent words to be drawn more often"
。我想知道这是正确的吗?因为其他一些消息来源说,更频繁的单词被采样为否定样本。Essentially, the probability for selecting a word as a negative sample is related to its frequency, with more frequent words being more likely to be selected as negative samples.