word2vec: отрицательная выборка (в терминологии непрофессионала)?

Ответы:

164

Идея 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значительно ускоряет тренировку.

мбачкаров
источник
15
спасибо или хорошее объяснение. Думаю, это всего лишь выборка. а знаете, почему его назвали «отрицательным»?
HappyCoding
46
Терминология заимствована из классификации, общего применения нейронных сетей. Вот вам куча положительных и отрицательных примеров. Для word2vecлюбого заданного слова у вас есть список слов, которые должны быть похожи на него (положительный класс), но отрицательный класс (слова, не похожие на целевое слово) составляется путем выборки.
mbatchkarov
38

Вычисление 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) и рассматривать их как отрицательные образцы. Этот метод, который мы выбрали случайным образом из корпуса, называется отрицательной выборкой.

введите описание изображения здесь

Ссылка :

Амир
источник
1
Привет, @amir, мой первоначальный вопрос: у меня проблемы с пониманием концепции отрицательной выборки ...
Энди К.
1
Очень хорошо объяснен и немного более технический, чем принятый ответ. Итак, идеальная ситуация SO: прочитайте принятый ответ, чтобы понять идею, а затем этот ответ, чтобы понять его подробно.
Урсин Бруннер
21

Я написал обучающую статью об отрицательной выборке здесь .

Почему мы используем отрицательную выборку? -> снизить вычислительные затраты

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

Эрик Ким
источник
1
T - количество жетонов (вхождение слов в текст). V для словарного запаса (уникальные слова), я бы сказал.
Адам
Если мы установим Kкак V -1, то отрицательная выборка будет такой же, как ванильная модель скип-грамм. Я правильно понимаю?
Шашват,
@Shashwat, количество векторов слов, обновленных для каждой обучающей выборки, одинаково, но целевая функция обучения по-прежнему будет принципиально другой
Эрик Ким,