Значение альфа в моделях встраивания слов gensim (Word2Vec и FastText)?

Я просто хочу знать влияние значения альфа в моделях gensim word2vec и fasttext встраивания слов? Я знаю, что альфа - это initial learning rate, а его значение по умолчанию - 0.075 из блога Radim.

Что, если я изменю его на немного большее значение, например 0,5 или 0,75? Каков будет его эффект? Можно ли менять то же самое? Однако я изменил это значение на 0,5 и поэкспериментирую с данными большого размера с D = 200, window = 15, min_count = 5, iter = 10, worker = 4, и результаты в значительной степени значимы для модели word2vec. Однако при использовании модели fasttext результаты разбросаны по битам, что означает менее взаимосвязанные и непредсказуемые оценки сходства с высокими и низкими значениями.

Почему такой неточный результат для одних и тех же данных с двумя популярными моделями с разной точностью? Играет ли значение alpha столь важную роль при построении модели?

Любое предложение приветствуется.


person M S    schedule 17.12.2018    source источник


Ответы (1)


По умолчанию начальный alpha - 0.025 в реализации Gensim Word2Vec.

В алгоритме стохастического градиентного спуска для настройки модели эффективное alpha влияет на то, насколько сильная коррекция модели будет сделана после оценки каждого обучающего примера, и будет линейно уменьшаться от своего начального значения (alpha) до крошечного конечного значения (min_alpha ) в течение всего обучения.

Большинству пользователей не нужно настраивать эти параметры или можно только немного их настраивать после того, как у них будет надежный и повторяемый способ оценки того, улучшает ли изменение их модель для их конечных задач. (Я видел начальные значения 0.05 или, реже 0.1, но никогда не превышающие указанные вами 0.5.)

person gojomo    schedule 17.12.2018
comment
Спасибо, годжомо. Я ожидал этого ответа. Хорошо, я также выберу альфа-значение 0,1 или в пределах него. 1, обязательно ли указывать параметр model.train (). Что произойдет, если я не воспользуюсь им после построения модели? Если я использую параметр model.train, какие могут быть желаемые значения для параметра model.train () после построения модели с определенными значениями размера, окна, iter и min_count. - person M S; 17.12.2018
comment
Я вычислил сходство между двумя словами без использования значений model.train (). Обязательно ли указывать значения model.train ()? - person M S; 17.12.2018
comment
Я бы не стал менять alpha значение по умолчанию, пока все остальное не заработает, и у вас будет хороший способ оценить свои модели, чтобы увидеть, помогает ли изменение alpha. - person gojomo; 17.12.2018
comment
Все модели должны быть обучены, чтобы быть полезными, но если вы указали корпус, итерируемый в конструкторе модели, обучение будет выполнено автоматически. Если вы не предоставили корпус, вам придется самостоятельно выполнить инициализацию словаря (с помощью метода build_vocab()), а затем обучение (с помощью метода train()). В документации для train() четко указано, какие параметры должны быть предоставлены: radimrehurek.com/gensim/models/ - person gojomo; 17.12.2018
comment
Ага! Изменение значения альфа на 0,5 дает мне некоторые значимые желаемые ощутимые результаты. - person M S; 17.12.2018
comment
Что такое итерация корпуса? Означает ли это токенизированные слова, указанные как предложения во вложенном списке, или что-то еще? - person M S; 17.12.2018
comment
Я удивлен, что начальный alpha из 0.5 работает, что очень далеко от обычных значений. Неужели это лучше, чем просто оставить 0.025 значение по умолчанию? Сколько данных (общее количество примеров и средний размер слов для каждого примера) вы используете? Какой метод оценки их качества вы используете? - person gojomo; 18.12.2018
comment
Итерируемый объект корпуса - это параметр sentences - необязательный в конструкторе класса. Для Word2Vec это должна быть повторяемая последовательность списков токенов. Если предоставлено конструктору класса, все поиск словаря и обучение будут происходить автоматически - тогда вам не нужно будет вызывать train(). (Если у вас есть другие вопросы, вы должны расширить свой вопрос четким отрывком из кода, который вы используете.) - person gojomo; 18.12.2018
comment
Позвольте нам продолжить это обсуждение в чате. - person M S; 18.12.2018