Tensorboard 嵌入可视化:什么是余弦距离?

Tensorboard embedding visualization: what is cosine distance?

我是数字人文专业的博士生。我对编程语言还很陌生。

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

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

  1. 如果我在 Tensorboard 中选取一个随机向量,最相似的向量与我的模型中的向量完全不同。那是因为降维还是什么?
  2. 很多向量的余弦相似度都高于 1,我真的不明白我做错了什么。有人告诉我,也许我的向量没有标准化,但我认为 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-cosine_similarity定义,因为cosine_similarity在区间[-1, 1]内,cosine_distance[0, 2]内。因此,有些距离大于 1 是正常的。对于指向不同方向的向量也是如此。

关于你的第一个问题,因为在你的 link 中,PCA 的解释方差是 ~8.5%,降维可能会改变给定向量的邻居。您可能也想尝试减少模型中的维度。没有关于您的模型的更多信息,很难更具体。