Gensim Word2vec 模型参数调优

Adi*_*rma 2 gensim word2vec

我正在研究 Word2Vec 模型。有什么方法可以获得其参数之一的理想值,即iter. 就像我们在 K-Means(Elbo 曲线图)中使用的方式来获取 K 值。或者有没有其他方法可以对这个模型进行参数调整。

goj*_*omo 5

word2vec 会话没有一套理想的参数——这取决于您对词向量的预期用途。

例如,一些研究表明,使用较大的window趋向于以对主题/领域相似性更敏感的方式定位最终向量,而较小的window值会将词邻域转变为每个词邻域的句法/功能插入替换其他。因此,根据您的特定项目目标,您可能需要不同的值。

(同样,因为最初的 word2vec 论文评估模型并调整模型元参数,基于词向量解决一组英语类比问题的有用性,许多人经常调整他们的模型以在相同的类比任务。但我见过在这些类比上得分最高的模型在为下游分类任务做出贡献时表现更差的情况。)

因此,您真正想要的是一种特定于项目的方法来对一组与您的目标非常匹配的词向量进行评分。然后,您运行许多交替的 word2vec 训练课程,并选择最适合您的分数的参数。

iter/的情况epochs很特殊,因为根据底层随机梯度下降优化方法的逻辑,理想情况下,您希望使用尽可能多的训练时期,以使每个时期运行的“损失”停止改进。在这一点上,考虑到其固有的自由参数和结构数量,该模型似乎已经达到了最佳水平——“收敛”了。(对某些示例进行改进的任何进一步内部调整对其他人来说会使其恶化,反之亦然。)

因此,您可能会看到这种“损失”,并选择一些训练迭代,这些迭代次数足以显示“损失”停滞(在狭窄的窗口中上下抖动)几次。然而,gensim 中的损失报告还不是很理想——参见项目错误 #2617——以及许多 word2vec 实现,包括 gensim 和回到word2vec.c谷歌研究人员发布的原始代码,只是让你设置固定的训练迭代次数,而不是实施任何对损失敏感的停止规则。