Я читал о NCE (форма выборки кандидатов) из этих двух источников:
Может ли кто-нибудь помочь мне со следующим:
- Простое объяснение того, как работает NCE (я обнаружил, что вышеизложенное трудно разобрать и понять, поэтому что-то интуитивное, что приводит к представленной здесь математике, было бы здорово)
- После пункта 1 выше, естественно интуитивное описание того, как это отличается от отрицательной выборки. Я вижу, что есть небольшое изменение в формуле, но не мог понять математику. У меня есть интуитивное понимание негативной выборки в контексте
word2vec
- мы случайным образом выбираем некоторые выборки из словаряV
и обновляем только те, потому что они|V|
большие, и это ускоряет процесс. Пожалуйста, исправьте, если ошиблись. - Когда использовать какой и как это решено? Было бы здорово, если бы вы могли включить примеры (возможно, простые для понимания приложения)
- NCE лучше, чем Negative Sampling? Лучше каким образом?
Спасибо.
Ответы:
Взято из этого поста: https://stats.stackexchange.com/a/245452/154812
Проблема
Есть некоторые проблемы с изучением векторов слов с использованием «стандартной» нейронной сети. Таким образом, векторы слов изучаются, в то время как сеть учится предсказывать следующее слово по заданному окну слов (вход сети).
Предсказание следующего слова похоже на предсказание класса. То есть такая сеть является просто «стандартным» многочленным (мультиклассовым) классификатором. И в этой сети должно быть столько выходных нейронов, сколько существует классов. Когда классы являются реальными словами, число нейронов, ну, в общем, огромно.
«Стандартная» нейронная сеть обычно обучается с использованием функции кросс-энтропийной стоимости, которая требует, чтобы значения выходных нейронов представляли вероятности, что означает, что выходные «оценки», рассчитанные сетью для каждого класса, должны быть нормализованы, преобразованы в фактические вероятности для каждого класса. Этот шаг нормализации достигается с помощью функции softmax. Softmax очень дорогостоящий, когда применяется к огромному выходному слою.
(А) решение
Для решения этой проблемы, то есть дорогостоящего вычисления softmax, Word2Vec использует метод, называемый контрастно-шумовой оценкой. Этот метод был введен в [A] (переформулирован [B]), а затем использован в [C], [D], [E] для изучения встраивания слов в немаркированный текст на естественном языке.
Основная идея состоит в том, чтобы преобразовать проблему многочленной классификации (так как это проблема предсказания следующего слова) в проблему двоичной классификации. То есть вместо использования softmax для оценки истинного распределения вероятности выходного слова вместо этого используется двоичная логистическая регрессия (двоичная классификация).
Для каждой обучающей выборки в расширенный (оптимизированный) классификатор подается истинная пара (центральное слово и другое слово, которое появляется в его контексте) и количество kk случайно поврежденных пар (состоящих из центрального слова и случайно выбранного слова из словарь). Научившись отличать истинные пары от испорченных, классификатор в конечном итоге выучит векторы слов.
Это важно: вместо того, чтобы предсказывать следующее слово («стандартная» методика обучения), оптимизированный классификатор просто предсказывает, является ли пара слов хорошей или плохой.
Word2Vec немного настраивает процесс и называет его отрицательной выборкой. В Word2Vec слова для отрицательных отсчетов (используемые для испорченных пар) взяты из специально разработанного дистрибутива, который позволяет реже составлять слова.
Ссылки
[A] (2005) - Сравнительная оценка: обучение лог-линейных моделей на немаркированных данных
[B] (2010) - Контрастная оценка шума: новый принцип оценки для ненормализованных статистических моделей
[C] (2008) - Единая архитектура для обработки естественного языка: глубокие нейронные сети с многозадачным обучением
[D] (2012) - быстрый и простой алгоритм обучения моделей нейронных вероятностных языков .
[E] (2013) - Эффективное обучение встраиванию слов с шумоконтрастной оценкой .
источник
Честно говоря, нет никакого интуитивного способа понять, почему потеря NCE будет работать без глубокого понимания ее математики. Чтобы понять математику, вы должны прочитать оригинал.
Оригинальные статьи NCE много пропустили выводы доказательства, так что действительно трудно понять NCE. Чтобы легче понять математику о NCE, у меня есть пост в блоге, посвященный этой математике из статей NCE:
https://leimao.github.io/article/Noise-Contrastive-Esvaluation/ .
Второкурсник колледжа или выше должен уметь это понимать.
источник
По сути, это выбор образца из истинного дистрибутива, который состоит из истинного класса и некоторых других меток класса с шумом. Затем взяв софтмакс над ним.
Это основано на выборке слов из истинного распределения и распределения шума.
Здесь основная идея заключается в обучении классификатора логистической регрессии, который может разделять выборки, полученные из истинного распределения, и выборки, полученные из распределения шума. Помните Когда мы говорим о выборках, полученных из истинного распределения, мы говорим только об одной выборке, которая является истинным классом, полученным из модельного распределения.
Здесь я объяснил о потере NCE и как она отличается от потери NCE.
Оценка контрастного шума: решение для дорогого Softmax.
источник
Проще говоря, NCE - это просто функция потери классификации с несколькими метками, имеющая только 1 положительную метку и k отрицательных.
источник