Что такое матрица функций в word2vec?

10

Я новичок в нейронных сетях, и в настоящее время я изучаю модель word2vec. Однако мне трудно понять, что такое матрица функций.

введите описание изображения здесь

Я могу понять, что первая матрица является горячим вектором кодирования для данного слова, но что означает вторая матрица? Более конкретно, что означает каждое из этих значений (то есть 17, 24, 1 и т. Д.)?

Сатраджит Майтра
источник
У меня есть вопрос о W, сгенерированном Google, можете ли вы дать мне больше информации о значениях, заданных Google? что это за функции используются? спасибо за вашу помощь.
Хамби

Ответы:

8

Идея, стоящая за word2vec, состоит в том, чтобы представлять слова вектором действительных чисел измерения d . Поэтому вторая матрица - это представление этих слов.

Я ая строка этой матрицы вектор представление я -му слово.

Допустим, в вашем примере у вас есть 5 слов: [«Лев», «Кот», «Собака», «Лошадь», «Мышь»], тогда первый вектор [0,0,0,1,0] означает, что вы Рассматриваем слово «Лошадь» и поэтому представление «Лошадь» есть [10, 12, 19]. Точно так же [17, 24, 1] является представлением слова «Лев».

Насколько мне известно, не существует "человеческого значения" конкретно для каждого из чисел в этих представлениях. Одно число не представляет, является ли слово глаголом или нет, прилагательным или нет ... Это просто веса, которые вы меняете, чтобы решить свою задачу оптимизации, чтобы узнать представление ваших слов.

Это руководство может помочь: http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/, хотя я думаю, что изображение, которое вы поместили, было по этой ссылке.

Вы также можете проверить это, что может помочь вам начать работу с векторами слов с помощью TensorFlow: https://www.tensorflow.org/tutorials/word2vec

Пьер Л.
источник
5

TL; DR :

Первая матрица представляет входной вектор в одном горячем формате

Вторая матрица представляет синаптические веса от нейронов входного слоя до нейронов скрытого слоя

Более длинная версия :

«что такое матрица функций»

Кажется, вы не правильно поняли представление. Эта матрица - не матрица признаков, а матрица весов для нейронной сети. Рассмотрим изображение, приведенное ниже. Особенно обратите внимание на левый верхний угол, где матрица входного слоя умножается на матрицу веса. введите описание изображения здесь

Теперь посмотрите на верхний правый угол. Матричное умножение InputLayer, произведенное с помощью Weights Transpose, является просто удобным способом представления нейронной сети в правом верхнем углу.

Итак, чтобы ответить на ваш вопрос, уравнение, которое вы опубликовали, является просто математическим представлением нейронной сети, которое используется в алгоритме Word2Vec.

Первая часть, [0 0 0 1 0 ... 0] представляет входное слово как один горячий вектор, а другая матрица представляет вес для соединения каждого из нейронов входного слоя с нейронами скрытого слоя.

Когда Word2Vec тренируется, он обратно увеличивает эти веса и изменяет их, чтобы лучше представить слова как векторы.

Когда тренировка завершена, вы используете только эту весовую матрицу, берете [0 0 1 0 0 ... 0] для слова «собака» и умножаете ее на улучшенную матрицу веса, чтобы получить векторное представление «собаки» в измерении = нет скрытых нейронов слоя.

На представленной вами диаграмме количество нейронов скрытого слоя равно 3

Таким образом, правая часть - это в основном слово вектор.

Авторы изображений: http://www.datasciencecentral.com/profiles/blogs/matrix-multiplication-in-neural-networks

Аниш Джоши
источник