Центр слова вектора - PullRequest
       83

Центр слова вектора

0 голосов
/ 28 апреля 2020

Я изучаю НЛП и оборачиваюсь вокруг шагов, проходящих через Многослойный Персептрон. Поскольку векторы - это величина и направление в пространстве, мне любопытно, что представляет собой центр слова-вектора. В очень простом векторе мое слово может быть 21, -5. 0,0 представляет что-нибудь? Если нет, то может ли это представлять что-то после тренировки модели?

Если я правильно понимаю, слово, которое никогда раньше не встречалось, получит числовой тождество и вектор М измерений. Этот вектор затем переходит в первый слой, который имеет столько узлов, сколько имеется измерений, поэтому в этом случае M узлов. Благодаря обратному распространению веса меняются так, чтобы похожие слова «группировались» вместе в векторном пространстве. (Значит, это означает, что сами векторы слов никогда не изменяются от их первоначального случайного значения, верно?) Пожалуйста, исправьте меня, если я сделал здесь неправильные предположения. Я был бы просто признателен.

Ответы [ 2 ]

1 голос
/ 30 апреля 2020

Чтобы добавить к ответу Радима - относительно вектора 0 (исходной точки), следует отметить, что хотя вектор 0 является частью математического поля , R ^ d , т. Е. Декартово (вложенное) пространство d измерений с обычными операциями векторного сложения и скалярного умножения, с практической точки зрения, вы бы, возможно, никогда не встречайте вектор 0 .

Это потому, что параметры слова (его векторное представление) обновляются с помощью стохасти c градиентного спуска в форме

w(t+1)_j <-- w(t)_j + (error)*input_j, 

, т. е. где j-й компонент весового вектора для данного слова обновляется на основе ошибки в прогнозировании его контекста (input_j является j-м компонентом начального кодирования слова), очень маловероятно, что все 101 * эти параметры будут сходиться к 0 для любого слова .

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

1 голос
/ 28 апреля 2020

Вы можете считать слово «векторы» в числовом выражении просто точками. Не очень важно, что все они «начинаются» с начала координат ([0.0, 0.0, 0.0, ..., 0.0]).

«Центром» любого такого вектора является только его средняя точка, которая также является вектором той же «направленности» с половиной величины. Часто, но не всегда , векторы слов сравниваются только с точки зрения необработанного направления, , а не величины, через «косинусное сходство», которое по сути является вычислением угла разности, которое очевидно, что длина / величина. (Таким образом, cosine_similarity(a, b) будет таким же, как cosine_similarity(a/2, b) или cosine_similarity(a, b*4), и т. Д. c.) Так что этот «центральный» / половинный экземпляр, о котором вы спрашивали, обычно менее значим, с векторами слов, чем в других векторных моделях. И вообще, если вы используете косинусное сходство в качестве основного метода сравнения векторов, перемещение их ближе к исходной точке не имеет значения. Таким образом, в этом кадре точка начала на самом деле не имеет четкого значения.

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

Предостережение относительно исходной точки: по крайней мере, одна статья " All-but-the-Top: простая и эффективная постобработка для представлений в словах " от Mu, Bhat, & Viswanath, заметил, что часто «среднее» для всех слов-векторов не является исходной точкой, а значительно смещено в одном направлении - что (в моем стилизованном понимании) оставляет неуравновешенным все пространство с точки зрения того, использует ли оно «все углы» для представления контрастов по смыслу. (Кроме того, в моих экспериментах степень этого дисбаланса, по-видимому, зависит от того, сколько negative примеров используется в отрицательной выборке.) Они обнаружили, что постобработка векторов для их повторного центрирования повышает производительность в некоторых задачах, но я не Видно, что многие другие проекты принимают это как стандартный шаг. (Они также предлагают некоторые другие преобразования постобработки для существенного «увеличения контраста в наиболее ценных измерениях».)

Относительно вашего "IIU C", да, словам даются начальные векторы - , но они случайные, а затем постоянно корректируются с помощью backprop-nudges, неоднократно после попытки каждого обучающего примера по очереди, чтобы сделать эти векторы «входного слова» чуть-чуть лучше в качестве входных данных для нейронной сети, которая пытается предсказать ближайшую «цель» / центр / вывод 'слова. Настраиваются как «внутренние» / «скрытые» веса сетей, так и сами input vectors, которые по сути являются «весами проекции» - от горячего представления одного словарного слова, до «М различных внутренних скрытых - узлы слоя. Таким образом, каждый «вектор слов» по ​​существу является подмножеством, определяемым словом, c внутренних весов нейронных сетей.

...