Разные результаты Gensim Word2Vec Model в двух редакторах для одного и того же исходного кода в одной среде и на одной платформе? - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь применить модель word2vec, реализованную в библиотеке gensim 3.6 в python 3.7, Windows 10 machine.У меня есть список предложений (каждое предложение представляет собой список слов) в качестве входных данных для модели после выполнения предварительной обработки.

Я вычислил результаты (получив 10 наиболее похожих слов данного входного слова, используя model.wv.most_similar) в Anaconda's Spyder с последующим редактором Sublime Text.

Но я получаю разные результаты для одного и того же исходного кода, выполненного в двух редакторах.

Какой результат должен Мне нужно выбрать и Почему ?

Я указываю скриншот результатов, полученных при запуске одного и того же кода как в шпионском, так и в возвышенном тексте.Входное слово, для которого мне нужно получить 10 наиболее похожих слов: #universe#

Я действительно не понимаю, как выбрать результаты, на каком основании?Кроме того, я недавно начал изучать Word2Vec.

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

Результаты, полученные в Spyder:

enter image description here

Результаты, полученные с помощью Sublime Text: enter image description here

1 Ответ

0 голосов
/ 04 декабря 2018

Алгоритм Word2Vec использует внутреннюю рандомизацию.Кроме того, когда (как обычно для эффективности) обучение распределяется по нескольким потокам, вводится некоторая дополнительная рандомизация порядка представления.Это означает, что два прогона, даже в одной и той же среде, могут иметь разные результаты.

Если обучение эффективно - достаточно данных, соответствующих параметров, достаточного количества проходов обучения - все такие модели должны быть одинакового качества при выполнении таких вещей, как сходство слов, даже если фактические слова будут находиться в разных местах.В относительном рейтинге слов будет некоторое дрожание, но результаты должны быть примерно одинаковыми.

То, что ваши результаты смутно связаны с 'universe', но не так впечатляюще, и что они сильно варьируются от одного пробега к другому, позволяют предположить, что могут быть проблемы с вашими данными, параметрами или количеством тренировок.(Мы ожидаем, что результаты будут немного отличаться, но не так сильно.)

Сколько у вас данных?(Word2Vec извлекает выгоду из множества различных примеров использования слов.)

Сохраняете ли вы редкие слова, делая min_count ниже, чем по умолчанию 5?(Такие слова имеют тенденцию не получать хорошие векторы, а также мешают улучшению векторов близлежащих слов.)

Вы пытаетесь создать очень большие векторы?(Меньшие наборы данных и меньшие словари могут поддерживать только меньшие векторы. Слишком большие векторы допускают «переопределение», при котором идиосинкразии данных запоминаются, а не обобщаются изученные шаблоны. Или они позволяют модели продолжать улучшаться во многих различных неконкурентных направленияхТаким образом, результаты конечной задачи / сходства модели могут сильно отличаться от промежуточных, даже если каждая модель справляется примерно так же, как и другая, в своих внутренних задачах предсказания слов.)

Вы придерживались значения по умолчанию epochs=5 даже с небольшим набором данных?(Большой, разнообразный набор данных требует меньше тренировочных проходов - потому что все слова появляются много раз, во всем наборе данных, во всяком случае. Если вы пытаетесь сжать результаты из более тонких данных, больше epochs может немного помочь - но не так сильнокак более разнообразные данные.)

...