Градиенты для скипграмм word2vec


9

Я изучаю проблемы письменных заданий в классе глубокого обучения Стэнфордского НЛП http://cs224d.stanford.edu/assignment1/assignment1_soln

Я пытаюсь понять ответ для 3а, где они ищут производную от вектора для центрального слова.

Предположим, вам дан вектор предсказанного слова соответствующий центральному слову c для скипграммы, а предсказание слова выполняется с помощью функции softmax, найденной в моделях word2vec.vc

y^o=p(o|c)=exp(uoTvc)w=1Wexp(uwTvc)

Где w обозначает w-е слово, а (w = 1, ..., W) - «выходные» слова-слова для всех слов в словаре. Предположим, что к этому прогнозу применяется перекрестная энтропийная стоимость, а слово o является ожидаемым словом.uw

Где - матрица всех выходных векторов, и пусть - вектор-столбец предсказания softmax для слов, а y - метка, содержащая одну горячую метку, которая также вектор столбца.уU=[u1,u2,···,uW]y^

Где перекрестная энтропия - этоCE(y,y^)=iyilog(y^i)

Таким образом, ответ для градиента для центрального вектора:Jvc=UT(y^y).

Может ли кто-нибудь показать мне шаги, чтобы добраться до этого? Я использовал этот вопрос в качестве эталона Производной перекрестной потери энтропии в word2vec, но я специально хочу знатьпредставление.UT(y^y).

Ответы:


15

Во-первых, давайте рассмотрим, что у нас есть, и наши предположения о формах различных векторов. Позволять,

  1. |W|быть количество слов в словаре
  2. y и у векторовстолбцов формы | W | х 1y^|W|
  3. ui иvj - векторы столбцов формыD X 1 (D = размерность вложений)
  4. y - закодированный вектор столбца с одной горячей формойх 1|W|
  5. y^ - вектор столбца прогнозирования softmax формых 1|W|
  6. y^i=P(i|c)=exp(uiTvc)w=1Wexp(uwTvc)
  7. Перекрестная потеря энтропии:J=i=1Wyilog(yi^)
  8. U=[u1,u2,...,uk,...uW] - матрица, состоящая изuk векторов столбцов.

Теперь мы можем написать

J=i=1Wyilog(exp(uiTvc)w=1Wexp(uwTvc))
Упрощая,
J=i=1Wyi[uiTvclog(w=1Wexp(uwTvc))]
Теперь мы знаем, чтоyявляется горячим кодированием, поэтому все его элементы равны нулю, кроме элемента с, скажем, индексом kth . Это означает, что в сумме выше есть только один ненулевой член, соответствующий yk а все остальные члены в сумме являются нулями. Таким образом, стоимость также может быть записана в виде:
J=yk[ukTvclog(w=1Wexp(uwTvc))]
Примечание: вышеyk 1.

Jvc

Jvc=[ukw=1Wexp(uwTvc)uwx=1Wexp(uxTvc)]

Jvc=w=1W(exp(uwTvc)x=1Wexp(uxTvc)uw)uk
Jvc=w=1W(y^wuw)uk

Теперь давайте посмотрим, как это можно записать в матричной нотации. Отметим, что:

  1. ukU.y
  2. w=1W(y^wuw)uwUy^wU.y^

U[y^y]

uiUT[y^y]


1
Просто хотел сказать, что это замечательное объяснение для деривации! Это действительно помогает математикам вроде меня. Спасибо!
Эрик Ким

1
+1 за удивительное объяснение!
Bragboy

BATB=A

@ParthTamane Пожалуйста, посмотрите на это - math.stackexchange.com/questions/3270789/…
Сачин Тяги
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.