Нахождение как целевой, так и центральной матрицы word2vec - PullRequest
0 голосов
/ 30 октября 2019

Я читал и слышал (в CS224 из Стэнфорда), что алгоритм Word2Vec фактически обучает две матрицы (то есть два набора векторов). Это два набора U и V, один для слов, являющихся цельюи один для слов, являющихся контекстом. Окончательный результат является средним из этих двух. Я имею в виду два вопроса. один из них:

  • Почему мы получаем среднее из двух векторов? Почему это имеет смысл? Разве мы не теряем некоторую информацию?

  • Второй вопрос, используя предварительно обученные модели word2vec, как я могу получить доступ к обеим матрицам? Есть ли скачиваемый word2vec с обоими наборами векторов? У меня недостаточно ресурсов для обучения нового.

Спасибо

1 Ответ

0 голосов
/ 31 октября 2019

Это ретранслированное описание не совсем верно. Векторы слов, традиционно извлекаемые из модели word2vec, поступают из «матрицы проекции», которая преобразует отдельные слова в правильный вектор для мелкой нейронной сети.

(Вы могли бы думать о матрице проекции как о превращении однократного кодирования в плотное вложение для этого слова, но библиотеки обычно реализуют это с помощью словарного поиска - например: «какая строка векторов -матрицу, я должен консультироваться для этого слова-токена? ")

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

Однако этот второй вектор на слово редкосделано непосредственно доступным библиотеками. Чаще всего слово-вектор считается просто обученным входным вектором из матрицы проекции. Например, формат экспорта из оригинальной версии Google word2vec.c сохраняет только эти векторы, а большой набор векторов "GoogleNews", который они выпустили, имеет только эти векторы. (Нет усреднения с другим представлением выходной стороны.)

Некоторая работа, особенно работа Mitra и всех исследований Microsoft (в " Модели двойного встраивания пространства " и связанные записи), имеетотметил, что эти выходные векторы могут быть полезны и в некоторых приложениях, но я не видел много других работ, использующих эти векторы. (И даже в этой работе они не усредняются с традиционными векторами, а используются в качестве отдельной опции для некоторых целей.)

Вы должны взглянуть на кодиз тех библиотек, которые вы используете, чтобы увидеть, сможете ли вы извлечь их из их полного представления модели после обучения. В библиотеке Python gensim эта вторая матрица в случае отрицательной выборки является свойством модели с именем syn1neg, после имени оригинала word2vec.c.

...