Я читаю статью ниже, и у меня возникли проблемы с пониманием концепции отрицательной выборки.
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
значительно ускоряет тренировку.
word2vec
любого заданного слова у вас есть список слов, которые должны быть похожи на него (положительный класс), но отрицательный класс (слова, не похожие на целевое слово) составляется путем выборки.
Вычисление Softmax (функция для определения того, какие слова похожи на текущее целевое слово) обходится дорого, поскольку требует суммирования по всем словам в V (знаменатель), которое обычно очень велико.
Что можно сделать?
Были предложены различные стратегии для приближения softmax. Эти подходы могут быть сгруппированы в SoftMax основе и отбор проб на основе подходов. Подходы на основе Softmax - это методы, которые сохраняют уровень softmax нетронутым, но изменяют его архитектуру для повышения его эффективности (например, иерархический softmax). С другой стороны, подходы, основанные на выборке, полностью устраняют слой softmax и вместо этого оптимизируют некоторую другую функцию потерь, которая приближает softmax (они делают это, аппроксимируя нормализацию в знаменателе softmax с некоторыми другими потерями, которые дешево вычислить, например отрицательная выборка).
Функция потерь в Word2vec выглядит примерно так:
Какой логарифм можно разложить на:
С помощью некоторых математических и градиентных формул (подробнее см. 6 ) он преобразован в:
Как видите, он преобразован в задачу двоичной классификации (y = 1 положительный класс, y = 0 отрицательный класс). Поскольку нам нужны метки для выполнения нашей задачи двоичной классификации, мы обозначаем все контекстные слова c как истинные метки (y = 1, положительная выборка), а k, случайно выбранные из корпусов, как ложные метки (y = 0, отрицательная выборка).
Взгляните на следующий абзац. Предположим, что наше целевое слово - « Word2vec ». С окном 3, наши контекстные слова: The
, widely
, popular
, algorithm
, was
, developed
. Эти контекстные слова рассматриваются как положительные ярлыки. Нам также нужны негативные ярлыки. Мы случайным образом выбрать несколько слов из корпуса ( produce
, software
, Collobert
, margin-based
, probabilistic
) и рассматривать их как отрицательные образцы. Этот метод, который мы выбрали случайным образом из корпуса, называется отрицательной выборкой.
Ссылка :
Я написал обучающую статью об отрицательной выборке здесь .
Почему мы используем отрицательную выборку? -> снизить вычислительные затраты
Функция стоимости для ванильной выборки по Skip-Gram (SG) и Skip-Gram отрицательной выборки (SGNS) выглядит следующим образом:
Обратите внимание, что T
это количество всех словарей. Это эквивалентно V
. Другими словами, T
= V
.
Распределение вероятностей p(w_t+j|w_t)
в SG вычисляется для всех V
словарей в корпусе с помощью:
V
легко может превышать десятки тысяч при обучении модели Skip-Gram. Вероятность необходимо вычислять V
раз, что делает это затратным с точки зрения вычислений. Кроме того, коэффициент нормализации в знаменателе требует дополнительных V
вычислений.
С другой стороны, распределение вероятностей в SGNS вычисляется с помощью:
c_pos
- вектор слов для положительного слова и W_neg
векторы слов для всех K
отрицательных выборок в выходной матрице весов. При использовании SGNS вероятность необходимо вычислять только K + 1
раз, K
обычно от 5 до 20. Кроме того, не требуется дополнительных итераций для вычисления коэффициента нормализации в знаменателе.
В SGNS обновляется только часть весов для каждой обучающей выборки, тогда как SG обновляет все миллионы весов для каждой обучающей выборки.
Как SGNS этого добивается? -> путем преобразования задачи множественной классификации в задачу двоичной классификации.
В SGNS векторы слов больше не изучаются путем предсказания контекстных слов центрального слова. Он учится отличать фактические контекстные слова (положительные) от случайно выбранных (отрицательных) слов из распределения шума.
В реальной жизни вы обычно не наблюдаете regression
с помощью случайных слов вроде Gangnam-Style
, или pimples
. Идея состоит в том, что если модель может различать вероятные (положительные) пары и маловероятные (отрицательные) пары, векторы хороших слов будут изучены.
На приведенном выше рисунке текущая положительная пара слова-контекст - ( drilling
, engineer
). K=5
отрицательные образцы случайным образом обращается от распределения шума : minimized
, primary
, concerns
, led
, page
. По мере того, как модель проходит через обучающие образцы, веса оптимизируются так, чтобы выводилась вероятность для положительной пары и выводилась p(D=1|w,c_pos)≈1
вероятность для отрицательной пары p(D=1|w,c_neg)≈0
.
K
как V -1
, то отрицательная выборка будет такой же, как ванильная модель скип-грамм. Я правильно понимаю?