Проблема
Есть некоторые проблемы с изучением векторов слов с использованием «стандартной» нейронной сети. Таким образом, векторы слов изучаются, в то время как сеть учится предсказывать следующее слово по заданному окну слов. (вход сети).
Предсказание следующего слова похоже на предсказание класса. То есть такая сеть является просто «стандартным» многочленным (мультиклассовым) классификатором. И в этой сети должно быть столько выходных нейронов, сколько существует классов. Когда классы являются реальными словами, число нейронов, ну, в общем , огромно .
«Стандартная» нейронная сеть обычно обучается с использованием функции кросс-энтропийной стоимости, которая требует, чтобы значения выходных нейронов представляли вероятности - это означает, что выходные «оценки», рассчитанные сетью для каждого класса, должны быть нормализованы, преобразованы в фактические вероятности для каждого класса. Этот шаг нормализации достигается с помощью функции softmax . Softmax очень дорогостоящий, когда применяется к огромному выходному слою.
(А) решение
Для решения этой проблемы, то есть дорогостоящего вычисления softmax, Word2Vec использует метод, называемый контрастно-шумовой оценкой. Этот метод был введен в [A] (переформулирован [B]), а затем использован в [C], [D], [E] для изучения встраивания слов в немаркированный текст на естественном языке.
Основная идея состоит в том, чтобы преобразовать проблему многочленной классификации (так как это проблема предсказания следующего слова ) в проблему двоичной классификации . То есть вместо использования softmax для оценки истинного распределения вероятности выходного слова вместо этого используется двоичная логистическая регрессия (двоичная классификация).
Для каждой обучающей выборки в расширенный (оптимизированный) классификатор подается истинная пара (центральное слово и другое слово, которое появляется в его контексте) и количество случайно поврежденных парК (состоящих из центрального слова и случайно выбранного слова из словарь). Научившись отличать истинные пары от испорченных, классификатор в конечном итоге выучит векторы слов.
Это важно: вместо того, чтобы предсказывать следующее слово («стандартная» методика обучения), оптимизированный классификатор просто предсказывает, является ли пара слов хорошей или плохой .
Word2Vec немного настраивает процесс и называет его отрицательной выборкой . В Word2Vec слова для отрицательных отсчетов (используемые для испорченных пар) взяты из специально разработанного дистрибутива, который позволяет реже составлять слова.
Ссылки
[A] (2005) - Сравнительная оценка: обучение лог-линейных моделей на немаркированных данных
[B] (2010) - Контрастная оценка шума: новый принцип оценки для ненормализованных статистических моделей
[C] (2008) - Единая архитектура для обработки естественного языка: глубокие нейронные сети с многозадачным обучением
[D] (2012) - быстрый и простой алгоритм обучения моделей нейронных вероятностных языков .
[E] (2013) - Эффективное обучение встраиванию слов с шумоконтрастной оценкой .
Ответ основан на моих старых заметках - надеюсь, они были правильными :)