我已经下载了 1000 亿字的 Google 新闻预训练矢量文件。除此之外,我还在训练自己的 3GB 数据,生成另一个预训练的矢量文件。两者都有 300 个特征维度和超过 1GB 的大小。
我如何合并这两个巨大的预训练向量?或者我如何训练一个新模型并在另一个模型之上更新向量?我看到基于 C 的 word2vec 不支持批量训练。
我正在寻找从这两个模型计算单词类比。我相信从这两个来源学习的向量会产生相当好的结果。
没有直接的方法可以合并单独培训课程的最终结果。
即使对于完全相同的数据,初始种子或线程调度抖动的轻微随机化也会导致不同的最终状态,使得向量只能在同一会话内完全可比较。
这是因为每个会话都会发现a有用的向量配置...但是有许多同样有用的配置,而不是单一的最佳配置。
例如,无论您达到什么最终状态,都会有许多旋转/反射,这些旋转/反射在训练预测任务上可以完全一样好,或者在某些其他任务(例如类比求解)上表现完全一样好。但这些可能的替代方案中的大多数都没有可以混合和匹配以进行有用的相互比较的坐标。
使用先前训练运行的数据预加载模型might使用新数据进行更多训练后可以改善结果,但我不知道对这种可能性有任何严格的测试。效果可能取决于您的具体目标、参数选择以及新旧数据的相似程度,或者代表将使用向量的最终数据。
例如,如果 Google 新闻语料库与您自己的训练数据或您将使用词向量理解的文本不同,则使用它作为起点可能只会减慢您的训练速度或产生偏差。另一方面,如果您对新数据进行足够长时间的训练,最终预加载值的任何影响都可能会被稀释为零。 (如果您确实想要“混合”结果,则可能必须同时对新数据进行训练,并以交错目标将向量推回先前的数据集值。)
结合独立会议的结果的方法可能会成为一个很好的研究项目。也许 word2vec 语言翻译项目中使用的方法——学习词汇空间之间的投影——也可以在不同运行的不同坐标之间进行“翻译”。也许将一些向量锁定在适当的位置,或者对“预测新文本”和“保持接近旧向量”的双重目标进行训练将带来有意义的改进组合结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)