【问题标题】: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、自动编码器),但正如我所提到的,这不能解决您的问题。

    如果可能,我建议基于包含完整词汇的语料库重新训练模型。即使有一些奇特的方式可以与独立模型组合,我也会假设你得到的东西质量会受到影响。

    【讨论】:

    • 如果两个模型中有很多重叠的词,那么一种方法可以学习一种可以将额外词投射到另一个模型中的转换——请参阅这个答案: stackoverflow.com/questions/47507091/… - 但是,不确定代码当前是否可以同时降维,最好还是创建一个组合语料库,其中包含所有感兴趣的单词的各种示例,然后训练一个新的模型,其中词向量是通过共同培训确保具有可比性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    • 2018-11-27
    • 2019-07-12
    • 2016-09-24
    • 2017-11-25
    • 1970-01-01
    • 2017-12-31
    相关资源
    最近更新 更多