В модели word2vec есть два линейных преобразования, которые берут слово в пространстве словаря на скрытый слой (вектор "in" ), а затем обратно в пространство словака ( "выход" ). Обычно этот вектор отбрасывается после тренировки. Мне интересно, есть ли простой способ доступа к вектору out в gensim python? Эквивалентно, как я могу получить доступ к исходной матрице?
Мотивация: я хотел бы реализовать идеи, представленные в этом недавнем документе: Модель двойного вложения пространства для ранжирования документов
Вот более подробная информация. Из приведенной выше справки мы имеем следующую модель word2vec:
Здесь входной уровень имеет размер $V $, размер словаря, скрытый слой имеет размер $d $и выходной уровень размера $V $. Две матрицы W_ {IN} и W_ {OUT}. Обычно модель word2vec сохраняет только матрицу W_IN. Это то, что возвращается туда, где после обучения модели word2vec в gensim вы получаете такие вещи, как:
модель ['potato'] = [- 0.2,0.5,2,...]
Как я могу получить доступ или сохранить W_ {OUT}? Это, скорее всего, довольно дорогостоящее вычисление, и я действительно надеюсь на некоторые встроенные методы в gensim, чтобы сделать это, потому что я боюсь, что если я закоучу это с нуля, это не даст хорошей производительности.