Почему иерархический софтмакс лучше для нечастых слов, а отрицательная выборка лучше для частых слов?

Ответы:

10

Я не эксперт в word2vec, но после прочтения Rong, X. (2014). Изучение параметров word2vec Объяснено и на основе моего собственного опыта работы с NN я бы упростил рассуждения так:

  • О(Lограмм(N))О(N)
  • Отрицательная выборка - это способ выборки обучающих данных, аналогичный стохастическому градиентному спуску, но главное, чтобы вы искали отрицательные обучающие примеры. Интуитивно, он обучается на основе мест выборки, в которых он мог ожидать слово, но не нашел его, что быстрее, чем тренировка всего корпуса на каждой итерации и имеет смысл для обычных слов.

Теоретически эти два метода не кажутся исключительными, но в любом случае, кажется, именно поэтому они были бы лучше для частых и редких слов.

Андрей Чарнески
источник
1

Насколько я понимаю, это из-за кодирования Хаффмана, используемого при построении иерархии категорий.

Иерархический софтмакс использует дерево сигмоидальных узлов вместо одного большого софтмакса. Кодирование Хаффмана гарантирует, что распределение точек данных, принадлежащих каждой стороне любого сигмоидального узла, является сбалансированным. Поэтому это помогает устранить предпочтение частым категориям по сравнению с использованием одного большого софтмакса и отрицательной выборки.

dontloo
источник
0

Иерархический softmax строит дерево по всему словарному запасу, а узлы листьев, представляющие редкие слова, неизбежно наследуют векторные представления своих предков в дереве, на которые могут влиять другие частые слова в корпусе. Это пойдет на пользу дополнительному обучению для нового корпуса.

Отрицательная выборка разработана на основе контрастной оценки шума и случайным образом отбирает слова, не входящие в контекст, чтобы отличить наблюдаемые данные от искусственно созданного случайного шума.

Амей Ядав
источник