Шаг градиентного спуска для отрицательной выборки word2vec
-
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).