Word2vec 使用新语料库重新训练,现有词汇的权重将如何更新?



Scenerio:word2vec模型在词汇量为V1的语料库C1上训练。如果我们想使用 train() API 用另一个具有词汇 V2 的语料库 C2 重新训练相同的模型,那么这两个会发生什么:

  1. 对于模型,V1 交叉点 V2 的权重将被重置,并且语料库 C2 的重新训练将一起提出所有新的权重
  2. 对于模型,语料库 C2 的重新训练将继续使用词汇 V1 交集 V2 的现有权重。

以上两个中哪一个是正确的假设?

  1. 如果我正确理解此选项,您将重置共享单词的所有权重,然后在 C2 数据上训练它们......这意味着C1中共享单词的所有信息都将丢失,这对我来说似乎是一个很大的损失。(我不知道语料库的大小)。另外,这两个语料库有多大区别?这个十字路口有多大?语料库是否涵盖类似的主题/领域?这也可能会影响您决定从 C1 语料库丢失所有信息是否可以

  2. 这对我来说似乎是一个更合乎逻辑的流程......但同样,语料库/词汇的差异在这里很重要。如果由于交叉而遗漏了 C2 中的许多单词,您可以想办法以一种或另一种方式添加未知单词。

但是,为了评估哪个选项在您的案例中真正"最佳",请创建一个案例,您可以在其中根据一种方法衡量另一种方法的"好"程度。在大多数情况下,这涉及一些相似性度量......但也许你的情况不同..

为什么不为每个运行使用随机生成的数字启动每个 word2vec 参数?我可以做到这一点,并且通过仔细选择每个参数(numFeatures,contextWindow,seed)的随机数,我能够获得我想要的用例的随机相似性元组。模拟集成架构。

别人怎么看?请回复。

最新更新