Изменение размеров предварительно обученных векторов word2vec

У меня есть две разные предварительно обученные модели, встраивающие слова, которые я хочу объединить вместе, чтобы отсутствующее слово из одной модели могло быть дополнено другой моделью (в случае, если в другой модели есть слово, отсутствующее в первой модели). Но в моделях векторы имеют разную размерность. Векторы первой модели имеют 300 измерений, а векторы второй модели имеют 1000 измерений.

Могу ли я просто сохранить первые 300 измерений и отбросить остальные (700) во второй модели и построить одну комбинированную модель из 300 измерений?


person Golam Kawsar    schedule 11.12.2017    source источник


Ответы (1)


Поскольку две модели обучались в разное время, они не будут «семантически выровнены», даже если они будут иметь одинаковую размерность. Поскольку в инициализации обучения есть некоторые случайные аспекты, нельзя напрямую сравнивать два независимых набора векторов. Топологические аспекты, т. е. отношения между векторами в многомерном пространстве, скорее всего, будут одинаковыми, но два вектора из двух независимых наборов векторов, соответствующих одному и тому же слову, не будут лежать в одной и той же позиции.

Существуют алгоритмы уменьшения размерности, которые могут уменьшить размерность с 1000 до 300 (SVD, PCA, SOM, автоэнкодеры), но, как я уже говорил, это не решит вашу проблему.

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

person perfall    schedule 13.12.2017
comment
Если в обеих моделях много перекрывающихся слов, есть способ изучить преобразование, которое может спроецировать лишние слова в другую модель — см. этот ответ: stackoverflow.com/questions /47507091/ — Но не уверен, что код в настоящее время работает с одновременным уменьшением размерности, и, вероятно, лучше всего создать комбинированный корпус с различными примерами всех интересующих слов, а затем обучить новую модель, где Благодаря совместному обучению слова-векторы гарантированно сопоставимы. - person gojomo; 13.12.2017