Я читаю нижеприведенную статью, и у меня есть проблемы, понимая концепцию отрицательной выборки.
http://arxiv.org/pdf/1402.3722v1.pdf
Может ли кто-нибудь помочь, пожалуйста?
Я читаю нижеприведенную статью, и у меня есть проблемы, понимая концепцию отрицательной выборки.
http://arxiv.org/pdf/1402.3722v1.pdf
Может ли кто-нибудь помочь, пожалуйста?
Идея word2vec
заключается в том, чтобы максимизировать сходство (точечный продукт) между векторами слов, которые близки друг к другу (в контексте друг друга) в тексте, и минимизировать сходство слов, которые этого не делают. В уравнении (3) статьи, на которую вы ссылаетесь, игнорируйте возведение в степень на мгновение. У вас
v_c * v_w
-------------------
sum(v_c1 * v_w)
Числитель - это в основном сходство между словами c
(контекст) и w
(целевое) слово. Знаменатель вычисляет сходство всех других контекстов c1
и целевого слова w
. Максимизация этого соотношения гарантирует, что слова, которые сближаются в тексте, имеют более похожие векторы, чем слова, которые этого не делают. Однако вычисление этого может быть очень медленным, потому что существует множество контекстов c1
. Отрицательная выборка - один из способов решения этой проблемы - просто выберите несколько контекстов c1
наугад. Конечным результатом является то, что если cat
появляется в контексте food
, тогда вектор food
больше похож на вектор cat
(как меры по их точечному произведению), чем векторы несколько других случайно выбранных слов (например, democracy
, greed
, Freddy
) вместо всех других слов в языке. Это значительно ускоряет word2vec
, чтобы тренироваться.
Вычисление Softmax (функция активации для определения того, какие слова похожи на текущее целевое слово) является дорогостоящей, поскольку требует суммирования по всем словам в V (знаменателе), что обычно очень большой.
Что можно сделать?
Были предложены различные стратегии для приближенного softmax. Эти подходы могут быть сгруппированы в на основе max и на основе выборки. Подходы на основе Softmax - это методы, которые сохраняют уровень softmax неповрежденными, но изменяют его архитектуру для повышения ее эффективности (например, иерархический softmax). Подходы на основе выборки, с другой стороны, полностью устраняют уровень softmax и вместо этого оптимизируют некоторую другую функцию потерь, которая аппроксимирует softmax (они делают это путем аппроксимации нормализации знаменателя softmax с помощью некоторого другого потеря, которая дешева для вычисления, как отрицательная выборка).
Функция потерь в Word2vec выглядит примерно так:
Какой логарифм может разложить на:
С помощью некоторой математической и градиентной формулы (подробнее см. 2) она преобразуется в:
Как вы видите, он преобразуется в двоичную задачу классификации, так как нам нужны метки для выполнения нашей задачи бинарной классификации, мы обозначаем все правильные слова w, учитывая их контекст c как истинный (y = 1, положительный образец) (все слова в окне целевое слово), а k случайным образом выбирается из corpura как false (y = 0, отрицательный образец).
Ссылка: