我已经下载了 1000 亿字的谷歌新闻预训练矢量文件。最重要的是,我还在训练我自己的 3gb 数据,生成另一个预训练的矢量文件。两者都有 300 个特征维度和超过 1GB 的大小。
我如何合并这两个巨大的预训练向量?或者我如何训练一个新模型并在另一个之上更新向量?我看到基于 C 的 word2vec 不支持批量训练。
我希望从这两个模型中计算词类比。我相信从这两个来源学习的向量会产生很好的结果。
我已经下载了 1000 亿字的谷歌新闻预训练矢量文件。最重要的是,我还在训练我自己的 3gb 数据,生成另一个预训练的矢量文件。两者都有 300 个特征维度和超过 1GB 的大小。
我如何合并这两个巨大的预训练向量?或者我如何训练一个新模型并在另一个之上更新向量?我看到基于 C 的 word2vec 不支持批量训练。
我希望从这两个模型中计算词类比。我相信从这两个来源学习的向量会产生很好的结果。
没有直接的方法可以合并单独培训课程的最终结果。
即使对于完全相同的数据,初始播种或线程调度抖动的轻微随机化也会导致不同的最终状态,使得向量只能在同一会话中完全可比较。
这是因为每个会话都找到了一个有用的向量配置......但是有许多同样有用的配置,而不是单一的最佳配置。
例如,无论您达到何种最终状态,都有许多旋转/反射,这些旋转/反射在训练预测任务上可以完全一样好,或者在其他一些任务(如类比求解)上表现完全一样。但是这些可能的替代方案中的大多数都没有可以混合匹配的坐标,以便相互进行有用的比较。
使用先前训练运行的数据预加载模型可能会在使用新数据进行更多训练后改善结果,但我不知道对这种可能性进行任何严格的测试。效果可能取决于您的特定目标、您的参数选择以及新旧数据的相似程度,或代表将使用向量的最终数据。
例如,如果 Google 新闻语料库不同于您自己的训练数据,或者您将使用词向量来理解的文本,那么将其作为起点可能只会减慢或偏向您的训练。另一方面,如果您对新数据进行足够长的训练,最终预加载值的任何影响都可能被稀释为无。(如果你真的想要一个“混合”的结果,你可能必须同时训练新数据,并有一个交错的目标,将向量推回到先前的数据集值。)
结合独立会议结果的方法可能会成为一个很好的研究项目。也许 word2vec 语言翻译项目中使用的方法——学习词汇空间之间的投影——也可以在不同运行的不同坐标之间“翻译”。也许将一些向量锁定在适当的位置,或者针对“预测新文本”和“与旧向量保持接近”的双重目标进行训练,将会产生有意义的改进组合结果。
这些是我的方法:
从 Google 新闻中下载作物并将它们合并到您的数据中,然后训练它们!
将您的数据集划分为2 个大小相等的数据集,然后对它们进行训练。现在您有3 个模型,因此您可以使用混合方法进行预测。
我希望这些可以帮助你!