В своей работе я использовал метод, аналогичный отрицательной выборке, но обнаружил, что ничего не знаю о выборке кандидатов. Итак, после прочтения некоторой соответствующей информации, вот краткое изложение некоторого соответствующего содержания.
Основной контент исходит от tensorflowcandidate_samplingЗаписка со студенткой Университета Карнеги-МеллонаNotes on Noise Contrastive Estimation and Negative Sampling, а некоторые ссылаются на документацию nce_loss и sampled_softmax_loss tensorflow.
What is Candidate Sampling
Прежде всего, что такое выборка кандидатов? Предположим, что у нас есть проблема с набором выборок, где каждая выборка состоит из,вявляется входной функцией,представляет собой небольшой набор целей, удовлетворяющих. Наша цель - научиться, так что учитывая, мы можем предсказать классположительная вероятность.
Если мы используем обычный метод softmax, то при расчете каждой выборки нам нужно пройти весь набор, для всех возможныхРассчитать один раз, это очень дорогая операция. Особенно в предсказании корреляции НЛП эта операция стоит дороже. Поэтому предлагается метод выборки кандидатов: при расчете каждой выборки мы случайным образом выбираем небольшой набор кандидатов из всего набора меток или набора отрицательных меток.,будетивместе образуют текущую коллекцию кандидатов, И вРассчитать на.
Характеристики распространенных методов выборки кандидатов можно увидеть в следующей таблице:
В этой таблице— произвольная функция, не зависящая от класса-кандидата. Поскольку Softmax предполагает нормализацию, добавление такой функции не влияет на вычисляемую вероятность.даОжидаемая вероятность или ожидаемое количество класса y в .
NCE и нативные образцы могут быть адаптированы кявляется случаем мультимножества, и в этом случаеравныйОжидаемое количество классов y в . NCE, отрицательная выборка и выборочная логистика могут быть адаптированы кявляется случаем мультимножества, и в этом случаеравныйОжидаемое количество классов y в .
Noise Contrastive Estimation (NCE)
Рассмотрим простой и наиболее часто используемый случай,. Взяв в качестве примера классическое предсказание слов, в настоящее время. Мы даем эмпирическое распределениеи, то каждая положительная выборка в обучающей выборке эквивалентнаобразец, и в этомна основеповышенная дискретизацияи откалибровать этикетку. При этом начинаем с раздачивыборка извыборки шума, затем
Тогда, используя формулу условной вероятности, мы можем написать:
В алгоритме нейронной сети мы используемзаменить, и пытаюсь тренироваться с градиентным спуском.
Negative Sampling
Отрицательная выборка является аппроксимацией NCE.Стоит отметить, что отрицательная выборка имеет сильную зависимость от распределения Q, но у NCE нет этой проблемы.
реализация тензорного потока
Документация о потере NCE в тензорном потоке может относиться кtf.nn.nce_loss. Обратите внимание, что при использовании этого метода метки должны быть отсортированы в порядке убывания частоты, так как метод выборки по умолчанию — tf.nn.log_uniform_candidate_sampler. Конечно, мы также можем реализовать собственный метод выборки.
Отрицательная выборка реализуется с помощью sampled_softmax_loss Обратите внимание, что sampled_softmax_loss может обрабатывать только случай одной положительной метки.