什么时候Word2Vec #fit()终止,为什么我的alpha不会变小?

时间:2016-04-13 15:33:07

标签: apache-spark word2vec

我正在尝试从我们群集上的大型数据集(大约50GB)训练单词向量,但我不确定训练是否会终止。

日志显示alpha实际上变小,因为我认为应该:

...
16/04/13 17:19:01 INFO feature.Word2Vec: wordCount = 17974000, alpha = 0.5506481187235711
16/04/13 17:19:02 INFO feature.Word2Vec: wordCount = 17985000, alpha = 0.5506791151242587
16/04/13 17:19:02 INFO feature.Word2Vec: wordCount = 17996000, alpha = 0.5507101115249463
16/04/13 17:19:03 INFO feature.Word2Vec: wordCount = 18007000, alpha = 0.550741107925634
16/04/13 17:19:04 INFO feature.Word2Vec: wordCount = 18018000, alpha = 0.5507721043263216
16/04/13 17:19:05 INFO feature.Word2Vec: wordCount = 18029000, alpha = 0.5508031007270092

以下是更新Word2Vec#fit()的{​​{1}}函数的一部分。您可以看到alpha的下限是alpha

learningRate * 0.0001

alpha = learningRate * (1 - numPartitions * wordCount.toDouble / (trainWordsCount + 1)) if (alpha < learningRate * 0.0001) { alpha = learningRate * 0.0001 } logInfo("wordCount = " + wordCount + ", alpha = " + alpha) (此处为learningRate)似乎与0.5(此处numPartitions)一样不变。 1就我所说的词汇大小而言,似乎也是不变的。唯一正在改变的是trainWordsCount随着时间的推移而不断增长。

这意味着

wordCount

然后numPartitions * wordCount.toDouble >= trainWordsCount + 1 会变得更大。 我不确定这是否真的是一个问题,但我在某个地方变红,它实际上应该变小。目前我也不确定这是不是一个错误,如果这确实没问题,或者我做错了什么。

有人可以向我解释我能/期望从这个功能中得到什么? 如果您需要更多信息,请与我们联系。

如果需要,我可以提供整个代码,但这是必不可少的部分:

alpha

0 个答案:

没有答案