Подтвердить что ты не робот

Что представляет вектор слова в word2vec?

word2vec - это инструмент с открытым исходным кодом от Google:

  • Для каждого слова он предоставляет вектор значений float, что именно они представляют?

  • Существует также статья о vector vector, может кто-нибудь объяснить, как они используют word2vec, чтобы получить вектор фиксированной длины для абзац.

4b9b3361

Ответ 1

TL;DR: Word2Vec строит словарные проекции (вложения) в скрытое пространство из N измерений, (N - размер полученных векторов). Поплавочные значения представляют координаты слов в этом N-мерном пространстве.

Основная идея скрытых пространственных прогнозов, помещая объекты в другое и непрерывное пространственное пространство, заключается в том, что ваши объекты будут иметь представление (вектор), которое имеет более интересные характеристики исчисления, чем базовые объекты.

Алгоритмы Word2Vec делают это:

Представьте, что у вас есть предложение:

Собака должна идти ___ для прогулки по парку.

Очевидно, вы хотите заполнить пробел словом "снаружи", но вы также можете "выйти". Алгоритмы w2v вдохновлены этой идеей. Вы хотите, чтобы все слова заполнили пробелы рядом, потому что они принадлежат друг другу. Это называется Гипотеза распределения. Поэтому слова "вне" и "снаружи" будут ближе друг к другу, тогда как слово "морковь" будет дальше.

Это своего рода "интуиция" позади word2vec. Для более теоретического объяснения того, что происходит, я предлагаю прочитать:

Для векторов абзацев идея такая же, как и в w2v. Каждый абзац может быть представлен его словами. В статье представлены две модели.

  • В способе "Мешок слова" (модель pv-dbow), где для предсказания его слов используется один вектор фиксированная длина.
  • Добавляем тег абзаца фиксированной длины в текстовых контекстах (модель pv-dm). Путем ретропропагирования градиента они получают "смысл" того, что отсутствует, принося абзац с теми же словами/темой "отсутствует" близко друг к другу.

Биты из статьи:

вектор вектора и векторы векторов усредняются или конкатенируются предсказать следующее слово в контексте. [...] Токен абзаца можно рассматривать как другое слово. Это действует как память, которая помнит, что отсутствует в текущий контекст - или тема абзаца

Для полного понимания того, как эти векторы построены, вам нужно узнать, как построены нейронные сети и как работает алгоритм backpropagation. (я предлагаю начать с это видео и класс Andrew NG Coursera)

NB: Softmax - просто причудливый способ сказать классификацию, каждое слово в алгоритмах w2v рассматривается как класс. Иерархическая softmax/отрицательная выборка - это трюки для ускорения softmax и обработки множества классов.

Ответ 2

Контексты фиксированной ширины для каждого слова используются как вход в нейронную сеть. Выходной сигнал сети представляет собой вектор значений float - ака слово вложения - данного измерения (обычно 50 или 100). Сеть обучается таким образом, чтобы обеспечить хорошее вложение слов с помощью учебного корпуса.

Можно легко найти фиксированный размер ввода для любого слова - скажем M слов слева и N слов справа от него. Как это сделать для предложения или абзаца, размеры которого варьируются, не так очевидно, или, по крайней мере, это было не поначалу. Не прочитав первую статью, я предполагаю, что можно объединить вложение/абзац фиксированной ширины всех слов в предложении/абзаце, чтобы придумать векторное вложение фиксированной длины для предложения/параграфа.