Настройка параметров модели Gensim Word2ve c - PullRequest
1 голос
/ 21 января 2020

Я работаю над моделью Word2Ve c. Есть ли способ получить идеальное значение для одного из его параметров, т.е. iter. Подобно тому, как мы использовали метод K-Means (график кривой Эльбо), чтобы получить значение K. Или есть какой-либо другой способ настройки параметров в этой модели.

1 Ответ

1 голос
/ 21 января 2020

Нет идеального набора параметров для сеанса word2ve c - это зависит от вашего предполагаемого использования слов-векторов.

Например, некоторые исследования показали, что использование большего window приводит к позиционированию конечных векторов таким образом, который более чувствителен к тематическому / доменному сходству, в то время как меньшее значение window сдвигает словосочетания чтобы быть более синтаксическими / функциональными заменами друг друга. Таким образом, в зависимости от ваших конкретных целей проекта, вам может потребоваться другое значение здесь.

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

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

Случай iter / epochs является особым, в том смысле, что по логике c базового метода оптимизации стохастического c -градиентного спуска вы в идеале захотите использовать как можно больше тренировочные эпохи, необходимые для того, чтобы в каждой эпохе «потеря» перестала улучшаться. В этот момент модель, по-видимому, настолько хороша, насколько это возможно - «сходится» - учитывая присущее ей число свободных параметров и структуру. (Любые дальнейшие внутренние корректировки, которые улучшают его для одних примеров, ухудшают его для других и наоборот.)

Таким образом, вы могли бы наблюдать эту «потерю» и выбрать несколько обучающих итераций, которые просто достаточно, чтобы показать «потерю» застоявшейся (дрожание вверх-вниз в узком окне) в течение нескольких проходов. Тем не менее, отчеты о потерях в gensim еще не совсем оптимальны - см. Ошибку проекта # 2617 - и многие реализации word2ve c, включая gensim и возвращаясь к исходному коду word2vec.c, выпущенному исследователями Google, просто позвольте вам установить фиксированное количество обучающих итераций, а не реализация каких-либо чувствительных к потерям правил остановки.

...