负样本参数是什么?

What are the negative & sample parameters?

我是 NLP 和 doc2Vec 的新手。我想了解 doc2Vec 的参数。谢谢

Doc2Vec(dm=0, vector_size=300, negative=5, hs=0, sample = 0, seed=0)

  1. vector_size:我相信这是为了控制过拟合。一个更大的特征向量会学到更多的细节,所以它容易过拟合。有没有一种方法可以根据文档的数量或所有文档中的总字数来确定合适的向量大小?

  2. negative:应该抽取多少个“噪声词”。什么是干扰词?

  3. sample:配置对哪些高频词进行随机下采样的阈值。那么sample=0是什么意思呢?

作为初学者,最初只有 vector_size 会感兴趣。

典型值为 100-1000,但更大的维度需要更多的训练数据和更多的内存。没有硬性规定 – 尝试不同的值,并查看适合您的目的。

非常含糊,你会希望你的独特词汇量比 vector_size 大得多,至少是 vector_size 的平方:算法的要点是强制将许多单词放入更小的维度中。 (如果出于某种原因,您要 运行 对少量数据和少量词汇进行实验——无论如何 word2vec 都不是很好——你必须将 vector_size 缩小得非常低。)

negative 值控制内部神经网络调整方式的细节:网络调整了多少随机 'noise' 词远离预测对于每个目标积极的词,它被调整朝向预测。默认值 5 很好 unless/until 你有一种可重复的方法来严格根据它对其他值进行评分。

同样,sample 控制有时会随机跳过(下采样)多少(如果有的话)更频繁的词。 (这么多多余的用法示例是矫枉过正,浪费训练 time/effort,而训练 time/effort 可以更好地花在更罕见的词上。)同样,如果你有办法比较替代的结果,你只想修补这个值。较小的值会使下采样更具侵略性(丢弃更多的词)。 sample=0 将完全关闭这种下采样,保留所有使用的训练文本词。

虽然你没问:

dm=0 关闭默认 PV-DM 模式以支持 PV-DBOW 模式。这会更快地训练文档向量,并且通常在短文本上效果很好,但是 根本不会 训练词向量(除非你打开一个额外的 dbow_words=1 模式添加回交错 ski-gram 词向量训练)。

hs 是另一种训练神经网络的模式,它使用单词的多节点编码,而不是每个(正或负)单词一个节点。如果通过 hs=1 启用,您应该使用 negative=0 禁用负采样。但是负采样模式是默认模式是有原因的,随着训练数据的增加,它往往会变得相对更好——所以很少使用这种模式。