Визуализация вложения в Tensorboard: что такое косинусное расстояние? - PullRequest
2 голосов
/ 28 июня 2019

Я аспирант в области цифровых гуманитарных наук. Я совершенно новичок в языках программирования.

У меня есть проблема, которая меня бесит с прошлого месяца. Я пытаюсь визуализировать модель doc2vec (python, библиотека gensim) на проекторе вложений в Tensorboard, но не получаю то, что ожидаю.

Я уверен, что я упускаю что-то действительно простое здесь ... однако, подводя итог

  1. Если я выберу случайный вектор в Tensorboard, наиболее похожие векторы будут совершенно другими, чем в моей модели. Это из-за уменьшения размерности или как?
  2. Многие векторы имеют косинусное сходство, которое выше, чем один, и я действительно не понимаю, что я делаю здесь неправильно. Кто-то сказал мне, что, возможно, мои векторы не нормализованы, но я думаю, что Генсим уже делает это, не так ли?

Вот код, который я использую для генерации вложений. Я также попытался немного изменить код, взяв векторы непосредственно из «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 Ответ

1 голос
/ 28 июня 2019

Косинусное расстояние определяется как 1-cosine_similarity, поскольку cosine_similarity находится в интервале [-1, 1], cosine_distance лежит в [0, 2].Поэтому вполне нормально, что некоторые расстояния превышают 1. Это верно для векторов, которые указывают в разных направлениях.

Что касается вашего первого вопроса, поскольку в вашей ссылке объясненная дисперсия PCA равна ~8.5%, вероятно, что уменьшение размерности изменяет соседей данного вектора.Вы можете также попытаться уменьшить размерность в вашей модели.Без дополнительной информации о вашей модели трудно быть более конкретным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...