【问题标题】:Value of alpha in gensim word-embedding (Word2Vec and FastText) models?gensim 词嵌入(Word2Vec 和 FastText)模型中的 alpha 值?
【发布时间】:2019-05-17 19:55:58
【问题描述】:

我只想知道在gensimword2vecfasttext词嵌入模型中alpha值的影响?我知道 alpha 是 initial learning rate,它的默认值是 0.075 形式 Radim 博客。

如果我将其更改为更高的值,即 0.5 或 0.75,会怎样?它的作用会是什么?是否允许更改相同?但是,我已将其更改为 0.5,并在 D = 200、window = 15、min_count = 5、iter = 10、workers = 4 的大型数据上进行实验,结果对于 word2vec 模型非常有意义。然而,使用 fasttext 模型,结果有点分散,意味着相关性较低且不可预测的高低相似度分数。

为什么对于具有不同精度的两个流行模型的相同数据会出现这种不精确的结果? alpha 的值是否在模型构建过程中起着如此重要的作用?

欢迎提出任何建议。

【问题讨论】:

    标签: python-3.x gensim word2vec word-embedding fasttext


    【解决方案1】:

    在 gensim 的 Word2Vec 实现中,默认的起始 alpha0.025

    在用于调整模型的随机梯度下降算法中,有效的alpha 会影响在评估每个训练样例后对模型进行校正的强度,并且会从其起始值线性衰减 (alpha)在所有培训过程中达到一个很小的最终值 (min_alpha)。

    大多数用户不需要调整这些参数,或者可能只需稍微调整一下,只要他们有可靠的可重复方法来评估更改是否会改善他们的最终任务模型。 (我见过0.05 或不太常见的0.1 的起始值,但从未像您报告的0.5 那样高。)

    【讨论】:

    • 谢谢,gojomo。我期待这个答案。好的,我也会将 alpha 值设为 0.1 或在其中。 1 查询,是否必须指定model.train() 参数。如果我在构建模型后不使用它会怎样?如果我使用 model.train 参数,在构建具有特定大小、窗口、iter 和 min_count 值的模型之后,model.train() 参数的期望值可能是多少。
    • 我计算了两个单词之间的相似度,没有使用 model.train() 值。是否必须指定 model.train() 值?
    • 在一切正常之前,我不会更改 alpha 默认值,并且您有一个评估模型的好方法,看看更改 alpha 是否有帮助。
    • 所有模型都必须经过训练才能发挥作用,但是如果您在模型构造函数中提供了可迭代的语料库,它将自动完成训练。如果您没有提供语料库,则必须自己进行词汇初始化(使用方法build_vocab())然后训练(使用方法train())。 train() 的文档清楚地说明了必须提供哪些参数:radimrehurek.com/gensim/models/…
    • 语料库可迭代对象是sentences 参数——在类构造函数中是可选的。对于Word2Vec,它应该是一个可迭代的令牌列表序列。如果提供给类构造函数,所有词汇发现和训练都将自动发生——你不需要调用train()。 (如果您有更多问题,您应该使用您正在使用的代码的清晰摘录来扩展您的问题。)
    猜你喜欢
    • 2017-09-21
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 2014-04-02
    相关资源
    最近更新 更多