Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有高迭代次数的Word2Vec是否适用于非常小的玩具数据集?_Word2vec - Fatal编程技术网

具有高迭代次数的Word2Vec是否适用于非常小的玩具数据集?

具有高迭代次数的Word2Vec是否适用于非常小的玩具数据集?,word2vec,Word2vec,我试着先在一个非常小的玩具数据集上运行Word2Vec,这个数据集是我手工制作的——只是为了在我使用主数据集之前让自己相信我做的是正确的。但是,尽管进行了99000次迭代,结果并不理想。(老虎和狮子没有我想象的那么相似) 玩具数据集: s= [['Tiger', 'Zebra'], ['Tiger', 'Lion', 'Cheetah'], ['Orangutan', 'Bonobo', 'Orangutan', 'Chimpanzee'], ['Dog', 'Cat', '

我试着先在一个非常小的玩具数据集上运行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)

注:用于相关讨论。

对于像您这样的小数据,一般模型在10-20次迭代中快速学习参数,进行更多迭代不会导致预测发生太大变化,如果您进行更多迭代,则可能会发现数据中的错误,模型性能可能会降低。因此,从一个小数据中,它只能学到很少的东西,如果你用更多的数据训练你的模型,你的模型可能会表现得更好。

对于像你这样的小数据,一般模型只需10-20次迭代就可以快速地学习参数,进行更多的迭代不会导致预测发生太大的变化,如果您进行更多的迭代,它可能会发现数据中的错误,并且模型的性能可能会降低。因此,从一个小数据中,它只能学到很少的东西,如果你在更多的数据上训练你的模型,你的模型可能会表现得更好。

以我的经验,Word2Vec在微小或人为的数据集上工作得不好。有时,更多的迭代(或使模型在
大小
维度上小得多)可以弥补一些有意义的暗示——但与真实的数百万字训练集的结果不同

该算法的真正威力取决于从大型、多样、自然变化的文本示例中学习到的影响的平衡


(由于你的合成数据集甚至都不是可理解的语言,我不确定会有什么“惊人的结果”——这些简短、重复的动物列表应该教给一个模型什么样的概括模式?

以我的经验,Word2Vec在微小或人为的数据集上工作得不好。有时,更多的迭代(或使模型在
大小
维度上小得多)可以弥补一些有意义的暗示——但与真实的数百万字训练集的结果不同

该算法的真正威力取决于从大型、多样、自然变化的文本示例中学习到的影响的平衡


(由于您的合成数据集甚至不是可理解的语言,我不确定会有什么“惊人的结果”——这些简短、重复的动物列表应该教给模型什么样的概括模式?

谢谢。是的,我的文字代替了我的真实数据集,我将在其中输入歌曲播放列表。我想对Word2Vec有所了解,我上面的例子是想让我自己确信,如果“汽车”和“老虎”从未出现在一起,“老虎”和“狮子”经常出现在一起,那么它们的得分会很低,特别是与小数据集成比例。我选择了这些词,而不是使用歌曲标题,这样如果有什么不对劲的话,它就会跳到我的身上。有没有其他矢量化方法可以让我在小数据集上更有效?我的主数据集比上面的要大得多,但它仍然不是我听说word2vec需要的数千万。无论如何,它可能值得尝试word2vec——也许通过适当的迭代、向量大小和其他元参数,它将指示您想要建模的关系。但要知道它(或任何其他技术)是否有效,你需要对产出进行客观评估——即使你自己的“a应该比C更接近B”的期望结果越来越多。(就歌曲/艺术家的其他分类而言,这可能提供一种粗略的评估方法:评估中的技术通常会使艺术家的歌曲更接近,还是外部类别X中的歌曲更接近?)如果数据集太小,word2vec训练的密集向量无法使用,也许它还足够小,可以利用每字稀疏向量,这只是传统的术语文档共现。(也就是说,对于N个文档,它们是N维向量,其中出现特定术语的每个文档都有一个1。)通常基于这些特征向量的相似性/分类器等也很好。好的,谢谢大家的评论。看来我得试试看了。谢谢。是的,我的文字代替了我的真实数据集,我将在其中输入歌曲播放列表。我想对Word2Vec有所了解,我上面的例子是想让我自己确信,如果“汽车”和“老虎”从未出现在一起,“老虎”和“狮子”经常出现在一起,那么它们的得分会很低,特别是与小数据集成比例。我选择了这些词,而不是使用歌曲标题,这样如果有什么不对劲的话,它就会跳到我的身上。有没有其他矢量化方法可以让我在小数据集上更有效?我的主数据集比上面的要大得多,但它仍然不是我听说word2vec需要的数千万。无论如何,它可能值得尝试word2vec——也许通过适当的迭代、向量大小和其他元参数,它将指示您想要建模的关系。但要知道它(或任何其他技术)是否有效,你需要对产出进行客观评估——即使你自己的“a应该比C更接近B”的期望结果越来越多。(就歌曲/艺术家的其他分类而言,这可能提供一种粗略的评估方法:评估中的技术通常会让艺术家的歌曲更接近,还是让外部类别X中的歌曲更接近?)如果数据集太小,word2vec训练的密集向量不可能有用,或者