Tensorboard嵌入可视化:余弦距离是多少?

时间:2019-06-28 09:52:09

标签: python data-visualization tensorboard cosine-similarity doc2vec

我是数字人文科学的博士研究生。我是编程语言的新手。

自上个月以来,我遇到一个困扰我的问题。我正在尝试在Tensorboard中的嵌入式投影仪上可视化doc2vec模型(python,gensim库),但没有得到我所期望的。

我敢肯定,我在这里遗漏了一些非常基本的东西……但是,总结一下

  1. 如果我在Tensorboard中拾取随机向量,则最相似的向量与我的模型完全不同。是因为降维还是什么?
  2. 许多向量的余弦相似度都高于一个,我真的不明白我在做什么错。有人告诉我,也许我的向量没有被标准化,但是我认为Gensim已经做到了,不是吗?

这是我用来生成嵌入的代码。我还尝试了一些代码更改,直接从“ KeyedVectors”获取矢量,但没有任何变化。

from gensim.scripts import word2vec2tensor
from gensim.models.doc2vec import Doc2Vec
doc2vec_model = Doc2Vec.load("doc2vec4.d2v")
doc2vec_model.save_word2vec_format('doc_tensor.w2v', doctag_vec=True, word_vec=False)
%run "C:..word2vec2tensor.py" -i doc_tensor.w2v -o my_plot

我在这里做错了什么?提前致谢。

1 个答案:

答案 0 :(得分:1)

余弦距离由1-cosine_similarity定义,因为cosine_similarity在间隔[-1, 1]中,所以cosine_distance位于[0, 2]中。因此,有些距离大于1是正常的。对于指向不同方向的向量,这是正确的。

关于您的第一个问题,由于在您的链接中,PCA的解释方差为~8.5%,因此降维可能会更改给定向量的邻居。您可能还想尝试减小模型中的尺寸。如果没有更多有关您的模型的信息,就很难更加具体。