具有高迭代次数的 Word2Vec 是否适用于非常小的玩具数据集?
Does Word2Vec with high iterations work for very small toy datasets?
我正在尝试 运行 首先在我手工制作的非常小的玩具数据集上使用 Word2Vec —— 只是为了在我开始我的主要数据集之前说服自己我做的是正确的。但是尽管进行了 99000 次迭代,结果并不理想。 (老虎和狮子并没有我想象的那么相似)。
玩具数据集:
s= [['Tiger', 'Zebra'], ['Tiger', 'Lion', 'Cheetah'],
['Orangutan', 'Bonobo', 'Orangutan', 'Chimpanzee'],
['Dog', 'Cat', 'Mouse'], ['Tiger', 'Rhino'],
['House', 'Car'], ['Antelope', 'Gazelle'],
['Zebra', 'Horse'], ['Tiger', 'Lion', 'Leopard'],
['Cat', 'Mouse'], ['Mouse', 'Hampster', 'Gerbil'],
['Rhino', 'Zebra'], ['Zebra', 'Antelope'],
['Tiger', 'Lion'], ['Lion', 'Tiger', 'Giraffe'],
['Leopard', 'Lion'], ['Leopard', 'Tiger', 'Lion'],
['Tiger', 'Lion'], ['Tiger', 'Lion'],
['Car', 'Van'], ['Car', 'Lorry'],
['Car', 'Van'], ['Car', 'Lorry'],
['Car', 'Van'], ['Car', 'Lorry']
]
理论上,如果我进行大量迭代,我是否应该期望像这样的玩具数据集显示惊人的结果?
这是我使用的代码:
model = gensim.models.Word2Vec(s, min_count=0, iter=iterations,size=100)
Ps。 See here 进行相关讨论。
对于像您这样的小数据,一般模型只需 10-20 次迭代即可快速学习参数,进行更多迭代不会导致预测发生太大变化,如果您可以进行更多迭代,它可能会恢复模型的数据和性能中的错误可能会减少。因此,从小数据中它只能学到很少的东西,如果你在更多数据上训练你的模型,你的模型可能会表现得更好。
根据我的经验,Word2Vec 在小型或人为设计的数据集上效果不佳。有时,更多的迭代(或使模型在 size
维度上小得多)可以得出一些有意义的线索——但与真实的数百万字训练集的结果完全不同。
该算法的真正威力依赖于从大量、多样化、自然变化的文本示例中学习到的影响平衡。
(由于您的合成数据集甚至不是可理解的语言,我不确定 "amazing results" 可能是什么——这些简短、重复的动物列表应该教型号?)
我正在尝试 运行 首先在我手工制作的非常小的玩具数据集上使用 Word2Vec —— 只是为了在我开始我的主要数据集之前说服自己我做的是正确的。但是尽管进行了 99000 次迭代,结果并不理想。 (老虎和狮子并没有我想象的那么相似)。
玩具数据集:
s= [['Tiger', 'Zebra'], ['Tiger', 'Lion', 'Cheetah'],
['Orangutan', 'Bonobo', 'Orangutan', 'Chimpanzee'],
['Dog', 'Cat', 'Mouse'], ['Tiger', 'Rhino'],
['House', 'Car'], ['Antelope', 'Gazelle'],
['Zebra', 'Horse'], ['Tiger', 'Lion', 'Leopard'],
['Cat', 'Mouse'], ['Mouse', 'Hampster', 'Gerbil'],
['Rhino', 'Zebra'], ['Zebra', 'Antelope'],
['Tiger', 'Lion'], ['Lion', 'Tiger', 'Giraffe'],
['Leopard', 'Lion'], ['Leopard', 'Tiger', 'Lion'],
['Tiger', 'Lion'], ['Tiger', 'Lion'],
['Car', 'Van'], ['Car', 'Lorry'],
['Car', 'Van'], ['Car', 'Lorry'],
['Car', 'Van'], ['Car', 'Lorry']
]
理论上,如果我进行大量迭代,我是否应该期望像这样的玩具数据集显示惊人的结果?
这是我使用的代码:
model = gensim.models.Word2Vec(s, min_count=0, iter=iterations,size=100)
Ps。 See here 进行相关讨论。
对于像您这样的小数据,一般模型只需 10-20 次迭代即可快速学习参数,进行更多迭代不会导致预测发生太大变化,如果您可以进行更多迭代,它可能会恢复模型的数据和性能中的错误可能会减少。因此,从小数据中它只能学到很少的东西,如果你在更多数据上训练你的模型,你的模型可能会表现得更好。
根据我的经验,Word2Vec 在小型或人为设计的数据集上效果不佳。有时,更多的迭代(或使模型在 size
维度上小得多)可以得出一些有意义的线索——但与真实的数百万字训练集的结果完全不同。
该算法的真正威力依赖于从大量、多样化、自然变化的文本示例中学习到的影响平衡。
(由于您的合成数据集甚至不是可理解的语言,我不确定 "amazing results" 可能是什么——这些简短、重复的动物列表应该教型号?)