Как использовать предварительно обученные векторы word2vec в модели doc2vec? - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь реализовать doc2vec, но я не уверен, как должен выглядеть ввод для модели, если у меня есть предварительно обученные векторы word2vec.

Проблема в том, что я не уверен, как теоретически использоватьпредварительно обученные векторы word2vec для doc2vec.Я предполагаю, что я мог бы предварительно заполнить скрытый слой векторами, а оставшуюся часть скрытого слоя заполнить случайными числами

Другая идея состоит в том, чтобы использовать вектор в качестве ввода для слова вместо однократного кодирования, ноЯ не уверен, имеют ли смысл выходные векторы для документов.

Спасибо за ваш ответ!

1 Ответ

0 голосов
/ 20 февраля 2019

Вы можете подумать, что Doc2Vec (он же алгоритм «Вектор абзаца» Миколова / Ле) требует словарные векторы в качестве 1-го шага.Это общее убеждение, и, возможно, несколько интуитивное, по аналогии с тем, как люди изучают новый язык: понять меньшие единицы перед большими, а затем составить значение большего из меньшего.

Но это распространенное заблуждение, и Doc2Vec этого не делает.

Один режим, чистый PV-DBOW (dm=0 в gensim), вообще не использует обычные входные векторы для каждого слова.И этот режим часто является одним из самых быстрых и наиболее эффективных вариантов.

Другой режим, PV-DM (dm=1 в gensim, по умолчанию), использует соседние векторы слов в комбинации с векторами документов способом, аналогичным режиму CBOW word2vec - но любое слово-векторы, в которых он нуждается, будут обучаться одновременно с документами-векторами.Они не обучаются на 1-й ступени в отдельном шаге, так что не существует простого места, где вы могли бы предоставить векторы слов из других источников.

(Вы можете смешивать пропускаемую тренировку слов в PV-DBOW с dbow_words=1 в gensim, но это будет обучать векторы слов с нуля в чередующемся процессе с общей моделью.)

В той степени, в которой вы могли бы предварительно посеять модель с помощью слов-векторов из другого места, это не обязательно улучшит результаты: оно может легко отправить их качество в сторону или хуже.В некоторых удачных, хорошо управляемых случаях это может быть ускорение сходимости моделей или способ обеспечить совместимость векторного пространства с более ранним векторным набором, но не без дополнительных ошибок и предостережений, которые не являются частьюоригинальных алгоритмов или хорошо описанных практик.

...