首页 文章

混合来自不同模型的单词矢量

提问于
浏览
0

在使用Word2Vec寻找 disambiguate word senses using word vectors representation 的方法时,我想到的一个策略如下:

Train a model using a corpus where you know the senses of the words of interest ,就我而言,英文单词也是基因名称 . 然后,只要感兴趣的段落出现在未知的语料库中, train a small model using the paragraph with the word of interest . 使用从此片段构建的单词向量,在已知上下文和未知上下文中的特定单词的 compare the representations ,以查看它们在向量空间中的接近程度 .

在尝试这种方法时,我注意到即使是在同一语料库中训练的2个模型对于同一个单词也有完全不同的单词表示 . 换句话说,这两个字矢量之间的余弦相似性非常低 .

所以我的问题是,这种差异是由于模型以某种方式构建不同的基本向量来表示空间吗?如果是这样,有没有办法在训练期间将这些锁定到欧几里德?或者是由于其他原因造成的差异?

2 回答

  • 1

    添加到lejlot注释:每次运行模型时,它都从一个不同的随机点开始,结束到一个不同的局部最优,所以即使你在相同的语料库中训练它们,也不可能有两个不同的模型返回相似的向量 . 你应该期待的是(如果你在相同的语料库上训练模型),单词关系将在模型之间类似,例如模型1中'cat'和'dog'之间的余弦相似性将类似于模型2中相同单词的余弦相似度 .

    关于WSI,你的方法无论如何都不会起作用(因为lejlot指出),不可能只使用一个段落训练一个向量 . 一个简单的方法(不涉及额外的神经层)是在您训练模型后执行以下操作:

    • 对于出现目标词的每个句子,创建一个表示上下文的向量(例如,通过添加同一句子中所有其他词的向量) .

    • 使用您最喜欢的聚类算法对这些上下文向量进行聚类,并根据聚类创建有义向量(例如,通过获取每个聚类的质心)

    这种方法是由Hinrich Schutze在20年前开发的,并且仍然是WSI的标准方法,具有意义的分布模型 .

  • 1

    要添加到先前的答案和评论:

    一种可能有一定工作机会的技术是,如果您在训练期间保持所有单词向量不变,除了单个感兴趣的单词的向量不变 . (也就是说,使用先前的权重初始化新模型,将所有其他单词锁定在训练变更中,然后使用新文本执行训练,并查看感兴趣的单词向量移动了多少 . )

    对于这样的算法,单个段落仍然是一小部分数据,并且正常的单词使用(即使是单个单词检测)也会有很多变化的上下文 . 但是这种方法可以帮助抵消串行模型训练中的随机化,并且可以更好地利用微小训练集的限制 .

相关问题