Doc2Vec:我们需要用 utils.shuffle 训练模型吗?
Doc2Vec: Do we need to train model with utils.shuffle?
我是 NLP 和 Doc2Vec 的新手。我注意到有些网站通过在每个时期(选项 1)中打乱训练数据来训练 Doc2Vec,而有些网站使用选项 2。在选项 2 中,没有训练数据的打乱
有什么区别?另外,我如何 select 最佳 alpha?谢谢
### Option 1 ###
for epoch in range(30):
model_dbow.train(utils.shuffle([x for x in tqdm(train_tagged.values)]), total_examples=len(train_tagged.values), epochs=1)
model_dbow.alpha -= 0.002
model_dbow.min_alpha = model_dbow.alpha
对
### Option 2 ###
model_dbow.train(train_tagged.values, total_examples=len(train_tagged.values), epochs=30)
如果您的语料库在早期文档和晚期文档之间可能存在一些主要的特征差异——例如某些 words/topics 全部前置到早期文档,或者全部后置到后期文档 –然后预先执行一次洗牌以消除任何此类模式可能会有所帮助。这不是绝对必要的,它对最终结果的影响可能很小。
每次训练阶段之间的重新洗牌并不常见,我不希望它提供可检测的好处来证明其 cost/code-complexity。
关于您的“选项 1”与“选项 2”: 除非您是一位确切知道您为什么要这样做的专家。 (并且:任何在线示例表明通常是 poor/buggy 个。)
我是 NLP 和 Doc2Vec 的新手。我注意到有些网站通过在每个时期(选项 1)中打乱训练数据来训练 Doc2Vec,而有些网站使用选项 2。在选项 2 中,没有训练数据的打乱
有什么区别?另外,我如何 select 最佳 alpha?谢谢
### Option 1 ###
for epoch in range(30):
model_dbow.train(utils.shuffle([x for x in tqdm(train_tagged.values)]), total_examples=len(train_tagged.values), epochs=1)
model_dbow.alpha -= 0.002
model_dbow.min_alpha = model_dbow.alpha
对
### Option 2 ###
model_dbow.train(train_tagged.values, total_examples=len(train_tagged.values), epochs=30)
如果您的语料库在早期文档和晚期文档之间可能存在一些主要的特征差异——例如某些 words/topics 全部前置到早期文档,或者全部后置到后期文档 –然后预先执行一次洗牌以消除任何此类模式可能会有所帮助。这不是绝对必要的,它对最终结果的影响可能很小。
每次训练阶段之间的重新洗牌并不常见,我不希望它提供可检测的好处来证明其 cost/code-complexity。
关于您的“选项 1”与“选项 2”: