У меня проблемы с пониманием скип-грамматической модели алгоритма Word2Vec.
В непрерывном пакете слов легко увидеть, как контекстные слова могут «вписаться» в нейронную сеть, поскольку вы в основном усредняете их после умножения каждого из представлений кодирования с одним горячим кодированием на входную матрицу W.
Однако в случае скип-граммы вы получаете вектор входного слова только путем умножения однократного кодирования на входную матрицу, а затем вы должны получить представления векторов C (= размер окна) для слов контекста путем умножения входное векторное представление с выходной матрицей W '.
Я имею в виду наличие словаря размера и кодировки размера , входной матрицы и качестве выходной матрицы. Учитывая слово с горячим кодированием с контекстными словами и (с горячими повторениями и ), если вы умножите на входную матрицу вы получите , как теперь вы генерируете векторы баллов из этого?Н Ш ∈ R V × N W ' ∈ R N × V ш я х я ш J ш ч х J х ч х я Ш ч : = х Т я Ш = Ш ( я , ⋅ ) ∈ R N C
источник
В обеих моделях выходной результат зависит от используемой вами функции оценки. Может быть две функции оценки softmax или отрицательная выборка. Таким образом, вы используете функцию оценки Softmax. Вы получите размер функции оценки N * D. Здесь D - размерность слова вектор. N - количество примеров. Каждое слово похоже на класс в архитектуре нейронных сетей.
источник
В модели с пропуском грамматики одно горячее закодированное слово подается в двухслойную мелкую нейронную сеть. Поскольку вход кодируется в горячем виде, скрытый слой содержит только одну строку входной скрытой матрицы весов (скажем, строка потому что строка входного вектора равна единице). к т чКт ч Кт ч
Баллы за каждое слово вычисляются по следующему уравнению.
где h - вектор в скрытом слое, а - скрытая матрица выходного веса. После вычисления вычисляются полиномиальные распределения, где - размер окна. Распределения рассчитываются по следующему уравнению. u C CW' U С С
Как видите, все распределения различны. (Для получения дополнительной информации: https://arxiv.org/pdf/1411.2738.pdf ). На самом деле, это было бы более понятно, если бы они использовали что-то вроде следующего рисунка.C
Таким образом, существует только один исходный вектор . Однако различные распределения вычисляются с использованием функции softmax.Cu C
источник