Откуда берутся размеры в Word2Vec?

Я использую модель word2vec для обучения нейронной сети и построения нейронного вложения для поиска похожих слов в векторном пространстве. Но мой вопрос касается размеров встраивания слов и контекста (матриц), которые мы инициализируем случайными числами (векторами) в начале обучения, например https://iksinc.wordpress.com/13апреля2015г./words-as-vectors/

Допустим, мы хотим отобразить слова {книга, бумага, записная книжка, роман} на графике, прежде всего мы должны построить матрицу с размерами 4x2, 4x3 или 4x4 и т. Д., Я знаю, что первое измерение матрицы имеет размер наш словарь | v |. Но второе измерение матрицы (количество измерений вектора), например, это вектор для слова «книга» [0.3,0.01,0.04], что это за числа? Имеют ли они какое-то значение? Например, число 0,3, связанное с относительно отношения между словом «книга» и «бумага» в словаре, 0,01 - это отношение между книгой и записной книжкой и т. д. Точно так же, как TF-IDF или матрицы соприсутствия, в которых каждое измерение (столбец) Y имеет значение - это слово или документ, относящийся к слову в строке X.


person Shayan Zamani    schedule 12.07.2016    source источник
comment
Вы задаете много интересных вопросов!   -  person Aerin    schedule 21.03.2017


Ответы (2)


Модель word2vec использует сетевую архитектуру для представления входного слова (слов) и наиболее вероятных связанных выходных слов.

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

Веса сети являются субсимвольным представлением соответствия между входом и выходом - любой отдельный вес не обязательно представляет что-либо значимое само по себе. Именно веса связи между всеми блоками (то есть взаимодействия всех весов) в сети дают начало сетевому представлению отображения функций. Вот почему нейронные сети часто называют моделями «черного ящика» - может быть очень сложно интерпретировать, почему они принимают определенные решения и как они учатся. Таким образом, очень сложно сказать, что именно представляет вектор [0.3,0.01,0.04].

Веса сети традиционно инициализируются случайными значениями по двум основным причинам:

  1. Это предотвращает смещение модели до начала обучения.
  2. Это позволяет сети начинать с разных точек в пространстве поиска после инициализации (помогая уменьшить влияние локальных минимумов)

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

Способ инициализации весов и размер скрытого слоя часто называют гиперпараметрами и обычно выбираются в соответствии с эвристикой и предварительным знанием проблемного пространства.

person Mark    schedule 13.07.2016
comment
Отметьте спасибо за ваш ответ. Итак, вы имеете в виду, что ни один из весов сам по себе не имеет смысла, и нет способа понять, например, что этот вектор [0.3,0.01,0.04] является связью между чем и чем, верно? Но столбцы матрицы W (словарной матрицы или вложения слов) должны иметь имена, верно? точно так же, как строки, которые являются словами в нашем словаре. Кто-то сказал мне, что каждое измерение (столбец) представляет собой объект, каким-то образом описывающий слово, но я не мог понять, что это означает особенность? - person Shayan Zamani; 14.07.2016
comment
Взвешенная сумма входного вектора (т. Е. Входного вектора, умноженного на определенный столбец в весовой матрице) представляет собой «функцию», которая может быть активной в зависимости от функции активации устройства. Что представляют собой эти особенности, трудно сказать еще раз (как объяснялось выше). Это особенности, которым научился алгоритм обучения, которые позволяют ему различать тот или иной случай. Хотя для CNN вы можете визуализировать функции, обнаруженные модулями для ввода изображения здесь, (прочтите здесь для получения дополнительной информации). - person Mark; 14.07.2016
comment
Можно ли сказать, что то, что делает ИИ, не известно людям? числа в векторе нельзя посчитать? Или просто то, что это сложно понять и не следует придавать значение, пока не будут достигнуты результаты? Если это так, то настройка гиперпараметров word2vec - просто совпадение и зависит от данных обучения, которые могут не работать на некоторых новых данных! Пожалуйста, поправьте меня, что мне не хватает - person Sand T; 12.10.2018

Я подумал о том же самом и ввел вектор вроде (1 0 0 0 0 0 ...), чтобы увидеть, к каким терминам он был ближе всего. Ответ заключается в том, что возвращенные результаты, похоже, не группировались вокруг какого-либо конкретного значения, а были просто случайными. Для этого использовались 300-мерные векторы Миколова, обученные в Новостях Google. Найдите семантические векторы NNSE для векторного пространства, в котором отдельные измерения, кажется, несут определенные понятные человеку значения.

person summerstay    schedule 29.11.2016