Градієнти для skipgram word2vec


9

Я переживаю проблеми письмових завдань класу глибокого навчання в Stanford NLP http://cs224d.stanford.edu/assignment1/assignment1_soln

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

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

у^о=p(о|c)=ехp(уоТvc)ш=1Wехp(ушТvc)

Де w позначає w-е слово іуш(w = 1,.,., w) - це слова «вихідні» слова для всіх слів у лексиці. Припустимо, вартість перехресної ентропії застосовується до цього прогнозу та слова o - очікуване слово.

Де U=[у1,у2,···,уW] є матрицею всіх вихідних векторів, і нехай у^бути стовпчастим вектором прогнозування слів програмного забезпечення та y - теплим ярликом, який також є стовпчиком.

Де перехресна ентропія СЕ(у,у^)=-iуiжурнал(у^i)

Тож відповідь на градієнт для центрального вектора є Jvc=UТ(у^-у).

Чи міг би хтось показати мені кроки, щоб дійти до цього? Я використовую це питання як посилання Похідна від поперечної втрати ентропії у word2vec, але я конкретно хочу знатиUТ(у^-у). представництво.

Відповіді:


15

Спочатку давайте викладемо, що у нас є, і наші припущення щодо форм різних векторів. Дозволяє,

  1. |W| бути кількістю слів у словнику
  2. у і у^ бути стовпчиковими векторами форми |W| х 1
  3. уi і vj бути стовпчиковими векторами форми D X 1 (D = розмір вкладень)
  4. у бути одним гарячим кодованим стовпчиком векторної форми |W| х 1
  5. у^ бути стовпчиком векторної форми прогнозування softmax |W| х 1
  6. у^i=П(i|c)=ехp(уiТvc)ш=1Wехp(ушТvc)
  7. Перехресні втрати ентропії: J=-i=1Wуiлог(уi^)
  8. U=[у1,у2,...,ук,...уW] бути матрицею, що складається з ук стовпчикові вектори.

Тепер ми можемо писати

J=-i=1Wуiлог(ехp(уiТvc)ш=1Wехp(ушТvc))
Спрощення,
J=-i=1Wуi[уiТvc-лог(ш=1Wехp(ушТvc))]
Тепер ми це знаємо у однокольорово закодований, тому всі його елементи дорівнюють нулю, крім того, який є, скажімо, ктгодпокажчик. Це означає, що в підсумовуванні вище, що відповідає, існує лише один ненульовий доданокука всі інші терміни в підсумовуванні - нулі. Тож вартість також може бути записана так:
J=-ук[укТvc-лог(ш=1Wехp(ушТvc))]
Примітка: вище ук дорівнює 1.

Рішення для Jvc :

Jvc=-[ук-ш=1Wехp(ушТvc)ушх=1Wехp(ухТvc)]

Які можна переставити як:

Jvc=ш=1W(ехp(ушТvc)х=1Wехp(ухТvc)уш)-ук
Використовуючи визначення (6), ми можемо переписати вищевказане рівняння як:
Jvc=ш=1W(у^шуш)-ук

Тепер давайте подивимось, як це можна записати в нотації матриці. Зауважте, що:

  1. ук можна записати у вигляді множення матричного вектора: U.у
  2. І ш=1W(у^шуш) являє собою лінійне перетворення векторів уш в U масштабується у^швідповідно. Це знову можна записати якU.у^

Отже, всю справу можна коротко записати так:

U[у^-у]

Наостанок зазначимо, що ми припускали уis бути векторами стовпців. Якби ми починали з векторів рядків, ми отримали бUТ[у^-у], те саме, що ви шукали.


1
Просто хотів сказати, що це чудове пояснення походження! Це дуже допомагає математикам-присоскам, як я. Дякую!
Ерік Кім

1
+1 для дивовижного пояснення!
брагбой

Я не розумію, чому таке виведення:
БАТБ=А
Parth Tamane

@ParthTamane Погляньте на це - math.stackexchange.com/questions/3270789/…
Sachin
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.