Tensorboard 嵌入可视化:什么是余弦距离?
Tensorboard embedding visualization: what is cosine distance?
我是数字人文专业的博士生。我对编程语言还很陌生。
自上个月以来,我遇到了一个困扰我的问题。我试图在 Tensorboard 的嵌入投影仪上可视化一个 doc2vec 模型(python,gensim 库),但我没有得到我期望的结果。
我确定我在这里遗漏了一些非常基本的东西...但是,总结一下
- 如果我在 Tensorboard 中选取一个随机向量,最相似的向量与我的模型中的向量完全不同。那是因为降维还是什么?
- 很多向量的余弦相似度都高于 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%
,降维可能会改变给定向量的邻居。您可能也想尝试减少模型中的维度。没有关于您的模型的更多信息,很难更具体。
我是数字人文专业的博士生。我对编程语言还很陌生。
自上个月以来,我遇到了一个困扰我的问题。我试图在 Tensorboard 的嵌入投影仪上可视化一个 doc2vec 模型(python,gensim 库),但我没有得到我期望的结果。
我确定我在这里遗漏了一些非常基本的东西...但是,总结一下
- 如果我在 Tensorboard 中选取一个随机向量,最相似的向量与我的模型中的向量完全不同。那是因为降维还是什么?
- 很多向量的余弦相似度都高于 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%
,降维可能会改变给定向量的邻居。您可能也想尝试减少模型中的维度。没有关于您的模型的更多信息,很难更具体。