如何组合两个预训练的 Word2Vec 模型?

How to combine two pre-trained Word2Vec models?

我成功地遵循了 Word2Vec 上的 deeplearning4j.org 教程,因此我能够加载已经训练好的模型或基于一些原始文本训练新模型(更具体地说,我正在使用 GoogleNews-vectors-negative300Emoji2Vec预训练模型)。

但是,我想结合以上两个模型,原因如下: 有一个句子(例如,来自 Instagram 或 Twitter 的评论,由 emoji 组成),我想识别句子中的 emoji然后将其映射到与之相关的词。为了做到这一点,我计划遍历句子中的所有单词并计算接近度(表情符号和单词在向量中的距离 space)。

found the code如何训练现有模型。然而,有人提到在这种情况下不会添加新词,只会根据新的文本语料库更新现有词的权重。

对于我遇到的问题的任何帮助或想法,我将不胜感激。提前致谢!

在我最熟悉的 word2vec 库中,组合从不同语料库训练的两个模型并不是一个简单的、受支持的操作。

特别是,即使同一个词出现在两个语料库中,即使在相似的上下文中,该算法在初始化和训练期间使用的随机化,以及多线程训练注入的额外随机化,也意味着该词可能出现在完全不同的地方。只有 relative distances/orientation 相对于其他应该大致相似的词 - 而不是特定的 coordinates/rotations。

因此合并两个模型需要将一个的坐标转换为另一个。这本身通常会涉及 learning-a-projection 从一个 space 到另一个,然后将独特的单词从来源 space 移动到幸存的 space。我不知道 DL4J 是否为此提供了 built-in 例程; Python gensim 库在最近的版本中有一个 TranslationMatrix 示例 class 可以做到这一点,因为 word-vectors 用于 language-to-language翻译。