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



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

附言。有关相关讨论,请参阅此处。

根据我的经验,Word2Vec在微小或人为的数据集上效果不佳。有时,更多的迭代(或使模型在size维度上更小(可以产生一些有意义的暗示 - 但与真正的数百万字训练集的结果不同。

该算法的真正力量依赖于从大型、多样化、自然变化的文本示例中学习的影响平衡。

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

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

最新更新