Почему нам нужно большее векторное пространство для отображения отношений в моделях встраивания слов?

Я работаю над встраиванием слов и немного запутался в количестве измерений вектора слова. Я имею в виду, возьмем в качестве примера word2vec. Мой вопрос в том, почему мы должны использовать, скажем, 100 скрытых нейронов для нашего скрытого слоя? Имеет ли это число какой-либо смысл или логику? или если произвольно, то почему не 300? или 10? почему не больше или меньше? Как мы все знаем, самый простой способ отображения векторов — это двухмерное пространство (только X и Y), зачем больше измерений? Я читал некоторые ресурсы об этом, и в одном примере они выбирают 100 измерений, в другом выбирают другие числа, такие как 150, 200, 80 и т. д.

Я знаю, что чем больше число, тем больше пространство для отображения отношений между словами, но мы не могли отображать отношения в двухмерном векторном пространстве (только X и Y)?! зачем нам больше места? каждое слово отображается вектором, так почему мы должны использовать многомерное пространство, когда мы можем отображать векторы в двух- или трехмерном пространстве? и затем проще использовать методы подобия, такие как косинус, чтобы найти сходство в 2 или 3 измерениях, а не в 100 (с точки зрения времени вычислений), верно?


person Shayan Zamani    schedule 14.07.2016    source источник


Ответы (1)


Что ж... Если ваша конечная цель — просто отображение векторов, вы можете использовать 2-х или 3-х мерные векторы, и это будет работать лучше всего.

Часто в НЛП у нас есть четко определенные задачи, такие как маркировка, анализ, понимание значений и т. д. Для всех этих целей векторы более высокой размерности ВСЕГДА будут работать лучше, чем двумерные и трехмерные векторы. Потому что у него больше степеней свободы для захвата отношений, которые вам нужны. Вы можете содержать более богатую информацию через них.

проще использовать методы подобия, такие как косинус, чтобы найти сходство в 2 или 3 измерениях, а не в 100 (с точки зрения времени вычислений), верно?

Нет. Это говорит о том, что добавить 2 числа проще, чем добавить 100 чисел. Метод (консинусное расстояние) точно такой же.

person Aerin    schedule 21.03.2017
comment
Я хотел проголосовать, но разве вторая половина вашего ответа неверна? Выполнение косинусного расстояния для двух векторов размера 300 потребует примерно в 100 раз больше операций ЦП, чем косинусное расстояние для двух векторов размера 3. Таким образом, так же, как добавление 300 чисел вместо добавления 3 чисел, потребуется в 100 раз больше усилий. (ОП спрашивал о времени вычислений, поэтому проще означало быстрее.) - person Darren Cook; 02.09.2017
comment
Ха-ха... тогда почему мы удобно используем нотацию Big O? Согласно вашей логике, O(100N) в 100 раз больше усилий, чем O(3N) :-) - person Aerin; 02.09.2017
comment
Чтобы было достаточно места для изучения отношений между словами, размерность 200-400 — необходимое зло. 3D просто не сможет. - person Aerin; 02.09.2017
comment
Вычисление одиночного косинусного сходства - это O (d), где d - количество измерений. Поиск ближайшего слова в наборе из N слов в пространстве размерности d занимает O(Nd), что можно аппроксимировать как O(N), когда N намного больше, чем d. Но я хотел сказать, что Шаян не спрашивал о вычислительной сложности, он спрашивал о времени вычислений. Когда d равно 300, это занимает в 100 раз больше секунд, чем когда d равно 3. (Конечно, на одном ядре!) - person Darren Cook; 02.09.2017
comment
Вычисление подобия одиночного косинуса - O (1), а не O (d). Размерность постоянная, максимум 1000. При увеличении больше 500 производительность ухудшается. Плюс, суть его вопроса не во времени вычислений. Прочтите еще раз его вопрос. Он спрашивает, почему мы не используем меньшие размеры. - person Aerin; 03.09.2017
comment
en.wikipedia.org/wiki/Cosine_similarity en.wikipedia.org/wiki/Big_O_notation (Согласен с точкой его вопроса и согласен с первой половиной вашего ответа.) - person Darren Cook; 03.09.2017