вероятностный вывод word2vec

Я новичок в мире word2vec и только начинаю использовать реализацию gensim для word2vec.

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

[['first', 'sentence'], ['second', 'sentence']]

Я получаю такие векторы:

'first', -0.07386458, -0.17405555
'second', 0.0761444 , -0.21217766
'sentence', 0.0545655 , -0.07535963

Однако, когда я набираю другой игрушечный набор документов:

[['a', 'c'], ['b', 'c']]

Я получаю следующий результат:

'a', 0.02936198, -0.05837455
'b', -0.05362414, -0.06813956
'c', 0.11918657, -0.10411404

Опять же, я новичок в word2vec, но, насколько я понимаю, мои два набора документов структурно идентичны, поэтому результаты соответствующего слова должны быть одинаковыми. Но почему я получаю разные результаты? Алгоритм всегда дает вероятностный вывод или наборы документов слишком малы?

Функция, которую я использовал, выглядит следующим образом:

model = word2vec.Word2Vec(sentences, size=2, min_count=1, window=2)

person Yang Zhang    schedule 23.08.2015    source источник


Ответы (1)


Основная причина, по которой вы получаете разные векторы, - это случайная инициализация векторов в word2vec (есть и другие причины, такие как отрицательная выборка, многопоточность, которые могут привести к разнице в значениях векторов).

Философия word2vec заключается в том, что если количество документов (данные для обучения) >> количество уникальных слов (размер словаря), векторы для слов стабилизируются после нескольких итераций.

person kampta    schedule 24.08.2015