Два вектора каждого слова в базовой модели Skip-bigram word2vec с функцией softmax

Я читаю необработанную статью word2vec: http://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf

Согласно приведенному ниже уравнению, каждое слово имеет два вектора, один из которых используется для прогнозирования слова контекста в качестве центрального слова, а другой используется в качестве слова контекста. Для первого мы можем обновлять его с помощью градиентного спуска на каждой итерации. Но как обновить последнюю? И какой вектор является конечным вектором в окончательной модели? введите здесь описание изображения


person Yuwen Yan    schedule 16.02.2016    source источник


Ответы (1)


Насколько я понимаю, независимо от того, какая архитектура используется (skip-gram/CBOW), векторы слов считываются из одной и той же матрицы слов-векторов.

Как предложено во второй сноске к документу, v_in и v'_out одного и того же слова (например, собака) должны быть разными, и предполагается, что они происходят из разных словарей во время вывода функции потерь.

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

person kampta    schedule 26.02.2016