Как модель скип-граммы Word2Vec генерирует выходные векторы?

11

У меня проблемы с пониманием скип-грамматической модели алгоритма Word2Vec.

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

Однако в случае скип-граммы вы получаете вектор входного слова только путем умножения однократного кодирования на входную матрицу, а затем вы должны получить представления векторов C (= размер окна) для слов контекста путем умножения входное векторное представление с выходной матрицей W '.

Я имею в виду наличие словаря размера и кодировки размера , входной матрицы и качестве выходной матрицы. Учитывая слово с горячим кодированием с контекстными словами и (с горячими повторениями и ), если вы умножите на входную матрицу вы получите , как теперь вы генерируете векторы баллов из этого?Н Ш R V × N W 'R N × V ш я х я ш J ш ч х J х ч х я Ш ч : = х Т я Ш = Ш ( я , )R N CVNWRV×NWRN×VwixiwjwhxjxhxiWh:=xiTW=W(i,)RNC

crscardellino
источник

Ответы:

7

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

Пожалуйста, поправьте меня, если я ошибаюсь.

источник: https://iksinc.wordpress.com/tag/skip-gram-model/

yazhi
источник
так что ? WRN×(VC)
Фабич
0

В обеих моделях выходной результат зависит от используемой вами функции оценки. Может быть две функции оценки softmax или отрицательная выборка. Таким образом, вы используете функцию оценки Softmax. Вы получите размер функции оценки N * D. Здесь D - размерность слова вектор. N - количество примеров. Каждое слово похоже на класс в архитектуре нейронных сетей.

Шамане Сиривардхана
источник
0

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

Баллы за каждое слово вычисляются по следующему уравнению.

u=WTh

где h - вектор в скрытом слое, а - скрытая матрица выходного веса. После вычисления вычисляются полиномиальные распределения, где - размер окна. Распределения рассчитываются по следующему уравнению. u C CWu CC

p(wc,j=wO,c|wI)=expuc,jj=1Vexpuj

Как видите, все распределения различны. (Для получения дополнительной информации: https://arxiv.org/pdf/1411.2738.pdf ). На самом деле, это было бы более понятно, если бы они использовали что-то вроде следующего рисунка.C

Таким образом, существует только один исходный вектор . Однако различные распределения вычисляются с использованием функции softmax.CuC

References:

  • Синь Ронг, изучение параметров Word2Vec
user3108764
источник
Таким образом, W-матрица - это, по существу, векторы слов (выходные данные алгоритма), а W '- совершенно другая матрица, которую мы выбрасываем?
Надав Б
W 'также векторы слов, которые одинаково хороши.
user3108764
1
p(wc,j=wO,c|wI)=expuc,jj=1Vexpuj=expujj=1Vexpuj