Как рассчитать значение One-Hot Encoding в вектор с действительным знаком?

В Word2Vec я узнал, что и CBOW, и Skip-gram создают значение однократного кодирования для создания вектора (cmiiw), мне интересно, как вычислить или представить значение однократного кодирования в вектор с действительным значением, например (источник: блог DistrictDataLab о распределенных представлениях ) из этого: Пример One-Hot Encodingв: Пример One-Hot Encoding помогите, пожалуйста, я изо всех сил пытался найти эту информацию.


person aryswisnu    schedule 06.08.2017    source источник


Ответы (1)


Сам алгоритм word2vec — это то, что постепенно изучает вектор с действительным знаком с различными значениями размерности.

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

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

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

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

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

person gojomo    schedule 06.08.2017
comment
Спасибо, gojomo, за то, что снова помогли мне. Ссылаясь на ваше объяснение выше о плотных вложениях, я понимаю, что Word2Vec производит не однократное кодирование, а случайные плотные вложения как вектор с действительным знаком, я прав? - person aryswisnu; 07.08.2017
comment
Word2Vec можно рассматривать как получение многомерных однократных кодировок в качестве того, как представлены обучающие примеры, а затем обучение на более низкоразмерных плотных вложениях во время обучения (действительнозначные векторы с небольшим количеством нулей, если они вообще есть). Габаритные размеры). Они начинаются случайным образом, но процесс обучения вынуждает их хорошо предсказывать слова, что затем оказывается полезным для других целей. - person gojomo; 07.08.2017