Настоящая причина ускорения в фасттексте

Какова реальная причина ускорения, хотя в конвейере, упомянутом в статье fasttext, используются методы - отрицательная выборка и heirerchichal softmax; в более ранних статьях word2vec. Я не могу четко понять реальную разницу, из-за которой происходит это ускорение?


person user2376672    schedule 23.05.2017    source источник


Ответы (2)


Есть ли такое ускорение?

Я не думаю, что есть какие-либо алгоритмические прорывы, которые значительно ускоряют эквивалентное word2vec обучение словесному вектору в FastText. (И если вы используете опцию character-ngrams в FastText, чтобы разрешить постобучающий синтез векторов для невидимых слов на основе подстрок, общих с обучающими словами, я ожидаю, что обучение будет медленнее, потому что каждое слово требует обучения его векторов подстрок.)

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

person gojomo    schedule 23.05.2017
comment
gojomo user2376672: случайно ли кто-нибудь из вас нашел ответ? у нас точно такой же вопрос: groups.google.com/forum/#!searchin/fasttext-library/ - person Anuj Gupta; 20.06.2017
comment
Я считаю, что мой ответ выше правильный: есть лишь незначительное ускорение, и это только из-за поэтапно оптимизированной реализации или библиотек (без алгоритмических прорывов). Если вы считаете, что приведенное выше объяснение является недостаточным, мой вопрос к вам тот же, что и к пользователю @user2376672 — так ли сильно ускорение? (Какую величину ускорения вы пытаетесь объяснить?) - person gojomo; 20.06.2017

Чтобы работать с наборами данных с очень большим количеством категорий, Fast text использует иерархический классификатор вместо плоской структуры, в которой различные категории организованы в виде дерева (например, двоичного дерева вместо списка). Это снижает временные сложности обучения и тестирования текстовых классификаторов с линейных до логарифмических по количеству классов. FastText также использует тот факт, что классы несбалансированы (некоторые классы появляются чаще, чем другие), используя алгоритм Хаффмана для построения дерева, используемого для представления категорий. Таким образом, глубина дерева очень частых категорий меньше, чем у редко встречающихся, что повышает вычислительную эффективность.

Ссылка на ссылку: https://research.fb.com/blog/2016/08/fasttext/

person Parth chokhra    schedule 22.04.2020