H2O Word2Vec向量不一致

时间:2018-09-06 18:54:20

标签: python word2vec h2o

我对特定主题有一个一般性问题。

我正在使用Word2Vec生成的向量将其作为特征输入到我的“分布式随机森林”模型中,以对一些记录进行分类。我有数百万条记录,每天都在接收新记录。由于有新记录,我希望新记录使用与先前记录相同的矢量模型进行编码。意思是“ AT”一词现在和将来都是相同的向量。 我知道Word2Vec使用随机种子来为语料库中的单词生成向量,但是我想将其关闭。我需要设置种子,这样,如果我今天在一部分数据上训练一个模型,然后在将来再在同一数据上训练一个模型,我希望它为每个单词生成具有完全相同的向量的相同模型。 生成新模型然后进行编码的问题在于,对这些记录进行编码需要花费大量时间,而且最重要的是,我的DRF分类模型不再适用,因为单词的向量已更改。因此,我必须重新训练新的DRF。 通常这不是问题,因为我可以只训练一个模型然后永久使用;但是我知道一个好的做法是定期更新您的软件包。这对于h2o来说是个问题,因为一旦更新,就无法与以前版本生成的模型进行向后可比性。

我是否可以阅读有关如何在python中为h2o设置Word2Vec模型上的种子的任何资料?我正在使用Python版本3和h2o版本3.18

1 个答案:

答案 0 :(得分:1)

h2o-3中的word2vec使用hogwild实现-模型参数是从多个线程同时更新的,因此无法保证该实现的可重复性。

您的文字语料库有多大?以降低模型训练速度为代价,通过将算法限制为仅使用单个线程(h2o启动参数-nthread),您可以获得可重复的结果。