Какова реальная причина ускорения, хотя в конвейере, упомянутом в статье fasttext, используются методы - отрицательная выборка и heirerchichal softmax; в более ранних статьях word2vec. Я не могу четко понять реальную разницу, из-за которой происходит это ускорение?
Настоящая причина ускорения в фасттексте
Ответы (2)
Есть ли такое ускорение?
Я не думаю, что есть какие-либо алгоритмические прорывы, которые значительно ускоряют эквивалентное word2vec обучение словесному вектору в FastText. (И если вы используете опцию character-ngrams в FastText, чтобы разрешить постобучающий синтез векторов для невидимых слов на основе подстрок, общих с обучающими словами, я ожидаю, что обучение будет медленнее, потому что каждое слово требует обучения его векторов подстрок.)
Любое ускорение в FastText, скорее всего, связано с тем, что код хорошо настроен и имеет больше опыта реализации.
Чтобы работать с наборами данных с очень большим количеством категорий, Fast text использует иерархический классификатор вместо плоской структуры, в которой различные категории организованы в виде дерева (например, двоичного дерева вместо списка). Это снижает временные сложности обучения и тестирования текстовых классификаторов с линейных до логарифмических по количеству классов. FastText также использует тот факт, что классы несбалансированы (некоторые классы появляются чаще, чем другие), используя алгоритм Хаффмана для построения дерева, используемого для представления категорий. Таким образом, глубина дерева очень частых категорий меньше, чем у редко встречающихся, что повышает вычислительную эффективность.
Ссылка на ссылку: https://research.fb.com/blog/2016/08/fasttext/