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