合并Word2Vec中的预训练模型?

时间:2015-05-27 12:37:03

标签: machine-learning word2vec

我已经下载了1000亿字谷歌新闻预训练矢量文件。最重要的是,我也在训练自己的3gb数据,生成另一个预训练的矢量文件。两者都有300个特征尺寸和超过1GB的尺寸。

如何合并这两个巨大的预训练载体?或者我如何训练新模型并在另一个模型之上更新矢量?我看到基于C的word2vec不支持批量训练。

我希望从这两个模型中计算出类比。我相信从这两个来源学到的载体会产生很好的效果。

2 个答案:

答案 0 :(得分:12)

没有简单的方法来合并单独培训课程的最终结果。

即使对于完全相同的数据,从初始播种或线程调度抖动的轻微随机化将导致不同的结束状态,使得向量在同一会话中仅完全可比较。

这是因为每个会话都会找到 a 有用的向量配置...但是有许多同样有用的配置,而不是单个最佳配置。

例如,无论您达到的最终状态是多少旋转/反射都可以在训练预测任务中完全一样好,或者在某些其他任务(如类比解决)上表现得非常好。但是大多数这些可能的替代方案都没有可以混合匹配的坐标,以便相互进行有用的比较。

使用先前培训运行的数据预加载模型可能在对新数据进行更多培训后改进结果,但我不知道对此可能性进行任何严格测试。效果可能取决于您的具体目标,参数选择,新旧数据的相似程度,或者代表使用矢量的最终数据。

例如,如果Google新闻语料库与您自己的训练数据不同,或者您使用单词向量来理解文本,则将其作为起点可能会减慢或偏向您的训练。另一方面,如果你对新数据进行足够长时间的训练,最终预装值的任何影响都可能被稀释到虚无。 (如果您真的想要混合'结果,您可能必须同时使用交错目标训练新数据,以便将向量推回到先前数据集值。)

结合独立会议结果的方法可能会成为一个很好的研究项目。也许word2vec语言翻译项目中使用的方法 - 学习词汇空间之间的投射 - 也可以翻译'在不同运行的不同坐标之间。也许锁定一些矢量,或者培训双重目标,预测新文本'并且'保持接近旧的载体'会给出有意义的改进的综合结果。

答案 1 :(得分:3)

这些是我的方法:

  • 从Google新闻下载庄稼并将其合并到您的数据中,然后进行培训!

  • 将您的数据集划分为 2个相同大小的数据集,然后训练它们。现在您有 3个模型,因此您可以使用混合方法进行预测。

我希望这些可以帮助你!