【问题标题】:Changing dimnesions of pretrained word2vec vectors改变预训练 word2vec 向量的维度
【发布时间】:2017-12-13 18:01:54
【问题描述】:
我有两个不同的词嵌入预训练模型,我想将它们组合在一起,以便一个模型中的缺失词可以被另一个模型补充(以防另一个模型包含第一个模型中缺失的词)。但是模型中的向量具有不同的维度。第一个模型向量为 300 维,第二个模型向量为 1000 维。
我可以简单地保留前 300 个维度并丢弃第二个模型中的其余 (700) 个维度并构建一个 300 个维度的组合模型吗?
【问题讨论】:
标签:
deep-learning
word2vec
word-embedding
pre-trained-model
【解决方案1】:
由于这两个模型是在不同时间进行训练的,因此即使它们具有相同的维度,它们也不会“在语义上对齐”。由于在训练的初始化中存在一些随机方面,因此无法直接比较两个独立的向量集。拓扑方面,即高维空间中向量之间的关系,很可能是相同的,但是来自两个独立向量集的两个向量对应于同一个词不会位于相同的位置。
有一些降维算法可以将维度从 1000 降到 300(SVD、PCA、SOM、自动编码器),但正如我所提到的,这不能解决您的问题。
如果可能,我建议基于包含完整词汇的语料库重新训练模型。即使有一些奇特的方式可以与独立模型组合,我也会假设你得到的东西质量会受到影响。