Шаг градиентного спуска для отрицательной выборки word2vec

datascience.stackexchange https://datascience.stackexchange.com/questions/5615

  •  16-10-2019
  •  | 
  •  

Вопрос

Для word2vec с отрицательной выборкой функция стоимости для одного слова выглядит следующим образом: word2vec:$$ e = - log ( sigma (v_ {w_ {o}}^{'}. U_ {w_ {i}}})) - sum_ {k = 1}^k log ( sigma (-v_ {w_ {k}}^{'}. U_ {w_ {i}})) $$

$v_{w_{O}}^{'}$ = скрытый->выходной вектор слова выходного слова

$u_{w_{I}}$ = вектор ввода->скрытого слова выходного слова

$v_{w_{k}}^{'}$ = скрытый->выходной вектор слова отрицательного выбранного слова

$\sigma$ — сигмоидальная функция

И взятие производной по $v_{w_{O}}^{'}.u_{w_{j}}$ равно:

$ frac { partial e} { partial v_ {w_ {j}}^{'}. u_ {w_ {i}}} = sigma (v_ {w_ {j}}^{'}. u_ {w_ {I}}) * ( sigma (v_ {w_ {j}}^{'}. U_ {w_ {i}}) - 1) $ $ if w_j = w_o $

$ frac { partial e} { partial v_ {w_ {j}}^{'}. u_ {w_ {i}}} = sigma (v_ {w_ {j}}^{'}. u_ {w_ {I}}) * sigma (-v_ {w_ {j}}^{'}. U_ {w_ {i}}) $ $ if w_j = w_k for k = 1 ... k $

Тогда мы можем использовать цепное правило, чтобы получить

$ \frac{\partial E}{\partial v_{w_{j}}^{'}} = \frac{\partial E}{\partial v_{w_{j}}^{'}.u_{w_{ I}}} * \frac{\partial v_{w_{j}}^{'}.u_{w_{I}}}{\partial v_{w_{j}}^{'}} $

Верны ли мои рассуждения и производная?Я все еще новичок в ML, поэтому любая помощь будет полезна!

Это было полезно?

Решение

Мне кажется хорошо.Эта производная также представлена ​​в статье (уравнения 56-58).

Статья, на которую вы ссылаетесь, представляет собой наиболее продвинутую попытку - по крайней мере, насколько мне известно - объяснить, как работает word2vec, но есть также много других ресурсов по этой теме (просто найдите word2vec на arxiv.org).Если вас интересует word2vec, вам может быть интересен и GloVe (см.: Связывание GloVe с word2vec).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с datascience.stackexchange
scroll top