Deep learning 改变预训练word2vec向量的维数

Deep learning 改变预训练word2vec向量的维数,deep-learning,word2vec,word-embedding,pre-trained-model,Deep Learning,Word2vec,Word Embedding,Pre Trained Model,我有两个不同的单词嵌入预训练模型,我想将它们组合在一起,这样一个模型中缺少的单词可以被另一个模型补充(如果另一个模型中有第一个模型中缺少的单词)。但在模型中,向量的维数不同。第一个模型向量为300维,第二个模型向量为1000维 我可以简单地保留前300个维度,在第二个模型中丢弃其余的(700)并构建一个300个维度的组合模型吗?因为这两个模型在不同的时间进行了训练,它们不会“语义对齐”,即使它们具有相同的维度。由于在训练的初始化过程中存在一些随机因素,因此不能直接比较两个独立的向量集。拓扑方面,

我有两个不同的单词嵌入预训练模型,我想将它们组合在一起,这样一个模型中缺少的单词可以被另一个模型补充(如果另一个模型中有第一个模型中缺少的单词)。但在模型中,向量的维数不同。第一个模型向量为300维,第二个模型向量为1000维


我可以简单地保留前300个维度,在第二个模型中丢弃其余的(700)并构建一个300个维度的组合模型吗?

因为这两个模型在不同的时间进行了训练,它们不会“语义对齐”,即使它们具有相同的维度。由于在训练的初始化过程中存在一些随机因素,因此不能直接比较两个独立的向量集。拓扑方面,即高维空间中向量之间的关系,很可能是相同的,但来自两个独立向量集的两个向量(对应于同一单词)不会位于同一位置

有一些降维算法可以将维数从1000降到300(SVD、PCA、SOM、自动编码器),但正如我提到的,这并不能解决您的问题


如果可能的话,我建议对一个基于包含完整词汇的语料库的模型进行再培训。即使有一些奇特的方法可以组合成独立的模型,我也会假设你得到的质量会受到影响。

因为这两个模型在不同的时间进行了训练,所以它们不会“语义对齐”,即使它们具有相同的维度。由于在训练的初始化过程中存在一些随机因素,因此不能直接比较两个独立的向量集。拓扑方面,即高维空间中向量之间的关系,很可能是相同的,但来自两个独立向量集的两个向量(对应于同一单词)不会位于同一位置

有一些降维算法可以将维数从1000降到300(SVD、PCA、SOM、自动编码器),但正如我提到的,这并不能解决您的问题


如果可能的话,我建议对一个基于包含完整词汇的语料库的模型进行再培训。即使有一些奇特的方法可以组合到独立的模型中,我也会认为你得到的会在质量上受到影响。

如果两个模型中有很多重叠的单词,有一种方法可以学习一种转换,可以将多余的单词投射到另一个模型中–请参见此答案:–但是,不确定代码目前是否可以同时进行降维,最好还是创建一个包含所有感兴趣单词的各种示例的组合语料库,然后训练一个新模型,通过联合训练确保单词向量具有可比性。如果两个模型中有大量重叠单词,有一种学习转换的方法,可以将额外的单词投射到另一个模型中——见此答案:——但是,不确定代码目前是否可以同时进行降维,而且最好还是创建一个组合语料库,包含所有感兴趣单词的各种示例,然后训练一个新的模型,通过共同训练确保单词向量具有可比性。