"alpha" 和 "start_alpha" 之间的区别

Difference between "alpha" and "start_alpha"

我想使用“gensim”训练 Word2Vec 模型。我想确定初始评级率。然而,据记载,“alpha”和“start_alpha”参数都可以用于此目的。它们之间有什么区别?它们是一样的吗?

参数alpha用于the constructor:

classgensim.models.word2vec.Word2Vec(sentences=None, corpus_file=None, vector_size=100, alpha=0.025, window=5, min_count=5, max_vocab_size=None, sample=0.001, seed=1, workers=3, min_alpha=0.0001, sg=0, hs=0, negative=5, ns_exponent=0.75, cbow_mean=1, hashfxn=, epochs=5, null_word=0, trim_rule=None, sorted_vocab=1, batch_words=10000, compute_loss=False, callbacks=(), comment=None, max_final_vocab=None)

而参数 start_alpha 用于 train 方法:

train(corpus_iterable=None, corpus_file=None, total_examples=None, total_words=None, epochs=None, start_alpha=None, end_alpha=None, word_count=0, queue_factor=2, report_delay=1.0, compute_loss=False, callbacks=(), **kwargs)

至于用哪个:

start_alpha (float, optional) – Initial learning rate. If supplied, replaces the starting alpha from the constructor, for this one call totrain(). Use only if making multiple calls to train(), when you want to manage the alpha learning-rate yourself (not recommended).

它们本质上是一样的。如果在构造函数中指定非默认值:

  • 它们在模型中缓存为 alpha & min_alpha

  • 如果您还选择了在构造函数中指定训练语料库的选项 (sentences/corpus_iterable/corpus_file),则 alpha & min_alpha 将成为自动 .train()

    start_alphaend_alpha

如果您改为显式调用 .train()

  • 您可以指定一个 start_alphaend_alpha,仅用于该调用,它将用于代替构造函数期间设置的值(但不会缓存在模型中以备将来使用电话)

如果 你在同一个模型上多次调用 .train() 出于某种原因——这通常是一个不必要的坏主意,除了一些非标准的专家——使用情况——您可能希望在每次调用中正确选择 alpha 范围的正确进展(这样它就不会无意义地上下跳动)。

专家使用是单独的非缓存 start_alphaend_alpha 参数存在的真正原因。大多数用户应该坚持使用默认值(因此不要使用其中任何一个),如果他们真的到了修补的地步,只需在构造函数中尝试不同的 alpha 值,仔细监控它是否有帮助。