Интересно, почему иерархический софтмакс лучше подходит для нечастых слов, а отрицательная выборка лучше для частых слов в моделях CBOW и skip-грамм word2vec. Я прочитал претензию на https://code.google.com/p/word2vec/ .
Интересно, почему иерархический софтмакс лучше подходит для нечастых слов, а отрицательная выборка лучше для частых слов в моделях CBOW и skip-грамм word2vec. Я прочитал претензию на https://code.google.com/p/word2vec/ .
Ответы:
Я не эксперт в word2vec, но после прочтения Rong, X. (2014). Изучение параметров word2vec Объяснено и на основе моего собственного опыта работы с NN я бы упростил рассуждения так:
Теоретически эти два метода не кажутся исключительными, но в любом случае, кажется, именно поэтому они были бы лучше для частых и редких слов.
Насколько я понимаю, это из-за кодирования Хаффмана, используемого при построении иерархии категорий.
Иерархический софтмакс использует дерево сигмоидальных узлов вместо одного большого софтмакса. Кодирование Хаффмана гарантирует, что распределение точек данных, принадлежащих каждой стороне любого сигмоидального узла, является сбалансированным. Поэтому это помогает устранить предпочтение частым категориям по сравнению с использованием одного большого софтмакса и отрицательной выборки.
Иерархический softmax строит дерево по всему словарному запасу, а узлы листьев, представляющие редкие слова, неизбежно наследуют векторные представления своих предков в дереве, на которые могут влиять другие частые слова в корпусе. Это пойдет на пользу дополнительному обучению для нового корпуса.
Отрицательная выборка разработана на основе контрастной оценки шума и случайным образом отбирает слова, не входящие в контекст, чтобы отличить наблюдаемые данные от искусственно созданного случайного шума.