Алгоритм Word2Vec использует внутреннюю рандомизацию.Кроме того, когда (как обычно для эффективности) обучение распределяется по нескольким потокам, вводится некоторая дополнительная рандомизация порядка представления.Это означает, что два прогона, даже в одной и той же среде, могут иметь разные результаты.
Если обучение эффективно - достаточно данных, соответствующих параметров, достаточного количества проходов обучения - все такие модели должны быть одинакового качества при выполнении таких вещей, как сходство слов, даже если фактические слова будут находиться в разных местах.В относительном рейтинге слов будет некоторое дрожание, но результаты должны быть примерно одинаковыми.
То, что ваши результаты смутно связаны с 'universe'
, но не так впечатляюще, и что они сильно варьируются от одного пробега к другому, позволяют предположить, что могут быть проблемы с вашими данными, параметрами или количеством тренировок.(Мы ожидаем, что результаты будут немного отличаться, но не так сильно.)
Сколько у вас данных?(Word2Vec извлекает выгоду из множества различных примеров использования слов.)
Сохраняете ли вы редкие слова, делая min_count
ниже, чем по умолчанию 5?(Такие слова имеют тенденцию не получать хорошие векторы, а также мешают улучшению векторов близлежащих слов.)
Вы пытаетесь создать очень большие векторы?(Меньшие наборы данных и меньшие словари могут поддерживать только меньшие векторы. Слишком большие векторы допускают «переопределение», при котором идиосинкразии данных запоминаются, а не обобщаются изученные шаблоны. Или они позволяют модели продолжать улучшаться во многих различных неконкурентных направленияхТаким образом, результаты конечной задачи / сходства модели могут сильно отличаться от промежуточных, даже если каждая модель справляется примерно так же, как и другая, в своих внутренних задачах предсказания слов.)
Вы придерживались значения по умолчанию epochs=5
даже с небольшим набором данных?(Большой, разнообразный набор данных требует меньше тренировочных проходов - потому что все слова появляются много раз, во всем наборе данных, во всяком случае. Если вы пытаетесь сжать результаты из более тонких данных, больше epochs
может немного помочь - но не так сильнокак более разнообразные данные.)